Topics in Concurrent and Distributed Computing

Vijay Garg

Instructor: Prof. Vijay Garg ; Office: ACES 5.436; Phone: 471-9424 ; e-mail: garg@ece.utexas.edu;
URL: http://www.ece.utexas.edu/~garg

Prerequisites: Graduate standing

Textbook : 1. Concurrent and Distributed Computing in Java by Vijay K. Garg, Wiley & Sons, 2004.

2. Concurrent Programming in Java (2nd Edition) by Doug Lea

All students registered for this course will be given both of these books.

Course Contents: This course is an individual study course designed for students to learn concurrent and distributed programming aspects of Java. This course does not have any overlap with Distributed Systems course offered in Fall 2006 which is based around principles and algorithms in Distributed Systems.

This course has two parts. The first part covers the basics of concurrent and distributed programming in Java. The second part consists of more advanced and current topics in distributed computing: grid computing, peer-to-peer computing, and collaborative software, sensor networks, ad-hoc networks, model checking Java programs.

In the first part, the students will be expected to learn the following topics:

1. Multithreaded Programming in Java: threads, semaphores, monitors, wait and notify

2. Communicating Sequential Processes (CSP) constructs

3. Java util.concurrent library

4. Lock-free and Wait-free synchronization in Java

5. Design Principles and Patterns for Concurrent Programming

6. Networking in Java using UDP/TCP Sockets,

The first part of the course requires students to read and understand the first six chapters of the book by Garg and all four chapters of the book by Lea. The book by Lea is especially useful for design patterns of concurrent programming.
I will provide with some sample programming assignments which students can use to test their learning. These assignments will only serve as self-examination tools and will not be graded.

The second part of the course will require students to write a term paper on one of the current topics in distributed systems such as:

1. Peer-to-peer computing

2. Grid computing

3. Collaborative software

4. Sensor networks

5. Ad-hoc networks

6. Model checking Multithreaded/Distributed Java programs

7. Web Services

8. Distributed Simulation

9. Network Security

The students may choose other topic as well as long as it deals with concurrent and distributed aspects of software systems. The term paper may be done individually or in a group of 2 team members. The term paper should be typed and at most twelve pages long. An optional appendix may be attached if it is important for understanding the paper.

Deadline to submit the final Term Paper: August 4

Detailed Schedule

The detailed schedule for the class is available at http://www.ece.utexas.edu/~garg/topic1Schedule.html

Disabilities statement: "The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259, 471-4641 TTY."