CPE 401/601 Computer Network Systems
Department of Computer Science & Engineering
UNR, spring 2009
Course Information -
ABET Criteria -
| Class hours
|| Monday & Wednesday, 1:00 - 2:15pm, PE 205
|| Dr. Mehmet 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 enviroment is required.
- Introduction to Computer Engineering (CPE 201).
- Mathematics of Computer Science (CS 365).
- C/C++ or Java programming experience in UNIX-like environment.
This is a tentative list of topics, subject to modification and reorganization.
- Introduction to Computer Networks
- Internet Architecture
- Protocol Layers
- Socket Programming
- Network API
- Socket Addressing
- TCP Sockets
- UDP Sockets
- SCTP Sockets
- Error Handling
- I/O multiplexing
- Name and Address conversion, DNS
- Communication Protocols
- E-mail (SMTP, POP)
- Chat (IRC)
- Web Servers
- Dynamic Web Documents
- Performance Measurement
- Advanced Sockets
- Threads Programming
- Client/Server Programming
- Deamon Processes
- External Data Representation (XDR)
- Distributed Program Design
- 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.
- 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.
- There will be five lab assignments
(six for 601 students) 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.).
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 10% per day, except holidays.
If I am not available, ask department secretary to stamp late assignments and then place them in my mail box.
You are responsible to make sure the stamp has both the date and the time.
Assignments will be accepted only through WebCT.
- There will be four 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-30 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 cell phones, beepers, etc. should be used during the exam.
- There will be extra questions in assignments and exams for CPE 601 students.
- There will be no team assignments in this class,
therefore all 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.
- 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.
50 - Network Labs (4)
10 - Quizzes (4)
20 - Midterm Exam
20 - Final Exam
A : 90 - 100
B : 80 - 89
C : 70 - 79
D : 60 - 69
F : 0 - 59 (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:
(a) an ability to apply knowledge of computing, mathematics, science, and engineering
(b) an ability to design and conduct experiments, as well as to analyze and interpret data
(c) 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
(d) a knowledge of contemporary issues
(e) 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 21
|| Lecture #1: Internet
| Mon, Jan 26
|| Lecture #2: Protocol Layers
| Wed, Jan 28
|| Lecture #3: TCP/IP
|| Lab 1: Protocol layers
- TCP/IP FAQ
| Mon, Feb 2
|| Lecture #4: Socket Programming
|| - Socket Programming FAQ
- C FAQ
| Wed, Feb 4
|| Lecture #5: Java Introduction
|| - Java Crash Course
- Home of Java
| Mon, Feb 9
|| Lecture #6: TCP Sockets
|| - Simple TCP client and server code
| Wed, Feb 11
|| Lecture #7: Telnet, HTTP
|| Lab 2: HTTP proxy server
- RFC 2616 HTTP 1.1
| Mon, Feb 16
|| President's day (no class)
| Wed, Feb 18
|| Lecture #8: UDP Sockets & I/O Multiplexing
|| - Simple UDP client and server code
- TCP client using select()
| Mon, Feb 23
|| Lecture #9: SCTP Sockets
|| - www.SCTP.org
| Wed, Feb 25
|| Lecture #10: DNS
| Mon, Mar 2
|| Lecture #11: Java Socket Programming
|| - Sample Java sockets
| Wed, Mar 4
|| Lecture #12: FTP & TFTP
| Mon, Mar 9
|| Lecture #13: Dynamic Web Servers & CGI
|| Lab 3: CGI search engine
- The CGI Resource Index
| Wed, Mar 11
|| Midterm Exam
| Mon, Mar 16
|| Spring break (no class)
| Wed, Mar 18
|| Spring break (no class)
| Mon, Mar 23
|| Lecture #14: HTML forms
| Wed, Mar 25
|| Lecture #15: CGI sessions & Perl
|| CGI lab discussion at 2:15 pm
| Mon, Mar 30
| Wed, Apr 1
|| No class
| Mon, Apr 6
|| Lecture #17: Client/Server Programming
| Wed, Apr 8
|| Lecture #18: Threaded Programming
|| Lab 4: Threaded HTTP server
| Mon, Apr 13
|| Lecture #19: Advanced Sockets Programming
| Wed, Apr 15
|| Lecture #20: RPC, XDR
|| - RPC programming notes
- RPC examples
| Mon, Apr 20
|| Lecture #21: XML, SOAP, LDAP
|| - XML-RPC
| Wed, Apr 22
|| Lecture #22: Performance Measurement
| Mon, Apr 27
|| Lecture #23: Network Security
|| - WWW security
| Wed, Apr 29
|| Lecture #24: Cryptography
| Mon, May 4
|| Lecture #25: Secure Communications
| Mon, May 11
at 12:00 pm
| Final Exam
(Exam covers post-midterm material. However, students are expected to remember important pre-midterm concepts.)
Acknowledgements: Slides are modified from the slides prepared by Prof. Dave Hollinger.
Announcements regarding the course will be posted on this web page
and WebCT. Please check your WebCT e-mail daily.
- Jan 20, 2009 : You can access student resources of textbook at
- Jan 25, 2009 : Assignments will be accepted only through WebCT.
Hence, either prepare your reports in digital form or scan handwritten pages.
- Jan 27, 2009 : Lab 1 is posted and is due on
Tuesday, Feb 17 at 12:00 pm.
- Feb 18, 2009 : Lab 2 is due on
Tuesday, Mar 3 at 12:00 pm.
- Mar 8, 2009 : Lab 3 is posted and is due on
Tuesday, Apr 7 at 12:00 pm.
- Mar 9, 2009 : We need to schedule a lecture for CGI lab.
Please indicate time slots that are not working for you at
WebCT by Wednesday noon.
- Mar 12, 2009 : The CGI lab discussion will be
on March 25 at 2:15 pm.
- Apr 8, 2009 : Lab 4 is posted and is due on
Tuesday, May 5 at 12:00 pm.
- Apr 22, 2009 : Bonus added to the Lab 4.
- Apr 30, 2009 : There has been an update to the bonus of Lab 4.
- May 1, 2009 : You can schedule for Lab 4 demo on May 8, Friday through WebCT.
- May 1, 2009 : Course evaluations are on WebCT.
Do not forget to complete your evaluations before May 6th.
- May 6, 2009 : Lab 4 demos are extended to May 11, Monday.
- May 28, 2009 : Check out www.stopthehacker.com:
a very interesting startup on web security from a friend of mine.
Course Information -
ABET Criteria -
Last updated on May 28, 2009