PLDS210
Programming Languages and Data Structures

  ------------------------------------------------------------------------

Course Synopsis

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:
                             Monday  12 pm AG11
                             Tuesday 12 pm AG11
  ------------------------------------------------------------------------

Lecture Notes

A set of notes for this course is available on the Web. From the table of
contents page you can jump to any section of the course.

There is a home page set up for student information:

     http://www.ee.uwa.edu.au/internal/ug.courses.html

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:

     http://www.ee.uwa.edu.au/~plsd210/ds/plds210.html

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!

Printed Notes

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 any section.

Textbooks

The material on data structures and algorithms may be found in many texts:
lists of reference books in the library are part of the Web notes. The Web
notes are, of necessity, abbreviated and should not be considered a
substitute for studying the material in texts.

Web browsers

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 time permits.

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.

Program source

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,
select File:Close to close the window. Selecting File:Exit 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.

                               Tutorial Times
                     Weeks   Time   Location   Groups
                           Thursday
                             9 am     E273   2ic,2it1-3
                     4-13
                           Wednesday
                             3 pm     A205   rest

     The first tutorial will be in the fourth week of semester. 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
be accepted. (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!)

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 will be marked on a 4 point scale
(Good,Marginal,Poor,Zero) and 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 assignment assessment.

 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.

Assignment reports

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).

Report Format

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 organisation (title, authors, introduction, body grouped into related
paragraphs, conclusion, etc) expected for any other unit apply here also.

Communication

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 all authors.

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 free). 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
