CS 122-20293 Computer Programming II
IS 323-21957 Object-Oriented Programming
Syllabus (Spring 2009)

 

Instructor:
Zheng Li, Assistant Professor
Office:
163 William Street, 2nd Floor, Room 220
Phone:
(212)346-1054 (Office)
Email:
zli@pace.edu
Office Hours:
Tuesday 1:45pm - 5:45pm, Wednesday 4:15pm-5:15pm
Classroom:
1 Pace Plaza E315
Class Times:
Tuesday/Thursday 11:15 am - 1:10 pm

Course Description

This course is the second course on computer programming using Java language. It focuses on the following topics: classes and objects; interfaces; abstract classes; inheritance and polymorphism; exception handling; recursion; the mechanics of linked lists of objects and the idea of collection and its underlying data structure. We will learn to solve problems for which these are the primary tools.

Course Objectives and Outcomes

Objective 1: Students will acquire the ability to declare and manage arrays of objects and the ability to declare and manage two-dimensional arrays.
Outcome 1: Students will be able to explain that creating an array of objects does not create objects apart from the array itself (i.e. each element is initialized to null ).
Outcome 2: Students will be versed in the mechanics of calling methods on objects accessed by way of an array name and a subscript. Students will also be able to manipulate the objects within the array (insertion, deletion, searching, sorting).

Objective 2: Students will obtain a preliminary understanding of list processing, of recursion, and of big-Oh. These are topics that will be covered more extensively in later courses.
Outcome 1: Students will be able to append nodes onto the front or the rear of a singly linked list, delete nodes from the front of the list, and traverse the list in order to print something from each node.
Outcome 2: Students will learn about recursion (methods containing one recursive call), the stack of local referencing environments, work "on the way up" (i.e. the iteration of code before the recursive activation), and work "on the way down." They will be able to desk-check recursive methods by sketching the stack of activations and returns.
Outcome 3: Students will be able to depict the mechanism of the binary search and explain why no more than O(lgN) “compares” are needed to locate an object (or determine that it is not present).

Objective 3: Students will learn the principles for managing objects, including the nature of a reference variable (stores the address of an object); that assignment of one reference to another creates an alias, not a copy; that an object as an argument passed by value is mutable; and the difference between == and equals() as applied to objects.
Outcome: Students will be able to explain, illustrate, and diagram the difference between a reference and a primitive, and they will be able to apply this understanding in programming.

Objective 4: Students will learn to construct class derivation hierarchies. This includes the inheritance of public members from ancestor classes, augmenting an extending class with incremental fields and methods, method overriding, the difference between overriding and overloading, the principles of constructor chaining, polymorphism, and abstract classes.
Outcome: Students will be able to explain and illustrate how polymorphism enables "old code" to manage new types of objects as well as able to describe and exemplify the other programming constructs used in assembling classes into object-oriented software systems.

Objective 5: Students will learn about the interface construct and how to use an graphical user interface (GUI) type for implementing swing listeners.
Outcome 1: Students will be able to compare and contrast the abstract classes and interfaces.
Outcome 2: Students will be able to specify an interface , declare classes that implement that interface, write code in accordance with the rules for interface usage, and describe and exemplify the value of this construct.
Outcome 3: Students will garner experience with event-driven programming. For instance, they will be able to implement a JButton , declare a class that implements the ActionListener interface, and call addActionListener() on the JButton to register “an ActionListener” object for notification of button click events.

Objective 6: Students will acquire the ability for exception handling. This includes the try/catch/finally statement, extending the Exception class for checked exceptions and the RuntimeException class for unchecked exceptions, the throw clause for throwing an Exception object, the propagation of exceptions, and the throws clause on method headings for propagating checked exceptions.
Outcome: Students will be able to write programs that recover from exceptions thrown by Java as well as throw and recover from exceptions of their own declaration.

Objective 7: Students will acquire communication experiences and skills.
Outcome 1: Each student will make a presentation on a technical topic pitched to a non-technical audience.
Outcome 2: Each student will make a presentation on a technical topic pitched to a technical audience.

Blackboard: http://blackboard.pace.edu

