Course Description

Focuses on design and implementation of network programs and systems, including topics in network protocols, file transfer, client-server computing, remote procedure call and other contemporary network system design and programming techniques. Familiarity with C and Unix or Linux is required.

Course Objective

By the end of the course, students will understand concepts and technologies that combine to create the networking stack. Internet technologies, end-host protocols, and fundamental algorithms that enable modern networks will all be considered. Students will learn to program networking algorithms and applications in C.

Additional topics the course will cover:

Course Schedule and Location

Course Materials

There are two suggested textbooks. Lectures and readings will follow the Kurose book. However, there is an open source book that contains mostly the same material and could also be used.

Course Grading

Final grades will be decided by the following:

Letter grade assignments are listed below.

Online Resources

We'll use Canvas for grading and course administration. Find the Canvas link here.

COVID Disclaimer

The instructor will try to be as accomodating as possible due to the current global pandemic. All lectures will be recorded and made available to stream afterwards. Students with issues are encouraged to reach out to the instructor as soon as possible. In return, the instructor asks the students to be patient with him. While all lectures will normally be streamed live at the intended time, there may be instances where Professor Rozner has to prerecord some lectures. Professor Rozner also reserves the right to reduce the amount of homework or programming assignments given. Currently, there are no plans for providing extra credit.


Course Prerequisites

It is recommended that students have a familiarity with the subject matter in:

Programming Languages

Many operating and networking systems are implemented in C. Therefore, students should be comfortable writing in C. Projects and homeworks will be submitted and tracked with git. It is possible that other languages may be required for small parts of the class. Students should be receptive to learning bits and pieces of a new language on the fly if needed.


There are many books related to core and related course subject matter. A few suggestions:

Contact Info


NameEmailOfficeOffice Hours
Eric Rozner Online (see Canvas for Zoom link) 2:00pm-3:00pm Tuesday, Thursday

Teaching Assistant

NameEmailOfficeOffice Hours
Nivetha Kesavan Online (see Canvas for Zoom link) 12:00pm-2:00pm Wednesday, Friday


Academic Integrity

All students must adhere to the CU Academic Integrity Policy. Academic integrity will be strictly enforced: any student caught cheating will receive a failing course grade and be reported to the Dean's office. This means that a student caught cheating on even a small course assignment (with relatively little weight toward the final course grade) will still fail the class. Any material copied from an online resource, such as code or homework answers, must be cited properly. When in doubt, seek guidance from the instructor or the course staff before submitting your work.

Please note students cannot reuse previous assignments or projects for the final project or any course submissions (including assignments and exams). Use of any preexisting project (from start-ups, to personal interest projects, to previous class projects) cannot be used without explicit permission from the professor. Use of existing code without permission will be considered cheating.

Mandatory Honor Code statement: All students enrolled in a University of Colorado Boulder course are responsible for knowing and adhering to the Honor Code. Violations of the policy may include: plagiarism, cheating, fabrication, lying, bribery, threat, unauthorized access to academic materials, clicker fraud, submitting the same or similar work in more than one course without permission from all course instructors involved, and aiding academic dishonesty. All incidents of academic misconduct will be reported to the Honor Code (honor@colorado.edu; 303-492-5550). Students who are found responsible for violating the academic integrity policy will be subject to nonacademic sanctions from the Honor Code as well as academic sanctions from the faculty member. Additional information regarding the Honor Code academic integrity policy can be found at the Honor Code Office website.

Late Policy

Do not wait to start homeworks and course projects. All deadlines should be considered final. Late assignments, homeworks and projects will receive a 10% per 24 hour period deduction. For example, assignments handed in 1-24 hours late will incur a 10% reduction in score (so a 100 score would instead be a 90), assignments handed in 25-48 hours late will incur a 20% reduction in score (so a 100 score would instead be an 80). After 48 hours, no assignment will be accepted for a grade. In the case of emergencies, contact the instructor as soon as possible.

Grading Disputes

All grading disputes must be addressed within one week of the graded material being returned. After one week, TAs and instructors will not adjust any scores. Students are responsible for carefully inspecting all graded material.


Unless explicitly stated, all work should be done individually by each student. It is likely that partnering will be allowed in some course projects, and the conditions of collaboration will be explicitly spelled out in the assignment details. Questions about collaborations should be immediately addressed with the instructor, before any joint work is performed. Note that students working together on individual assignments is considered a form of academic misconduct and will be dealt with as outlined in the Academic Integrity section. Students are not allowed to share answers in person or over electronic communication.

Excused Absences

All students are expected to attend every lecture. Although class participation is not listed as part of the course grade, the instructor reserves the right to lower a students grade if attendance is deemed unsatisfactory. Exam dates are posted at the beginning of the semester and students must address any date conflicts with the instructor within the first two weeks of class. Assume exams will be held online during the specified class meeting time. Students missing an exam, or requesting a deadline extension, due to health reasons may be required to obtain a note from a medical professional.

Special Needs

Students with special needs or accommodations are encouraged to seek council with the course instructor as soon as possible.

Harassment Policy

Learning new material is hard, and the instructor will try to enable a safe learning environment as best as possible. Students are expected to treat one another with respect, patience, and kindness. Any reports of online or in-person harassment will be referred to the department immediately. Students should adhere to the ACM Harassment Policy.

Professor Missing Class

The professor may have to miss class during parts of the semester. If the professor has to miss class, one of the following options may be employed: recorded lectures on YouTube or other video sites, subsitute hand-outs, or course staff stand-in for the professor.

Spring Pause

The week of March 22-26 will be used in this class as a spring pause to provide us all with a safe and supportive way to promote health, wellness and learning without leaving campus. During this week, we won’t have any exams or assignments due. We may still have class with interactive class activities that will require your attendance and be part of your final course grade. While March 25 is a wellness day, attendance may still required for all other class sessions that week. I wish we could take a regular spring break, but public health concerns prevent us from doing so. I would like to emphasize that it is still important for you all to behave responsibly. Do not use the week to travel or engage in risky behavior that could result in an outbreak on campus after we all return.