CPE 400/600 Computer Communication Networks

Department of Computer Science & Engineering
UNR, Fall 2010


Course Information - Description - Prerequisites - Textbooks - Syllabus
Organization - Grading - Schedule, Notes & Assignments - Acknowledgment - ABET Criteria

Course Information

  • Credits: 3.0
  • Class hours: Tuesday & Thursday, 9:30 - 10:45am, SEM 347
  • Call numbers:
    • CS 400: #34289 (max. enrollment 30)
    • CS 600: #28038 (max. enrollment 10)

 

  • Instructor: Dr. Murat Yuksel
  • E-mail: yuksem@cse.unr.edu
  • Phone: (775) 327-2246
  • Web page: http://www.cse.unr.edu/~yuksem
  • Office: SEM 237 (Scrugham Engineering-Mines)
  • Office hours:
    • Tuesday, 1-3pm
    • Wednesday, 11am-2pm
    • Thursday, 1-3pm
    • or by appointment

 

Description

Digital modulation, transmission and synchronization, coding, error detection, interfacing, computer networks, ISO model, circuit/packet switching, local area networks.

 

Prerequisites

  • Introduction to Computer Engineering (CPE 201).
  • C/C++ or Java programming experience in UNIX-like environment

 

Textbooks

Required Textbooks

 

Recommended Textbooks

 

Syllabus (Tentative)

This is a tentative list of topics, subject to modification and reorganization.

  1. Introduction to Computer Networks
    • Internet
    • Delay, Loss, and Throughput
    • Protocol Layers and Service Models

 

  1. Application Layer
    • Web: HTTP
    • File Transfer: FTP
    • Electronic Mail
    • Domain Name Service
    • Peer-to-Peer Applications
    • Socket Programming

 

  1. Transport Layer
    • Multiplexing and Demultiplexing
    • Connectionless Transport: UDP
    • Reliable Data Transfer
    • Connection-Oriented Transport: TCP
    • Congestion Control

 

  1. Network Layer
    • Virtual Circuit and Datagram Networks
    • Routers
    • Internet Protocol
    • Routing Algorithms

 

  1. Link Layer
    • Error-Detection and -Correction Techniques
    • Multiple Access Protocols
    • Ethernet
    • Link-Layer Switches

 

  1. Physical Layer
    • Data and Signals
    • Digital and Analog Data
    • Encoding
    • Bandwidth Utilization
    • Transmission

 

Organization

  • WebCT   Except this web page, all course materials will be posted at the WebCT.
  • Lab Assignments   There will be four network lab assignments where you will have hands-on experience with protocols. The lowest graded one will not affect your overall grade. These assignments will require you to use Wireshark packet sniffing tool to analyze communication between two nodes.
  • Programming Projects   There will be three programming projects involving quite a bit of programming. It will require turning in code that compiles and runs properly and a report documenting the code. Note that knowledge of C/C++ or Java is required for these programming projects.
  • Quizzes   There will be a few in-class quizzes. Exact date for some of these quizzes will not be exposed beforehand. These quizzes will be open book/notes and extremely time-constrained, i.e., 15-30mins. Questions in these quizzes will be designed to give you an opportunity to test and affirm your knowledge of the course content.
  • Activities   There will be three in-class activities. There will be a quiz associated with each of these activities. The activities will require participation from every student.
  • Homework   There will be homework assignments approximately one in every month. The lowest graded one will not affect your overall grade.
  • Late policy   Late assignments will be penalized according to the sliding scale below. If I am not available, ask department secretary to stamp late assignments and then place them in my mailbox. You are responsible to make sure the stamp has both the date and the time.
  • Exams   There will be one midterm exam and one final exam (see Schedule for tentative dates). All exams will be open book/notes.
  • Academic Integrity   There will be no team projects or reports in this class, therefore all assignments and exams must be prepared strictly individually. Any form of cheating such as plagiarism or ghostwriting will incur a severe penalty, usually failure in the course. Please refer to the UNR policy on Academic Standards.
  • Disability Statement   If you have a disability for which you will need to request accommodations, please contact the instructor or someone at the Disability Resource Center (Thompson Student Services - 107) as soon as possible.

 

Grading (Tentative)

