Spring2011.CSCI340CourseSyllabus History

Show minor edits - Show changes to output

Changed lines 104-106 from:
* You are expected to attend all classes. You are responsible for announcements made in class, assignment due dates, etc.
** If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]].
to:
* You are expected to attend all classes. You are responsible for announcements made in class, assignment due dates, etc. If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]. The grade 'WA' may be given for excessive absences.
Changed line 59 from:
* demonstrate an understanding of the context within which an OS works, as well as what an OS is expected to accomplish.
to:
* Demonstrate an understanding of the context within which an OS works, as well as what an OS is expected to accomplish.
Changed line 116 from:
* '''No compilation policy:''' No credit will be give for a lab assignment which does not compile. It is your responsibility to verify that what you submit compiles on stono. If you develop your lab on another system, port it to stono and re-compile (and run) it there (before you submit it) to verify that everything works.
to:
* '''No compilation policy:''' No credit will be given for a lab assignment which does not compile. It is your responsibility to verify that what you submit compiles on ''stono''. If you develop your lab on another system, port it to stono and re-compile (and run) it there (before you submit it) to verify that everything works.
Changed lines 88-89 from:
** It is relatively easy to find solutions (or related code) for 340 assignments, modify them, and incorporate them into (or, even worse, present them as) your own work. Such activity is considered ''cheating''. This is a serious offense and will affect your academic career. If in doubt, check with the instructor ''before'' you look at anyone else's code that might be related to your assignment.
* You are '''not allowed to discuss assignments''' and possible solutions with any person other than the instructor, lab instructor/tutor/grader (or with your teammates, for group assignments).
to:
** It is relatively easy to find solutions (or related code), modify them, incorporate them into (or even worse, present them as) your own work. Such activity is considered '''cheating'''. This is a serious offense and will affect your academic career. If in doubt, check with the instructor '''before''' you look at any code or solution related to your assignment.
* You are '''not allowed to discuss assignments''' and possible solutions with any person other than the instructor, lab instructor, tutor, grader (or with your teammates, for group assignments).
Changed lines 58-71 from:
* demonstrate an understanding of basic operating system (OS) principles and major OS design issues
* demonstrate an understanding of the context within which an OS works, as well as what an OS is expected to accomplish
* demonstrate an historical knowledge of OS evololution (development) including major milestones and advances
* demonstrate an understanding of the relationship of an OS to, and dependence on, hardware (processor, memory, disks, I/O devices, Buses, and BIOS)
* demonstrate an understanding, including supported services, of the different OS varieties including: mainframes, server, multiprocessor, personal, handheld, embedded, sensor, real-time, and smart-card
* demonstrate an understanding of the concepts of the process and of the thread, as well as the key elements of process description and control, the relationship of threads to processes, and thread management
* demonstrate an understanding of scheduling issues in both uniprocessor and symmetric multiprocessor environments, of the major scheduling algorithms, both pre-emptive and non-pre-emptive, their advantages and disadvantages, and the special problems related to scheduling in a real-time environment
* demonstrate an understanding of the principles of memory management, including memory partitioning, segmentation, swapping, paging, and virtual memory (including working sets and thrashing)
* demonstrate an understanding of the basic principles of file management, including file organization, file directories, file sharing, record blocking, and management of secondary storage
* demonstrate an understanding of the major issues in I/O device management, including buffering, disk scheduling, disk caching, RAID, and recovery from failure
* demonstrate an understanding of concurrent processing and of the interrelated principles of mutual exclusion, synchronization, semaphores, monitors, message passing, deadlock (including the techniques of deadlock avoidance, deadlock prevention, deadlock detection, and deadlock resolution), and livelock
* demonstrate a capability of writing a simple shell script which executes successfully in the GNU/Linux environment
* demonstrate a capability of modifying an existing program and of writing a new program in the language, C, which executes successfully as part of the GNU/Linux kernel, as well as the use of Makefiles
to:
* Demonstrate understanding of basic operating system (OS) principles and major OS design issues.
* demonstrate an understanding of the context within which an OS works, as well as what an OS is expected to accomplish.
* Demonstrate historical knowledge of OS evololution (development) including major milestones and advances.
* Demonstrate understanding of the relationship of an OS to, and dependence on, hardware (processor, memory, disks, I/O devices, Buses, and BIOS).
* Demonstrate understanding, including supported services, of the different OS varieties including: mainframes, server, multiprocessor, personal, handheld, embedded, sensor, real-time, and smart-card.
* Demonstrate understanding of the concepts of the process and of the thread, as well as the key elements of process description and control, the relationship of threads to processes, and thread management.
* Demonstrate understanding of scheduling issues in both uniprocessor and symmetric multiprocessor environments, of the major scheduling algorithms, both pre-emptive and non-pre-emptive, their advantages and disadvantages, and the special problems related to scheduling in a real-time environment.
* Demonstrate understanding of the principles of memory management, including memory partitioning, segmentation, swapping, paging, and virtual memory (including working sets and thrashing).
* Demonstrate understanding of the basic principles of file management, including file organization, file directories, file sharing, record blocking, and management of secondary storage.
* Demonstrate understanding of the major issues in I/O device management, including buffering, disk scheduling, disk caching, RAID, and recovery from failure.
* Demonstrate understanding of concurrent processing and of the interrelated principles of mutual exclusion, synchronization, semaphores, monitors, message passing, deadlock (including the techniques of deadlock avoidance, deadlock prevention, deadlock detection, and deadlock resolution), and livelock.
* Demonstrate capability of writing a simple shell script which executes successfully in the GNU/Linux environment.
* Demonstrate capability of modifying an existing program and of writing a new program in the language, C, which executes successfully as part of the GNU/Linux kernel, as well as the use of Makefiles.
Changed lines 82-83 from:
Exam '''or''' Final Project 20%, and Class Participation 10% (includes Active Learning Events - see below).
to:
Exam '''or''' Final Project 20%, and Class Participation 10%.
Deleted line 101:
Changed lines 104-106 from:
* You are expected to attend all classes. If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]; also, you are responsible for announcements made in class, assignment due dates, etc.
to:
* You are expected to attend all classes. You are responsible for announcements made in class, assignment due dates, etc.
** If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]
.
Changed lines 109-110 from:
* In summary, you should contribute positively to the classroom learning experience, and respect your classmates right to learn (see College of Charleston '''[[http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php | Student Handbook]]''', section on ''Classroom Code of Conduct'' (p. 58)).\\
to:
* In summary, you should contribute positively to the classroom learning experience, and respect your classmates right to learn
** See College of Charleston '''[[http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php | Student Handbook]]''', section on ''Classroom Code of Conduct'' (p. 58).\\
Changed lines 87-88 from:
* '''You must do your assignments alone''' (or with your teammates, for group assignments).
* You are not allowed to discuss assignments and possible solutions with any person other than the instructor (or with your teammates, for group assignments). Any violation of these rules is an honor offense.
to:
* '''You must do your assignments alone''' (or with your teammates, for group assignments).
** It is relatively easy to find
solutions (or related code) for 340 assignments, modify them, and incorporate them into (or, even worse, present them as) your own work. Such activity is considered ''cheating''. This is a serious offense and will affect your academic career. If in doubt, check with the instructor ''before'' you look at anyone else's code that might be related to your assignment.
* You are '''not allowed to discuss assignments''' and possible solutions with any person other than the instructor, lab instructor/tutor/grader (or with your teammates, for group assignments)
.
Changed lines 91-92 from:
* Also see the College of Charleston '''[[http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php | Student Handbook]]''', especially sections on ''The Honor Code'' (p. 11), and ''Student Code of Conduct'' (p. 12). There is other useful information there.\\
to:
* '''Any violation of these rules is an honor offense'''. See the College of Charleston '''[[http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php | Student Handbook]]''', especially sections on ''The Honor Code'' (p. 11), and ''Student Code of Conduct'' (p. 12). There is other useful information there.\\
Changed line 107 from:
* Since we are in a lab, you must use the computers only as directed (e.g., no checking email, or playing games) during class.
to:
* You must use computers only as directed (e.g., no checking email, or playing games) during class.
Changed lines 114-115 from:
* Submission instructions will be provided for each assignment.\\
to:
* '''Submission policy:''' All assignments must be submitted electronically using the submission instructions provided. No ''email'' submissions will be accepted.\\
Added lines 121-125:
(:cellnr valign=top align=right style='padding:5px;':)

