|Mon, Wed, Fri||10:00 - 11:00 am|
|Tues, Thurs||2:00 - 3:00 pm|
If you cannot come during scheduled office hours, please contact me to set up an appointment.
|2 Midterm Exams||35%|
|Programming Projects & Homework||35%|
You are responsible for all material discussed in class and in the reading assignments. Attendance is particularly important, and class participation is encouraged. The written homework assignments are expected to be individual efforts; however, you may work on the programming projects in teams of two when the assignment clearly indicates this option. You are encouraged to learn from each other and to help each other understand the concepts, but be ethical -- do not copy or edit a program which isn't yours or allow another student to write or debug your program for you.
All assignments are due at the beginning of class on the given due date. Late homework will be accepted up to the day on which the homework is graded and returned, but there will be a reduction in the grade proportional to the number of days late. You are strongly urged to see the instructor before any problems arise.
|Object-Oriented Programming:||abstraction, interface vs. implementation, encapsulation, polymorphism|
|Design Patterns & UML:||model-view-controller architecture (MVC), delegate-model architecture, observer, factory, abstract factory, builder, command, adapter, iterator|
|Basics:||Java core APIs, primitive types, Array, String, Collections, Packages and access modifiers, javadoc, run-time type identification (RTTI)|
|Abstract Classes, Interfaces and Inner Classes:||cloning, anonymous inner classes|
|Event Handling:||event models, event listeners and sources, registering events, adapter classes|
|Exception Handling:||try/catch, propagating vs. handling exceptions|
|Java Foundation Classes (JFC):||Swing, GUI design, Components, Containers|
|Input/Output:||I/O streams, files, serialization, tokenizer, compression|
|Multithreading:||synchronization, scheduling & priorities|
|Networking:||client/server, sockets, RMI|
|Java Virtual Machine (JVM):||Java Software Development Kit (JDK), classpath, Java Archives (JAR), Forte & JBuilder IDEs.|