The course is an introduction to programming applications that use computer networks. The operation and characteristics of major computer networks are studied because of their strong influence on programming interfaces (APIs) and application design. Both Unix and NT network programming are explored - both share the challenges associated with network programming, but each has its own appropriate solutions. Most programming will be undertaken in the 'C' language.
Textbook:
W. Richard Stevens, "Unix Network Programming", Second Edition, Volume 1 Networking APIs : Sockets and XTI", 1997. ISBN: 0-13-490012-X
Assignment Task & Assessment:
Submission is expected by 5:30PM on the indicated dates.
Assignment 1 is due 27/08/04
Assignment 2 is due 24/09/04
Exam = 60%
Exam Duration = 3 hours duration
Closed book exam and covers all topics provided during the lectures.
Learning Program:
Teaching Week 1
Teaching Week 2:
Lecture: Introduction to Network Programming
Topic: Use this week to brush up on your programming skills, if they're a bit rusty.
Teaching Week 3:
Lecture: Background on Networks and Programming
Topic: By the end of this week you should be able to do some useful network-programming style tasks
Teaching Week 4:
Lecture: Socket Programming
Topic: Very important to complete the labs from this week, because they're the basis of all that will follow. Actually this comment holds for every week hereafter.
Teaching Week 5:
Lecture: The Internet Protocols: IP, TCP and UDP
Teaching Week 6:
Lecture: Doing More Than One Thing At Once I
Teaching Week 7:
Lecture: Doing More Than One Thing At Once II
Teaching Week 8:
Lecture: Design & Construction of Servers
Teaching Week 9:
Lecture: Introduction to Windows Programming
Topic: Windows Programming and Winsock Programming.
Teaching Week 10:
Lecture: Networking Programming under Windows / DNS
Topic: Networking options under Windows will be discussed. MFC Sockets, WinInet API, Named Pipes, Mailslots and DNS.
Teaching Week 11:
Lecture: Network Programming Under Windows
Topic: RPC and Windows threading issues will be explored.
Teaching Week 12:
Lecture: Network Programming Under Windows
Topic: Advanced network programming techniques.
Teaching Week 13:
Lecture: Review Lecture