MINT 706 Internet Applications and Programming

Calendar Description:

*3 (fi 6) (variable, 36 hours) Concepts of Internet Applications. Sockets, client-server programming, proxies and gateways, application programming. XDR, example application protocols: SMTP, FTP, DNS and how to implement them. Possible source code inspection exercises covering BIND, zmailer. Offered jointly by the Department of Electrical and Computing Engineering and the Department of Computing Science.

General Information:

Term: Winter
Location & Schedule: Bear Tracks

Overview:

Internet Applications and Programming covers concepts of Internet applications, such as sockets, client-server programming, proxies and gateways, and application programming. Some specific application protocols (SMTP, SSH) are examined along with their implementation. There may also be source code inspection exercises.

Objectives:

Develop the ability to understand and implement simple client-server applications using the sockets application programmer interface (API). Towards that, the student must understand message formats, applications protocols, and both the syntax and semantics of the sockets API.

Course Topics:
  • Overview
  • Client-Server Architecture (1)
  • Review: Processes and Threads
  • Review: Interprocess Communication (IPC)
  • Message Formats and Techniques
  • The Sockets API
  • Ousterhout’s Presentation: Why Threads Are A Bad Idea (for most purposes)
  • Welsh’s Presentation on SEDA (2003)
  • The Secure Shell
  • Overview of SMTP

Assignment #1 (worth 33%), Assignment #2 (worth 33%), Assignment #3 (worth 34%).

Course Material:

Required textbook: W.R. Stevens, B. Fenner, and A.M. Rudoff. UNIX Network Programming, Volume 1, 3rd Edition, Addison-Wesley, 2003.

Also, a selection of papers and source code.

Academic Integrity:

The University of Alberta is committed to the highest standards of academic integrity and honesty. Students are expected to be familiar with these standards regarding academic honesty and to uphold the policies of the University in this respect. Students are particularly urged to familiarize themselves with the provisions of the Code of Student Behaviour (online at https://www.ualberta.ca/law/student-resources/graduate-resources/integrity-and-responsibilities) and avoid any behaviour which could potentially result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Academic dishonesty is a serious offence and can result in suspension or expulsion from the University. (GFC 29 SEP 2003)

Collaboration:

While you may discuss your individual coursework with other students, the work claimed and submitted in your name must be your own. That said, there are assignment and project-specific policies on how much source code from publicly available sources may be borrowed. Always give proper credit to the original developers in your source code and documentation. Ask permission beforehand if you intend to recycle your work from another course in this course. More details on Appropriate Collaboration is given here.

Regulations listed in the GFC Policy Manual and the University Calendar will be used in resolving any discrepancies.