Personal tools
You are here: Home Teaching Comp 437 Course Description
Document Actions

Course Description

Brief description of this course

Comp 337/437: Introduction to Concurrency

(Please see course page for current textbook information!)

Prerequisites: Data Abstraction and Object-Oriented Programming (Comp
272) is required.

Required texts:

Concurrent Programming in Java: Design Principles and Patterns (2nd edition)
Doug Lea
ISBN 0-201-31009-0
Publisher: Addison-Wesley
Copyright: 2000

The Sun Java Tutorial: Creating a GUI with JFC/Swing (online)

Description:

The Java programming language has taken the world by storm, fueled by
the recent explosion of the Internet and growing public exposure to
other object-oriented programming languages such as C++ and Smalltalk.
Since many real-life software systems require some form of
concurrency, Java's built-in support for multi-threading makes this
language a natural choice for the development of concurrent systems.

Software design patterns describe families of successful solutions to
recurring problems that arise within a particular context. Taking a
design pattern approach, this course covers techniques for designing
and implementing Java software that solves common concurrent
programming challenges.

Concretely, the course uses Triveni, a Java-based component model
developed at Loyola. Triveni combines threads and events in the
context of object-oriented programming and supports the modular design
of concurrent software.

The course first introduces the Java programming language and Java
Swing, an event-based framework for graphical user interfaces. The
course then studies the fundamentals of concurrency. The rest of the
course covers concurrent programming using Triveni and Java threads.
Finally, the course discusses applications of concurrency such as web
programming with Java Servlets and component-based programming with
Java Beans.

There will be four substantial programming projects in the Java
language, including an interactive game played over the web using Java
Remote Method Invocation (RMI). There will be several quizzes, one or
more in-class exams, and a final exam covering the concepts and
techniques studied in this course.