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: MW 11:00AM-12:20PM, CTC 214
Lab: M 3:30PM-6:30PM, CTC 214
Office hours: MW 9:30AM-11:00AM, CTC 122
Students need to request alternate meeting times outside of scheduled office hours through email.
Teaching Assistant: Martin Zacarias
Email: m_zacarias@u.pacific.edu
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
- Student presentations
- Class lectures, 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%
- Homework assignments: 20%
- Course projects: 20%
- Class activities (including attendance): 20%
- Lab reports: 16%
- Lab practical exam: 4%
- Presentations: 10%
- 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.
- 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.
- 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.
- 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.
- Lab Reports: Lab report handouts will be handed at the beginning of each lab session. Students are supposed to fill out the handout and return back their reports at the end of the lab session. No later submission will be accepted.
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.
Covid19 Pandemic
- Masks are required for everyone when in the classroom. It is your responsibility to have a mask when you arrive for class.
- Eating and drinking are prohibited in the classroom. If you must have something to eat or drink during class, request permission to be excused and go outside to do it.
- Respect each other and respect personal space. Work together to ensure that this classroom is comfortable and safe. While there are no social distancing rules in effect, please allow distance when possible. Be aware of others' needs for personal space and adjust appropriately.
- If you become ill or you are required to quarantine or isolate, stay home, and do not come to class. You should inform the Dean of Students of your status. Her office will inform your instructors that you will need to be away from class. Contact her office at deanofstudents@pacific.edu or 209.946.2365. Moreover, Contact the instructor by email and we can determine how you can continue to participate in the course.
You are also responsible for conducting yourselves according to university rules and policies related to the pandemic. Here are some links for review:
If there are significant changes in pandemic conditions, it may be necessary to change some of the policies or structure of this course. If this becomes necessary, a revised syllabus will be distributed through the course Canvas site. Check the Canvas site regularly for announcements.
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