New: Here is a summary of all the three coursework marks indexed by student ID. In case of problems please let me know. Courseworks can be found as usual in the UG pigeonholes by the back door. I have moved them into folders arranged by first letter of surname.
NEW Feedback on the 2008-09 G52ADS exam (requires usual username and password).
Also, see previous exams (note that the module code used to be G5BADS). Also, note that I did not teach this module in these years, and so cannot provide fuller answer sheets, and not all the topics are still relevant. However, if they raise some issue or problem, then please email me and I will see if I can help.
Reminder: emails sent in which you do not consider them important enough to add a subject will also be considered as
not very important by me, and given low priority. Sending emails without meaningful subject lines is poor professional practice as it shows a lack of consideration for the reader.
Sat. 3rd Oct: I added password protection to the "files/" directory where the lecture notes are stored. The username/password are in the email I sent to the module mailing list, with subject line "web password & reminders of CW1 & LABS". If you did not receive this email, then you have not been added to the module mailing list yet (maybe you registered late). Please email me and I'll provide the username/password directly. However do check that you appear on the mailing list soon, and otherwise check your registration is okay, and otherwise check with TSG.
This session this module is taught by Dr Andrew Parkes http://www.cs.nott.ac.uk/~ajp/.
The official module page.
From the University
Timetable the lectures of G52ADS in Semester 1 of 2009-10 are
Wednesday 11:00-12:00 (Exch. LT3)
Friday 2-3pm (Exch.
LT3)
and a lab session in A32 most (not all) Mondays 3-5pm.
The textbook recommended is "Data Structures & Algorithms in Java", Michael T. Goodrich and Roberti Tamassia ["GoTa"]. It can be found in the university library: here. Also, here is the amazon.co.uk entry which allows you to "Look Inside".
The complete reading list is hereIf you have any problems/suggestions/feedback etc, please feel free to
email (ajp), telephone (0115 95 14210), or visit my office (CS Room B81 ).
If you send me an email then you must give it a meaningful subject line. If you leave the subject line empty then I will feel free to assume the email is also about nothing and delay answering it until I have nothing to do - you might well graduate long before this happens :-). This is necessary so that I have a chance of being able to organise the many emails that I receive. It is also poor professional practice, for example, see http://www2.essex.ac.uk/rm/guide/e-mail.shtm#6
The course also has an email list http://www.cs.nott.ac.uk/local-cgi/lists.cgi?gs=g52ads. I will use this mailing list for sending out information. I'll advertise when the list is updated for this session, and I start sending out emails and you should make sure that you are receiving them.
Hence, you MUST make sure that the department (and technical services) has a working email address for you, and that it is included on the list (though note the list might not get fully updated until a few weeks into the semester).
Please note that the timetable below is tentative and incomplete! It will change as we proceed, so please keep an eye on this page. When the mailing list is active, then I will also send out announcements to that list. I will also add links to the lecture notes as we proceed - though please note that the lecture notes do not necessarily cover everything I say during lectures. The dates of lectures are often just indicative; the notes are arranged in logical sections, but might not exactly coincide with the timeslots. (If you have any questions about slides please always tell me the name of the file, or the exact URL, and the page or slide number(s).)
Date |
Topic |
Comments |
| Week 1 | ||
| Fri. Sep 25 | Introduction to the module. (1up,
3up) Analysis of Algorithms. (1up 3up)) |
Usual formalities, plan of the module, and context. |
| Week 2 | ||
| Mon. Sep 28 | |
No LAB session. Labs will start on Oct. 5.. |
| Wed. Sep 30 | Start on Big Oh notation. (1up
3up
) |
"Big Oh" notation is vital in this module, |
| Fri. Oct 2 | More Big Oh.
(1up
3up
)
|
Also big-Omega, big-Theta, and little-oh |
| Week 3 | ||
| Mon. Oct. 5 | |
First LAB session. |
| Wed. Oct 7 | Finish off Big Oh notation.
(1up 3up
)
Start on "Correctness of Algorithms" ( 1up 3up ) |
|
| Fri. Oct 9 | More about "Correctness of Algorithms" | |
| Week 4 | ||
| Mon. Oct. 12 | |
LAB session. |
| Tue. Oct 13. 16:00 | Coursework ONE due. Submit BOTH hardcopy (office) AND softcopy (cw)!! |
|
| Wed. Oct 14 |
Finish off "Correctness of Algorithms" Recursive Algorithms ( 1up 3up ) |
|
| Fri. Oct 16 |
Finish off Recursive Algorithms Start on Abstract Data Types (ADTs) & Concrete Data Types (CDTs), Stacks & Queues. ( 1up 3up ) |
|
| Week 5 | ||
| Mon. Oct. 19 | |
NO LAB session. Instead Sam Allen held a tutorial session for anyone really struggling with the basic maths (exponentials, logs, manipulation of equations, etc). |
| Wed. Oct 21 | Finish off stacks & queues. | |
| Fri. Oct 23 | Linked lists (1up 3up ) | |
| Week 6 | ||
| Mon. Oct. 26 | |
NO LAB SESSION |
| Wed. Oct 28 | Finish off linked lists & vectors ( 1up 3up ) | |
| Fri. Oct 30 | Start on simple sorting algorithms ( 1up 3up ) | |
| Week 7 | ||
| Mon. Nov. 2 | |
LAB |
| Wed. Nov 4 | Finish off simple sorting algorithms (
1up
3up
) |
C/W TWO will cover all material up to and including these lectures, but not material afterwards. |
| Fri. Nov 6 | Trees: definitions, traversals, and essential properties (1up 3up 6up ) |
See also Wikipedia. Note that the definitions of terms such as "proper binary tree" has now been changed to agree withWiki. |
| Week 8 | ||
| Mon. Nov 9 | |
LAB |
| Wed. Nov 11 | Heaps and Priority Queues ( 1up 3up 6up ) | |
| Fri. Nov 13 | Graphs: Definitions and implementations ( 1up 3up 6up ) DFS and BFS traversals ( 1up 3up 6up ) |
|
| Week 9 | ||
| Mon. Nov 16 | |
LAB: |
| Wed. Nov 18 | Shortest path problems and Dijkstra ( 1up 3up 6up ) | C/W three released. |
| Fri. Nov 20 | DFS continued & cycle detection (see slides of Nov. 13) Topological sort & cycle detection ( 1up 3up 6up ) |
|
| Week 10 | ||
| Mon. Nov 23 | LAB: Focussing on C/W THREE | |
| Wed. Nov 25 |
Minimum spanning trees.
(
1up
3up
6up
) |
|
| Fri. Nov 27 | ||
| Week 11 | ||
| Mon. Nov 30 | |
LAB |
| Wed. Dec 2 | Finish off hashmaps from previous Wed. Binary Search Trees ( 1up 3up 6up ) |
|
| Fri. Dec 4 | Binary Search Trees (continued) 2-4 trees ( 1up 3up 6up ) Red-black trees ( 1up 3up 6up ) |
AVL trees in detail (not required, but for background knowledge) |
| Week 12 | ||
| Mon. Dec 7 | |
LAB: Work on C/W 3. Also, last chance before the break to ask questions about the module contents! Remember exams start immediately after the break. |
| Wed. Dec 9 | ** NO LECTURE ** | |
| Fri. Dec 8. NOON 12:00 |
DEADLINE: C/W THREE |
Submit BOTH hardcopy (via office) and softcopy (via cw) !! | Fri. Dec 11 | Advanced Sorting Algorithms: Mergesort and Quicksort (
1up
3up
6up
) |
Have a great Christmas Holiday! |
Accessibility: I generally produce the slides in both "1 up" and "3 up" i.e. "PDF with 1 or 3 slides per page". Suggest to print multiple slides per sheet so as to save paper but leave space for notes (please also remember to print in duplex when possible!). When the slides have multiple slides to be viewed as an animation then you might just want the "1 up" version so that you can step through one slide at a time. If you need, or would like, the slides in other formats, then please do not hesitate to email me with your request.
The assessment of this module is 25% in total on coursework. Details will be announced here, in lectures, and via the email list.
Feedback comment by AJP:: Please note that besides the feedback above, it was also available during the tutorial slots, when tutors were available to help directly with any questions or issues that arose. Note that previously G52ADS did not have any tutorials, but they were introduced (on my request) this year precisely to allow a chance for more direct interaction and feedback with me and tutors.
This course is examined by a two hour examination, which accounts for 75% of the marks.
Previous exams are available via the portal in the standard fashion, also some previous exams with answers to the MCQa are available here: http://www.cs.nott.ac.uk/~nza/G52ADS/EXAMS/
The format/rubric this year is the same as last year's 2008-09 exam. Here is the front page of the exam.
SCHOOL OF COMPUTER SCIENCE
A LEVEL 2 MODULE, AUTUMN SEMESTER 2009-2010
ALGORITHMS AND DATA STRUCTURES
Time allowed TWO Hours
Candidates may complete the front cover of their answer book and sign their desk card but must NOT write anything else until the start of the examination period is announced
Answer QUESTION ONE and THREE other questions
Clearly cross through any question that you do NOT wish to be considered and ensure you state on the front of the answer book the FOUR questions that you have attempted. Marks available for sections of questions are shown in brackets in the right-hand margin
Only silent, self contained calculators with a Single-Line Display are permitted in this examination.
Dictionaries are not allowed with one exception. Those whose first language is not English may use a standard translation dictionary to translate between that language and English provided that neither language is the subject of this examination. Subject specific translation dictionaries are not permitted.
No electronic devices capable of storing and retrieving text, including electronic dictionaries, may be used.
DO NOT turn your examination paper over until instructed to do so
Note that the rubric for the first compulsory multiple choice question, just like last year, is:
"This multiple choice question is compulsory. For each part select precisely one answer. You will not receive negative marks for incorrect answers. Write your answers clearly, in the answer book, in the form of a single table with one answer per row and including the label for which part of this question you are answering, i.e. in the form “(x) Y” per row"
This might seem overly complicated, but it is designed to make it less likely that you will make an 'off by one error' in filling in your answers. In MCQs it is quite common to miss a question and then fill in answers one step away from where they should be. It is a real pity when this happens; please be careful to avoid it just double-check you got the correct label. Write your answers in the main answer book with all the other answers - i.e. do not expect them to be marked if you only put them on the exam paper (sounds unlikely, but it can happen that people forget under the stress of the exam).
Also, note that it is not negatively marked - you should always give some answer, even if it is just a best guess.
"JUnit" is a package to support unit testing in Java. It is highly recommended that you learn to use this package (or an equivalent) and use it for all your programming tasks - not just this module. Good usage of testing will allow you to catch bugs much more quickly.
Last updated: 2010-03-21