CSCI 363 – Computer Networks

Principles and design of networked computing systems and application programs. Topics include reliable communications medium access control, routing, transport, congestion control and networked applications. Prerequisite: CSCI 315.

Cross listed as ECEG 475/675 – Computer Comm. Networking

TR 10:00 AM – 11:20 AM, DANA 132


Instructor

Prof. Alan Marchiori

Course Description

The course focuses on developing an understanding of network design principles, particularly on the software architecture of the protocol stack and the development of communication protocols.

The primary goal of the course is to understand the design principles of networking software. You should see this course as an opportunity to apply what you’ve learned in computer science to reason critically about networking technology. A second goal is to learn the details about the existing protocols in use today. We will spend a good portion of our time on this pursuit. It is important for you to learn to read and understand protocol standards so that you can write new implementation or to modify an existing code base.

Expected student work includes lab exercises, programming projects, exams, and active class participation.

Topics

  • Networked applications
  • Network architecture
  • Transport protocols
  • Congestion control and resource allocation
  • Internet working, addressing, error reporting, and routing
  • Error detection, error correction, and medium access control
  • Packet switching
  • Fundamentals of network security

Learning Objectives

At the successful completion of the course, students will be able to:

  • Understand the issues and challenges at all levels of abstraction in the architecture of a computer network.
  • Read and understand independently technical literature on networking. This includes protocol drafts, request for comments (RFCs), professional books, and research papers.
  • Develop networked applications.
  • Write system-level programs for the Unix operating system.
  • Understand protocols at different layers of a network’s hierarchy, specifically CSMA/CD, CSMA/CA, ARP, RIP, OSPF, IP, TCP, UDP, FTP, SMTP, and HTTP, among others.
  • Understand network security issues and be able to design/code for properties such as data confidentiality, data integrity, authenticity, flexibility, and network accessibility.

Textbooks

Main textbooks:

Suggested reference books:

Course Grading

This course covers a broad set of topics related to computer networks from a practical perspective. Grades will be determined by accumulating course points by completing a course journal of summary & reflections, Wireshark assignments, course projects, and programming challenges. There will be no in-class written exams or quizzes.

Journal: summary, reflection, and self-assessment

For major topics in the course, you can write a one to two-page (between 500-1000 words) essay that gives a summary of the material (textbook and additional research) with your reflection on the material. Each major topic is worth one course point.

Course Assignments

Homework assignments will be given for most major topics. These could be Wireshark activities, short programming challenges, or textbook problem sets. Each assignment is worth one course point.

Projects

The projects are longer open-ended assignments. The topic for the first project is prescribed (you will create a reliable data transfer protocol) and the second project is your choice. You may work with a partner as long as work is evenly divided. Projects are worth four course points.

Protocol Research

The final type of assignment is to write a protocol research paper. You may write up to 2 separate protocol research papers. For each paper, you select a network protocol from the literature (one that is not specifically covered in the course) and write a 1-2 page (500-1000 word) summary and critique that demonstrates you have a good understanding of the protocol and its operation. If possible, capture packets using Wireshark on a real network. You do not have to implement the protocol yourself. Protocols can be selected from published RFPs (excluding trivial/joke RFCs) or academic venues (such as ACM SIGCOMM or IEEE LNC). I am happy to suggest protocols or give you ideas to get you started. At a minimum, I suggest you get pre-approval for any selection you make before spending time doing the research. Research papers are worth two course points.

Grades

Grades are determines by the total accumulation of course points. Assignments will be graded on a ternary scale: unacceptable (0), meets requirements (1), and exceptional (1.2). Exceptional grades (1.2) will be rare and will typically involve completing significant amounts of optional/additional work (e.g., double). Multipoint assignments are scaled linearly in the same way (e.g. 2x, or 4x these values). If you receive a 0 on an assignment, you may resubmit with corrections once.

