CPE 401/601 Computer Network Systems
Department of Computer Science & Engineering
UNR, Spring 2010
Course Information -
ABET Criteria -
| Class hours
|| Monday & Wednesday, 1:00 - 2:15pm, PE 205
|| Dr. Mehmet H. Gunes
|| mgunes (at) cse (dot) unr (dot) edu
|| (775) 784 - 4313
| Web page
|| SEM 230 (Scrugham Engineering-Mines)
| Office hours
|| Monday & Wednesday 2:30 - 4:00 pm or by appointment
Packet switching, routing, congestion control, network layer, internet, transport layer,
sessions, FTP, telnet, rlogin, SMTP, NFS, NetBIOS, WWW, security, data compression.
To develop an understanding of the various aspects of computer network programming.
Topics include: networking basics, protocol basics, Internet protocols, and socket programming.
This is a project oriented course where intensive coding in UNIX environment is required.
- Introduction to Computer Engineering (CPE 201).
- Mathematics of Computer Science (CS 365).
- C/C++ or Java programming experience in UNIX-like environment.
- James F. Kurose and Keith W. Ross,
Computer Networking: A Top-Down Approach,
Addison-Wesley, 5th edition.
- Richard Stevens, Bill Fenner, and Andrew M. Rudoff,
"UNIX Network Programming, Vol. 1: The Sockets Networking API",
Addison-Wesley, 3rd edition.
- Bruce Molay,
"Understanding Unix/Linux Programming:
A Guide to Theory and Practice", Prentice Hall.
- Douglas Comer and David Stevens
"Internetworking with TCP/IP
Volume III: Client-Server Programming and Applications, Linux/POSIX version",
- Elliotte Rusty Harold
"Java Network Programming",
O'Reilly, 3rd edition.
- DJorg Liebeherr and Magda El Zarki
"Mastering Networks: An Internet Lab Manual",
This is a tentative list of topics, subject to modification and reorganization.
- Introduction to Computer Networks
- Internet Architecture
- Protocol Layers
- Socket Programming
- Network API
- TCP Sockets
- UDP Sockets
- SCTP Sockets
- Error Handling
- I/O multiplexing
- DNS Name and Address conversion
- Communication Protocols
- Telnet, SSH
- E-mail (SMTP, POP)
- FTP, SFTP
- Web Servers
- Dynamic Web Documents
- Common Gateway Interface (CGI)
- Performance Measurement
- Advanced Sockets
- Threads Programming
- Client/Server Programming
- Distributed Program Design
- Deamon Processes
- External Data Representation (XDR)
- Remote Procedure Call (RPC)
- Network Security
- Except this web page, all course materials will be posted at the WebCT.
- Class participation in terms of asking questions is highly encouraged.
Please do not be afraid to ask questions no matter how simple you might think the answer could be.
This type of interaction helps improve the effectiveness of the class and breaks the monotony.
- Unless instructed otherwise, use of electronic devices including laptops are not allowed during lectures.
- Students are encouraged to bring articles, demos, web pages, news events, etc.
that are relevant to course topics to the attention of the instructor.
The success of the course depends on everyone in the class engaging the material
and bringing energy, enthusiasm, and intellect to class activities.
- Presentation slides will be available on the class web page.
I will try to put them up before each class meeting but no guarantees on that.
- Each student will write two blog entries at
http://UNRcpe401.blogspot.com a lecture he/she is assigned to.
The blog should be at least a paragraph of 100 words and cover important points of the lecture.
Everyone is welcome to add comments and add new entries.
- Each student will prepare a 20 minute presentation on a networking topic of their choice.
Students may choose any relevant topic with approval of the instructor.
You will be graded by your peers using the presentation evaluation form.
However, final grade will be decided by instructor.
- There will be two homework assignments.
You may collaborate when solving the assignments, however when writing up the solutions you must do so on your own.
Note that knowledge of C/C++ or Java in UNIX environment is required for the assignments.
It is expected that everyone is a good programmer (develops error-handling, well-structured, readable code).
Late assignments will be penalized by 25% per day, except holidays.
Assignments will be accepted only through WebCT.
- There will be four lab assignments involving quite a bit of programming.
They will require turning in code that compiles and runs properly and a report documenting the program
(specifications, implementation, user manual, etc.).
Late assignments will be penalized by 10% per day, except holidays.
- There will be four in-class quizzes. The lowest graded one will not effect your overall grade.
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-20 mins.
Questions in these quizzes will be designed to give you an opportunity to test
and affirm your knowledge of the course content.
- There will be one midterm exam and one final exam.
You should plan on taking the exams on the scheduled times.
No late/early exams unless in case of an emergency situation such as health emergency
or similar un-avoid-able situations and you need to provide convincing documentation for it.
The exams will be closed books and closed notes. No calculators (unless otherwise stated)
and no other electronic devices such as laptops, cell phones, beepers, etc. should be used during the exam.
- There will be extra questions in assignments and exams for CPE 601 students.
- Assignments and exams must be prepared strictly individually.
You are welcome to discuss the problems or solution strategies with your class mates
but the resulting work should be your own. Do not share code in any form.
Copying from each other or from other sources is considered as cheating.
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.
- From time to time, we may discuss vulnerabilities in networking systems.
This is not intended as an invitation to go exploit those vulnerabilities!
It is important that we be able to discuss real-world experience candidly;
everyone is expected to behave responsibly.
- 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 - 101) as soon as possible.
Both grading policy and scale are subject to change.
Failure in either the assignments or the tests will result in failure in the course.
4 - Blog Entries (2)
6 - Presentation
9 - Homeworks (2)
36 - Network Labs (4)
6 - Quizzes (2 of 3)
19 - Midterm Exam
20 - Final Exam
A : 87 - 100
B : 75 - 86
C : 63 - 74
D : 51 - 62
F : 0 - 50 (or caught cheating)
Important Note: You will have one week to appeal for your grades after the graded assignments/tests are returned.
So, please keep this in mind if you think that there is a problem/issue with the grading of your work.
ABET Accreditation Criterion 3 Program Outcomes that are relevant to this course are:
(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.
(10) A knowledge of contemporary issues.
(11) An ability to use current techniques, skills, and tools necessary for computing and engineering practice.
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.
Permanent reading assignment: it is assumed that you are familiar with the contents of the slides of all past meetings.
|| Assignments & Notes
| Wed, Jan 20
|| Lecture #1: Intro
| Mon, Jan 25
|| Lecture #2: Introduction
|| Homework 1: Layered Communication
| Wed, Jan 27
|| Lecture #3: Protocols and Layering
| Mon, Feb 1
|| Lecture #4: TCP/IP model
|| Lab 1: Wireshark analysis of TCP/IP model
| Wed, Feb 3
|| Lecture #5: TCP/IP model (cont)
|| - TCP/IP FAQ
| Mon, Feb 8
|| Lecture #6: Transmission Control Protocol
| Wed, Feb 10
|| Lecture #7: Routing
| Mon, Feb 15
|| President's day (no class)
| Wed, Feb 17
|| Lecture #8: Routing Algorithms
| Mon, Feb 22
|| Lecture #9: Routing in the Internet (RIP and OSPF)
| Wed, Feb 24
|| Lecture #10: Border Gateway Protocol
|| Lab 2: Routing Information Protocol
| Mon, Mar 1
|| Lecture #11: Router Architectures
| Wed, Mar 3
|| Lecture #12: Telnet and E-mail Protocols
| Mon, Mar 8
|| Lecture #13: File Transfer Protocol
| Wed, Mar 10
|| Midterm Exam
| Mon, Mar 15
|| Spring break (no class)
| Wed, Mar 17
|| Spring break (no class)
| Mon, Mar 22
|| Lecture #14: Midterm Review
|| Lab 3: Transport Layer Protocols
| Wed, Mar 24
|| Lecture #15: Socket Programming
| Mon, Mar 29
|| Lecture #16: TCP/UDP Sockets
| Wed, Mar 31
|| Lecture #17: Socket Programming Issues
| Mon, Apr 5
|| Lecture #18: Network Management
| Wed, Apr 7
|| Lecture #19: HTTP
IPv6 by Justin
| Mon, Apr 12
|| Lecture #20: Dynamic Web Servers
Net Neutrality by Jeffrey
| Wed, Apr 14
|| Lecture #21: Common Gateway Interface
Prof Krishnamurthy's talk on "Survivable Routing in Multi-hop Wireless Networks" at WRB 4050
| Lab 4: CGI Search Engine
| Mon, Apr 19
|| Disruption-Tolerant Networking by Gareth
Cloud Computing by Kevin
Sensor Networks by Mikaal
Space Networking by Evander
| Wed, Apr 21
|| SubNets by Katie
Peer-To-Peer Networks by Clayton
802.11 by Winway
Internet Topology Mapping by Hakan
| Mon, Apr 26
|| Lecture #22: Network Security
ARP caching by Christopher
| Wed, Apr 28
|| Lecture #23: Cryptography
EIGRP by Zakary
| Homework 2: Web and Security
| Mon, May 3
|| Lecture #24: Secure Communication
| Mon, May 10
at 12:00 pm
| Final Exam
(Exam covers post-midterm material. However, students are expected to remember important pre-midterm concepts.)
Announcements regarding the course will be posted on this web page
and WebCT. Please check your WebCT e-mail daily.
- Jan 16, 2010 : You can access student resources of UNIX Network Programming textbook at
- Jan 20, 2010 : Blog page for the course is at
- Feb 8, 2010 : I have uploaded the link for class presentation schedule on WebCT under announcements.
Indicate your preferred date and topic on the spread sheet.
- Mar 9, 2010 : Deadline for 2nd Lab on Routing Information Protocol has been extended to Friday 11:00 pm.
- Apr 14, 2010 : Previous lab on SNMP has been cancelled due to technical issues and a new lab on CGI Search Engine has been posted which is due Wednesday, Apr 28 at 1pm.
- May 1, 2010 : We will have an overview session on Thursday, May 6th at 12pm.
The session is mainly to help review material and attendance is optional.
Course Information -
ABET Criteria -
Last updated on May 11, 2010