CS 336/621: Computer Networks and Network Programming (Spring 2009)

Tues-Thurs 7:30pm-9:15pm (Room HRN-235)

Instructor: Allan Cruse
Phone: (415) 422-6562
Office: 212 Harney Science Center
Office Hours: (see my homepage)

Tell me and I'll forget, show me and I may remember, involve me and I'll understand.

                                                                                                            -- ancient Chinese proverb


This course combines an exposition of computer networking principles
with network programming exercises and experiments, taking advantage
of the Department's recently installed equipment in our CS Labs and in
the Michael D. Kudlick interactive computer classroom (Harney-235).
These facilities include remote access from off-campus to a cluster of
sixteen Core-2 Duo servers, each equipped with two Intel Pro1000
gigabit-Ethernet controllers, one of which is dedicated to supporting
a private Local Area Network for doing course-experiments. A similar
but separate private LAN interconnects the Kudlick classroom's thirty
Core-2 Quad workstations, allowing lecture-demonstrations to be done
in class without affecting any network experiments in progress on the

Topics appropriate to this course's goals include:
- Contemporary uses of computer networks and the Internet
- Physical and architectural network elements
- Conventional "layered" models of networking
- Communication protocols and associated algorithms
- Local Area and Wide Area networks
- The ubiquitous TCP/IP protocol suite
- The Client/Server programming paradigm
- Berkeley 'sockets' application programming interface
- Issues of performance and network security

This course is open to upper-division computer science majors and to
USF computer science graduate students. This course assumes that
students are familiar with Linux or UNIX, and with programming in the
C/C++/Python environments. (The specific course-preparation that is
recommended includes: CS 110/112 and CS 245, or the equivalent
preparation at another university.)

Textbook: Learning Outcomes:



Systems Software



Last updated on 05/19/2009