Overview
Computer Science 348: Network Programming in Java is designed to extend your knowledge and practice in analysis and design of computer networks by focusing on computer network programming. In addition, the course will introduce you to some advanced network topics, including network security and multimedia computer networks. The Java programming language will be used throughout the course. To complete this course successfully, you should have both sufficient knowledge about computer networks—especially the Internet—and good programming skills in Java.
Outline
COMP 348 consists of the following units:
- Unit 1: Basic Network Concepts
- Unit 2: Java Streams
- Unit 3: Java Threads
- Unit 4: Internet Addresses
- Unit 5: URLs and URIs
- Unit 6: Hypertext Transfer Protocol (HTTP)
- Unit 7: URLConnection
- Unit 8: Sockets for Clients
- Unit 9: Sockets for Servers
- Unit 10: Secure Sockets
- Unit 11: Nonblocking I/O
- Unit 12: User Datagram Protocol (UDP)
- Unit 13: IP Multicast
- Unit 14: Remote Method Invocation (RMI)
The units are closely based on material from Java Network Programming by Elliotte Rusty Harold, with additional material supplied via web reference links. Unit 1 is a review of material from the prerequisite computer networking course (COMP 347). Unit 2 and Unit 3 review material from the prerequisite Java programming courses (COMP 268 and COMP 272).
Learning outcomes
Upon successful completion of this course, you should be able to
- discuss network programming with Java in general, including some of the history and features that Java brings to network programming.
- type, compile, and execute example Java programs from the textbook that demonstrate key concepts of network programming.
- modify example programs to further demonstrate key concepts of network programming.
- create original programs in Java that demonstrate key concepts of network programming.
- create Java network programs that fulfill specific deliverables and provide significant network capability, as required, to fulfill assignment objectives and deliverables.
- articulate design decisions and create a diary describing learning experiences. (This is an essential component of the course project.)
Evaluation
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:
Activity | Weight |
Assignment 1 | 15% |
Assignment 2 | 15% |
Assignment 3 | 15% |
Assignment 4 (Project) | 25% |
Participation and Reflection | 15% |
Final Exam | 15% |
Total | 100% |
The final examination for this course must be requested in advance and written under the supervision of an AU-approved exam invigilator. Invigilators include either ProctorU or an approved in-person invigilation centre that can accommodate online exams. Students are responsible for payment of any invigilation fees. Information on exam request deadlines, invigilators, and other exam-related questions, can be found at the Exams and grades section of the Calendar.
To learn more about assignments and examinations, please refer to Athabasca University’s online Calendar.
Materials
Physical course materials
The following course materials are included in a course package that will be shipped to your home prior to your course’s start date:
Harold, E. R. (2013). Java network programming (4th ed.). O’Reilly.