CS360 -- Systems Programming

Micah Beck --- Spring, 2020


  • General Information
  • Class Schedule
  • Piazza - piazza.com/utk/spring2020/cs360/home
  • Syllabus
  • Labs
  • Lecture Notes
  • Tests
  • Final Grade Information



    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.