(:cell style='padding:5px;':)

->[--(Some material adopted from Prof. Leclerc's CSCI 340 syllabus)--]
Changed lines 58-87 from:

#'''Familiarity with appropriate data, information and knowledge-gathering techniques and research skills in the discipline.'''

** This course will introduce you to computer data modeling, algorithmic techniques
, and computer-related research in the context of music, sounds, and other digital artifacts. You will:
*** Learn how to creatively transform media such as music, sounds, and other digital artifacts.
*** Learn how
to use computers to explore, visualize, speculate, and invent.
*** Develop an appreciation for computational thinking.
*** Gain experience with a scripting programming language and tools.

#'''Use of academic resources''' and student support services '''at College of Charleston''', including the '''library''', '''information technology''',
the '''Center for Student Learning''', the Academic Advising and Planning Center, the office of Career Services, and other appropriate academic resources, student support services, and '''cultural resources'''.

** You will attend [[http://spinner.cofc.edu/studentlearningcenter/studyskills/seminars.php?referrer=webcluster& | Study Skills Seminars]] at the Center for Student Learning.
** Also, you will attend [[http://sota.cofc.edu/artnews.html | campus events]] related to music
and art.

#'''Using appropriate critical thinking skills and problem-solving techniques
in a variety of contexts.'''

** See (1) above.

#'''Understanding
the goals of liberal arts and sciences education and the core values of College of Charleston.'''

** This course is designed mainly to serve non-majors in the liberal arts and sciences by immersing them in creative computational thinking
and design.
*** Given that our civilization runs on software (and that this will be even more so 10-20 years from now), it is becoming necessary for liberally educated people to be able to engage in computational (algorithmic) thinking, as the effects of this thinking (i.e., software intensive systems) touch nearly every other discipline, and permeate nearly every aspect of our civilization.
*** You will begin to gain appreciation of the fact that such systems ''can amplify human intelligence'', but they ''cannot replace human judgment''.
*** Readings will explore the intersection between computing and the liberal arts and sciences.

#'''Using effective skills and strategies for working collaboratively.'''

** You will participate in various collaborative activities, such as collaborative written exercises, team programming in-class activities, and group projects. \\
to:
* demonstrate an understanding of basic operating system (OS) principles and major OS design issues
* demonstrate an understanding of the context within which an OS works
, as well as what an OS is expected to accomplish
* demonstrate an historical knowledge of OS evololution (development) including major milestones and advances
* demonstrate an understanding of the relationship of an OS
to, and dependence on, hardware (processor, memory, disks, I/O devices, Buses, and BIOS)
* demonstrate an understanding, including supported services, of the different OS varieties including: mainframes, server, multiprocessor, personal, handheld, embedded, sensor, real-time, and smart-card
* demonstrate an understanding of
the concepts of the process and of the thread, as well as the key elements of process description and control, the relationship of threads to processes, and thread management
* demonstrate an understanding of scheduling issues in both uniprocessor and symmetric multiprocessor environments, of the major scheduling algorithms, both pre-emptive and non-pre-emptive, their advantages and disadvantages, and the special problems related to scheduling in a real-time environment
* demonstrate an understanding of
the principles of memory management, including memory partitioning, segmentation, swapping, paging, and virtual memory (including working sets and thrashing)
* demonstrate an understanding of the basic principles of file management, including file organization, file directories, file sharing, record blocking,
and management of secondary storage
* demonstrate an understanding of the major issues in I/O device management, including buffering, disk scheduling, disk caching, RAID, and recovery from failure
* demonstrate an understanding of concurrent processing and of the interrelated principles of mutual exclusion
, synchronization, semaphores, monitors, message passing, deadlock (including the techniques of deadlock avoidance, deadlock prevention, deadlock detection, and deadlock resolution), and livelock
* demonstrate a capability of writing a simple shell script which executes successfully in the GNU/Linux environment
* demonstrate a capability of modifying an existing program and of writing a new program in the language, C, which executes successfully as part of the GNU/Linux kernel, as well as the use of Makefiles
Deleted lines 83-92:
''Active Learning Events:''

You need to attend, at least, '''three''' [[http://sota.cofc.edu/artnews.html | campus events]] related to music.

** These events have to be '''on campus''' or be '''campus-sponsored''' to count.

** You should bring an artifact from the event (program, ticket, etc.).

** You should also hand in a notecard (choose your size) with a summary of what you went to and a short reaction.
Changed line 112 from:
* Assignment grades will be based on creative inspiration, design, style, and correctness of result.
to:
* '''No compilation policy:''' No credit will be give for a lab assignment which does not compile. It is your responsibility to verify that what you submit compiles on stono. If you develop your lab on another system, port it to stono and re-compile (and run) it there (before you submit it) to verify that everything works.
Changed line 48 from:
* Paul K. Andersen, "Just Enough Unix", McGraw-Hill.
to:
* Daniel J. Barrett, "Linux Pocket Guide", O'Reilly.
Added lines 57-59:

Added lines 1-143:
|| border=0 width=100%
||![-College of Charleston-] ||! [-January 10, 2011-]||

!!%center%CSCI 340 Operating Systems
!!!%center%Course Syllabus

(:table border=0 width=100%:)

(:cell width=20% align=right style='padding:5px;':)
'''Professor:'''
(:cell width=80% style='padding:5px;':)
Dr. Bill Manaris\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Office:'''
(:cell style='padding:5px;':)
Room: 223 J.C. Long Building \\
Phone: (95)3-8159 \\
E-mail: manarisb@cofc.edu \\
Web: http://www.cs.cofc.edu/~manaris/\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Office Hours:'''
(:cell style='padding:5px;':)
Monday, Wednesday, Friday 10 - 11AM & 1 - 2:30PM.\\
Other hours available by appointment.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Course Description:'''
(:cell style='padding:5px;':)
A course introducing operating systems principles including device management, process management, memory management, virtual memory, file management, and protection mechanisms. Laboratory exercises (using Unix) will allow students to gain hands-on experience with the details of how these operating systems principles are implemented.

''Prerequisites:'' CSCI 230, CSCI 250, and MATH 207.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Tentative Outline:'''
(:cell style='padding:5px;':)
Syllabus, Survey, Intro to Unix, Intro to C, Definition, History of Operating Systems and Concepts, Processes and Threads, Memory Management, File Systems, I/O, Deadlocks, and other topics as time permits.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Textbook:'''
(:cell style='padding:5px;':)
* Andrew Tanenbaum, (2008), ''Modern Operating Systems", 3rd ed., Prentice Hall.

(:cellnr valign=top align=right style='padding:5px;':)
'''References:'''
(:cell style='padding:5px;':)
* Paul K. Andersen, "Just Enough Unix", McGraw-Hill.
* Brian W. Kernighan and Dennis M. Ritchie, "The C Programming Language", Prentice Hall.
* H.M. Deitel and P.J. Deitel, "C - How to Program", Prentice Hall.

Additional reading materials will provided via handouts and the [[http://www.cs.cofc.edu/~manaris/?n=Spring2011.CSCI180| class website]].\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Learning Outcomes:'''
(:cell style='padding:5px;':)
#'''Familiarity with appropriate data, information and knowledge-gathering techniques and research skills in the discipline.'''

** This course will introduce you to computer data modeling, algorithmic techniques, and computer-related research in the context of music, sounds, and other digital artifacts. You will:
*** Learn how to creatively transform media such as music, sounds, and other digital artifacts.
*** Learn how to use computers to explore, visualize, speculate, and invent.
*** Develop an appreciation for computational thinking.
*** Gain experience with a scripting programming language and tools.

#'''Use of academic resources''' and student support services '''at College of Charleston''', including the '''library''', '''information technology''', the '''Center for Student Learning''', the Academic Advising and Planning Center, the office of Career Services, and other appropriate academic resources, student support services, and '''cultural resources'''.

** You will attend [[http://spinner.cofc.edu/studentlearningcenter/studyskills/seminars.php?referrer=webcluster& | Study Skills Seminars]] at the Center for Student Learning.
** Also, you will attend [[http://sota.cofc.edu/artnews.html | campus events]] related to music and art.

#'''Using appropriate critical thinking skills and problem-solving techniques in a variety of contexts.'''

** See (1) above.

#'''Understanding the goals of liberal arts and sciences education and the core values of College of Charleston.'''

** This course is designed mainly to serve non-majors in the liberal arts and sciences by immersing them in creative computational thinking and design.
*** Given that our civilization runs on software (and that this will be even more so 10-20 years from now), it is becoming necessary for liberally educated people to be able to engage in computational (algorithmic) thinking, as the effects of this thinking (i.e., software intensive systems) touch nearly every other discipline, and permeate nearly every aspect of our civilization.
*** You will begin to gain appreciation of the fact that such systems ''can amplify human intelligence'', but they ''cannot replace human judgment''.
*** Readings will explore the intersection between computing and the liberal arts and sciences.

#'''Using effective skills and strategies for working collaboratively.'''

** You will participate in various collaborative activities, such as collaborative written exercises, team programming in-class activities, and group projects. \\

(:cellnr valign=top align=right style='padding:5px;':)
'''Grading:'''
(:cell style='padding:5px;':)
To receive a passing grade for the course, you must average a passing grade on each of the
following: assignments, tests, and final exam.

'''Scale:''' A: 90-100; B: 80-89; C: 70-79; D: 60-69; F: <60. The grades of B+/, C+/, and D+/
may be given at the professor's discretion.

'''Final Grade Computation:''' Assignments (4-6) 30%, Tests (2) 40%, Comprehensive Final
Exam '''or''' Final Project 20%, and Class Participation 10% (includes Active Learning Events - see below).

''Active Learning Events:''

You need to attend, at least, '''three''' [[http://sota.cofc.edu/artnews.html | campus events]] related to music.

** These events have to be '''on campus''' or be '''campus-sponsored''' to count.

** You should bring an artifact from the event (program, ticket, etc.).

** You should also hand in a notecard (choose your size) with a summary of what you went to and a short reaction.

(:cellnr valign=top align=right style='padding:5px;':)
'''Honor Code:'''
(:cell style='padding:5px;':)
* '''You must do your assignments alone''' (or with your teammates, for group assignments).
* You are not allowed to discuss assignments and possible solutions with any person other than the instructor (or with your teammates, for group assignments). Any violation of these rules is an honor offense.
* On assignments you will be asked to identify the person(s) you received help from, if any.
* Also see the College of Charleston '''[[http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php | Student Handbook]]''', especially sections on ''The Honor Code'' (p. 11), and ''Student Code of Conduct'' (p. 12). There is other useful information there.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Test Policies:'''
(:cell style='padding:5px;':)
* Attendance at tests is mandatory. You must complete tests with no discussion or sharing of information with other students.
* Calculators, computers, cell phones, etc. may not be used during a test, unless otherwise directed.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Classroom Policies:'''
(:cell style='padding:5px;':)

* You are expected to take good notes during lecture.
* You are expected to participate in class with questions and invited discussion.
* You are expected to attend all classes. If you miss class, you must [[http://studentaffairs.cofc.edu/general_info/absence/ | get an absence memo from the Associate Dean of Students Office]]; also, you are responsible for announcements made in class, assignment due dates, etc.
* You should '''turn off all electronic devices''' (e.g., cell phones, pagers, etc.).
* Since we are in a lab, you must use the computers only as directed (e.g., no checking email, or playing games) during class.
* In summary, you should contribute positively to the classroom learning experience, and respect your classmates right to learn (see College of Charleston '''[[http://studentaffairs.cofc.edu/honor-system/studenthandbook/index.php | Student Handbook]]''', section on ''Classroom Code of Conduct'' (p. 58)).\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Assignment Policies:'''
(:cell style='padding:5px;':)
* Assignment grades will be based on creative inspiration, design, style, and correctness of result.
* Submission instructions will be provided for each assignment.\\

(:cellnr valign=top align=right style='padding:5px;':)
'''Late Policy:'''
(:cell style='padding:5px;':)
* You have '''four "late" days''' for the whole semester. You may use these days as you wish for assignment submission. If you use them up, no late assignments will be accepted.
* '''If you submit everything on time''' (i.e., use no late days), you will earn an additional '''2.5 bonus points''' on your course grade.
(:tableend:)