Both grading policy and scale are subject to change. Failure in either the programming (i.e., lab assignments + programming projects) or the tests (i.e., quizzes + homework + midterm exam + final exam) will result in failure in the course.

Grading Policy

Lab Assignments

15%

Programming Projects

20%

Quizzes

10%

Homework

10%

Midterm Exam

20%

Final Exam

25%

Late Assignment Policy

less than 1 day late

25% deducted

between 1 and 2 days late

50% deducted

over 2 days late

100% deducted

Grading Scale (Tentative)

90% - 100%

A-, A

80% - 89%

B-, B, B+

65% - 79%

C-, C, C+

55% - 64%

D

0% - 54%

F

Note: Saturdays and Sundays do not count toward missed days. For example, there is 1 "day" between Friday, 2pm and Monday, 2pm. Similarly, there is 1 day between Monday, 2pm and Tuesday, 2pm.

Important Note: Re-grading requests can only be made within the first week after the graded assignments/tests are returned to the students.

 

Schedule (Tentative), Notes & Assignments

This is a tentative schedule including the exam dates. It is subject to readjustment depending on the time we actually spend in class covering the topics. Slides presented in class and assignments will be posted at the WebCT. See the acknowledgment for the course materials. Permanent reading assignment: it is assumed that you are familiar with the contents of the slides of all past meetings.

Date

Lectures

Assignments & Notes

Tue, Aug 24

Lecture #1: Introduction

• Read Kurose & Ross, Ch. 1.1, 1.2

Thu, Aug 26

Lecture #2: Network Architecture & History

• Read Kurose & Ross, Ch. 1.3, 1.6, 1.7

Tue, Aug 31

Lecture #3: Basic Networking Concepts

• Read Kurose & Ross, Ch. 1.4, 1.5

Thu, Sep 2

Lecture #4: Application Layer (1) – Introduction, HTTP

• Read Kurose & Ross, Ch. 2.1, 2.2

Tue, Sep 7

Lecture #5: Application Layer (2) – FTP, E-mail

• Read Kurose & Ross, Ch. 2.3, 2.4

Thu, Sep 9

Lecture #6: Application Layer (3) – DNS, Peer-to-Peer

• Read Kurose & Ross, Ch. 2.5-2.8

• Homework 1 out

• Lab Assignment 1 out

Tue, Sep 14

Lecture #7: Application Layer (4) – Socket Programming

• Programming Assignment 1 out

Thu, Sep 16

Lecture #8: Transport Layer (1) – Multiplexing, UDP

• Read Kurose & Ross, Ch. 3.1-3.3

• Homework 1 due

Tue, Sep 21

Lecture #9: Transport Layer (2) – Reliability

• Read Kurose & Ross, Ch. 3.4

Thu, Sep 23

Lecture #10: Transport Layer (3) – Reliability, TCP

• Read Kurose & Ross, Ch. 3.5

• Lab Assignment 1 due

• Homework 2 out

Tue, Sep 28

Lecture #11: Transport Layer (4) – TCP

• Lab Assignment 2 out

Thu, Sep 30

Lecture #12: Transport Layer (5) – TCP, Congestion Control

• Read Kurose & Ross, Ch. 3.6

Tue, Oct 5

Lecture #13: Transport Layer (6) – TCP Congestion Control

• Read Kurose & Ross, Ch. 3.7

Thu, Oct 7

Lecture #14: Network Layer (1) – Virtual Circuits, Datagrams, Routers

• Read Kurose & Ross, Ch. 4.1, 4.2

• Programming Assignment 1 due

• Programming Assignment 2 out

• Homework 2 due

Tue, Oct 12

Review

• Lab Assignment 2 due

Thu, Oct 14

Midterm Exam (in-class)

 

Tue, Oct 19

Lecture #15: Network Layer (2) – IP

• Read Kurose & Ross, Ch. 4.3

Thu, Oct 21

Lecture #16: Network Layer (3) – ICMP

• Read Kurose & Ross, Ch. 4.4

Tue, Oct 26

Lecture #17: Network Layer (4) – Routing Algorithms

• Read Kurose & Ross, Ch. 4.5

Thu, Oct 28

Lecture #18: Network Layer (5) – Routing Protocols

