Last updated: 6 March 2006

Home Page for CM10135
Programming II   2006
(part A)

Programming II is will be taught in two parts by two different lecturers.
The schedule on this page is subject to change.  This page is provided as a resource, mostly so you can find lecture notes and problem sets.

Note on Labs:  Labs are considered to start after the first lecture Tuesday morning.  So Monday & Tuesday labs have the content of the previous week. 

Extra Tutorials for the Java Clueless: Thursday, 13.15 - 15.15, in the lab next to the departmental office (1W 2.something).  Don't be shy about being clueless!  Come for either hour, whichever you can make.

Unlike Programming I, there will be no semi-mandatory exercises in this course.  Instead, their are four separate courseworks, which will be due every couple of weeks.  The exam will probably consist of answering three out of four questions, two of which will be from each half of the course (but maybe there will be more questions, we'll see).

Note on Lecture Notes (below!)  The complete set of last year's lecture notes are below.  Some of these will be updated, but if they are, it will most likely be right before or even after the lecture.  There is a `last updated' line on each page, check that to make sure you have something current.

Week Starting
 Lecture Topics (exact organization still subject to change)
Lab Topics

7 February
Intro to programming, data structures, algorithms and sorting.
Reinventing the Wheel, Algorithm Examples: Sorting, Intro to Algorithms and Complexity.
Lists in different languages.
14 February
Algorithms, complexity and search.
Logarithmic Complexity and the Big O, The Complexity of Various Sort Algorithms, Searching & Complexity

21 February
Java class structure and non-linear control.
 Space, Class & Interface, Errors, Exceptions and Nonlinear Control, Concurrency and Threading
Coursework 1 (handed out 21 feb)
28 February
Concurrency, threading & GUIs.
When Threading Goes Bad
, Intro to Networking, How to Network 
Coursework 1 due 6 March,
Robot competitions.
7 March
GUIs & Networking
 Some Final Protocols, Intro to Graphical User Interfaces, Panels, Components & Layouts Galore
 Coursework 2 (posted 6 March)
Robot competitions
14 March
Search Applications & Internet programming.
Applets & Java's Sordid History, Searching Applications 1, Searching Applications II
21 March
Part B Coursework 2 - 1st increment due 20 March, marked in lab.
28 March
Part B Coursework 2  due 31 March
The rest of term.
Part B Part B

If you want to meet with Dr. Bryson, schedule an appointment during her office hours.  Do not email her!

If you want to know about the exam, notes about last year's are on the lecture notes for Lecture 16.

Details about the course mailing list (and other useful stuff) are on Florian Schanda's Tutoring Page.

I've  recommend some textbooks (see lecture 3), though they don't cover all the material. See the link for details.  In 2003, Dr. Paddon used Big Java, so that should be in the library.  I think he's now using something else.

Here are some excellent notes on data structures, sorting, searching and complexity.  The `pseudo code' there is mostly C, but that should be much easier for a Java programmer to read than Lisp is!  There are also little animations so most of you can watch the sort algorithms work. Here's some more animations. Wikipedia actually also describes many of the algorithms covered in class.

In case you are wondering, the IDE I use (which you'll see a couple times in class) is eclipse.  It is available on the BUCS machines.

page author: Joanna Bryson