CS242: Advanced Programming Concepts in JAVA

Syllabus
Fall 2005

Instructor:

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

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).

Required Textbooks:

On-line References:

Additional Course Information:

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

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 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 Thursday, 10/13 and Tuesday, 11/15 (both exams will be scheduled in the evening). 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.

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 Content:

Object-Oriented Programming: abstraction, interface vs. implementation, encapsulation, polymorphism
Design Patterns, UML, Program Design: model-view-controller architecture (MVC), Client-Server (Servlets, JSP), testing strategies (unit testing).
Java Basics: Java core APIs, primitive types, Array, String, Collections, Packages and access modifiers, javadoc, Java Virtual Machine (JVM), Java Software Development Kit (JDK), classpath, Java Archives (JAR).
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