production
Skip to Content

CS2522: ALGORITHMS AND DATA STRUCTURES (2023-2024)

Last modified: 14 Dec 2023 09:46


Course Overview

This course provides the knowledge needed to understand, design and compare algorithms.  By the end of the course, a student should be able to create or adapt algorithms to solve problems, determine an algorithm's efficiency, and be able to implement it. The course also introduces the student to a variety of widely used algorithms and algorithm creation techniques, applicable to a range of domains. The course will introduce students to concepts such as pseudo-code and computational complexity, and make use of proof techniques. The practical component of the course will build on and enhance students' programming skills.





Course Details

Study Type Undergraduate Level 2
Session Second Sub Session Credit Points 15 credits (7.5 ECTS credits)
Campus Aberdeen Sustained Study No
Co-ordinators
  • Professor Brian Logan
  • Dr N. Oren

What courses & programmes must have been taken before this course?

What other courses must be taken with this course?

None.

What courses cannot be taken with this course?

Are there a limited number of places available?

No

Course Description

This course concerns seeks to equip the student with the knowledge required to identify appropriate algorithms to address computational problems. It begins by describing the concept of an algorithm, and shows how once an determine whether an algorithm solves a specific problem. Computational complexity is then introduced, allowing the student to compare algorithm efficiency. Basic data structures, such as lists, queues, trees, etc are then described and analysed. The course then examines standard approaches to algorithm creation, such as dynamic programming and search, as well as common algorithmic problems and their solutions, such as sorting.





Contact Teaching Time

Information on contact teaching time is available from the course guide.

Teaching Breakdown

  • 2 Lectures during University weeks 26 - 35, 39
  • 1 Tutorial during University weeks 27 - 35, 39

More Information about Week Numbers


Details, including assessments, may be subject to change until 31 August 2023 for 1st half-session courses and 22 December 2023 for 2nd half-session courses.

Summative Assessments

Computer Programming Exercise

Assessment Type Summative Weighting 25
Assessment Weeks Feedback Weeks

Look up Week Numbers

Feedback

5 x Programming Submission/Test

Learning Outcomes
Knowledge LevelThinking SkillOutcome
ConceptualApplyAbility to demonstrate the correctness of algorithms
ConceptualUnderstandUnderstanding of the theory underpinning algorithmic complexity and ability to compare algorithms for efficiency
ConceptualUnderstandAn appreciation of the trade-offs between different types of data structures and the ability to identify an appropriate data structure for different tasks
ProceduralCreateThe ability to design, specify, describe and implement appropriate algorithms to real world problems

Report: Individual

Assessment Type Summative Weighting 25
Assessment Weeks Feedback Weeks

Look up Week Numbers

Feedback

Programming & Report

Learning Outcomes
Knowledge LevelThinking SkillOutcome
ConceptualApplyAbility to demonstrate the correctness of algorithms
ConceptualUnderstandUnderstanding of the theory underpinning algorithmic complexity and ability to compare algorithms for efficiency
ConceptualUnderstandAn appreciation of the trade-offs between different types of data structures and the ability to identify an appropriate data structure for different tasks
ProceduralCreateThe ability to design, specify, describe and implement appropriate algorithms to real world problems

Exam

Assessment Type Summative Weighting 50
Assessment Weeks Feedback Weeks

Look up Week Numbers

Feedback
Learning Outcomes
Knowledge LevelThinking SkillOutcome
ConceptualApplyAbility to demonstrate the correctness of algorithms
ConceptualUnderstandUnderstanding of the theory underpinning algorithmic complexity and ability to compare algorithms for efficiency
ConceptualUnderstandAn appreciation of the trade-offs between different types of data structures and the ability to identify an appropriate data structure for different tasks
ProceduralCreateThe ability to design, specify, describe and implement appropriate algorithms to real world problems

Formative Assessment

There are no assessments for this course.

Resit Assessments

Exam

Assessment Type Summative Weighting 75
Assessment Weeks Feedback Weeks

Look up Week Numbers

Feedback

2-hour Resit Exam

Plus carried forward continuous assessment marks (25%)

Learning Outcomes
Knowledge LevelThinking SkillOutcome
Sorry, we don't have this information available just now. Please check the course guide on MyAberdeen or with the Course Coordinator

Course Learning Outcomes

Knowledge LevelThinking SkillOutcome
ProceduralCreateThe ability to design, specify, describe and implement appropriate algorithms to real world problems
ConceptualUnderstandAn appreciation of the trade-offs between different types of data structures and the ability to identify an appropriate data structure for different tasks
ConceptualUnderstandUnderstanding of the theory underpinning algorithmic complexity and ability to compare algorithms for efficiency
ConceptualApplyAbility to demonstrate the correctness of algorithms

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.