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
Session | Date | Content | Reading | Assignment/Exam |
---|---|---|---|---|
Week 1 |
22-Jan |
Course overview: Syllabus |
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 |
Lecture notes, |
- |
26-Mar | GUI Programming:
Java applet |
Lecture notes, |
- |
|
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 |
- |
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