DCS-128 Algorithms and Data Structures 2003

Aims and objectives ·  Lectures  ·  Local notes and resources  ·  Worldwide notes and resources  · 
Lab exercises  ·  Code used for examples  ·  Newsgroup/Discussion  ·  Java 2 official documentation

Staff

Lectures, these web-notes and overall design of the course by Matthew Huntbach.

Aims and Objectives

The aims and objective of the course are given in its Information Sheet which can be found here. A longer statement of the aims and objectives can be found here.

In summary, this is a course on algorithms and data structures which uses the Java language to give executable implementation of the concepts discussed.

History and curriculum

This course was introduced along with Programming 1 and Programming 2 as part of a rearrangement of the first-year curriculum in 2001. These three courses replace the previous Introduction to Programming double unit course which I taught, and Introduction to Algorithms course taught by Paul Taylor. As the change in title suggests this course, while a successor to the previous Algorithms course, will also pick up material on data structures that was previously covered in the Programming course.

Last year's course page can be found here.

Assessment

Marks for the course will be divided between the final exam and term-time tests. The final exam will count for 70% of the total marks.

College regulations regarding assessment, progression and resit entitlement can be found here.

There was a term-time test on Friday March 14th at 3pm in the Great Hall. You can find a copy of the test paper here. Unfortunately, a serious problem occurred with this test due to someone sending out a forged email. You can find the details and how I intend to deal with it here. You can find the marks for the test (given by student number and exam number only), plus answers and some comments on the test here.

Last year, two term-time tests were set. You can find a copy of the first test set last year here, and the second test set last year here. You can find a copy of the May exam paper for last year here.

Programming Language

We shall be using version 1.2 of Java - also known as Java 2, though we shall avoid detailed use of its extensive code library. The definitive description of Java is the "Java Language Specification" available on-line here.

A local copy of the official documentation of the Java 1.2 library can be found here.

The official web-page for Java, maintained by Sun, the company that developed it, can be found here.

A local copy of Sun's official Java tutorial can be found here.

I maintain a set of links on Java and programming in general, aimed at students who are just starting out to learn programming in Java. It is available here.

Systems

You will be encouraged to run Java under the Linux (a version of Unix) operating system. A local copy of the Linux User's Guide can be found here.

In line with the aim in this course of concentrating on the basics, we will not be using a Java "Interactive Development Environment".

Local notes and resources

Notes written by myself can be found here. These will be used rather than printed handouts. Code used in these notes can be downloaded from here.

Worldwide notes and resources

If any other web sites anywhere catch my eye as something that might be useful or interesting for you in the context of this course, I'll add them to a general links page, available here.

Lab Organisation

Lab sheets issued, along with solutions, are available here. Code needed for the lab exercises can be downloaded from here.

Labs will be in the Informatics Teaching Laboratory on Monday afternoons. The class is divided into four groups with lab slots as follows:

This is your allocated time when you are guaranteed space in the ITL. Anyone in the ITL from 2-6pm on Mondays who is not in their allocated time slot may be asked to leave. Please note, however, that it is expected you will spend more than one hour a week on lab work, you may use the lab during unallocated hours (it is open early mornings, evenings and weekends), or you may use your own computer if you have one.

Lectures

This is a semester 2 course, with teaching from January 13th until April 4th 2003. Lectures (each an hour long) are at 11am on Mondays in the Skeel Lecture Theatre, 3pm on Tuesdays in the Chemistry Lecture Theatre, and 5pm on Tuesdays in the Chemistry Lecture Theatre. The 5pm Tuesday lecture slot may not be used every week.

A summary of each week's lectures will be posted here.

Newsgroup

There is a newsgroup for this course which will be used to give news about it and also as a place for public discussion about it. It can be found here. If you have a question, please consider sending it to this newsgroup (though I'm happy to answer emails sent to me personally about the course), as there are probably many others with the same question, and all will be helped by a public discussion of it.

Books

The textbook recommended for the course is: Other suitable books include: A review of several books that teach introductory algorithms and data structures using Java can be found here.

You will also find complete on-line textbooks in the Worldwide notes and resources section of this website.


Matthew Huntbach
Last modified: 15 August 2007