Blackboard site is where all the course contents including weekly lecture notes and assignments are posted. All course related announcements will be posted on the site. You can also find the source codes from the textbook, the Powerpoint slides for all chapters, the lab manuals (and the related source codes) for all chapters, and other course materials on the site. Unless specified, students are expected to submit all their assignments via the site. Students are also encouraged to communicate on the discussion forum.

Prerequisites

Students who take this course must have taken a prior programming course, such as CS121. Basic programming skills are required, such as the a bility to specify classes in Java, including constructor overloading, private instance variables, public instance methods, class variables, and class methods; ability to manage one-dimensional arrays of types int , double , and String, etc. Students will use Eclipse as the Java IDE.

Textbbook

John Lewis and William Loftus, Java Software Solutions: Foundations of Program Design, 6th Edition, Addison Wesley, 2009, ISBN-10: 0321532058
ISBN-13: 9780321532053.

Course Assignments, Exams, Project and Grading

Class schedule and assignments are listed in the table below. (This is the tentative schedule. The assignments are subject to change.) There will be homework assignments, two exams, two presentations and one project for students to work on during the semester. The course will be graded according to the total grade points a student accumulated in the following proportion.

Exam: There will be two exams: midterm exam (15%) and final exam (15%). Both are close-book and close-notes exams.
Homework:
There will be 5 chapter-based homework assignments (7% each, 35% total) .
Presentation: There will be two student presentations (5% each, 10% total). The details will be explained later.
Project: You will be asked to finish an individule project (15%). Details of the project will be explained in a separate document.
Attendance/participation: Students are expected to attend all the class sessions and fully participate in the class activities (10%). You are responsible for all the work done in the class that is missed.

In order to receive a grade you must complete all assigned homeworks and projects, and take both exams. The following assessments will be used to determine your grade:

Tasks
Percentage
Midterm Exam
15%
Final Exam
15%
Homework
35%
Presentation
10%
Term Project
15%
Attendance/Participation
10%
Total
100%

Grades will be based on the following percentages:

Rounded %

0 - 59

60 - 69

70 - 76

77 - 79

80 - 82

83 - 86

87 - 89

90 - 92

93 - 100

Grade Points

0.0

1.0

2.0

2.34

2.67

3.0

3.34

3.67

4.0

Letter Grade

F

D

C

C+

B-

B

B+

A-

A

Policy

If a student believes that he/she has a disability that may affect academic performance, that student should notify Pace University’s Counseling Center for assessment and advisement. If a student tells the instructor that he/she has a disability, the instructor is bound by University policy to notify the appropriate University representative of such disability.

Students must accept the responsibility to be honest and to request ethical standards in meeting their academic requirements. The Academic Integrity policy of Pace University states that it is unethical to plagiarize, to cheat on and examination, or to turn in work that is not yours. That means you CANNOT COPY WORK FROM SOMEONE ELSE’S DISK TO YOUR OWN OR PRINT TWO COPIES OF THE SAME ASSSIGNMENT TO BE HANDED IN BY TWO INDIVIDUALS. Each student must do his/her own work. Students who fail to meet the responsibility for academic integrity subject themselves to sanctions ranging from a reduction in grade or failure in the assignment in which the offense occurred to suspension or dismissal fro the University. The instructor reserves the right to challenge work that feel has not been completed independently.

Attribution of all sources that you use is required. You may search the Web for some interesting images, video clips, scripts and so on to use or modify to suit your own project. However, in these cases, you must include an attribution page with a note and a link to the original source.

Schedule

CS 122/IS 323 Class Schedule (Spring 2009)

Session Date Content Reading
Assignment/Exam
Week 1

22-Jan

Course overview: Syllabus
[Review] Java overview (1): Data and expressions

chap2
Install JDK1.6.0.11 and Eclipse 3.4.1
Self-introduction on Blackboard
Week 2

27-Jan

[Review] Java overview(2): conditional and loops

