Computer Science (COMP) 348
Network Programming in Java (Revision 5)
Revision 5 is closed for registrations, replaced by current version
View previous version
Delivery Mode: Individualized study online
Area of Study: Science
COMP 348 is not available for challenge
Note: Students who are concerned about not meeting the prerequisites for this course are encouraged to contact the course coordinator before registering.
Students in this course are required to contact their tutor using email or the course (Moodle) forums. Please see the Tutor and Coordinator Support page for more information.
COMP 348 is designed to extend students' knowledge and practice in analysis and design of computer networks by focusing on computer network programming. In addition, some advanced network topics including network security and multimedia computer network are introduced in this course. Java will be used throughout the course for programming. To be able to complete this course, a student should have both sufficient knowledge about computer networks, especially the Internet, and some good programming skills in Java.
- network concepts, network layers and the TCP/IP reference model, the Internet and the client/server model, as well as some international standards of computer networking.
- Web concepts including URI, URL, HTML, SGML, XML, HTTP, MIME, CGI, as well as applets and security.
- use Java Streams in your Java programs. More precisely, you will be able to use Java's output streams, input streams, filter streams, and the readers and writers superclasses.
- run threads in your Java programs, return information from a thread, synchronize multiple threads, resolve deadlocks, schedule threads, and manage thread pools.
- use the InetAddress class to manipulate IP addresses and hostnames, and to apply these operations to network applications.
- retrieve data using the URL class.
- use the Java Swing package to present and parse HTML documents.
- program with sockets in Java, and write non-trivial network applications.
- explain how some useful servers work, and be able to design and implement network servers with sockets in Java.
- program with UDP using Java's DatagramPacket and DataSocket classes; be able to write some useful network applications with UDP.
- list the fundamental concepts of computer network security and principles of cryptography, and be able to use certain encryption/decryption schemes.
- describe how authentication can be done over computer networks; explain the meaning of some authentication protocols, and implement these protocols in network applications; protect message integrity using digital signature and message digests; know some techniques for key management.
- explain how firewalls can be used for access control, and list some known security attacks as well as their countermeasures.
- explain the techniques available for secure emails, and e-commerce. Explain how security measures have been implemented at different layers of the Internet.
- program with secure sockets, and write network applications in Java that can meet certain security needs.
- use multicast-related Java classes to write multicast network applications.
- define multimedia network applications, and explain what special network services and techniques they require.
- explain the technical details of streaming stored audio, stored video, and IP telephony.
- describe protocols that are essential for multimedia network applications, including RTP, RTCP, SIP, and H.323.
- describe the principles and techniques that could improve the quality of services to multimedia network applications.
- use the URLConnection class to open URL connections and communicate with the hosts accordingly.
- write protocol handlers for desired purposes.
- write content handlers for given MIME types.
- perform secure remote method invocation in Java, and use the java.rmi package to write programs that invocate methods on remote hosts.
- send, receive, and handle email using the JavaMail API, authenticate email clients, and write email applications using the JavaMail API.
After successfully completing the course, students will be able to design and program network applications for a variety of purposes. They will also have a better understanding of computer networks, especially the issues and techniques related to network security and multimedia networking.
COMP 348 consists of the following units:
- Unit 0: Introduction to the course
- Unit 1: Review of Computer Networks, the Internet, and the World Wide Web
- Unit 2: Review of Java Programming
- Unit 3: Fundamental Network Operations in Java
- Unit 4: Basic Socket Programming in Java
- Unit 5: Security in Computer Networks
- Unit 6: Advanced Socket Programming in Java
- Unit 7: Multimedia networking
- Unit 8: Handling URLs, Protocols and Contents of Web Documents
- Unit 9: Remote Method Invocation
- Unit 10: Dealing with Email in Java
All units are closely based on material from Java Network Programming by Harold with additional material supplied via web reference links. Unit 1 is a review of material you have studied in the prerequisite computer networking course (COMP 347). Unit 2 is a review of material you should have studied in the prerequisite Java programming courses (COMP 268, COMP 272).
To receive credit for COMP 348, you must achieve a course composite grade of at least “D” (50 percent), including a grade of 50 percent on each assignment, and at least 50 percent on the final examination. The weighting of the composite grade is as follows:
|Assignment 1||Assignment 2||Assignment 3||Assignment 4||Final Exam||Total|
To learn more about assignments and examinations, please refer to Athabasca University's online Calendar.
Harold, E. R. (2005) Java Network Programming, 3rd ed. O'Reilly, Cambridge, MA.
The remainder of the learning materials for COMP 348 is distributed in electronic format or is available from the course or other websites. The materials in these categories presently include:
Distributed in Electronic Format:
- Computer Science 348 Study Guide.
Available from the Course Website:
- Assignments and instructions
- A course evaluation form
- Links to other web-based course resources
Available from Other Websites:
- Current Java Development Kit (JDK)
- Online version of Computer Networking
- Program examples from Java Network Programming
Additional supporting materials of interest to students may occasionally be made available electronically.
Special Course Features
COMP 348 is offered by computer mediated communications (CMC) mode, and can be completed at the student's workplace or home. It is an elective in all Computing and Information Systems programs.
Athabasca University reserves the right to amend course outlines occasionally and without notice. Courses offered by other delivery methods may vary from their individualized-study counterparts.
Opened in Revision 5, June 7, 2011
View previous syllabus