Warning: include(head.php) [function.include]: failed to open stream: No such file or directory in /s/bach/a/class/cs457dl/Spring_12/syllabus.php on line 1

Warning: include() [function.include]: Failed opening 'head.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /s/bach/a/class/cs457dl/Spring_12/syllabus.php on line 1

Syllabus

Updated on 8 November 2010

When & Where: This course is a completely Web-based course. It is online only.
However, it is not a self-paced course. Students need to interact with each other in a timely fashion.
Assignment due dates are apply to all students.

Instructor: Carolyn J. C. Schauble
           
            Office Hours:   TBA


GTA: Russ Wakefield
          waker@cs.colostate.edu


Textbooks:
Required: Larry L. Peterson & Bruce S. Davie, Computer Networks: A Systems Approach, 4th edition, Morgan Kaufmann (2007), ISBN: 978-0-12-370548-8.

Note: You may be able to find a used edition of this text from Amazon.com or a similar source.


Textbook Web Page:

The authors' website:   http://books.elsevier.com/companions/defaultindividual.asp?isbn=9780123705488


Prerequisites: The official prerequisite is CS 370: System Architecture and Software
Grade of C or better   (Strictly enforced)

CS 451: Operating Systems is acceptable as a replacement for CS370.

Most junior/senior undergraduate courses in Operating Systems would fulfill this requirement. Please contact the instructor to be sure.

  • Students are expected to know and understand the fundamentals of operating systems as taught in an undergraduate course using a text such as the first half of Operating System Concepts by Silberschatz, Galvin and Gagne.

  • Topics understood should include the design and implementation of operating systems, machine organization, synchronization, deadlock, virtual memory, and file systems.

  • Both the CS370 and CS451 courses at CSU fulfill these requirements.

  • Consult the instructor if you are unsure of your background.


Course Objectives: Upon completion of this course, students will be able to:


Topic Outline:   (Time table not tested and subject to change; we might not finish this as planned.)

  1. Weeks 1 and 2: Introduction
    1. Preface: How to use the text
    2. Chapter 1: Foundation
      1. Applications
      2. Requirements
      3. Network Architecture
      4. Implementing Network Software
      5. Performance

  2. Week 3 and 4: Chapter 2: Direct Link Networks
    1. Hardware Building Blocks
    2. Encoding
    3. Framing
    4. Error Detection
    5. Reliable Transmission
    6. Ethernet
    7. Rings
    8. Wireless

  3. Weeks 5 and 6: Chapter 3: Packet Switching
    1. Switching and Forwarding
    2. Bridges and LAN Switches
    3. Cell Switching (ATM)
    4. Implementation and Performance

  4. Weeks 7 and 8: Chapter 4: Internetworking
    1. Simple Internetworking (IP)
    2. Routing
    3. Global Internet
    4. Multicast
    5. Multi-protocol Label Switching

  5. Weeks 9 and 10: Chapter 5: End-to-End Protocols
    1. Simple Demultiplexer (UDP)
    2. Reliable Byte Stream (TCP)
    3. Remote Procedure Call (RPC)
    4. Transport for Real-Time Applications (RTP)
    5. Performance

  6. Weeks 11 and 12: Chapter 6: Congestion Control and Resource Allocation
    1. Issues in Resource Allocation
    2. Queuing Disciplines
    3. TCP Congestion Control
    4. Congestion-Avoidance Mechanisms
    5. Quality of Service (QoS)

  7. Week 13: Chapter 7: End-to-End Data
    1. Presentation Formatting
    2. Data Compression

  8. Week 14: Chapter 8: Network Security
    1. Cryptographic Tools
    2. Key Pre-distribution
    3. Authentication Protocols
    4. Secure Systems
    5. Firewalls

  9. Week 15: Chapter 9: Applications
    1. Traditional Applications
    2. Web Services
    3. Multimedia Applications
    4. Overlay Networks

  10. Week 16: Final Exam


Course Resources:

CS 457 DL RamCT Page: All other course material, as an online set of web pages, including course announcements, discussions, grades, lecture notes, and assignments, can be found via the RamCT page for the course: CS-457-810-2011SP Computer Networks/Internet.