Assignments are due by 8 am on the due date posted on the course schedule. Late work is accepted with a 10% penalty per week. The late penalty is not prorated. Work turned in at 8:01 am on the due date is considered one week late. The maximum late penalty is 40%. No work will be accepted (except the final project) after the end of classes.

Your final grade will be determined from the total course points you earn by completing assignments over the semester. An A is defined as earning 75% or more of the total possible course points. To pass, you need more than 50% of the total possible course points. The remaining thresholds will be determined by linearly spacing the total possible course points over the range from 0.75 to 0.5.

*Graduate students in ECEG 675 must complete 0.94 and 0.60 of the work to receive an A and D respectively.

The table below was generated with this command in python:

numpy.linspace(.5,.75, 9)
Grade Minimum Course Points For each grade (fraction of maximum)
A0.750
A-0.71875
B+0.6875
B0.65625
B-0.625
C+0.59375
C0.5625
C-0.53125
D0.500
F< 0.500

Class Participation

All students are expected to attend class and scheduled labs: poor attendance or arriving late (defined by arriving after the start of class) will have an adverse effect on your grade. Absences may be excused if you email me in advance (minimum of 24 hours notice for scheduled events like job interviews and class trips), unless in situations out of your control. I understand that we can get sick, have to travel for interviews, etc. Reasonable absence requests will be granted. If you accumulate excessive unexcused absences or late arrivals (>4), you will lose one course point (see grade section) per excessive unexcused absence.

There are two reasons for this policy. First, I view our classes as shared experiences in a community of learners (all students and the instructor); if you’re not there or arrive late, you are not sharing and we all lose. Second, every student has to take responsibility for their role in the learning process. Being absent for no reason shows that you’re not taking this responsibility seriously. The point is for you not to fade into the background; you are expected to be actively engaged in the class.

Inclusive Classroom Environment

We all support an inclusive learning environment for better learning. To that end, I am quoting directly from Professor Linda Smolka of the Math Department, which I fully endorse,

Our classroom will be inclusive where everyone will be treated with respect. Learning requires taking risks that often require guessing an answer or an approach to solving a problem. Mistakes are the key moments where learning begins, thoughts in logic are corrected and core memories are formed. Everyone in this course will make mistakes so do not be embarrassed when you are wrong. Class must be interactive to ensure that your thoughts in reason are correct or are being corrected in real time, so please jump into the conversation when you want to make a point or ask a question (including, I’m lost!). I will ask questions during lecture to get you thinking and determine if you are following class. These questions are not rhetorical. You should blurt out your answers!

Communicating With The Instructor

I want to hear your thoughts on how much you’re learning in this course. If you find something exciting that we didn’t mention in the class, I’d like to hear from you. If you are struggling with the material, please let me know sooner rather than later. Problems which might be resolved somewhat easily when they are just identified can lead to much hardship if left alone for long. Make the best use of our contact time in regular classes and labs. Visit me in my office often.

You should feel safe to give me constructive criticism. Although I will work hard to make this course a good experience for everyone, it won’t be really great unless you give me feedback to make adjustments to maximize effectiveness.

I will do my best to help you reach the learning objectives in this course and to help you grow your enthusiasm for studying computer science. If you have previous knowledge of topics in this class and feel that you could use a bigger challenge to motivate your learning, make sure to let me know and we will work together to identify something productive for you to pursue.

Access Statement

Any student who may need an accommodation based on the impact of a disability should contact Heather Fowler, Director of the Office of Accessibility Resources at 570-577-1188 or hf007@bucknell.edu who will help coordinate reasonable accommodations for those students with documented disabilities.

Bucknell University Honor Code

As a student and citizen of the Bucknell University community:

  1. I will not lie, cheat, or steal in my academic endeavors.
  2. I will forthrightly oppose each and every instance of academic dishonesty.
  3. I will let my conscience guide my decision to communicate directly with any person or persons I believe to have been dishonest in academic work.
  4. I will let my conscience guide my decision on reporting breaches of academic integrity to the appropriate faculty or deans.

Posted

in

by