Projects

This quarter we will have 4-5 projects that we designed to give you experience with system design and implementation. You will write programs that demonstrate the concepts that we cover in class. Broadly speaking, we will divide the projects in to two different categories. The first category will be relatively small and self-contained projects, but we will give three of them over the first four weeks of the class. The second category will be larger projects, and these will come in the second half of the class and will be spread out over several weeks.

Processes, system APIs, threads, and concurrency

During the first part of the quarter, we will give you three projects covering basic command line utilitites, processes, multi-threaded programming, and synchronization.

Network programming and distributed systems

In the second part of this quarter, we'll have 1-2 larger projects that will cover network programming, APIs and distributed systems, and file systems.

Group or individual?

You are welcome to work with other students in this class, but you must write and submit your own solutions. You may not copy any code and we will consider any copied code to be a violation of our cheating policy.