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:

Operating systems

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.










Course Objectives

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