CPS 210 Operating Systems
home calendar topics work resources
In Spring 2013 we will use refined versions of the labs from Fall 2012. Much of the content linked through this page is from Fall 2012. We will inform you when content is "locked" for Spring 2013. The deadlines below are the planned deadlines for Spring 2013.

Handing in your work:

About C. The first labs ask you to program in the C programming language. We will discuss some aspects of C in lectures and recitations, and we will provide relevant examples, but we do not teach C. If C is unfamiliar to you, you will need to read up from some other sources, or spend more time with the sample programs. You should take the time to look through some of the supporting materials on the resources page. We find that the students who struggle most have not taken the time to read up, and as a result they have found themselves spending more time debugging.

If you are using Mac OSX. Go download and install Xcode from developer.apple.com. Launch Xcode. Go to Preferences->Downloads and download the command-line tools. Now launch the built-in Mac OSX Terminal application (Applications.Utilities.Terminal). That will give you a command-line shell with the right tools.

If you are using Windows. You might want to look into Cygwin. Useful reference for installing Cygwin with gcc.

Once you have a command-line shell on a suitable system. You can compile C code with the gcc compiler, and/or build programs with the make utility. You can use the man command to learn about any C builtin library API and/or system call API or command. E.g., try man malloc or man strcpy.

A note on labs in this class

We all know that there are various fragments of code available on the web that are relevant to the assignment. You are not prohibited from looking at material on the web. We believe that we have provided you with enough to start with that it will not benefit you to import source code from anywhere else. The point of the lab is to learn, and we want to make it easy for you to learn!

When you hand in the lab, we expect that your code is your own. If you incorporate source code from some external source, you must add a comment indicating the imported code and the source of that code. Most importantly you should be able to explain any part of your code in detail, and why you chose to do it that way and not some other way. If you encounter code from some external source that diminishes your opportunity to learn by doing the lab, please inform us (we may not be aware of it).

Please be sure that you are familiar with the policy on collaboration and other policies.