Two 50-minute lectures + one 3-hour lab per week. (3-3-4)
Designation: Required Course
Course Level: Undergraduate
Prerequisite(s) by Topic:
- A familiarity with Programming Fundamentals.
Principles of inter-network architecture and communication protocols. Open systems and interoperability. Case studies of particular protocols from network layer and above. Socket programming. Remoting. Selected examples of networked client-server applications such as e-mail, news, file-transfer, HTTP. Client-Server Programming Project(s). Using APIs. Software tools and environments.
Reference(s) and Other Material:
- Lecture notes and handouts
- Several web sites and e-books to be available through the course website.
After completing this course, the student should be able to:
- Demonstrate understanding of the TCP/IP model and relevant protocols in each layer.
- Describe the IP addressing, Internet domain names and recognize the role of the DNS servers.
- Explain the operation and related issues of various common Internet applications and protocols including: HTTP, SMTP, POP, FTP, Telnet, IGMP, etc.
- Identify and apply various socket programming concepts and mechanisms.
- Use effectively the socket interface or remoting to develop Client-Server Internet applications.
- Practice software engineering principles and methods in building network-aware applications.
- Review of Object-Oriented Programming Concepts
- Review of File IO, Exception Handling and Use of data structures in the API such as ArrayList, HashTable, etc.
- Event-driven applications and Multi-Threaded Programming
- Network architecture models and related protocols
- IP Addressing, Internet domain names and DNS
- TCP Client-Server Programming
- UDP Client-Server Programming
- Asynchronous Client-Server Programming
- Multi-client TCP Servers
- Hypertext Transfer Protocol (HTTP)
- Mail Protocols: Mail Format, SMTP, POP, MIME
- File Transfer Protocol (FTP),
- Broadcasting and Multicasting
- Introduction to Network Security
- Accessing Databases