CS242 ADVANCED PROGRAMMING CONCEPTS IN JAVA
FALL 2010

 

Lecturer: James F. Lynch
Office: SC-381
Office hours: M 11:30–12:30 (note the change), F 9:15AM–11:15AM, W 10:15AM–11:15AM
Telephone: 268-2374
email: jlynch@clarkson.edu

Required Text:
Effective Java
     by Joshua Bloch
     Prentice Hall, ISBN 978-0321356680
     Book Homepage

The following text is also good, but it’s not required. 
Suggested Text: Ivor Horton's Beginning Java 2, JDK 5 Edition
     by Ivor Horton
     Wiley Publishing, Inc, ISBN 978-0764568749
     Book Homepage
     The text is available online at Books 24x7 through the Clarkson Library.
     It is also available for ACM members at the ACM Professional Development Centre

Other sources of useful information:
Online Resources
Code Conventions
Code Examples

The following is not a text.  It’s an outstanding online tutorial for learning Java.
Java Tutorials

Lecture hours: MW 2:00PM–2:50PM, SC–348
Labs: Section 10, F 2:00PM–2:50PM, SC–334
          Section 20, F 3:00PM–3:50PM, SC–334
          Clarkson ITL Schedule (The lab is usually open evenings and weekends, but not always.  You can check by calling ext. 2346 to see if anyone’s there.)


OBJECTIVES

The course will teach students essential programming methodologies for designing and writing interactive, graphics-based applications.  Topics will include object-oriented programming, graphical user interfaces, exception handling, multithreading, and networking.


ASSESSMENT

Grading will be based on homework assignments and exams. Homework assignments will consist of programming projects that will also serve as preparation for the exams.

 

You may do the lab assignments individually or with a partner.  You may work individually or with different partners on different assignments.

 

Exams will be closed book and closed notes, except that you may bring one standard 8½" × 11" paper with your notes on it.

 

Of course, everyone is encouraged to ask questions and discuss the lab assignments either in the lab or outside of class, but the work that you submit should be your own.  (Or if you are working with a partner, the work should be yours and your partner’s, and not anyone else’s.)  Plagiarism on a lab assignment or exam will result in a zero for the first infraction, and an F for the course on any succeeding infraction.

 

Programming projects

39%

Three hourly exams

36%

Final exam

25%

 

There will be 11 programming projects.  Each one will be assigned on Monday and due the following Monday, except for the weeks of the fall break and Thanksgiving.  The lab class on the Friday before the due date will be an opportunity to work on the lab and ask questions.  All labs will be equally weighted, but your three lowest lab grades will be dropped when your course grade is computed.  Late labs will not be accepted.


HOURLY EXAM DATES

Wednesday, September 15
Wednesday, October 13
Wednesday, November 10


FINAL EXAM SCHEDULE

Thursday, December 9, 3:15 PM, SN 177

 


PROGRAMMING PROJECTS

Lab

Due Date

Lab 1

August 30

Lab 2

September 6

Lab 3

September 20

Lab 4

September 29

Lab 5

October 11

Lab 6

October 18

Lab 7

October 25

Lab 8

November 8

Lab 9

November 22

Lab 10

December 3



SYLLABUS


Week of


Topics


Text


Java Tutorial


August      23

Introduction, overview of course, basics of Java

Chapter 1

Getting Started
Language Basics


                 30

Object basics

Chapter 2: Items 1–6
Chapter 3: Items 8, 9

Numbers and Strings
Classes and Objects


September   6

Classes
 

Chapter 4: Items 18, 19

Classes and Objects
Interfaces and Inheritance


                 13

Classes
 
Exam 1

Chapter 4: Items 13, 14

Packages


                 20

Exceptions

Chapter 9: Items 57, 58, 59, 60, 65

Exceptions


                 27

Stream I/O

I/O Streams


October      4

File I/O

File I/O


                 11

File I/O
Exam 2

 


                 18

Serialization
Generic Types
Collections

Chapter 11: Items 74, 75, 76
Chapter 5: Items 23, 25, 26, 27

Generics
Collections


                 25

Threads

Chapter 10: Items 66, 67

Concurrency


November   1

GUI Programming: Windows
GUI Programming: Event Handling

Swing


                   8

GUI Programming: Event Handling
 Exam 3

 


                 15

GUI Programming: Graphics

 


                 22

GUI Programming: Graphics

 


November 29

GUI Programming: Advanced Graphics
Review