Students will learn how to write applications in Java that make use of network programming. This course covers the following topics: Introduction to network programming, Transport Layer Protocols, User Datagram Protocol, Client-Server Model, TCP Sockets, UDP Sockets; SCTP Sockets; Java's input/output system and how it works; Multicast Sockets implementation; client/server implementations; Threads Programming; multi-threaded applications; Multiplexing and De-multiplexing Applications; Implementing Application Protocols; Distributed computing technologies including remote method invocation, plus small project that addresses different departments disciplines.
Intended learning outcomes
Knowledge & understand
The student should know the concepts and foundations of network programming.
To recognize the student to understand all the basic concepts of multithreading programming.
To familiarize the student with understanding all the basic concepts of server and client programming.
The student should know how to write a program that contains threads.
The student should know how to write a program that contains the server and the client.
Mental skills
The student should solve a specific problem by programming networks.
The student solves the problem using threads.
The student should propose solutions using one of the techniques used in network programming.
The student solves the problem using the server and the client.
The student should distinguish the different techniques used in network programming.
Practical & professional skills
The student writes a program to solve a specific problem using network programming.
The student should use packages in programming.
The student should use the server and the client in programming.
The student should apply all the basic concepts of network programming within the laboratory.
The student should perform several integrated projects to implement all the above explained in the course.
Generic and transferable skills
The student should be able to solve problems using network programming.
The student should be able to link packages in programming.
The student should be able to work in a team to solve, apply and implement a problem.
The student should be able to deliver several integrated projects without errors and satisfactory results.
Teaching and learning methods
Theoretical lectures in the classroom
Practical lectures inside the laboratory with the help of teaching assistants in the college.
A panel discussion between students and in the presence of the professor to obtain new opinions and ideas.
Assignments and tests to motivate students to reach the best way to solve and discuss them with the professor.