ITEC 1630 Object-Oriented Programming, Section M,
Winter 2007
School of Information Technology,
York University
Course Description
This is a continuation of problem solving and algorithm development in
the context of object-oriented programming techniques. Taught in
Java, topics include inheritance, polymorphism, interfaces, events,
threads. Object-oriented design principles will be presented in
conjunction with applications in graphics and user interfaces.
What's new:
- Apr 24: Unofficial grades are available
here.
- Apr 11: Solutions to last term's final exam are available
here.
- Apr 4: The final exam (for all sections of ITEC 1630) will be
on Wednesday April 11 7pm-10pm in CSE A.
It covers all the material we have seen since the beginning of the term,
but the main focus is on the material seen since the midterm test.
The exam is closed book, but we will provide you with the parts of
the Java library API that you need to answer the questions.
The final exam from last term is here;
but note that it contains questions about data structures,
which were not covered this term.
- Mar 29: My office hour on Monday April 2 is cancelled.
Lecture notes for weeks 9 to 12 have been added.
- Mar 20: Tutorial hours for assignment 3 are indicated below.
-
Mar 12: Assignment 3 is now out.
It is due Monday April 2 at 7pm.
- Mar 1: The final exam schedule has been announced; our final exam will be
on Wednesday April 11 7pm-10pm in CSE A.
- Feb 27: Tutorial hours for assignment 2 are indicated below.
-
Assignment 2 is now out.
It is due Monday March 12 at 7pm.
- Feb 13: We have scheduled additional lab hours on February 15,
5:30pm to 7:30pm with our TA Chris Cudmore. Also some students have asked
how enumeration classes like CallZone work. There is some
discussion of these in the Horstmann textbook on pp. 212-213 and 505-506.
- Feb 8: I will have a special office hour on Friday Feb 9 from 1pm to 2pm.
I have added an example to the lecture notes below on using the
getSource method.
- Feb 7: The midterm test is coming up on Sunday February
11 from noon to 2pm in ACW 206. It covers all the material we
have seen since the beginning of the term, including the material in
Horstmann Chapter 5, 11, 12, 13, and 14. The test is closed book, but
we will provide you with the parts of the Java library API that you
need to answer the questions. There is a sample midterm from a
previous term here.
The solutions are available
here.
-
Assignment 1 is now out.
It is due Monday February 19 at 7pm.
- Jan 25: Assignment 1 is now out.
It is due Monday February 19 at 7pm.
Tutorial hours for this are indicated below. Also, the lecture notes for
weeks 3-4 have been updated.
- Jan 23: The midterm test has been rescheduled for Sunday
February 11 from noon to 2pm in ACW 206 (it will be a common
midterm test for all sections of ITEC 1630).
-
Jan. 18: Lecture notes for week 3 have been updated. Office hours changed.
See below.
-
Jan. 8: added section on Readings and Lecture Transparencies; see below.
Instructor
Prof. Yves Lespérance
Office: CSEB 3052A
Tel: 736-2100 ext. 70146
Email: lesperan "at" cse.yorku.ca
Lectures
Tuesday and Thursday from 14:30 to 16:00 in CLH E.
Instructor Office Hours
Monday 13:30-14:30 and Tuesday and Thursday 16:30-17:30.
TA
Chris Cudmore
Email: cudmore "at" yorku.ca
Tutorial hours
All these are held in TEL 2003.
For assignement 3:
March 20, 7pm to 9pm - Chris Cudmore.
March 21, 11am to 1pm - Graham McCarthy.
March 22, 10am to noon - Oleg Belgorodskii.
March 27, 7pm to 9pm - Chris Cudmore.
March 28, 11am to 1pm - Graham McCarthy.
March 29, 10am to noon - Oleg Belgorodskii.
For assignement 2:
February 27, 7pm to 9pm - Chris Cudmore.
February 28, 11am to 1pm - Graham McCarthy.
March 1, 10am to noon - Oleg Belgorodskii.
March 6, 7pm to 9pm - Chris Cudmore.
March 7, 11am to 1pm - Graham McCarthy.
March 8, 10am to noon - Oleg Belgorodskii.
For assignement 1:
January 30, 7pm to 9pm - Chris Cudmore.
January 31, 11am to 1pm - Graham McCarthy.
February 1, 10am to noon - Oleg Belgorodskii.
February 6, 7pm to 9pm - Chris Cudmore.
February 7, 11am to 1pm - Graham McCarthy.
February 8, 10am to noon - Oleg Belgorodskii.
February 15, 5:30pm to 7:30pm - Chris Cudmore.
Textbook
Horstmann, Cay,
Big Java
John Wiley & Sons, 2002, ISBN: 0-471-69703-6.
The textbook is required; it is available at the York University Bookstore.
Useful Web Address for Java APIs:
http://java.sun.com/j2se/1.5.0/docs/api/
Useful Tutorials on the Web:
http://java.sun.com/docs/books/tutorial/
Prerequisites
AS/AK/ITEC1620 3.0 or AS/AK/ITEC1020 3.0 or AS/AK/SC/COSC1020 3.0
Evaluation
Assignements (3 @ 5% each) | 15% |
Midterm test | 30% |
Final exam | 55% |
Total | 100% |
Tentative Schedule
- Week 1 (Jan 4) Review of Object-Based Programming.
Readings: Horstmann ch 2-4 & 6-9, especially 2, 3 & 9.
- Week 2 (Jan 9) Review of Object-Based Programming.
Readings: see week 1.
- Week 3 (Jan 16) OOP: Inheritance, Interfaces, & Polymorphism.
Readings: Horstmann ch 13 and 11.
- Week 4 (Jan 23) OOP: Inheritance, Interfaces, & Polymorphism.
Readings: see week 3.
- Week 5 (Jan 30) Introduction to Graphics. GUI Components and Event
Handling.
Readings: Horstmann ch 5 & 12.
- Week 6 (Feb 6) GUIs and Layout Managers.
Readings: Horstmann ch 14.
- Reading Week (Feb 12-16)
- Week 7 (Feb 20) Exception Handling.
Readings: Horstmann ch 15.
- Week 8 (Feb 27) Multithreading.
Readings: Horstmann ch 23.
- Week 9 (Mar 6) Multithreading and Animation.
Readings: Horstmann ch 23 Sec 6.
- Week 10 (Mar 13) Files.
Readings: Horstmann ch 16.
- Week 11 (Mar 20) Networking.
Readings: Horstmann ch 24.
- Week 12 (Mar 27) Networking.
Readings: Horstmann ch 24.
- Week 13 (Apr 3) Review.
Computer Labs
The required computing platforms and programming environments are
available in the TEL building in TEL 2003 and TEL 2004. We shall
provide TA help in the TEL building between certain hours which will
be posted. Please look for the TA workstations in those two
labs. Please note that general help on using the labs will be provided
through a Help Desk in PS/2.
Late Policy
You are given one (1) grace day to use during the term: once, and once
only, you may submit an assignment up to 24 hours late with no
penalty. The grace day will be applied to the first late assignment;
if you submit two assignments late, the second one will not be marked
and receive a grade of 0. In exceptional cases, late assignments may
be accepted provided that medical or other acceptable documentation is
presented. When going to see a doctor please use the form downloaded
from:
http://www.registrar.yorku.ca/services/petitions/forms.htm#6
Academic Honesty
Assignments are supposed to be produced through independent work. You
may discuss the assignements with your classmates. But do not take
written notes during such discussions. The final form of the
assignment reports and code must be your own independent work. The
penalty for electronically copied assignments is a zero plus the
possibility of a disciplinary action.
Readings and Lecture Transparencies
- Week 1 & 2 (Jan 4-11) Review of Object-Based Programming.
Required Readings: Horstmann ch 2-4 & 6-9, especially 2, 3 & 9.
Lecture transparencies part 1
,
Lecture transparencies part 2
.
Examples:
Person.java ,
TestPerson.java ,
CreditCard.java ,
CardTest2.java ,
Applications.java .
- Week 3 & 4 (Jan 16-25) OOP: Inheritance, Interfaces, & Polymorphism.
Required Readings: Horstmann ch 13 and 11.
Lecture transparencies
.
For additional examples, see: the Firm class
hierarchy example in
Prof. Campeanu's ITEC 1630 page - follow the lectures and week 3
links - and the
StepThrough inner class example.
- Week 5 & 6 (Jan 30-Feb 8)
Introduction to Graphics. GUI Components and Event Handling. GUIs and
Layout Managers.
Required Readings: Horstmann ch 5, 12, and 14.
The lecture notes I have used are available on
Prof. Campeanu's ITEC 1630 page - follow the Timetables/Lectures and Week 4, Week 5, and Week 6 links.
The example involving the getSource method is here in
GetSourceTester.java.
- Week 7 (Feb 20 & 22) Exception Handling.
Required Readings: Horstmann ch 15.
Lecture transparencies
.
- Week 8-9 (Feb 27, Mar 1, & Mar 6) Multithreading. Animation.
Required Readings: Horstmann ch 23.
Lecture transparencies
.
My Producers-Consumers example is here
(you can adjust the delay constants to get different conditions to occur).
See also the Producers-Consumers example in Sun's Java tutorials here
.
- Week 9-10 (Mar 8-15) Files.
Required Readings: Horstmann ch 16.
Lecture transparencies
.
- Week 11-12 (Mar 20-27) Networking.
Required Readings: Horstmann ch 24.
Lecture transparencies
.
See also
Prof. Yu's Week 11 slides for
the Client-Server Chat application example.
- Week 12-13 (Mar 29 & Apr 3) Review.
See
Prof. Yu's Week 9 slides for
the animation examples that we discussed.
The random access file example that we discussed is in the "Week 10 Files"
notes on the same page.