Published using Google Docs
S19-CS363-syllabus
Updated automatically every 5 minutes

Spring 2019 - CSCI363 - Syllabus

Instructor Information

Professor Alan Marchiori
Office: Breakiron 268

Office Hours: MWF 9 am, 1 pm, or by appointment

Class Meetings

Lecture: MWF 11:00 - 11:52 am Dana 132

Lab: Thursday 8:00 - 9:52 am Dana 132

Course Catalog Entry

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

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 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

Learning Objectives

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

Textbooks

Main textbook:

Main reference books:

Other reference books:

Assignments

There are 6 types of assignments in the course. Wireshark Labs, C Labs, Python Labs, Self-assessment, summary, and reflection, Projects, and Protocol Research Projects.

Labs

All lab assignments (including Wireshark, C, and Python) are typical prescriptive labs and can typically be completed in one lab period (e.g., 2 hours) or less.

Self-assessment, summary, and reflection 

For Chapters 1-8 in the textbook, you can write a one-page (approximately 500 words) essay that gives a summary of the chapter and your reflection on the material. After your summary, add a screenshot of the online self-assessment (multiple choice and true/false) showing that you completed all questions. If you do not have access to the online companion, see me for the questions (or get a copy of just the questions from a classmate). Write your answer to each question after your essay. Do not include this in your wordcount for the essay!

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 must successfully complete both projects to pass the course. You may work with a partner as long as work is evenly divided.

Protocol Research

The final type of assignment is to write a protocol research paper. You may write up to 4 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. 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.

Grades

This course covers a broad set of topics related to computer networks from a practical perspective. Grades will be determined by completing various course assignments, summarized in the table below. There will be no in-class written exams or quizzes.

Assignment Type

Points

Wireshark Labs

12

C Labs

3

Python Labs

8

Self-assessment, summary, and reflection

8

Projects

8

Protocol Research Projects

4

TOTAL

43

Assignments will be graded on a ternary scale: unacceptable (0), meets requirements (1), and exceptional (1.2). (Except for the projects, which are worth 4 points each.) Aside from the projects, there are no specific due dates, although the course schedule has suggestions for when to start each assignment which implies the earlier assignments are complete. You can submit work when you have it complete, before the last day of classes. The only assignment that can be turned in after the end of classes is the second project, which you will present at the scheduled final exam date and time.  If a submission is unacceptable, you may revise and resubmit. Exceptional grades (1.2) will be rare and will typically involve completing significant amounts of optional/additional work (e.g., double).

Your final grade will be determined from the total points you earn by completing assignments over the semester using the scale below. The points value is the minimum points to receive the given grade. You must complete both projects to pass the course.

Grade

Points

A

>=38

A-

36

B+

34

B

32

B-

30

C+

28

C

26

C-

24

D

18

F

<18

For example, if you complete both projects (8 points), six wireshark labs (6 points), two C labs (2 points), four python labs (4 points), and write six reflection statements you have a total of 26 points and receive a C in the course. Or you could complete all of the labs (23 points) and projects (8 points) and receive a B- (31 points).

Class Participation

All students are expected to attend class and scheduled labs: poor attendance (either in class or lab) or arriving late (defined by arriving more than a 3 minutes after the start of class) will have an adverse effect on your grade. Absences may be excused if you send me an email 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 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.