Welcome to Software Systems at Olin College, Spring 2019.
Instructor: Allen Downey.
Meetings: Tuesday and Friday, 1:30 to 3:10 in AC326.
Topics: Operating Systems, Networks, and System-level Programming in C, including threads, scheduling, synchronization, virtual memory, processes, and file systems. Students in this class should:
Develop skill in system-level programming in C, and
Gain an understanding of the software systems that underlie common application programmer interfaces.
The prerequisite for the class is Software Design or intermediate programming skills.

Textbooks: We will use Griffiths and Griffiths, Head First C,
Downey, Think OS, and some material from
Downey, The Little Book of Semaphores.
The GitHub repository with the exercises is here.
Office hours
I generally don't keep scheduled office hours, but I am happy to meet by appointment. And if there is demand, I will schedule hours later in the semester.
Work in this course includes
Reading and other preparation.
In-class exercises.
Homeworks.
Quizzes.
Projects.
Homeworks
Homeworks are primarily programming exercises from ExercisesInC. They are primarily intended to help you learn, so they are evaluated on a coarse scale.
Quizzes
We will have 6-8 in-class quizzes covering material from the readings and in-class exercises. These are intended to evaluate whether you are keeping up with the class and understanding the content.
Make-up quizzes
I understand that students occasionally have to miss a class. For that reason, the first missed quiz is excused (that is, the missed quiz is dropped). If you have to miss a second quiz, please contact me as early as possible so we can schedule a makeup quiz. If you don't contact me before the quiz, I cannot offer a makeup quiz. If you miss a third quiz, I cannot offer a makeup quiz. In those cases, I use a default grade of 4 out of 10, to limit the impact of missed quizzes. If a student does not miss any quizzes, they get an "attendance bonus": their lowest quiz score is dropped.
Projects
You will work on two projects intended to help you develop depth in 1-2 of the course topics.
Grading
Your final grade will depend on a weighted sum of your scores for homework, quizzes, and project. I will deduct some credit for late homework and reports, and for failures of professionalism.
Participation and professionalism
As students, you share responsibility for creating and maintaining a classroom atmosphere that is conducive to everyone's learning and enjoyment. I hope you will think about how your participation contributes to the learning environment.
Some things you can do to help:
0) Come to class.
1) Come to class on time! I will do my best to use class time effectively. Late arrivals are disruptive.
2) Come to class prepared. Make sure you have always at least skimmed the reading.
3) Try not to fall behind. If we are all working on the same stuff at the same time, everything works better.
4) Take care of your brain. Eat well, sleep well, get some exercises. Come to class ready to work.
5) Be professional. If you have to miss a class, or need to submit work late, communicate with the instructor.
6) Be respectful toward the instructor and your fellow students.
7) Be generous with your ideas and your time. Help each other.
8) Be reflective. Think about what's working and what's not, and take responsibility for making the class work for you.
9) Be honest.
10) Have fun!