Algorithms And Data Structures (M) COMPSCI5004

  • Academic Session: 2019-20
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 5 (SCQF level 11)
  • Typically Offered: Semester 2
  • Available to Visiting Students: No
  • Available to Erasmus Students: No

Short Description

To study the concept of algorithms, and how to analyse their efficiency; To study the concept of abstract data types, and the abstract data types most commonly used in software development; To study the basic data structures most commonly used to represent these abstract data types, together with algorithms operating on these data structures.

Timetable

3 hours per week

Requirements of Entry

Programming (or equivalent)

Excluded Courses

None 

Co-requisites

None

Assessment

Examination 70%, assignments 30%.

Main Assessment In: April/May

Are reassessment opportunities available for all summative assessments? No

Reassessments are normally available for all courses, except those which contribute to the Honours classification. For non Honours courses, students are offered reassessment in all or any of the components of assessment if the satisfactory (threshold) grade for the overall course is not achieved at the first attempt. This is normally grade D3 for undergraduate students and grade C3 for postgraduate students. Exceptionally it may not be possible to offer reassessment of some coursework items, in which case the mark achieved at the first attempt will be counted towards the final course grade. Any such exceptions for this course are described below. 

 

The coursework cannot be redone because the feedback provided to the students after the original coursework would give any students redoing the coursework an unfair advantage.

Course Aims

To study the concept of algorithms, and how to analyse their efficiency; To study the concept of abstract data types, and the abstract data types most commonly used in software development; To study the basic data structures most commonly used to represent these abstract data types, together with algorithms operating on these data structures.

Intended Learning Outcomes of Course

By the end of the course students will be able to:

1: Discuss the concepts of algorithms and algorithm complexity;

2: Use an abstract data type (ADT);

3: Identify commonly used to represent the above ADTs (arrays, linked lists, search trees, hash tables);

4: Describe algorithms expressed in a suitable notation;

5: Use basic insertion, deletion, searching, merging, and sorting algorithms;

6: Implement these algorithms in a suitable programming language;

7: Detail complexity of these algorithms;

8: Use recursion in algorithms and programs;

9: Describe ADTs specified informally;

10: Design, specify, and implement ADTs;

11: Code standard ADTs (strings, stacks, queues, lists, sets, maps, trees, graphs);

12: Recognise how to decide which ADTs are suitable for use in particular programs;

13: Implement these data structures in a suitable programming language;

14: Describe how the complexity of ADT operations is affected by the choice of data structures.

Minimum Requirement for Award of Credits

Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment.