CS226{C,S}. Operating Systems and Networking

Introduces the fundamentals of operating systems together with the basics of networking and communications.

Prerequisites: introduction to computer science (any implementation of CS103 or CS112), discrete structures (CS106 or CS115)

Syllabus:

Units covered:
PF5 Event-driven programming   2 core hours (of 4)
AL4 Distributed algorithms   3 core hours
OS1 Overview of operating systems   2 core hours
OS2 Operating system principles   2 core hours
OS3 Concurrency   6 core hours
OS4 Scheduling and dispatch   3 core hours
OS5 Memory management   5 core hours
NC1 Introduction to net-centric computing   2 core hours
NC2 Communication and networking   7 core hours
NC3 Network security   3 core hours
NC4 The web as an example of client-server computing   3 core hours
PL6 Object-oriented programming   2 core hours (of 10)

Notes:
Because this course includes a range of topics, CS226 is an example of a "crosscutting" approach to designing a core. In a more traditional implementation of the core, an institution might offer one course in operating systems and another in networks. There is, however, a good deal of interplay between these topics. It therefore makes sense to design a course that looks at these pieces of system software together, particularly since the web is extremely appealing to students. Combining the operating system topics with the discussion of networking helps motivate students and stimulates their thinking about both the effect of the web on operating systems and the more general principles involved.

The issue of motivation is paramount in the design of the course. The area of operating systems is often regarded as difficult for both students and faculty, but nonetheless contains many ideas of relevance to all computer scientists. Faculty must ask themselves how they can make operating systems relevant to undergraduates. This consideration must drive the choice of approach to learning and teaching. To this end, students must see these issues as related to the systems that they use. As an example, students might be asked to consider the impact on the operating system of such developments as networking, multimedia, security, and hand-held devices. Similarly, one could also ask about the impact of other developments, such as the following:

In pursuing any course on operating systems, students need to be made aware of the wider relevance of many of the ideas. It is therefore useful to highlight the following connections:

Students are likely to take a greater interest in operating systems if they see themselves as working in the context of a real system rather than some highly simplified and more abstract simulation. In this regard, the open-source movement has made an important contribution to pedagogy in the operating systems area, because the source code for several well-known operating systems is now available free of charge. These public-domain resources make it easier to illustrate aspects of operating systems and can often provide useful examples of how different systems implement particular features. It is worth observing that many of the students are likely to be fired up with the idea of installing Linux (for example) on their own machines.

Students who complete this course should be able to perform the following tasks:

Online resources for CS226


 
CC2001 Report
December 15, 2001