Last updated: 2 March 2007

Home Page for CM10135
Programming II   2007
(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.  There is also a moodle page associated with this course, which contains forums & will be where you submit your coursework.

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. 

Unlike Programming I, there will be no semi-mandatory exercises in this course.  Instead, their are three or 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

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

13 February
Java class structure and non-linear control.
 Space, Class & Interface, Errors, Exceptions and Nonlinear Control, Concurrency and Threading
Coursework 1 handed out
20 February
Concurrency, threading & GUIs.
When Threading Goes Bad
, Intro to Networking, How to Network 
Ongoing support for Coursework 1

27 February
GUIs & Networking
 Some Final Protocols, Intro to Graphical User Interfaces, Panels, Components & Layouts Galore
Coursework 1 Due 28 February
Coursework 2 handed out
Robot competitions
6 March
Search Applications & Internet programming.
Applets & Java's Sordid History, Searching Applications 1, Searching Applications II
Ongoing support for Coursework 2
13 March
Part B Coursework 2 - 1st increment due, marked in lab.
20 March
Part B Coursework 2  due
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 to lecture 3 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