CMSC 433
Programming Language Technologies and Paradigms
|
Who |
|
Hours |
|
|
Instructor
|
Michael Hicks
|
AVW 4131
|
TuWTh 10:30-11:30am
|
|
Teaching Assistant
|
James Rose (rosejr@cs)
|
AVW 1151
|
MW 2-4pm
|
|
|
|
|
|
|
Where |
CSI 1121
|
When |
TuTh 3:30- 4:45pm
|
|
News |
csd.cmsc433
|
|
|
Syllabus / Readings /
Exams / Lectures / Projects
The goal of this course is to provide the skills needed to deconstruct relevant
programming problems and solve them in an object-oriented style. To do this,
we teach the following two interrelated topics:
-
Methods and styles of (sequential) object-oriented (OO) programming.
Much of our focus will be on abstraction, particularly
in the use of interfaces and design patterns so as to improve
code reusability and reliability. We will be using the Java programming
language exclusively. The homework projects will build on each other
so as to develop your skills in using these techniques.
-
Principles and practice of concurrent OO programming. We will cover the
two main forms of concurrency: shared-memory multi-threading (as provided
by the Java Thread class), and distributed message passing (as
provided, along with more features, by Java Remote Method Invocation (RMI)).
While we reserve the right to change the projects at any time, we intend the students
to build, throughout the semester, a sophisticated server. As such, they will also learn
a fair amount about network programming in Java.
|