|
|
Hours
Class meets TTh 11:00--12:15 in CSI 2117.
Wait list
At my discretion.
Notes
Changes (correcting errors, clarifying ambiguities, etc) to the web pages, projects,
due dates, etc. will be placed on the recent
changes web page.
Newsgroup
Class newsgroup is csd.cmsc433 - only visible from within UMD
Staff
| Name |
Email |
Phone |
Office |
Office Hours |
| Adm Porter |
aporter@cs.umd.edu |
x52702 |
AVW 4125 |
TWTh
2-3 |
| Hyoungjune Yi |
aster@cs.umd.edu |
|
AVW
4132 |
M 2-4,
W 3-5 |
Goals
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.
Tentative schedule of topics
- Java (1 week)
- Basics
- Object oriented programming in Java
- Libraries
- Exceptions
- Inner classes
- Programming Techniques and Tools (1 week)
- Logging
- Debugging
- Exceptions
- Assertions/Invariants
- Testing
- Dr. Java
- Object-Oriented Design and Design Patterns (3 weeks)
- Object invariants
- Class design
- UML
- Design patterns
- Intro to Concurrency (1 week)
- Threads (2 weeks)
- Java threads
- Java memory model
- Design Forces (safety, liveness/deadlock, performance, reusability)
- Synchronization Strategies
- Wait and notify
- Midterm: Java, OO design, threads
- Concurrent Programming in Java (4 weeks)
- Distributed Programming (2 weeks)
- RPC
- Java RMI
- Marshalling, stubs and proxies
- Final Exam
Last updated Wednesday, 18 September 2002 02:31 PM
|