CS242: Advanced Programming Concepts in JAVA
Fall 2002

Instructor & Office Hours:

Mon, Wed, Thurs, Fri 1:00 - 2:00 pm
Tues 2:00 - 3:00 pm

     Prof. Janice T. Searleman
     375 Science Center, 268-2377,
     email: jets@clarkson.edu

If you cannot come during scheduled office hours, please contact me to set up an appointment.

Course Objectives:

  1. Students will learn advanced programming concepts and modern programming techniques. These will include object-oriented design and design patterns, graphical user interfaces (GUIs), event models, exception handling, multithreading, network programming and the client/server paradigm.

  2. Students will learn the Java programming language and core APIs, the Java Virtual Machine (JVM), and Java Foundation Classes (JFC/Swing).


Additional Course Information:

All announcements, schedule updates, handouts, etc., will be posted on the CS242 homepage (http://www.clarkson.edu/~jets/cs242/fa02).

Grading Policy:

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.
2 Midterm Exams 35%
Final Exam 30%
Programming Projects & Homework 35%

Tentative dates for the exams are: 10/03 and 11/14. Students missing an exam will receive a grade of 0 for the exam unless they have an acceptable university excuse or have made prior arrangements with the instructor. All students are required to take the final exam (no A or B exemptions).

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.

Course Outcomes:

Course Outline:

Object-Oriented Programming: abstraction, interface vs. implementation, encapsulation, polymorphism
Design Patterns & UML: model-view-controller architecture (MVC), Client-Server (Servlets, JSP).
Basics: Java core APIs, primitive types, Array, String, Collections, Packages and access modifiers, javadoc
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.