Data Structures and Algorithms (F28DA1)

Module Support

These pages provide resources for students taking the above module. They are under construction for 2008/09.


Module Outline and Timetable

A Module Outline document (Word format) will be available. A copy will be handed out to you in the first lecture.

In summary, the module runs through weeks 1-12 of semester 1. It comprises a number of lectures, tutorials and lab sessions.

  • Lectures: Two per week during weeks 1 through 11. Week 12 lectures will focus on revision. Copies of the notes can be found in the Lecture Notes section of this WWW page.
  • Lab Sessions: Run during weeks 2-11 on Wednesday 10:15-12:15 in room 2.50.
  • Tutorials: One per week during weeks 1-7 in 2.44 at 15:15 on Fridays. Further details can be found in the Tutorial Information section of this WWW page.


Recommended Text

The module is based on the following text book. During the course you are expected to read sections of the text, attempt exercises, and examine solutions.

Data Structures and Algorithm Analysis in Java, Mark Allen Weiss, Pearson International, ISBN 0-321-37319-7

Copies of the book are available from the University Library, and Blackwells have been requested to stock copies for purchase.

There are numerous other books and websites with tutorials that cover the material in the course, e.g. USASK CS Tutorials Site. Enjoy exploring but be aware that these often cover slightly different material, or the materials in a slightly different way.


Lecture Notes

The following lecture notes are available as PDF. Photocopies of all lecture notes are distributed in the lectures.


Tutorial Information

Tutorials will take place in the first 40 minutes of the lab sessions in weeks 2 to 11. You will attempt a sheet of pencil \& paper exercises with tutor assistance.
The tutorial activity sheets and solutions are given below as MS Word documents. You are strongly advised to attempt the exercises before consulting the solutions.


Lab Sessions

Lab Wednesday 10:15 - 12:15 (EMB2.50) - weeks 2 to 11 The lab session is the chance for you to practice with the Java language. This will involve trying out code provided in the lecture notes and working on coursework. Lab assistants will be available in all lab sessions.


Assessment Details

The assessment of this module is synoptic with F22AO2 Data Structures and Algorithms 1 and comprises assessed coursework and a module exam.
The coursework item has a large programming component as well as a written report. You should ensure you have read the Plagiarism Issues section of these WWW pages. Each assignment will also need to be submitted electronically (code only, not the report).

Copies of past exam papers are available. Note that while the questions in the 2-hour 01-02 122AQ3 paper are a good guideline, future exams will be 3-hours, synoptic with F22AO2 Data Structures and Algorithms 1. Papers on 122AB2 (e.g. 99-00 and 00-01) are also useful, but be aware that they relate to a C++ based course with a slightly different syllabus.


Coursework

Copies of my part of the 2008/09 Coursework are available.


Electronic Submission of Coursework

Please note that the coursework will not be marked unless you also follow these electronic submission procedures. Also note that the electronic submission applies to program source files only.

Instructions:

  • Go to the directory where your source code is located.

  • Type in the following command to access the submission script.

    /u1/cs2/public/F2.2AQ3/submit F2.2AQ3 ASSIGNMENT1 filename.java All data except that in italics must be keyed in as shown (this submission script works for multiple assignment numbers). The only thing you change is to put your file name in the place shown, e.g. to submit a file called mainProg.java for the first piece of coursework you would type in:

    /u1/cs2/public/F2.2AQ3/submit F2.2AQ3 ASSIGNMENT1 mainProg.java

Notes:

  • You can submit multiple files, but each file needs to be submitted separately i.e.

    /u1/cs2/public/F2.2AQ3/submit F2.2AQ3 ASSIGNMENT1 mainProg.java

    /u1/cs2/public/F2.2AQ3/submit F2.2AQ3 ASSIGNMENT1 file2.java

    /u1/cs2/public/F2.2AQ3/submit F2.2AQ3 ASSIGNMENT1 file3.java

  • The submission should be of *.java files only - no *.zip or *.class files

  • The ASSIGNMENT parameter will change between courseworks. It should, for example, be ASSIGNMENT2 for the second piece of coursework

  • If the submission is okay, you will get a confirmation message displayed to the screen that indicates the submission was sucessful.

  • You can resubmit files - if you do so the script will prompt if you want to overwrite the previous file you submitted. You can resubmit any number of times - up until the cut off date and time that I give you.

  • Report difficulties with submission problem@macs.hw.ac.uk, giving as clear information as you can what you are trying to do, where from and what the error message is.


Plagiarism Issues

This section aims to bring to your attention the issue of plagiarism. This is not a new problem, but it is something that a number of Universities have growing concerns over. If you are in any doubt do a search on plagiarism using Google.

We (Heriot-Watt University) are against any form of plagiarism - but for this module our primary concern is plagiarised coursework.

It is absolutely vital that you develop programming skills as part of your degree. It is a skill that you will require time and time again. Plagiarism is therfore a major concern, because if you are copying work from someone else you cannot be gaining the best learning experience from the particular coursework. So, don't do it. If you don't understand what you are doing, get help - don't copy! This comment is equally aimed at those of you whole might be tempted to help out a mate and give them your code - don't do it! By all means, help them understand the problem and direct them to get help but under no circumstances hand your code over.

In Data Structure and Algorithm software to detect plagiarism will be used. Two example software systems are JPlag and MOSS.