CS 451 | Willamette University | Spring, 2019 |
Topics in Computer Science:
Operating Systems and Concurrency |
||
Note: Although this course is generally organized and
developed,
adjustments are likely as the semester progresses and the course evolves.
CSC 451 explores major components of operating systems involve process management, CPU scheduling, process synchronization, deadlock, and file systems. All of these topics require some fundamental background in computing, computational problem solving, and programming. With that background, this course will be able to identify many basic issues and challenges for operating systems. Further, with student background including reasonable experience in programming in some imperative or object-oriented language, students will be able to explore the many low-level elements of computer systems and process management.
To deepen conceptual coverage of this material, the course will explore the C programming language with the intent of providing direct practice with parallel algorithms.
As time permits, high-level specific topics may include:
Elements of operating systems
Models of parallel computation
Standard techniques for parallel problem solving, such as
Parallel algorithms, selected from such problem domains as lists, trees, graphs, geometry, and strings.
As time permits, elements of C programming will include:
Control structures and iteration
Memory management
Elements of parallelism
Process synchronization
For the most part, this course will follow a lab-based format:
Class presentations, discussions, and small-group activities will meet Tuesdays and Thursdays, 12:50 pm - 2:20 pm.
Laboratory exercises and activities will take place Tuesdays and Thursdays, 2:30 pm - 4:00 pm.
Office: Ford Hall, Room 210
Telephone: 503-375-5314
E-mail: walker@willamette.edu
Office hours are posted outside Ford Hall, Room 210, with additional hours possible by appointment. Please feel free to stop by during office hours; I will strive to work with students on a first-come, first-served basis—as time permits.
The following text has been selected to support this course:
Documentation for the Scribbler 2 robots includes:
While the schedule for this course is expected to evolve, a detailed Tentative Class Schedule is posted with readings, labs, assignments, examples, etc. This schedule will be updated as the course evolves.
This course includes a variety of activities, including class preparation (reading), labs and projects (started in class and finished for homework), supplemental problems, and written assignments, as well as a test, and a final exam. From past experience, the time required for these activities will likely vary substantially from student to student and from one part of the course to another. For example, a student may need to devote considerable time and effort when starting a new or different topic, but the workload may drop noticeably when that material is mastered.
Such variation in student experiences complicates any estimation of the time individual students may need to devote to homework for this course. However, from past experience, students working steadily on the course likely should expect to allocate 10-15 hours per week to homework. Some students may require additional time for some weeks; some students may complete work in less time for some weeks. Conversations with computer science faculty and others suggest this time allocation is consistent with expectations for many courses at both Grinnell College and Willamette University.
All programming for this course must meet reasonable standards for clarity, readability, maintainability, and efficiency. Also, submitted programs must compile appropriately, program testing should demonstrate program correctness, and some commentary is needed to explain why programs produce correct answers. See Notes on Program Standards for details on writing and testing programs according to basic standards.
Course Work will involve a combination of the following activities.
Supplemental Problems extend the range of problems considered in the course and help sharpen problem-solving skills. Through the semester, several supplemental problems will be required. Some other supplemental problems may be available for extra credit, although points on extra credit supplemental problems may not raise the semester average for supplemental problems above 120%. Typically, a lab or supplemental problem will be due each Thursday.
All supplemental problems must be done individually, without contact with classmates, other students, assistants, tutors, or other people. The only exception is that you may ask the instructor, if/when you have questions.
Laboratory sessions introduce specific features of the Mac OS X/C computing environment, highlight concepts and constructs introduced in class, allow instructor assistance in a "hands-on" setting, and supplement normal office hours. Typically, a lab or supplemental problem will be due each Thursday.
Approximately 7-10 labs require a formal write-up, explaining what work you have done, showing any programming you have done, indicating tests or experiments run, and giving your conclusions. Several additional labs may be identified as being available for extra credit. Submission deadlines are given on the day-by-day schedule. As with written homework, extra credit may not raise a student's average on laboratories above 120%.
Lab activities should be done in groups of two (ocassionally three). Only one write-up is expected per group.
Lab Write-ups are due for specified labs. Submitted material should include:
Written Assignments will focus on material from the textbook. Typically, this work will be due on Tuesdays.
Tests: An in-class test is scheduled for Thursday, March 21.
Exam: A final, in-class exam is scheduled for 2:00-5:00 pm, Thursday, May 9, following the schedule posted by the Registar.
Extra Credit Opportunities: Computer science is a wide-ranging discipline, and courses can cover only selected pieces. To encourage students to expand their horizons, students may earn 2 points extra credit for each CS Tea or other departmental talk, by attending the talk and writing a short (4-8 sentence) summary or response. Logistically, a reasonable statement must be submitted via e-mail to the instructor within 1 week of the talk; after the e-mail has been reviewed and the statement deemed appropriate, the student will receive 1 point extra credit counted toward supplemental problems and 1 point extra credit counted toward labs. Additional extra credit opportunities may be announced through the semester.
Deadlines are shown on the Tentative Class Schedule, and work is due at the start of each class specified. A penalty of 25% per class meeting will be assessed for any assignment turned in late, even work submitted at the end of a class. However, for labs or programming assignments, an extension of at least one class period is automatically granted if the University's Internet network is down for an unscheduled period of three or more hours during the week preceding the assignment.
Although dates for labs, programming or written assignments, tests, and the final exam are firm, I understand that circumstances arise when you are not able to attend class.
Absolute Deadline: All homework must be turned in by Friday,
3 May at 5:00 pm;
laboratory reports or programs received after
that time will not be counted in the grading of the course.
Collaboration often will be allowed on laboratory exercises, but collaboration normally will NOT be allowed on supplemental problems and tests. To avoid confusion, the rules for collaboration on homework are included in the specification of each assignment.
Cell phones, text-messaging devices, and other social-networking connections may not be used in this class. If you bring such equipment to the classroom, it must be turned off before the class starts and stay off throughout the class period. Use of such equipment is distracting to those nearby and will not be tolerated.
If you have specific physical, psychiatric, or learning disabilities and require accommodations, please let me know early in the semester so that your learning needs may be appropriately met. You will need to provide documentation of your disability to Accessible Education Services. Feel free to talk to me if you have questions or want more information.
This instructor's grading philosophy dictates that the final grade should ultimately be based upon each student's demonstration of her or his understanding of the material, not on the performance of the class as a whole nor on a strict percentile basis. The following scheme is proposed as a base for how the various assignments and tests will be counted in the final grade.
Lab Write-ups: 30% | Supplemental Problems: 20% | Written Assignments: 15% | Tests: 15% | Exam: 20% |
created 6 October 2018 revised October-November 2018 expanded and updated January 2019 assignment grading clarified March 2019 |
![]() ![]() |
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. |