• Read Kurose & Ross, Ch. 4.6

Tue, Nov 2

Lecture #19: Network Layer (6) – Broadcast, Multicast

• Lab Assignment 3 out

• Programming Assignment 2 due

• Programming Assignment 3 out

• Read Kurose & Ross, Ch. 4.7

Thu, Nov 4

Lecture #20: Link Layer (1) – Error Detection and Correction

• Read Kurose & Ross, Ch. 5.1, 5.2

• Homework 3 out

Tue, Nov 9

Lecture #21: Link Layer (2) – MAC, ARP

• Read Kurose & Ross, Ch. 5.3, 5.4

Thu, Nov 11

Veterans Day – NO CLASSES

 

Tue, Nov 16

Lecture #22: Link Layer (3) – Ethernet, Switching

• Read Kurose & Ross, Ch. 5.5

Thu, Nov 18

Lecture #23: Link Layer (4) – Virtual Link

• Read Kurose & Ross, Ch. 5.8

• Lab Assignment 3 due

• Lab Assignment 4 out

Tue, Nov 23

Lecture #24: Physical Layer (1)

• Homework 3 due

• Homework 4 out

Thu, Nov 25

Thanksgiving Break – NO CLASSES

 

Tue, Nov 30

Lecture #25: Physical Layer (2) – Data and Signals

• Programming Assignment 3 due

Thu, Dec 2

Lecture #26: Physical Layer (3) – Digital Transmission

• Lab Assignment 4 due

• Homework 4 due

Tue, Dec 7

Lecture #27: Physical Layer (4) – Analog Transmission

 

Fri, Dec 10 (at 7:30am)

Final Exam

 

 

Acknowledgment

The slides and other materials for this course are in-part based upon the materials from a number of people/sources, including:

·           Official website for the Kurose & Ross text: Computer Networking: A Top-Down Approach

·           Mehmet H. Gunes from UNR: http://www.cse.unr.edu/~mgunes/cpe400

 

ABET Criteria

Program Outcomes

Course Outcomes

Assessment Methods/Metrics

Program Objectives Impacted

3

Knowledge of the fundamental components of a computer network.

·           Define and explain the followings in written assignments and exams:

o     the origins and challenges of self-configuring communication network operation,

o     strategies and components of modern computer communication network systems, and

o     various tradeoffs between resource management techniques.

1, 2

1, 3, 5

Ability to quantitatively evaluate different network protocols and applications.

·           Solve and model quantitative performance evaluation methods of a communication network in written assignments and exams.

·           Design and implement resource management and scheduling algorithms of a computer network in programming assignments.

2, 3

Program Outcomes:

1.        an ability to apply knowledge of computing, mathematics, science, and engineering.

2.        an ability to design and conduct experiments, as well as to analyze and interpret data.

3.        an ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs, within realistic constraints specific to the field.

4.        an ability to function effectively on multi-disciplinary teams.

5.        an ability to analyze a problem, and identify, formulate and use the appropriate computing and engineering requirements for obtaining its solution.

6.        an understanding of professional, ethical, legal, security and social issues and responsibilities.

7.        an ability to communicate effectively with a range of audiences.

8.        the broad education necessary to analyze the local and global impact of computing and engineering solutions on individuals, organizations, and society.

9.        a recognition of the need for, and an ability to engage in continuing professional development and life-long learning.

10.   a knowledge of contemporary issues.

11.   an ability to use current techniques, skills, and tools necessary for computing and engineering practice.

12.   an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.

13.   an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity.

 

Program Objectives:

Within 3 to 5 years of graduation our graduates will:

1.        be employed as computer science and engineering professionals beyond entry level positions or be making satisfactory progress in graduate programs.

2.        have peer-recognized expertise together with the ability to articulate that expertise as computer science and engineering professionals.

3.        apply good analytic, design, and implementation skills required to formulate and solve computer science and engineering problems.

4.        demonstrate that they can function, communicate, collaborate and continue to learn effectively as ethically and socially responsible computer science and engineering professionals.

 

Course Information - Description - Prerequisites - Textbooks - Syllabus
Organization - Grading - Schedule, Notes & Assignments - Acknowledgment - ABET Criteria

Last updated on October 28, 2010