David A. Sykes, Ph.D.
TR 1:00–1:50 P.M. in Olin 213
TR 8:30–9:20 A.M., 2:30–3:30 P.M.
MWF 9:30–11:00 A.M, 1:00–2:30 P.M.
Or by appointment or happenstance.
An introduction to computer networks including network architecture, communication protocols, algorithms, and network applications. Prerequisite: COSC 350.
By the end of the course, you should be able to:
Computer Networking: A Top-Down Approach, 7th Edition by James F. Kurose and Keith W. Ross, ©2017, Pearson Education, Inc., ISBN 978-0-13-359414-0.
We will use these websites (and others) this semester:
We will use a variety of software application, including Atom, PyCharm [be sure to get a free educational license], and Wireshark. All are free. All of them will be installed on the computers in the CS Lab (Olin 112A).
Your grade for the course will be based on a weighted average of scores for homework, tests, projects and labs, and a final exam. The usual grading scale applies: 93–100: A, 90–92: A-, 87–89: B+, 83–86: B, 80–82: B-, 77–79: C+, 73–76: C, 70–72: C-, 60–69: D, 0–59: F.
A final average will be calculated using two methods using weightings shown in the table. The higher of the two values will be mapped to a letter grade. Under Method #2, the homework scores are not factored into the calculation, the test scores are weighted less, and the final exam is weighted more. Note: The Moodle Gradebook will reflect Method #1 weightings.
Component | Weighting #1 | Weighting #2 |
---|---|---|
Homework | 0% | 0% |
Projects | 45% | 45% |
Test 1 | 20% | 10% |
Test 2 | 20% | 10% |
Final exam | 15% | 35% |
TOTAL | 100% | 100% |
Homework assignments get you prepared for class. Homework will usually consist of some reading and some exercises. Be sure you read actively. Take notes. Some assignments will have you run some experiments and analyze data. Homework is due at the start of the class meeting for which it was assigned.
You are allowed to use any resources you find useful for completing homework assignments, including working with other students in the class. Your primary goal should be to get a perfect score on every homework assignment so you will be prepared for the next class meeting.
The homework component of the final weighted average is computed using a simple weighted mean of scores: the percentage obtained by dividing the sum of points you earned by the sum of point values for the assignments. For example, let's say there are two assignments, the first worth 15 points and the second worth 25 points. If your score on the first assignment is 9 and your score on the second is 21, then your score for both is (9 + 21) ÷ (15 + 25) = 75%. Note that the result can be different from averaging the percentage scores for the two assignments, ((9 ÷ 15) + (21 ÷ 25)) ÷ 2 = (60% + 84%) ÷ 2 = 72%.
You will take two tests. The first test will be after we cover network basics, the application layer, and the transport layer. The second will be after we cover the network and link layers.
You may bring an index card, maximum size 6"×9", containing handwritten notes to each test.
Projects play a central role in this course. You will do a lot of coding this semester, mostly in Python 3. It is important to complete each project successfully and for you to understand what you did in completing it.
Remember the 90-90 rule:
Starting early gives you time to ask questions. While you need to write your own code, having a conversation with other people facing the same challenges can be very useful. Come to office hours if you like.
The final exam is comprehensive, covering the material on the first and second tests as well as material covered after the second test. The objective of the final exam is to assess how well you reached the objectives for the course.
You may bring an index card, maximum size 6"×9", containing handwritten notes to the final exam.
Most class meetings will start with a brief review of the homework assignment and continue with discussions and/or exercises based on what has been covered so far. Some in-class exercises will require you to work on a laptop computer or work with another student in the class. You may have a laptop computer open on your desk only if I direct you to use it. Most projects will be started during a class meeting.
You are encouraged to take copious notes during class. Take handwritten notes on paper or on a tablet.
Handwritten notes engage more of the senses. The brain is more active, so the learning process is enhanced. This is actually part of an area of study called “haptics.” Researchers in this arena are studying the way our minds and bodies interact in the learning process.
It’s the “tactile” or “kinesthetic” learning idea in action. The more physically active you are, including taking handwritten notes, the more likely you are to remember information well.
You are expected to attend class meetings. The Class Attendance Policies described in the Wofford College Student Handbook (pp. 81ff) makes you responsible for catching up on missed classes. I suggest you find a “buddy” from whom you can get notes in the event you are absent. I will post links to handouts in Piazza.
Do not attend class if you are not feeling well and might have a contagious illness. Seek appropriate medical attention at the Wellness Center. A doctor’s note concerning absences is not required.
The final exam period is scheduled for 2:00–5:00 P.M. on Tuesday, December 14, 2021. You must be present for the exam.
You are expected to complete all assigned work on time.
I understand that sometimes you must miss a class, a test, or a project or homework deadline. As long as such occurrences are not excessive, I will work with you as best I can to help you succeed in the course.
You must meet homework and project deadlines. To submit your work late, you must contact me at least 18 hours before the deadline to request an extension. Your request must indicate how much more time you need. I will still expect you to submit by the deadline the work you have completed so far even if you are given an extension.
All questions about coursework, including about projects, must be posted at the Piazza Q&A page. If you send me a question via email or via private post that should be posted publicly at Piazza, I will direct you to post your question publicly. After you post it publicly, I will reply to the question.
Do not post working code at Piazza. Do not include in a response either “fixed” code or a detailed description of how to change code to get it to work. It is acceptable to post non-working code.
Feel free to respond to a question or to edit a response to a question. We are all learning together.
Note: Anonymous Piazza posts are anonymous to classmates but not to me.
It is appropriate to send me email messages for private matters, such as letting me know you will be absent or that you’d like to schedule a meeting.
I usually respond to email messages sent Sunday through Thursday within 24 hours and within 48 hours when sent on a Friday or a Saturday. I usually respond much sooner to Piazza posts since I have the Piazza app on my phone and receive notifications.
The Honor Code requires faculty, staff, and students to maintain a high standard of individual honor and integrity. Work represented as your own must be your own.
I encourage you to help others in the class or get help from others on projects. However, you may not write code for another student or provide code to copy. Conversely, you may not get code from another student. Doing any of these things is a violation of the Honor Code.
There is a distinction between collaborating and cheating.
When collaborating,
Ultimately, you must implement a solution to the problem yourself.
On the other hand, cheating occurs when
For some projects, you might be given an option to work with one other student in the class. In this case, you are allowed to share all your work with your teammate. However, you are expected to do all of the work together. One student should not work without the other present. However, one of you may meet with me without the other being present.
Don’t cheat because you are up against a deadline. Manage your time effectively. Start each assignment as soon as it is given. If you run into a glitch:
It is the policy and practice of Wofford College to create an inclusive and accessible learning environment. This course is intended for all students, including those with mental or physical disabilities, illness, injuries, impairments, or any other condition that tends to negatively affect one’s equal access to education.
If you have not yet established services through Accessibility Services, but have a temporary health condition or permanent disability that keeps you from fully accessing the space, content, and experience of this course, you are welcome (but not required) to visit the Accessibility Services Accomodations channel in my.wofford.
If you have already established accommodations with Accessibility Services, please communicate your approved accommodations to me at your earliest convenience so we can discuss your needs in this course.
This is the plan for the semester. It is subject to change, although I will do everything I can to stay on schedule.
If the schedule shows a chapter for a class meeting, then you should have read that chapter and completed any homework associated with that chapter before the start of the class meeting on that date. If the schedule shows a project, then we will spend at least part of the class meeting on that date getting started on that project.
Meeting Date | Content |
---|---|
02 SEP |
Getting started.
Course overview, working with bit strings, bit streams, Python standard library documentation, bit masks, byte strings in Python, HTML documents. |
07 SEP – 09 SEP |
Chapter 1. Computer Networks and the Internet
Network basics: concepts and terminology. Network performance. Internet protocol stack. History of computer networking and the internet. Wireshark lab. |
14 SEP – 16 SEP 21 SEP – 23 SEP |
Chapter 2. Application Layer
Common protocols (HTTP and SMTP), client-server and peer-to-peer network applications, domain name system (DNS), and socket programming. Wireshark Labs. |
28 SEP – 30 SEP 05 OCT – 07 OCT 12 OCT – 14 OCT 19 OCT |
Chapter 3. Transport Layer
TCP and UDP, reliable data transmission, connection-oriented transport, principles of congestion control. |
21 OCT – 22 OCT | Fall Academic Holiday |
26 OCT – 28 OCT 02 NOV – 04 NOV 09 NOV – 11 NOV |
Chapters 4 and 5. Network Layer
Network service models, routers, IP addressing (IPv4, IPv6), IPv4 datagrams, network address translation (NAT), routing algorithms, ICMP |
16 NOV – 18 NOV |
Chapter 6. Link Layer
Error detection and correction, link-layer addressing and ARP, Ethernet, A day in the life of a web page request. |
23 NOV – 25 NOV | Thanksgiving break |
30 NOV – 02 DEC 07 DEC – 09 DEC |
Chapter 8. Security in Computer Networks
Cryptography, SSL, virtual private networks. |
14 DEC |
Final exam: 2:00pm–5:00pm
|