DCS-128 Algorithms and Data Structures 2004
Aims and objectives · Lectures · Local notes and resources
· Worldwide notes and resources
·
Lab exercises · Code used for examples
· Newsgroup/Discussion
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 is now the third year this course has been taught. Only minimal
changes to the curriculum have been made since it was first taught in
2002.
The course was introduced along with Procedural
Programming and Object
Oriented Programming (originally titled "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.
Last year's web page for the course can be found here.
Assessment
Marks for the course will be divided between the final exam in May
and two term-time tests. The final exam will count for 70% of the total
marks, the term-time tests will count for 15% each..
College regulations regarding assessment, progression and resit
entitlement can be found here.
In 2003 only one term-time test was set, you can find a copy
here. In 2002 two term-time
tests were set, you can find them here and here.
The first term time test for 2004 took place on Monday 16th
February.
Marks, a copy of the test paper, and some comments on how well it
was done together with answers, can be found
here.
The second term time test for 2004 took place on Tuesday 16th March.
Marks, a copy of the test paper, and some comments on how well
it was done together with answers, can be found here.
You can find a copy of the May exam paper for 2003 here
and for 2002
here.
Programming Language
We shall be using Java, though we shall avoid detailed use of its
extensive
code library. Full documentation on Java can be found
here, but very
little of this will be required for the course.
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 operating
system. 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.
Your allocated lab time will depend on the first letter of your
surname:
A-D: 4-5pm
E-M: 3-4pm
N-Z: 2-3pm
Anyone in the ITL from 2-5pm 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.
You are expected to attend labs during your allocated time, and a
register may be taken. Any student who is consistently absent from
labs may be barred from the course.
Lectures
This is a semester 2 course, with teaching from January 12th until
April 2nd 2004. Lectures (each an hour long) are at 11am on Mondays,
3pm on Tuesdays and 5pm on Tuesdays. All lectures are 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:
- Michael Main "Data Structures and Other Objects Using Java" (2nd
ed.) Addison-Wesley ISBN 0-201-74093-1. With web site here.
Other suitable books include:
- John Lewis and Joe Chase "Java Software Structures" Addison
Wesley ISBN 0-321-22531-7.
- D.S.Malik and P.S.Nair "Data Structures Using Java" Thomson ISBN
0-619-15950-2.
- F.M.Carrano and J.J.Prichard "Data Abstraction and Problem
Solving with Java (Walls and Mirrors)" Addison Wesley ISBN
0-201-70220-7.
- 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.
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