CS 368: Distributed Computing
Course Description:
This course provides an overview of distributed computing; that is, programs that operate
on multiple computers that are connected by a network. The course will be programming intensive,
and will include (but not be limited to) course topics such as: the basic client / server programming model,
the sockets programming API, client and server development in C and Java, remote procedure calls (RPC), remote
method Invocation (Java), connectionless vs. connection-oriented clients and servers, and multi-threaded servers.
Prerequisite: CS 321 and CS 365. 3:0:3.
Learning Outcomes:
Upon completion of this course, the student should be able to:
- Explain and apply basic distributed computing concepts including (but not limited to):
- Client-server paradigm
- IP addresses, ports, and sockets
- Connection oriented versus connectionless communications
- Multi-threaded servers and/or clients
-
Explain and apply several common distributed computing applications in depth.
For example, explain one or more of these applications in depth:
- Telnet
- FTP
- NFS
- HTTP web server
-
Explain and apply to distributed computing these protocol concepts:
- UDP / TCP protocols
- IP protocol
- Reliable data transfer
- Flow control
- Congestion control
-
Explain and apply one or more of these alternative distributed computing approaches:
- Remote Procedure Calls
- Remote Method Invocation (Java)
- Java Database Connectivity
Assessment Measures:
| Assessment Tool |
Linkage to Learning Outcome #: |
| Homework Assignments: |
|
| Assign a sufficient amount of homework such
that all of the above objectives are covered.
|
All |
|
For each homework assignment, include short answer questions that require
the student to apply the above objectives.
|
|
|
For certain homework assignments, the student will be asked to solve problem(s)
by applying appropriate client-server networking techniques.
|
|
Optional Projects (The teacher may include these projects at his/her discretion):
Write a client and server application using Java's or C's socket classes. The student
must demonstrate proper functionality in his/her program.
|
|
Implement a program that uses some of the following:
remote procedure calls, Java's remote method invocation, and Java's database connectivity.
|
|
| |
|
| Exams: |
|
Include one or more of:
short answer, multiple choice, mathematical calculation problems.
|
|
|
Given a problem description, apply an appropriate client-server technique.
|
|
Textbooks
To view the approved textbook list, click
here.