Credits and Contact Hours
3 credits, 43 hours
Course Instructor Name
Dr. Mohamad Awad
Textbook
An Introduction to Network Programming with Java, Springer, Jan Graba, 3rd Edition, 2013
Catalog Description
Introduction to the design, architecture, and implementation of client and server programs in the client-server model of computing. Overview of the TCP/IP suite of protocols and some application-specific protocols. Sockets programming, client/server, peer-to-peer, Internet addressing, TCP sockets, UDP sockets. Multithreading and exception handling. File access and database connectivity. Interprocess communication and network programming interfaces. Server architectures. Use of scripting languages in providing client-side and server-side processing in web-based applications. Security issues.
Prerequisite
CpE-356
Specific Goals for the Course
Upon successful completion of this course, students will be able to:
Develop understanding of networking and the client/server paradigm. (Student outcomes: 1, 2)
Implement client-server solutions using TCP/IP protocol suite. (Student outcomes: 1, 2, 6)
Understand the Java process model and Java input/output, and input/output system calls. (Student outcomes: 1, 2)
Understand and use the most widely used network application protocols such as ftp, telnet, ping, etc. to develop distributed applications. (Student outcomes: 1, 2, 6)
Write either connection-oriented or connectionless servers and clients using the Java Sockets API. (Student outcomes: 1, 2)
Handling files. (Student outcomes: 1, 2)
Understand multithreading and its different implementations in Java.
Perform address translation functions in the Sockets API to translate between IP numbers and hostnames. (Student outcomes: 1, 2, 6)
Accessing a remote database connectivity. (Student outcomes: 1, 2)
Topics to Be Covered
Introduction to computer networks and TCP/IP suite of protocols.
Client -- Server Programming in Java.
Synchronization (condition variables, record locking).
Transport layer programming (TCP and UDP Implementation).
I/O multiplexing.
GUI and Network Programming.
Files Handling.
Advanced topics (e.g., Remote Database Connectivity).