Computer Science (COMP) 348

Network Programming in Java (Revision 5)

COMP 348 Course website

Revision 5 is closed for registrations, replaced by current version

View previous version

Delivery Mode: Individualized study online


Area of Study: Science

Prerequisite: Either COMP 268, COMP 272 and COMP 347 or COMP 308 and COMP 347

Centre: School of Computing and Information Systems

SCIS Orientation

COMP 348 is not available for challenge

COMP 348 sample

Course website

check availability

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.

Learning Objectives

Unit 1

  • 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.

Unit 2

  • 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.

Unit 3

  • 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.

Unit 4

  • 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.

Unit 5

  • 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.

Unit 6

  • 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.

Unit 7

  • 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.

Unit 8

  • 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.

Unit 9

  • perform secure remote method invocation in Java, and use the java.rmi package to write programs that invocate methods on remote hosts.

Unit 10

  • send, receive, and handle email using the JavaMail API, authenticate email clients, and write email applications using the JavaMail API.

Learning Outcomes

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
20% 20% 20% 25% 15% 100%

To learn more about assignments and examinations, please refer to Athabasca University's online Calendar.

Course Materials


Harold, E. R. (2005) Java Network Programming, 3rd ed. O'Reilly, Cambridge, MA.

Other materials

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