CSCE 515: Computer Network Programming
Catalog Description:
515—Computer Network Programming.
(3) (Prereq: CSCE 311) Computer networks and communication protocols; socket
programming; interprocess communication; development of network software; case studies.
Prerequisite(s) By Topic:
C/C++ programming
Textbook(s) and Other
Required Material:
1. Unix Network
Programming, vol 1 by W. Richard Stevens, Prentice-Hall, 1998.
2. A C or C++ reference book.
3. TCP/IP
Illustrated
Volumes 1, W. Richard Stevens, Addison-Wesley, 1994.
Computing Platform: SUN/Solaris
Course Objectives: {Assessment Methods Shown in
Braces}
1. Demonstrate
mastery of common network protocols: TCP/IP, IPv6, UDP, ICMP, ARP, RARP, Ethernet,
DNS, HTTP, FTP, SNMP. {tests}
2. Demonstrate
mastery of socket programming in C++ and Java. {tests, programming assignments}
3. Develop network
applications such as ftp, remote login (tenet, ssh), web servers, network DB
such as napster, and network games.
4. Demonstrate
mastery of Unix and Windows networking commands and management: netstat, ifconfig, ping,
traceroute, tcpdump, sock, telnet, rlogin.
Topics Covered:
1. Introduction, terminology, OSI and TCP/IP reference
Models, layered architecture, data link layer: protocols, Ethernet, bridges.
2. Protocols: IP, TCP, UDP, FTP, PPP, ARP, RARP, ICMP,
DNS, SNMP, SMTP, NFS.
3. Networking Commands: netstat, ifconfig, ping,
traceroute, tcpdump, sock, telnet, rlogin.
4. Berkeley sockets in C/C++ and Java, Unix and NT,
including both TCP and UDP sockets.
5. Unix concepts supporting network programming:
processes, threads, signals, domain name system support, advanced I/O including
timeouts and selection, daemons and Inetd.
6. Application Layer: security, SNMP, mail, WWW
Syllabus Flexibility: High. The choice of textbook and projects is left to the
instructor. The syllabus is approved by
the department faculty.
Laboratory
Projects:
Several large programming assignments including:
comparison of UDP and TCP, implementation of FTP server, UDP network game, web
server, I Net D superserver.
Relationship of Course to
Program Outcomes:
The contribution of each course objective to meeting
the program outcomes is indicated with the scale:
3 = major contributor, 2 = moderate contributor, 1 = minor contributor. Blank if not related.
|
|
Program Outcomes |
||||||||||
|
1.
Logic & Math |
2.
Computing Fundamentals |
3.
Apply Computing Principles |
4.
Work on teams |
5.
Communicate Effectively |
6.
Liberal arts & Soc. Sciences |
7.
Basic Science and Lab Procedures |
8.
Learn New Tools & Processes |
9.
Employed upon Graduation |
10.
Application Area |
11.
Electronics and Digital Sys Design |
|
|
1. Demonstrate mastery of network protocols |
|
1 |
|
|
|
|
|
|
2 |
|
|
|
2. Demonstrate mastery of socket programming in C++ and Java |
|
|
3 |
|
|
|
|
|
2 |
|
|
|
3. Develop network applications |
|
|
3 |
|
|
|
|
3 |
2 |
3 |
|
|
4. Demonstrate mastery of Unix and Windows networking commands |
|
1 |
|
|
|
|
|
2 |
1 |
|
|
Estimated CSAB Category
Content:
Algorithms: 0
Data Structures: 0
Software Design: 3
hrs
Concepts of
Programming Languages 0
Organization and
Architecture 0
Oral and Written
Communication:
none
Social and
Ethical Issues:
none
Theoretical
Content:
some finite state machines
Analysis and
Design:
implementation of several protocols,
e.g., FTP, client/server, web server.
Class/Laboratory Schedule:
Lecture: 3 periods of 50 minutes or 2
periods of 75 minutes per week
Difference between Undergraduate and Graduate Work:
Students enrolled for graduate credit will have to do more difficult assignments and will have more difficult examinations to justify the receipt of graduate credit for this course.
Course
Coordinator: Manton Matthews
Modification and
Approval History
Initial description, November 2000
Revised July 2002 to include statement
on graduate work