CS3600 // Systems and Networks
Fall 2014
Course details
Prof. Alan Mislove
Office: 250 West Village H
Teaching assistants
Vishakha Motwani and Harish Rajagopal
Office: 102 West Village H
210 West Village H
Mondays, Wednesdays, Thursdays
Office hours
2:00pm–3:00pm Mondays (instructor, 250 WVH)
10:00am–11:30am Tuesdays (Vishakha, 102 WVH)
5:00pm–6:30pm Thursdays (Vishakha, 102 WVH)
4:00pm–5:30pm Fridays (Harish, 102 WVH)
10:00am–11:30am Saturdays (Harish, 102 WVH)
Discussion Forum
On Piazza
C in a Nutshell
1st Edition
Prinz and Crawford
ISBN-13 978-0596006976
Operating Systems Concepts
8th Edition
Silberschatz, Galvin, and Gagne
ISBN-13 978-0470128725
Computer Networks: A Systems Approach
4th Edition
Peterson and Davie
ISBN-13 978-0123705488
50%Projects (2 @ 10% and 2 @ 15%)
25%Exams (2 @ 12.5%)
15%Homeworks (10 @ 1.5%)
2.5%C Bootcamp Projects
Course description
Introduces the basic concepts underlying computer operating systems and computer networks and provides hands-on experience with their implementation. Covers the basic structure of an operating system: application interfaces, processes, threads, synchronization, interprocess communication, processor allocation, deadlocks, memory management, file systems, and input/output control. Also introduces network architectures, network topologies, network protocols, layering concepts (for example, ISO/OSI, TCP/IP reference models), communication paradigms (point-to-point vs. multicast/broadcast, connectionless vs. connection oriented), and networking API's (sockets). Uses examples from many real operating systems and networks (UNIX, MS-DOS, Windows, TCP/IP, Ethernet, ATM, and token rings) to reinforce concepts.
The official prerequisite for this course is CS 2600. This course will be project-centric, and all students will complete in projects in groups of two (or possibly three, if necessary). Thus, to succeed in this course, you must be able to work in a group. I will allow you to form your own groups, and the course staff will serve as a matching service if necessary. As you are free to choose your partner(s), I will not be sympathetic to complaints at the end of the semester about how your group-mates did not do any work.

It is also highly recommended that you become familiar with using a debugger, as this will greatly aid you in completing the projects. At a high level, you should be motivated, eager to learn, willing to work hard, and make up, on your own, any prerequisite deficiencies you may have.
attendance and participation
This is a junior-level course; I will not mandate you to come to class (you are still responsible for all the material covered in class). The class projects are a major part of this course, and please be aware that you will be working in groups of two. Lastly, note that 5% of your grade is based upon class participation. This is to encourage you to voice your ideas in class and to post them to the forum. Minimally, I must know your name by the end of the term in order for you to get any points for class participation.

We will be using Piazza as a course discussion/bulletin board. You are expected to check it at least once every few days, use it as the first place to ask questions, and answer others' questions. The course staff will regularly monitor the board, and your participation will count towards your grade.
completing and submitting projects
For the C Bootcamp homeworks and the projects, we will be using resources and scripts that are available on the CCIS Linux machines. You need to have access to the CCIS Linux machines; if you do not have an account, be sure to sign up for a CCIS account as soon as possible.

You are welcome to use your personal machine if you wish. If you wish to remotely access CCIS resources, you should have an ssh client installed on your machine (they are available for all major operating systems). If you wish to compile and run code on your own machine, we recommend using a Linux distro or Mac OS X (it may be possible to get the code to compile on Windows, but you're on your own). Note that many of the testing scripts assume that they are being run on the CCIS network. Regardless, all of your submitted code must compile and run on the CCIS Linux machines.
© 2014 Alan Mislove