Spring 2000 - Jan. 10 to Apr. 28
Tues. and Thurs., 8:00-9:15 PM, room EC137.
Final exam: Tues. May 2, 8:30-10:30 PM.
CSE 3103 - Computer Communication Networks
CSE 5232 - Network Programming
Prerequisites: C++ and Java programming, familiar with UNIX/Linux.
- Web server development - Web servers, browsers, HTTP protocol,
- Network services - telnet, FTP, email protocols (SMTP, POP),
DNS, NFS, NIS, diagnotic tools (arp, ping, netstat, nslookup, etc.)
- Network programming: C++ (UNIX sockets and Windows/Winsock),
Java (network model, threads, exceptions), servers and clients.
- Networks: OSI model, TCP/UDP, IP, Ethernet, telephone
- Communication theory, encryption, data compression.
or if that doesn't work, then
Office hours are immediately after class, or try sending an instant
message to matmahoney using
How is my teaching? Review this class anonymously at
If you do not know C++ or Java, I recommend
- Essential C++ by Stan Lippmann
- Java from the Beginning by Jan Skansholm
- Set up a web page, due Feb. 3.
- Homework, part 1, due Mar. 14.
- Homework, part 2, due Mar 23, 28, Apr, 6, 20.
- Term Project, see below.
Grading will be based 50% on homework and 50% on tests.
Homework: Homework handed in late is penalized 20% per day,
including non class days, weekends, and holidays. Homework should
be posted to your web page. Not all homework will be
graded or collected, but you are still responsible for knowing the
Programming assignments may be written in your choice of language
(C, C++, Java, Perl, etc). Grading will emphasize good style,
readability, and documentation, especially the analysis or user's
guide, which describes what the program does from a novice user's point
Tests: All exams including the final exam will count equally
toward your grade after dropping the lowest grade.
There will be no make-up exams for any reason. All tests are open
book and open notes. Test dates (tentative):
- Exam 1, Tues. Feb. 15
- Exam 2, Thurs. Mar. 16
- Exam 3, Tues. Apr. 18
- Final, Tues. May 2, 8:30-10:30 PM
All students will be expected to write a program that acts as either
a server or a client, and communicates using an established protocol
(HTTP, SMTP, DNS, telnet, FTP, etc.). Examples include, but are not
Post to your web page:
- A text-based web client (like lynx).
- A web server.
- A telnet client.
- A USENET news reader.
- A program to send and receive email.
- A DNS resovler (like dig or nslookup).
- A network diagnostic tool (like ping).
- A topic and brief description of your program by Feb. 3.
(You may change it later if needed).
- A user's guide (analysis) and preliminary design in HTML by Feb. 24.
(Keep this updated as needed).
- A progress report and preliminary version of your program that
users can download and run by Mar. 23.
- A final version by Apr. 20.
Graduate students (CSE 5232) only: write a paper (about 5000 words)
in HTML and post to your web page.
Identify some problem related to networks or the Internet, and
investigate what methods are currently used to solve the problem.
Your program should be related to your chosen topic.
Perhaps you can propose a better solution. Present your paper to
the class in a 15-30 minute presentation during the last two weeks
of classes (Apr. 18-27).
- Network security, encryption. Topics include public key encryption,
secure email, digital cash, or virus detection.
- Searching the Web, search engines. Topics include spiders, ranking
web pages, meta-engines, or distributed models.
- Performance, high speed internet connections. Topics include
cable modems, DSL, or wireless Internet.
You may wish to post prelimary drafts of your paper as soon as
possible so I can review them and make recommendatations before
the paper is due. Email me when you have updated your draft.