Online quizzes are only accessible via the RamCT course page. All assignments must be submitted electronically through the RamCT course page.

The RamCT portion of this course is password-protected and requires the student to have a CSU electronic ID (eID).

Course Files: Online copies of handouts, assignments, and other documents for the course are available through the course RamCT page. Current announcements and discussions are accessible through this page as well. The student should access the RamCT page frequently, several times a week.


Computing Resources: Some lab assignments may require Java programming. Other programs may need to be done in C or C++ instead. There will be an emphasis on networking in a Unix-based environment; so other assignments may require writing Unix scripts or exploring the Internet in general. Each assignment should clearly state the programming language to be used.

If you have not programmed in Java or C/C++ or you have never used Unix before, drop this course now and spend this semester learning these languages and environment. You cannot pick up such languages well enough during the course to be able to complete your programming assignments successfully. Experience with just Java or C or C++ programming or Unix is not sufficient.

Most programming assignments need to be run and tested via ssh on any of the Computer Science lab Linux machines, to which students are assigned accounts. The instructor or graduate teaching assistant may run your program on these machines to determine your grade. Some assignments may require you to run tests on the Computer Science machines; so be sure that your remote access works early in the semester.

Other work may be done on any computing equipment to which you have access.

RamCT can be used with current browsers on most machines, anywhere. Firefox is preferred to Internet Explorer, but there have been some problems with Firefox with online quizzes. Some firewalls have been known to interfere with RamCT access. Assignments should be submitted on the class RamCT Assignments page. There are also required quizzes accessible only through RamCT. Again, to access RamCT, students must have an account on the CSU network and have a CSU electronic ID (eID) and password.


Minimal Equipment Requirements (Hardware and Software):

Students are expected to have adequate computing resources in order to perform the following tasks:

  • To easily access the RamCT page regularly via a browser
          (Caution: some firewalls may cause problems);

  • To create, edit, compile, debug, and execute both Java and C/C++ programs, as well as Unix scripts;

  • To have access to some Unix-based machine, such as a Linux box, a Sun Solaris machine, a Mac OS X machine, or the machines in the general CS labs;

  • To access, physically or remotely, and execute programs on the CSU Computer Department Linux machines.


Class Preparation and Attendance:

This course is completely Web-based. All interaction between students and the instructor is via the Internet in an asynchronous manner (meaning that the class members do not all need to be logged in at the same time).

However, there are assignments due every week:

  • Reading Assignments:
    • from the textbook
    • from the course notes in RamCT
  • Quizzes:
    • completed within RamCT
    • graded, but also useful for self-assessment
    • as drills, may be taken more than once with highest grade recorded
    • automatically recorded grades
  • Class Discussions:
    • as asynchronous interaction with other class members
    • via the class discussion/bulletin board
    • required approximately once a week and sometimes more often
    • have the number of postings per student per topic automatically recorded
  • Programming, Lab, and Homework Assignments:
    • approximately one per week
    • submitted electronically
    • programs and scripts must compile and execute on the CS Linux lab machines

The student is responsible for checking the RamCT calendar for deadlines and due dates as well as the RamCT discussion board for announcements.

The course schedule follows the normal CSU semester schedule. This is not a self-paced course.


Assignments:

Written Work: All homework and lab/programming assignments must be submitted electronically. Diagrams or work involving a substantial amount of mathematical notation may be done by hand and then scanned for electronic submission. Computer-aided drawing tools should be used when appropriate.

All work must be neat and legible. Illegible work receives no credit. The instructor reserves the right to define what is or is not legible or easily read.

Essays and answers to discussion questions and other assignments must be coherent, succinct, readable, and grammatically correct English prose. Part of the grading for such questions reflects this.

Essays and answers to discussion questions on examinations need only list the relevant points. The student does not have time to write more than one draft, and so the instructor must be lenient on grammar, spelling, and style.

All the work for the course must be submitted electronically, using RamCT. To access RamCT, students must have a CSU electronicID (eID). When an assignment is to be submitted via RamCT, it will not be accepted in any other form.

