Computer Network Architectures

Course Schedule

TR 2:10pm -3:30pm in Sweeney 1160

Instructor

Dr.  Lu Ruan
Email: ruan@cs.iastate.edu
Office: 204 Atanasoff Hall
Phone: 294-2259
Office Hours: Monday 11-12, Thursday 4:30-5:30, or by appointment

Teaching Assistant

Nalin Subramanian

Email: nvsubram@cs.iastate.edu

Office Hours: Tuesday 3:30-4:30pm and Thursday 12-1pm

TA Consultation Room: Pearson 145

Course Description

This course provides an introduction to the core concepts, fundamental issues, and important protocols in computer networks. Topics to be covered include: layered network architectures, network applications, network programming interface (Socket API), transport services, link layer protocols, local area networks, routing, internetworking, and congestion control. Examples will be drawn primarily from the Internet protocol suite.

Course Objectives

Upon completing the course, the students will:

  • understand the core concepts of networking;
  • understand the fundamental issues in networking and the approaches towards addressing these issues;
  • understand the functions of each protocol layer and their relations;
  • understand the underlying concepts, design principles, technologies, and protocols of the Internet;
  • be familiar with various networking technologies.

Prerequisites

  • A basic understanding of computer architecture and operating systems.
  • C or C++ programming.

Textbook

·        Computer Networks: A Systems Approach, 4th Edition, by Larry Peterson and Bruce Davie, Morgan Kaufmann, 2007.

Reference Books

·        Internetworking with TCP/IP, Volume 1: Principles, Protocols, and Architecture, 5th Edition, by Douglas E. Comer, Prentice Hall, 2005.

·        UNIX Network Programming, Volume 1: Networking APIs : Sockets and XTI, 2nd Edition, by W. Richard Stevens, Prentice Hall, 1998.

Tentative Schedule

  • Foundation: 1 week
  • Applications and Socket API: 1.5 weeks
  • Direct Link Networks: 3 weeks
  • Packet Switching: 1.5 weeks
  • Internetworking: 3.5 weeks
  • End-to-End Protocols: 2 weeks
  • Congestion Control and Resource Allocation: 2 weeks

Grading

There will be five homework assignments, four reading assignments, two programming projects, one midterm exam, and one final exam. Your grade will be computed as follows:

  • Homework assignments: 20%
  • Reading assignments: 20%
  • Programming projects: 20%
  • Midterm exam: 20%
  • Final exam: 20%

 

Final letter grades will be determined by the following absolute grading scale, with fractional scores rounded up.

  • 93% 100%: A
  • 88% 92%: A-
  • 85% 87%: B+
  • 81% 84%: B
  • 77% 80%: B-
  • 73% 76%: C+
  • 68% 72%: C
  • 64% 67%: C-
  • 60% 63%: D+
  • 55% 59%: D
  • 50% 54%: D-
  •   0% 49%: F

Late Policy

A homework or reading assignment that is turned in one day late will be scored with a 25% penalty. A homework or reading assignment that is turned in more than one day late will receive a score of zero.

Programming projects will be penalized 25% per day past the deadline. For instance, if you turn in a project two days late, your grade will be multiplied by 0.5. Programming projects more than three days late will be assigned a score of zero.

Academic Honesty

You must do your ASSIGNMENTs and projects on your own!

 

You may discuss homework problems with anyone and use any reference material, provided you do not copy any other person’s work. Appropriate reference or credit must be acknowledged if you do not solve the homework problems on your own.

 

For the programming projects, it is expected that you have written EVERY LINE OF CODE that you submit (with the exception of code given out in class). The following are examples of activities that are PROHIBITED:

  • Writing code with another student.
  • Copying code from another student.
  • Giving code to another student (via email, printouts, etc).
  • Posting code in a publicly accessible location.
  • Using code fragments that are freely available (e.g., in public repositories) without properly acknowledging and citing the source.

 

Acts of academic dishonesty will result in zero points awarded for the assignment/project and a formal charge of Academic Dishonesty through the Dean of Students Office (see the University's Academic Dishonesty Policy for details).

Accommodation for Disabilities

If you have a disability and require accommodations, please contact the instructor early in the semester so that your learning needs may be appropriately met. Those seeking accommodations based on disabilities should obtain a Student Academic Accommodation Request (SAAR) form from the Student Disability Resources (SDR) office (phone 515-294-7220). SDR is located on the main floor of the Student Services Building, Room 1076.

Computer Accounts

You will use the Linux computers in 0158 Pearson Hall for the programming projects. You can also access the Linux computers using remote connection via pyrite.cs.iastate.edu. The names of those computers are mentioned after you login on pyrite. If you do not already have a computer science Linux account, you need to apply for one at http://support.cs.iastate.edu/account.php. For problems related to computer accounts and computer equipments, send email to ssg@cs.iastate.edu.