CS360 -- Systems Programming

CS360 LINKS

INTRODUCTION AND CLASS GOALS

The following are the goals that I have set for teaching this class
-- they represent what I'd like you all to get out of the class.
When the semester is over, go over this list, and see how well these
goals were met. If you feel like it, send me email with comments --
it's more useful after the semester than in the middle of it, I
think.

1. To become good general-purpose C programmers

This means that when you see a problem that needs to be coded, you
can envision the overall structure of the solution, and then set
about solving it in an ordered way, using the appropriate data
structures where necessary.

2. To become decent Unix hackers

This means that you know how to make use of the many tools that
Unix provides, be it commands, library calls or system calls.
This also means that you understand the model of computation
that Unix presents.

3. To become well-versed in the language of systems programming

If you finish this course with a decent grade (B or better), then
my goal is to ensure that you can talk systems. This means that
when you go out to the job market or to graduate school, when
anyone wants to talk systems with you, you not only understand
what they are saying, but can communicate back with them in a
common language. This also means that if you have to read research
papers in systems, you can do so without a huge amount of difficulty.

4. To understand basic uniprocessor organization.

This means to know pretty much what goes on from the time that a
computer gets turned on, to writing and executing programs in a
multi-user enviroment.