Programming Languages and Data Structures
This course will focus on data structures and algorithms
for manipulating them.
Data structures for storing information in
tables, lists, trees, queues and stacks will be covered.
Some basic graph and discrete transform algorithms will
also be discussed.
You will also be introduced to some basic principles of software
engineering: good programming practice for "long-life" software.
For a full list of topics to be covered, view the
table of contents page for
the lecture notes.
Lectures - 1998
There are two lectures every week:
A set of notes for this course is available on the Web.
table of contents page
you can jump to any section of the course.
There is a home page set up for student information:
On which, you will find an entry for course information;
you can follow the links to this page and the notes themselves.
You can also go directly to the PLSD210 page:
Note that the Web pages use the string plds
(programming languages and data structures)
- a historical accident, which we retain because this label
describes the content more accurately!
For a ridiculously low price, you can obtain a pre-printed copy of
the notes from the bookshop.
You are strongly advised to do so, as this will enable you
to avoid laboriously taking notes in lectures and concentrate
on understanding the material.
(It will also save you a large amount of time printing each
page from a Web browser!)
The printed notes accurately represent the span of the course:
you will be specifically advised if examinable material not
appearing in these notes is added to the course.
(But note that anything appearing in laboratory exercises and
assignments is automatically considered examinable:
this includes the feedback notes!)
However, the Web notes are undergoing constant revision and improvement
(comments are welcome!) so you are advised to browse through the
Web copies for updated pages.
You'll be advised in lectures if there is a substantial change to
The material on data structures and algorithms may be found in many
texts: lists of reference books in the library are part of the
The Web notes are, of necessity, abbreviated and should not be
considered a substitute for studying the material in texts.
Web browsers have varying capabilities:
the notes were checked with Netscape 2 -
but should read intelligently with other browsers.
If you have problems, I would be interested to know
about them, but please note that updating these notes,
adding the animations, tutoring and marking your
assignments for this course have priority:
problems with other browsers,
your home computer, etc, will only be investigated if
Using the notes
The notes make use of the hypertext capabilities of Web
browsers: you will find highlighted links to subsidiary
information scattered throughout the text.
Occasionally these links will point to Web resources which
may be located off campus and take some time to download:
you may find it productive to use the "Stop" facility on
the browser to abort the current fetch - you can try again
later when the Net is less heavily loaded.
In all cases, the browser's "Back" command should take you
back to the original page.
Example source code for programs will sometimes pop up in
a separate window.
This is to enable you to scan the code while referring to the
notes in the main page. You will probably need to move the
source code page out of the way of the main page.
When you have finished with the source code page,
to close the window.
will close the window
and exit from Netscape - possibly not your intention!
Tutorials - 1997
Exercises for the tutorials and laboratory sessions are also
found in the Web pages.
The first tutorial will be in the fourth week of
As long as one tutorial group does not become ridiculously overloaded,
you may go to whichever tutorial suits you best.
Laboratory Sessions - 1998
There will be two formal introductory laboratory sessions
early in the semester - watch these pages for the final details.
These sessions will be in laboratory G.50.
After the first two laboratories, a tutor will be available in
G.50 every week at times to be advertised.
The tutor will advise on any problems related to the whole course:
assignments, lecture material, etc.
You will be able to complete the assignment on any
machine which has an ANSI C compiler.
Assignments will be submitted electronically:
submit programs on the SGI machines and on the NT systems in 1.51 may
be used - refer to the submission instructions.
Note that you are expected to write ANSI standard C which will
run on any machine:
programs which won't run on our SGI's risk failure!
In 1998, Java programs written to an acceptable standard will also
(The standard required for C is set out explicitly: ensure that you
understand how to translate the important elements of this to Java
before starting work in Java. Seek feedback if uncertain!)
As with all other courses with a practical component,
the practical assignments are compulsory. Failure to obtain
a satsifactory grade in the practical component of the
course may cause you to be given a 0 for this component of
Since this will make it virtually impossible to obtain more than
a faculty pass for the year, failure to do the practical assignments
will not only cause you to miss some feedback which may well be
useful to you in the written exam,
but may cause you to fail the whole unit.
|Written Exam (3hrs)||80%|
A "satisfactory" grade in assignments is more than 40% overall.
Any less will put your whole year at risk.
A much safer course is to do the assignments conscientiously,
making sure that you understand every aspect of them:
assume that the effort put into them will improve your examination
Assignments - 1998
Four assignment exercises will be set for the semester.
You should be able to complete most of the first
two assignments during the initial laboratory sessions.
The 3rd and 4th are more substantial.
Completed assignments (which should include a summary
report, the program code and any relevant output)
should be submitted by following the submission instructions at the
end of the Web page.
Performance on the assignments will be 20% of your overall
assessment for the unit.
Assignments 1 & 2
These will be relatively short and should require only
1 or 2 hours extra work to complete.
They contribute 6% of your final assessment.
These assignments will provide some feedback on what is expected
for the remaining two assignments.
You may even find that you can use the (corrected) code
from these assignments in the later assignments.
Assignments 3 & 4
For these two assignments, you will be expected to
implement one algorithm and test another.
You will be assigned an algorithm to implement as assignment 3.
You may obtain from one of your class colleagues an implementation
of any other algorithm and test it for assignment 4.
You must submit them by the dates shown on the assignment
sheets. They will constitute the remaining 14% of your
A minimum standard must be obtained in the assignments to
pass the unit as a whole.|
Failure to attempt the assignments will put you at a severe
disadvantage in the exam.|
Each assignment submission should be accompanied by a
summary report. The report should be clear and concise:
it is unlikely that you will need to write more than 2 A4
pages (or about 120 lines of text).
The report should be in plain ASCII text.
The 'native form' of any wordprocessor will be rejected.
If you prefer to use a word processor to prepare your report,
then ensure that you export a plain text file for submission
when you have finished: all word-processors have this capability.
This allows you to concentrate on the content of the report,
rather than the cosmetics of its format.
However, the general standards for report structure and
(title, authors, introduction, body grouped into related
paragraphs, conclusion, etc) expected for any other unit
apply here also.
This course attempts to be "paperless" as much as possible!
Assignments will be submitted electronically and
comments will be emailed back to you.
Please ensure that your reports include email addresses of
The preferred method for communication with the lecturer and
tutor(s) is, at least initially, email.
All routine queries will be handled this way: we will attempt to
respond to all email messages by the next day.
If you have more complex problems,
email for an appointment (suggest a few times when you will be
You may of course try to find me in my office at any time
(but early in the morning is likely to be a waste of time),
but emailing for an appointment first ensures you some priority
and enables you to avoid wasting a trip to the 4th floor
when there may be zero probability of success!
Continue on the lecture notes.
© John Morris, 1996