Course details
Instructor
Prof. Alan Mislove
Office: 250 West Village H
amislove@ccs.neu.edu
Teaching assistants
Vishakha Motwani and Harish Rajagopal
Office: 102 West Village H
cs3600f14-staff@ccs.neu.edu
Location
210 West Village H
10:30
am–11:35
am
Mondays, Wednesdays, Thursdays
Office hours
2:00
pm–3:00
pm Mondays
(instructor, 250 WVH)
10:00
am–11:30
am Tuesdays
(Vishakha, 102 WVH)
5:00
pm–6:30
pm Thursdays
(Vishakha, 102 WVH)
4:00
pm–5:30
pm Fridays
(Harish, 102 WVH)
10:00
am–11:30
am Saturdays
(Harish, 102 WVH)
Grading
50% | Projects (2 @ 10% and 2 @ 15%) |
25% | Exams (2 @ 12.5%) |
15% | Homeworks (10 @ 1.5%) |
7.5% | Participation |
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.
prerequisites
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.
Homeworks
Homework assignments will be posted here as they become available.
Homework 1 is due at the beginning of class on September 24th, 2014.
Homework 2 is due at the beginning of class on October 1st, 2014.
Homework 3 is due at the beginning of class on October 8th, 2014.
Homework 4 is due at the beginning of class on October 15th, 2014.
Homework 5 is due at the beginning of class on October 22nd, 2014.
Homework 6 is due at the beginning of class on November 3rd, 2014.
Homework 7 is due at the beginning of class on November 10th, 2014.
Homework 8 is due at the beginning of class on November 17th, 2014.
Homework 9 is due at the beginning of class on November 24th, 2014.
Homework 10 is due at the beginning of class on December 3rd, 2014.
Projects
Project descriptions will be posted here as they become available.
Project 1, worth 10% of your grade, is due at 11:59:59pm on September 29th, 2014. The milestone for project 1 is due at 11:59:59pm on September 22nd, 2014. No slip days may be used on the milestone deadline.
Project 2, worth 15% of your grade, is due at 11:59:59pm on October 27th, 2014 (Be sure read the FAT Implementation Notes or Inode Implementation Notes). The first milestone for project 2 is due at 11:59:59pm on October 6th, 2014, and the second milestone is due at 11:59:59pm on October 16th, 2014. No slip days may be used on the milestone deadlines.
Project 3, worth 10% of your grade, is due at 11:59:59pm on November 12th, 2014 (Be sure read the Implementation Notes). The milestone for project 3 is due at 11:59:59pm on November 5th, 2014. No slip days may be used on the milestone deadline.
Project 4, worth 15% of your grade, is due at 11:59:59pm on December 10th, 2014. The milestone for project 4 is due at 11:59:59pm on November 24th, 2014. No slip days may be used on the milestone deadline.
C Bootcamp Projects
C Bootcamp project descriptions will be posted here as they become available.
C Bootcamp Project 1 is due at 11:59:59pm on September 4th, 2014. No slip days may be used.
C Bootcamp Project 2 is due at 11:59:59pm on September 8th, 2014. No slip days may be used.
C Bootcamp Project 3 is due at 11:59:59pm on September 10th, 2014. No slip days may be used.
C Bootcamp Project 4 is due at 11:59:59pm on September 15th, 2014. No slip days may be used.