DCS-128 Algorithms and Data Structures 2002

Aims and objectives ·  Lectures  ·  Revision  ·  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.

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. There is no assessed coursework for this course unit.

The first class test was on Monday 18th February. It was marked out of 80, 20 for each question.

The second test was on Monday 25th March. This test was also marked out of 80, 20 for each question, but I have decided to treat it as if it were marked out of 60.

Marks for both tests (given under exam number only to preserve anonymity) can be found here.

The final exam for the course was held on Thursday May 9th.

You can find your final result, but at present only whether you passed or failed, here. The mark you got depends mainly in the exam, but with some contribution from the term-time tests.

College regulations regarding assessment, progression and resit entitlement can be found here. Those who failed Algorithms and Data Structures are entitled to take the resit exam, on 21st August at 2.30 pm in the Great Hall. This exam will have the same format as the May exam, that is a first part consisting of four compulsory questions centred on programming, and a second part with a choice of three questions out of five centred on theory, and there will be two and a half hours to complete it. The questions will be of the same standard as the May exam, and could cover any aspect of the course.

There are some comments on revision 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.
The notes link here is to notes as revised for the course taught in 2003. The old notes have not been kept, but the revision involves only minor modifications.

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 can be found here. Code needed for the lab exercses can be downloaded from here.

Labs are from 2pm to 6pm on Mondays. You can find your lab group in the table in name order here, and in lab group order here.

Lectures

Lectures are at 11am on Mondays in the Skeel Lecture Theatre and 3pm on Tuesdays in the Chemistry Lecture Theatre. A summary of each week's lectures is 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

Although there is no set textbook for the course, the following are recommended as suitable reading. You should buy at least one of them: 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