Course Syllabus

Description

Computer networking, basic communication protocols, network infrastructure and routing. Common application-level protocols and principles associated with developing distributed applications.

Course Pre-requisites

  • CPSC 213
  • CPSC 221

Course Staff

Instructor: Jonatan Schroeder

Teaching Assistants:

  • Kasra Kamal
  • Daniel Lee
  • Emma Nakamoto
  • Yaman Sanobar
  • Jichun Wu

Contact and Office Hours: https://canvas.ubc.ca/courses/78040/modules/items/3643493

Overview

Computer networks are pervasive and we use them daily yet we often do not give a lot of thought to how they are put together, work, how applications use them, and what the underlying fundamental principles are that allow us to build and design applications using computer networks. In this course you should:

  • Become comfortable with writing and working with different programs that use computer networks
  • Learn the terminology associated with networking
  • Learn the key paradigms and strategies used in developing applications that use computer networks
  • Be able to apply the key paradigms and strategies to write programs and/or explain the operation of the Internet.
  • Become familiar with the basic concepts of how the Internet is put together and operates and basic protocols that are used.

In particular the material will be framed by looking at the key strategies and models for addressing:

  • Design strategies for scalability and reliability in distributed systems
  • The use of layers and abstractions to understand and simplify designs.
  • Routing, naming and addressing
  • Isolation, data loss and performance
  • Privacy and Security

These will be covered through the following modules:

  1. Design of the Internet
  2. IP Addresses and Routing
  3. DHCP, ARP and the Link Layer
  4. NAT, VPN, Connection Multiplexing, UDP and DNS
  5. Performance Metrics
  6. Reliable Transmission and TCP
  7. Application Layer Protocols
  8. Security

Textbook

Kurose and Ross, Computer Networking: A Top-Down Approach, 7th edition, Pearson, 2017.

If you are planning to take CPSC 417 in the future, the 8th edition may be a better option.

Details: https://canvas.ubc.ca/courses/78040/modules/items/3359811 

Assessment

Your grade in the course will be based on the following components:

  • Programming Assignments: 27% (9% for each of 3 assignments)
  • Homework Quizzes: 9% (1.5% for each of 6 quizzes)
  • Formal Quizzes: 30% (5% for each of 6 quizzes)
  • Participation: 2%
  • Final Exam: 32%

Students must pass a threshold grade (typically 50%) in the final exam to pass the course. Students that fail to obtain a passing average in this component will be assigned a grade of at most 45.

Students may be awarded academic concessions based on the University's policies on this matter. A typical concessions for assignments and quizzes would be for the grade to be replaced with the grade of another student with a similar performance. For example, if a student misses quiz 1 due to sickness, and their average across quizzes 2 to 6 is the 20th highest grade in the class, then their grade in quiz 1 would be replaced with the 20th highest grade across students that took quiz 1.

Additional details: https://canvas.ubc.ca/courses/78040/modules/items/3643490 

Accommodations, Health and COVID

Please see the course page associated to this topic: https://canvas.ubc.ca/courses/78040/modules/items/3643491 

Statement of Academic Integrity

The academic enterprise is founded on honesty, civility, and integrity. As members of this enterprise, all students are expected to know, understand, and follow the codes of conduct regarding academic integrity. At the most basic level, this means submitting only original work done by you and acknowledging all sources of information or ideas and attributing them to others as required. This also means you should not cheat, copy, or mislead others about what is your work. Violations of academic integrity (i.e, misconduct) lead to the breakdown of the academic enterprise, and therefore serious consequences arise and harsh sanctions are imposed. For example, incidences of plagiarism or cheating may result in a mark of zero on the assignment or exam and more serious consequences may apply if the matter is referred to the President's Advisory Committee on Student Discipline. Careful records are kept in order to monitor and prevent recurrences.

Details about how academic integrity applies to this course in particular can be found in the Academic Conduct page on Canvas.

Statement of Values and Policies

UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious, spiritual and cultural observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions. Details of the policies and how to access support are available here.

Statement on Academic Freedom

During this pandemic, the shift to online learning has greatly altered teaching and studying at UBC, including changes to health and safety considerations. Keep in mind that some UBC courses might cover topics that are censored or considered illegal by non-Canadian governments. This may include, but is not limited to, human rights, representative government, defamation, obscenity, gender or sexuality, and historical or current geopolitical controversies. If you are a student living abroad, you will be subject to the laws of your local jurisdiction, and your local authorities might limit your access to course material or take punitive action against you. UBC is strongly committed to academic freedom, but has no control over foreign authorities (please visit http://www.calendar.ubc.ca/vancouver/index.cfm?tree=3,33,86,0 for an articulation of the values of the University conveyed in the Senate Statement on Academic Freedom). Thus, we recognize that students will have legitimate reason to exercise caution in studying certain subjects. If you have concerns regarding your personal situation, consider postponing taking a course with manifest risks, until you are back on campus or reach out to your academic advisor to find substitute courses. For further information and support, please visit: http://academic.ubc.ca/support-resources/freedom-expression.

Course Summary:

Date Details Due