CS242: Advanced Programming Concepts in JAVA
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,
If you cannot come during scheduled office hours, please contact me to set up an appointment.
- 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.
- Students will learn the Java programming language and core APIs,
the Java Virtual Machine (JVM), and Java Foundation Classes (JFC/Swing).
Beginning Java2 SDK 1.4 Edition
by Ivor Horton, Wrox Press, March 2002, ISBN 1861005695.
A tutorial introduction to Java and the Java 2 platform API. (Required)
Effective Java Programming Language Guide,
by Joshua Bloch, Sun Microsystems, Inc., 2001, ISBN 0201310058.
How to make the most effective use of the Java programming language and its fundamental libraries. (Required)
The Java Tutorial
An excellent collection of tutorials from SUN Microsystems
Advanced Java2 Platform: How to Program, by Deitel, Deitel & Santry, Prentice-Hall, 2002,
Advanced topics in Java2. (Recommended)
Additional Course Information:
All announcements, schedule updates, handouts, etc., will be posted on the
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
- Course Objective 1: Students will demonstrate their mastery of advanced
programming concepts and programming techniques in the exams, homeworks and
- Course Objective 2: Java will be used as the programming language
throughout the course for all homework and programs.
| Object-Oriented Programming:
|| abstraction, interface vs. implementation, encapsulation,
| Design Patterns & UML:
|| model-view-controller architecture (MVC),
Client-Server (Servlets, JSP).
|| 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
|| I/O streams, files, serialization, tokenizer, compression
|| synchronization, scheduling & priorities
|| client/server, sockets, RMI
| Java Virtual Machine (JVM):
|| Java Software Development Kit (JDK), classpath, Java Archives (JAR), Forte & JBuilder IDEs.