COMP/ECPE 177: Computer Networking
Course Description
Topics examined in this course include computer networks and the internet, LAN and WAN architectures, and packet switched networks and routing. Students learn about the 7-layer OSI model and internet protocol stack, socket programming and client/server systems, wireless and security. The course includes a laboratory.
Prerequisites: COMP 053 and ECPE 170 with a "C-" or better.
When enrolling in this course, you should already understand the basics of binary numbers, digital electronics, and serial and parallel digital communications. Further, you should be comfortable programming in a high-level language such as C, C++, Python, or Java and understand the basics of loops, arrays, structures, pointers, and function calls. We will heavily rely on Python for the majority of the course activities.
Website: Syllabus, Canvas LMS
Credits: 4 units
Course Catalog: https://catalog.pacific.edu/search/?search=comp+177&caturl=%2Fstocktongeneral%2F
Instructor:
Sepehr Amir-Mohammadian
Email:
Lecture: MWF 12:30PM-01:45PM, CTC 214
Office hours: MW 2:00PM-3:15PM, CTC 122 or CTC 214
Students need to request alternate meeting times outside of scheduled office hours through email.
Teaching Assistant: Tianxiang Xing
Email: t_xing@u.pacific.edu
Office hours:
Learning Objectives
The vision for this course is: What do I, as an application programmer, need to understand about computer networks (including software and hardware both on your computer and elsewhere on the network) in order to write efficient, high-performing programs?
You will have many different opportunities to gain this knowledge through:
- Homework assignments
- Hands-on analysis of network data
- Hands-on laboratory exercises using commercial routers and switches
- Programming projects where you implement networked applications and tools
- Lectures, quizzes, discussions, and reading assignments
After taking this course, you should be able to:
- be familiar with the terminology in networking, e.g., protocols, RFCs, packets, etc.
- describe the layered architecture of the Internet
- differentiate different networking nodes, e.g., switches, routers, firewalls, hosts, etc.
- understand Ethernet, and its challenges, and how to build wired LANs
- describe how hubs and switches work
- understand WiFi, and its challenges
- describe how to construct an end-to-end communication facility between hosts
- describe IPv4 service model, packet format, addressing, subnets, etc.
- understand how physical and logical addresses are translated to each other
- understand the details of how virtual LANs work
- understand how errors are handled in networking
- describe IPv6 service model, packet format, addressing, and differentiate it with IPv4
- understand the details of connectionless data transport
- program applications on connectionless data transport service
- understand the details of reliable data transport
- understand the details of connection-oriented data transport
- program applications on connection-oriented data transport service
- identify services on remote hosts
- understand how NAT-enabled routers work
- understand the details about world wide web and HTTP
- understand the details about electronic mail service
- understand the details about domain name systems
- understand the details about dynamic host configuration
- understand other topics in networking, e.g., virtual private networks, firewalls, software-defined networking, etc.
University of the Pacific Core Competencies: This course reflects the following university-wide core competenceies in the undergraduate program:
- Critical Thinking
- Information Literacy
- Oral Communication
Outcomes for COMP program: The assessment plan for this course comprises the following outcomes identified by ABET:
- Outcome 1: "Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions."
- Outcome 2: "Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline."
- Outcome 3: "Communicate effectively in a variety of professional contexts."
Outcomes for ECPE program: The assessment plan for this course comprises the following outcomes identified by ABET:
- Outcome 3: "an ability to communicate effectively with a range of audiences"
- Outcome 6: "an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions"
- Outcome 7: "an ability to acquire and apply new knowledge as needed, using appropriate learning strategies"
Collection of Work for Assessment: Student work may be retained to assess how course learning objectives are being met and for accreditation purposes.
Course Material
We will use two textbooks along with additional resources that are referred through the semester. Both textbooks are open educational resources, i.e., they are freely available under Creative Commons license. These textbooks are:
- An Introduction to Computer Networks, by Peter L Doral, available here
- Computer Networking : Principles, Protocols and Practice, by Olivier Bonaventure, available here
The slides, assignments, supplementary material, etc. will be provided through Canvas LMS.
The course topics are as follows.
- Overview: terminology, layered architecture, devices, protocols, addressing, etc.
- Ethernet: architecture, addressing, collision detection, devices
- WiFi: architecture, collision avoidance
- IPv4: network layer service model, architecture, fragmentation addressing, subnets
- ARP: architecture, security
- VLANs: architecture
- ICMP: architecture, applications
- IPv6: architecture, addressing
- UDP: service model, architecture, UDP socket programming
- TCP: service model, architecture, connection management, TCP Socket programming, states, MTU discovery, reliable data transfer, windowing, flow control, congestion control
- Port scanning with Nmap
- NAT: architecture
- WWW application
- Email application
- DNS application
- DHCP application
- Firewalls, VPNs, SDNs, etc.
Grading and Attendance Policy
Grades for the course are assigned on the scale below:
A |
A- |
B+ |
B |
B- |
C+ |
C |
C- |
D+ |
D |
F |
[93,100] |
[90,93) |
[87,90) |
[83,87) |
[80,83) |
[77,80) |
[73,77) |
[70,73) |
[67,70) |
[60,67) |
[0,60) |
Final grades will be assigned based on several performance
factors. These factors and their quantitative contribution to
the final grade are as follows:
- Reading assignments: 0%
- Quizzes: 5%
- Homework assignments: 20%
- Course projects: 20%
- Class activities (including attendance): 25%
- Lab reports: 20%
- Midterm exam: 5%
- Final exam: 5%
Attendance:
Class attendance and participation is necessary and expected. There will be numerous activities in class, and these activities cannot be made up outside of class. Participation requires that you are properly prepared for classroom discussions and activities, and have completed all reading assignments before the relevant class.
The only acceptable excuses for missing a class, an assignment due date, or an
exam are serious illness, family emergency or important professional, academic or athletic activities. Illness or
family emergency may require documentation. Excuses for professional, academic or athletic activities must be
approved by the instructor in advance.
Students missing a class are responsible for making up the material discussed in that class on their own.
Students are responsible for being aware of any announcements made during their absence.
Exams
Two exams
will be conducted during the semester, a midterm and a final. The
schedule will be announced in class and content and format will be
discussed prior to the exams.
Make up exams will only be scheduled in emergency situations.
Assignment Guidelines
Release and Submission
- Reading Assignments: Reading assignments will be released on the course Canvas page at most one or two days before each lecture session. Students are encouraged to study the referred material before each class session. There are not any submissions for reading assignments, however, it is heavily recommended to follow the reading assignments before each lecture session, in order to be prepared for the classroom discussions.
- Quizzes: Each session comes with a brief quizz (5-10 minutes) that reflects on the material covered in the reading/watching assignment associated with that class session. Quizzes are published and automatically graded in Canvas. There will be no extensions to quiz due dates. These assignments are considered as individual efforts.
- Class Activities: Class activities will be released on the course Canvas page at the beginning of each lecture session. The goal is to accomplish all class activities and submit in Canvas until the end of each lecture session. However, submissions are accepted until 11:59PM on the same day, without late submission penalty. Submissions after 11:59PM of the same day will not be accepted. These assignments are considered as group-based efforts.
- Homework Assignments: Homework assignments will be released on the course Canvas page with a clearly indicated due date. Timely submissions are accepted until 11:59PM on the due date. These assignments are considered as group-based efforts.
- Course Projects: Course projects will be released on the course Canvas page with a clearly indicated due date. Timely submissions are accepted until 11:59PM on the due date. These assignments are considered as group-based efforts.
- Labs: Labs will be released on the course Canvas page with a clearly indicated due date. No later submission will be accepted. These assignments are considered as individual efforts.
Solutions: Solutions to homework assignments, class activities, sample exam questions, and midterm exam may be submitted electronically via Canvas, or in class on pencil-and-paper when appropriate.
Late submission policy: Deliverables for homework assignments and course projects will be accepted up
to three days late, with a 5% per day penalty.
All assignments will be considered individual efforts unless otherwise specified, and will be treated as such under the Academic Honesty Policy.
Academic Honesty
The Honor Code at the University of the Pacific calls upon each student to exhibit a high degree of maturity, responsibility, and personal integrity. Students are expected to:
- Act honestly in all matters
- Actively encourage academic integrity
- Discourage any form of cheating or dishonesty by others
- Inform the instructor and appropriate university administrator if she or he has a reasonable and good faith belief and substantial evidence that a violation of the Academic Honesty Policy has occurred.
Violations will be referred to and investigated by the Office of Student Conduct and Community Standards. If a student is found responsible, it will be documented as part of her or his permanent academic record. A student may receive a range of penalties, including failure of an assignment, failure of the course, suspension, or dismissal from the University. The Academic Honesty Policy is located in Tiger Lore and online.
Course-specific Honor Code Policy: Engineering is generally a cooperative endeavor and collaborative learning can be a valuable experience for all involved. However, proper assessment (i.e., grading) requires that work be done by individuals. To balance these two requirements, the following policy will apply:
- Collaborative work on course assignments is encouraged. This includes working together on planning solution strategies and helping each other to debug programs.
- Collaboration must stop short of someone else writing your assignment. You may not directly copy the work of another student. You also may not copy the work of another student, and then modify it so that it does not look the same as the original author's work. It is your responsibility to ensure that the work you submit is an honest representation of your own understanding of the material.
Marginal cases will be resolved by oral examination of the student(s) involved. If they each understand the material in the assignment, it will be considered honest collaboration. If they do not, then it will be considered academic dishonesty.
In many cases, it may be possible to identify reusable source code from textbooks, web sites or other resources that can help you with assignments. You are permitted to use such references provided that:
- The amount of code reused does not exceed 25% of the total assignment length, and
- In the source code comments, you clearly identify any code that you did not write, state where it came from, and to what extent you modified it.
You are responsible for understanding the theory behind all algorithms or source code used, regardless of their source.
Accommodations for Students with Disabilities
If you are a student with a disability who requires accommodations, please visit pacific.edu/disabilities to contact the Office of Services for Students with Disabilities (SSD) for information on how to request accommodations while at Pacific.
- Students who have not previously registered for accommodations can request services by visiting pacific.edu/disabilities and selecting New Students Apply Here. Once registered, students will be asked to provide documentation of their disability, and meet with the accommodation specialists to determine reasonable accommodations.
- Students who have previously been approved for services with SSD can request accommodation(s) letters each semester by selecting the Returning Students Login Here link located on pacific.edu/disabilities
The Office of Services for Students with Disabilities is located in the McCaffrey Center, Second Floor. Phone: 209-946-3221. Email: ssd@pacific.edu. Online: pacific.edu/disabilities
Nondiscrimination Policy
The University of the Pacific does not discriminate in the administration of any of its educational programs, admissions, scholarships, loans, athletics, or other University activities or programs on the basis of race, color, national and ethnic origin, handicap, sexual orientation or preference, sex or age.
The instructor reserves the right to change these policies and guidelines at any
time, and students agree to abide by the most recent version of this syllabus.
Back to top