CSC220: Computer Programming II
Fall 2009
Welcome to the home page of CSC220 Computer Programming II for Fall 2009.
This page provides information about the course contents
and the course work.
Textbook:
The course will be taught using the textbook:
Objects, Abstraction, Data Structures and Design Using Java Version 5.0 by
Koffman and Wolfgang.
You can get information on the textbook from this
Student Companion page.
The course objective is to deepening your understanding of fundamentals of
programming in Java object-oriented programming and in essential data
structures.
Class Activities and Grading:
Grading is based on the following:
- Lab Assignments.
There will be twelve regular lab assignments.
Ideally, the two-hour lab session associated with an assignment will
get you started and, if necessary, some additional programming work
after the session will make you complete the work.
- Quizzes.
There will be twelve in-class quizzes covering Chapters 1 - 12
of the textbook.
The purpose of these quizzes are for the purpose of assuring/assessing
your understanding of some of important programming concepts.
- Projects.
There will be two projects that will require a little more time
than an ordinary lab.
The weights given to these are:
- Labs: 50%
- Quizzes: 20%
- Projects: 15% each
Lab assignments
The TA will instruct how to create a directory corresponding
to each lab in your lab account.
The assignments will be collected by a program from
each such directory.
Submission via other means (email, disks, etc.)
will not be accepted.
Collaboration Policy.
Students may discuss the nature of the questions in the
lab assignments and the project with other classmates,
but sharing of a code is strictly prohibited.
Course Schedule (Tentative)
- Week 1
- Wednesday, August 26.
No Lab.
- Thursday, August 27
Course Introduction. Discussion of class procedures.
Lecture on Chapter 1: Introduction to Software Design
- Week 2
- Tuesday, September 1
Lecture on Chapter 1 (cont'd).
- Wednesday, September 2
Lab 0. Refresh your memory
Mandatory in-person lab session
- Thursday, September 3
Lecture on Chapter 2: Program Correctness and Efficiency
- Week 3
- Tuesday, September 8
Lecture on Chapter 2 (cont'd).
- Wednesday, September 9
Lab 1. Topic: Interfaces
- Thursday, September 10
Lecture on Chapter 3: Inheritance and Class Hierarchies
- Week 4
- Tuesday, September 15
Lecture on Chapter 3 (cont'd)
- Wednesday, September 16
Lab 2. Topic: Program Testing
- Thursday, September 17
Lecture on Chapter 4: Lists and the Collection
Interface
- Week 5
- Week 6
- Tuesday, September 29
Lecture on Chapter 5 (cont'd)
- Wednesday, September 30
Lab 4. Topic: Linked Lists
- Thursday, October 1
Lecture on Chapter 6: Queues
- Week 7
- Tuesday, October 6
Lecture on Chapter 7: Recursion
- Wednesday, October 7
Lab 5. Topic: Stack/Queue
- Thursday, October 8
Lecture on Chapter 7 (cont'd)
- Week 8
- Week 9
- Tuesday, October 20
Lecture on Chapter 8: Trees
- Wednesday, October 21
Lab 7. Topic: Recursion
- Thursday, October 22
Lecture on Chapter 8 (cont'd)
- Week 10
- Week 11
- Tuesday, November 3
Lecture on Chapter 9: Sets and Maps
- Wednesday, November 4
Lab 8. Topic: Trees
- Thursday, November 5
Lecture on Chapter 9 (cont'd)
- Week 12
- Tuesday, November 10
Lecture on Chapter 10: Sorting
- Wednesday, November 11
Lab 9. Topic: Maps
- Thursday, November 12
Lecture on Chapter 10 (cont'd)
- Week 13
- Tuesday, November 17
Lecture on Chapter 11: Self-Balancing Search Trees
- Wednesday, November 18
Lab 10. Topic: Sorting
- Thursday, November 19
Lecture on Chapter 11 (cont'd)
- Week 14
- Tuesday, November 24
Lecture on Chapter 12: Graphs
- Wednesday, November 25
Project 2 Lab.
Week 15
- Tuesday, December 1
Project 2 week
- Wednesday, December 2
-
Project 2 Lab.
- Thursday, December 3
Project 2 week