chap5
Prepare 10~15 minutes in-class presentation (with PowerPoint slides) for next week
29-Jan
[Review] Java overview (3): Using classes and object
chap3
-
Week 3 3-Feb
Student presentation 1: Java features and application areas--
What are the characteristics&applications areas of Java , why is it powerful and useful?
research online materials
-
5-Feb
Student presentation 1 (continued)
-
-
Week 4 10-Feb
[Review] Java overview (4): Writing classes
chap4
-
12-Feb
Chapter 7--Arrays and two-dimentional array
chap7.1~7.7
-
Week 5 17-Feb
Chapter 8--Inheritance: Creating subclasses, overriding methods,
Hand-on coding in-class: In the Labs: "Exploring Inheritance".
Chapter 8.1~8.2
-
19-Feb
Chapter 8--Class hierarchies, Visibility
Hand-on coding in-class
Chapter 8.4~8.5
Do programming problems from page 482 of the text: PP 8.13.
Week 6 24-Feb
Interfaces, abstract classes, Enums, and other types
Hand-on coding in-class
Chapter 6
-
26-Feb
Interfaces, abstract classes, Enums, and other types
Hand-on coding in-class page 532 PP 9.1, PP 9.2, PP 9.3.
Chapter 8.3
-
Week 7 3-Mar
Chapter 9--Polymorphism (1): Late binding, Polymorphism via Inheritance/Interfaces
Chapter 9.1 to 9.6
-
5-Mar
Chapter 9--Polymorphism (2): Sorting and Searching
Chapter 9.1 to 9.6
In the Labs "Another Type of Employee", "Painting Shapes".
Week 8 10-Mar
Review, in-class exercises
-
-
12-Mar
Midterm exam (covering Inheritance and Polymorphism)
-
-
Week 9 24-Mar

GUI Programming: Java AWT and Swing overview with examples
Hand-on coding in-class: Modify the GUI coding samples

Lecture notes,
Online tutorials

-

26-Mar

GUI Programming: Java applet
Hand-on coding in-class: applet vs. applications

Lecture notes,
Online tutorials

-

Week 10 31-Mar
Chapter 10--Exceptions: Try-catch-finally statement
Hand-on exercise in-class
Chapter 10.1~10.3
-
2-Apr
Chapter 10--Exceptions: Exception propagation, Exception hierarchy, I/O Exception
Hand-on exercise in-class: Do Exercises 10.2 and 10.3 on page 580
Chapter 10.4~10.6
Do Programming Project PP 10.1 and PP 10.2 on page 580.
Week 11 7-Apr
Chapter 11--Recursion: Recursive thinking, Recursive Programming, Recursion in Graphics, Using Recursion
Hand-on coding in-class: In the Lab: "Computing Powers"
Chapter 11.1~11.4
Do Programming Project 11.9 on page 614.
9-Apr
Passover day, No class
-
-
Week 12 14-Apr

Student presentation 2: Advanced Java programming
Pick your own topic on I/O, JAR, Security, 2D Grawing, JDBC etc.

-
Prepare 10~15 minutes in-class presentation (with PowerPoint slides)
16-Apr

Student presentation 2: (continued)

-
-
Week 13 21-Apr
Chapter 12--Collections
Collections and Data Structure, Dynamic Representions
In-class exercise: Do Exercises 12.6 and 12.8 on page 638.
Chapter 12.1~12.2
Do Programming Project 12.2 on page 639.
23-Apr
Chapter 12--Collections
Linear vs. Non-Linear Structure, Stack, Queue, The Java Collections API
Chapter 12.3~12.5
-
Week 14 28-Apr
Miscellaneous topics and review
-
-
30-Apr
Miscellaneous topics and review
-
-
Week 15 5-May
Final exam (covering Exception, Recursion and Collections)
-
-
7-May
Final proejct due
-
-


Other Resources:

Download the Java SE Development Kit (JDK) 6 Update 11: http://java.sun.com/javase/downloads/index.jsp
Access/Download the Java SE 6 Documentation: http://java.sun.com/javase/6/docs/
Download Eclipse Classic 3.4.1 (151 MB): http://www.eclipse.org/downloads/
Access the online Java Tutorial: http://java.sun.com/docs/books/tutorial/
Download the offline Java Tutorial: http://java.sun.com/docs/books/tutorial/information/download.html