The preferred format of submitted files is usually as PDF files, as MS Word or Excel files (but not *.docx files), or as text files (formatted into lines of 65 characters per line or less). When figures or diagrams are required, they may be submitted as JPEG, GIF, MS Word, or MS Excel files. If you want to use some other file format, please ask the instructor or GTA before submitting your file.

DO NOT E-MAIL assignment solutions to either the instructor or the GTA. If you are having problems submitting an assignment, please send email to both of us, at cs457dl@cs.colostate.edu, with a message about the problems you are having submitting the assignment.


Late Work / Regrades:

See the Comments on Homework and Programming Assignments. These comments refer only to homework and lab/programming assignments. They do not refer to discussion assignments, online quizzes, or examinations.


Tests and Examinations:

All students should take their exams online. Times and dates to be announced.


Grading  : (Subject to change): A student's grade is based on
  • lab/homework assignments   (38%)
  • discussion assignments   (13%)
  • RamCT online quizzes   (12%)
  • a mid-term exam   (17%)
  • a final exam   (20%)

Final letter grades are based on the relative distribution of total scores.

With regrades and possible extra credit on some assignments, most total scores (final averages) are 90 or above, meaning a final grade of 93 could earn a letter grade of only B+. For instance, one past semester of the on-campus version of this course was graded as below:

93 and up   A   84 up to 91   B   73 up to 82   C  
92 up to 93   A-   83 up to 84   B-   62 up to 73   D  
91 up to 92   B+   82 up to 83   C+   below 62   F  

The grades for this semester could go either up or down from this scale, depending on the distribution of the grades earned by this semester's students.


Other Policies:

Policies on cheating, plagiarism, incomplete grades, attendance, discrimination, sexual harassment, and student grievances are described in the Student Information Guide. All other matters follow the policies set in the current Colorado State University General Catalog. Students are responsible for all the information in these documents.


Comparison to Traditional Delivery

Student Experience: In the on-line version of this course, the student has the course text, along with on-line course notes giving examples and explanations related to the course material. Automatically-graded on-line quizzes provide instant feedback on student comprehension.

Part of the on-line student's grade is based on his contributions to course topic discussions in the RamCT discussion groups. These asynchronous discussions may be richer and more detailed than for an in-class discussion, as the students have time to consider and prepare their opinions and responses, including references. Furthermore, all students are required to participate in every discussion.

The on-line students may ask questions at any time via email or the discussion groups, whenever they are having trouble. The instructor and/or teaching assistant is likely to check his email and the discussion group messages more often than office hours are held. If posted on the discussion board, other students may respond to these questions -- provided they do not post any assembly code. In fact, since students often run into similar problems, they are probably more familiar with the answers to such questions.

Content Delivery: The course is delivered on-line using RamCT, and it follows the 16-week semester schedule during the regular school year.

Interaction: Students interact with the instructor via email and the discussion groups. Students interact with each other using the discussion groups; they may also use email. Note: if you are having trouble coding or debugging an assignment, do not post or email code. You should be able to formulate a question (or response) without needing to use lines of code. However, it is certainly appropriate to remind each other of certain commands or operations and their properties, especially as some students may have less programming and scripting experience than others.

Student Assessment: The student may take on-line examinations or written examinations. In either case, the examinations must be proctored. In order to access an on-line examination, the student needs to present his individual password. All examinations are proctored according to the security standards set by the Division of Educational Outreach.

Time Commitment: The on-line course covers the same material that is covered in the on-campus version of the course. The assignments are similar. The structured discussions are more important for distance students than for students on campus and are a required part of the course.

Equipment: Students are expected to have adequate computing resources to easily access the course RamCT page regularly and to create, edit, compile, debug, and execute a variety of programs for assignments. This can be via a personal computer and modem, or a terminal connected to a local area network that is connected to the Internet. The course programs can be developed and executed on the CS department's lab computers, but the student must have a means of accessing these computers, probably via ssh (secure shell) over the Internet.

 
Warning: include(foot.php) [function.include]: failed to open stream: No such file or directory in /s/bach/a/class/cs457dl/Spring_12/syllabus.php on line 623

Warning: include() [function.include]: Failed opening 'foot.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /s/bach/a/class/cs457dl/Spring_12/syllabus.php on line 623