This course focuses on the design and implementation of network programs and systems, including topics in network protocols, datacenter networking, wireless networking, and other contemporary network system design and programming techniques. This is a graduate-level edition of the course, covering topics more advanced than a typical undergraduate networking course (such as CSCI 4273). Familiarity with C and Unix is required. Credit the same as CSCI 4273 and ECEN 5273.
By the end of the course, students will understand the state-of-the art networking technologies proposed in literature or used throughout industry in a variety of areas. Students will define their own final course projects, present research papers in class, and actively critique prior work.
There is no text book required for this course. Instead, various readings and webpages may be provided for reference on the Syllabus. Students are expected to be active learners, and may have to search for resources outside of class in order to learn material.
Final grades will be decided by the following:
Letter grade assignments are listed below.
We'll use Canvas for grading and course administration. Find the Canvas link here. Course discussion is on Piazza (link to come).
This is a relatively new course, with a curriculum that may be altered over the semester. The covered topics in the course syllabus may change. Given the non-traditional content of the course, there is not a standardized set of textbooks available. Students taking this course should feel comfortable finding and learning from online resources to supplement lecture material. Given the project-heavy nature of the course, students may be required to learn substantial amount of material on their own. The final project of the course will be open-ended. In summary, this course aims to build independence and critical thinking in students that will enable them to succeed in the post-academic world.
It is recommended that students have a familiarity with the subject matter in:
Students can choose the programming language for their final projects, but many 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 no required textbooks for this course. If learning from a book is desired, students may want to purchase books related to core course materials. A few cursory suggestions:
Name | Office | Office Hours | |
---|---|---|---|
Eric Rozner | eric.rozner@colorado.edu | ECCR 1B26 | 1:45pm-2:45pm Tuesday, Thursday |
Name | Office | Office Hours | |
---|---|---|---|
Rajath Tellapuram | Rajath.Tellapuram@colorado.edu | By appointment |
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.
During exams, no electronic devices are allowed unless explicitly approved by the instructor. Any usage of an electronic device during an exam will be considered cheating and an automatic failing grade will be assigned.
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.
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 72 hours, no assignment will be accepted for a grade. In the case of emergencies, contact the instructor as soon as possible.
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.
All students are expected to attend every lecture in person. Althought class participation is 20% 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. Students missing an exam, or requesting a deadline extension, due to health reasons will be required to obtain a note from a medical professional.
Students with special needs or accommodations are encouraged to seek council with the course instructor as soon as possible.
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.
Students will be expected to read all of the assigned readings before each lecture. Students must also turn in a literature review from an assigned reading of their choice. Students need to only turn in a review for one of the assigned readings. The grader will review and grade the readings. Students can drop the lowest two scores from their literature reviews. Review forms are located at this link. The professor may decide to share literature reviews with other students in the class, or make completed literuture reviews available in class forums. A grading rubric will be provided.
Students will be required to present and lead the discussion on 1 or 2 papers throughout the semester (the exact number depends on the number of students enrolled in the class). When the professor does not lecture, two papers will be presented on a given topic by students. After the student presentations have concluded, the professor will lead class discussion. Students are expected to participate in these discussions, as class participation is a large part of the final grade. The professor will create a sign-up sheet early in the semester and students must sign-up for lectures in a timely fashion. Presentations should be 25 minutes in length, followed by a 5 minute question/answer session lead by the presenter. If the the students use slides found online, the original authors must be attributed. The professor will grade the presentations based on quality. If the quality of a presentation is deemed unsatisfactory, the student will be required to resubmit a video presentation that must obtain the instructor's approval. All students must complete a satisfactory presentation to pass the course. Presentation slides must be turned in before the lecture in order to be shared with class.
The final project will be a large part of the course grade. The project will consist of a proposal, checkpoints, a final presentation, and a final report. Students will present their final projects in class. Final project reports will be made available to the class at large, and may also be exhibited in a public venue (such as featured on a webpage, social media post, or a public poster session). Students can opt out of public disclosure by emailing the professor within the first two weeks of class. The professor will clearly announce any intended public release to the class beforehand.
The professor may have to travel during parts of the semester. If the professor has to miss class, one of the following options may be employed: remote participation through video conferencing system, recorded lectures on YouTube or other video sites, course staff stand-in for the professor.