Spring Semester 2002

I originally posted a syllabus here. I have since received two requests for a more detailed syllabus with readings from the book, page by page. I am including this info below. Hope you find it useful. Please let me know if you have questions or concerns and/or if you need help.

Week One (Jan 8, 10)
Chapter One:
• Sections 1.1, 1.2 (pp. 2-3)
• Sections 1.4-7 (pp. 12-20) skip Prod. Hint 1.1
• Sections 1.8-10 (pp. 21-31)
• Section 1.12 (pp. 39-41)

Week Two (Jan 15, 17)

Chapter Two needs to be known inside out. Therefore for this week and the next one the reading assignment from Chapter Two is on pages 47-89, that is, all of the chapter. Note that this will be spread over two weeks, and the order in which we will cover the material will likely be the following:

• Section 2.1 (Number Types)
• Section 2.2 (Assignment)
• Section 2.2 (Type Conversion)
• Section 2.5 (Arithmetic)

Then as we try to make the distinction between primitive and reference types we will come back to Chapter One to finish it off:

• Section 1.11 (pp. 31-38)

Week Three (Jan 22, 24)

For this week please make sure that Chapter Two is completely read or re-read. Small things such as Advanced Topics 2.1, 2.2, 2.4, Common Error 2.2, Quality Tip 2.2, Common Errors 2.3, 2.4 need to be known and thoroughly accounted for.

By the end of this week we plan to

• finish 2.6 (Strings) and
• give a brief intro to boolean variables (by analogy with numerical expressions,)
• briefly introduce the idea of decisions and branches in your programs of action, and
• also discuss the `char` primitive type.

We should also be proficient in using `ConsoleReader`, while also having a basic, rough understanding of its internals.

Week Four (Jan 29, 31)
Since we went slower than we anticipated we need to look at
• Section 2.6, from Chapter Two, and
• Sections 5.1, 5.2.1, 5.4 from Chapter Five

Then the reading for the week is, from Chapter Three.

Chapter Three is also extremely important and needs to be known inside-out:

• pp. 103-118 (up to Prod. Hint 3.1)
• pp. 119-124 (up to Random Fact 3.1)
• pp. 126-130 (up to Prod. Hint 3.3)
• and 132-134 (revisiting the internals of `ConsoleReader`)

The last part is a bit advanced and only meant to refine our basic understanding of the `ConsoleReader` class. Since the console reader class was meant to simplify life only read to get a basic idea. If you want to know more (or don't trust the console reader) read thoroughly.

Please note: at the end of this week you should be an expert in all the problems and review exercises that are posted at the end of Chapter 1 and 2. Note that these exercises are indexed in the lab notes, complete with text and solutions, so you should try them out and solve them, then check your solutions agains the posted solutions.

At the end of next week you are expected to build similar expertise with respect to the problems and review exercises that appear at the end of the third chapter.

Week Five (Feb 5, 7)

Next week we have Midterm One. The exam will be multiple-choice, and open-book. It will be in the evening, in RH100, from 7-9pm. Chapters 1, 2, 3, and 5, are what the questions will be drawn from, as well as web notes that are posted by the end of this week.

• pp. 183-198, up to Prod. Hint 5.2
• pp. 199-204, up to Prod. Hint 5.3
• pp. 205-213, up to Random Fact 5.2

At the end of this week you should be an expert in Chapter 3 and you need to start working on Problems and Review Exercises from Chapter 5 (five), for the exam. As always the problems and review exercises will be posted together with solutions on the web site, within lab notes.

Week Six (Feb 12, 14)
This week we have an exam. The exam is on the material from Chapters 1, 2, 3, and 5. The exam will be on Wednesday night. The lectures on Tuesday and Thursday will start Chapter Six. This is a central chapter to all programming, object-oriented or not.

• pp. 223-259 (all of it)

At the end of this week you should start working on the Review Exercises and Problems that are listed at the end of Chapter Six. They will be listed with solutions as part of the Lab Notes. These are serious problems, and it is very likely that the Practical will be from them.

Week Seven (Feb 19, 21)
This week we try to catch up and make sure all of Chapter Seven is accounted for. By now, although you don't know it, you will have seen most of the concepts of Chapter Seven already. But we need to make sure we review them adequately, so the reading assignment from this chapter is:
• pp. 269-293, up to Prod. Hint 7.1, and
• pp. 296-302, up to Random Fact 7.1

We might be doing all of this in the context of solving problems for the practical exam. The exam will be open-book and you will need to come and solve a problem during your lab, and turn it in through QuizSite, like we do with homework assignments.

After this we start Chapter Nine.

Week Eight (Feb 26, 28)
This is the week of the Practical Exam. Expect problems that combine all that you have learned in Chapter 3, 4, and 6. By now Chapter 2 is too easy, and Chapter 1 can't even be taken into account. There will be a number of sample problems that we will post and discuss on the web site.

In class we move to Chapter Nine, and briefly cover the most important aspects of interfaces, abstract classes, and the class extension mechanism. You will be encouraged to look through the chapter in the book (pp. 342-386) but as a reference mostly. We will be very keen to make sure the notes that we post as lecture notes that week are coldly understood, so I recommend we focus on those mostly.

Exercises at the end of Chapter Nine will be mostly optional.

Week Nine (Mar 5, 7)

Chapter 11 (432-469, skip Random Fact 11.1) very important, will be studied in great detail. Problems and exercises at the end of the chapter will again become important, and some will be posted with solutions. Information from Chapter Seven will be revisited. Chapter 15 will also be important, pp. 614-643.

Spring Break (Mar 12-14)

SPRING BREAK

Week Ten (Mar 19, 21)

We do mostly Chapter 15 and 11.

Week Eleven (Mar 26, 28)

We start Chapter Four. Knowledge from Chapter Nine comes in handy now. Chapter Four is important, we need to know it all, we need to solve and understand all of its review exercises and problems.

Week Twelve (Apr 2, 4)

In the context of Applets (Chapter Four) we give the basics of Event Handling (Chapter 10). We discuss GUIs also (Chapter 12). Chapters 10, 12 (as well as 13, that will be touched on once) are not central, but Four is, and so we need to know as much as we cover from them here.

Week Thirteen (Apr 9, 11)

We try to put all of this together in building a game.

This will be mostly for your edification.

A few advanced topics will be touched on.

Week Fourteen (Apr 16, 18)

We finish the game and start the review for the final.

Last Week (Apr 23, 25)

Final review.

Last updated on Jan 27, 2002 by Adrian German for A201/A597/I210