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:
- Michael Main
"Data Structures and Other Objects Using Java"
Addison-Wesley ISBN 0-201-3574485.
With web site here.
- F.M.Carrano and J.J.Prichard
"Data Abstraction and Problem Solving with Java (Walls and Mirrors)"
Addison-Wesley ISBN 0-201-70220-7.
With web site here.
- B.R.Preiss
"Data Structures and Algorithms with Object-Oriented Design Patterns in Java"
Wiley ISBN 0-471-34613-6.
With web site here.
- M.Goodrich and R.Tamassia
"Data Structures and Algorithms in Java" (2nd ed)
Wiley ISBN 0-471-38367-8.
With web site here.
- M.A.Weiss
"Data Structures and Problem Solving using Java" (2nd ed)
Prentice Hall ISBN 0-201-74835-5.
With web site here.
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