Description
This BASc course complements BASC0040 (Logic, Computation, and Language Theory) to provide students with the skills required to access second-year courses involving computer science or similar subjects.
The module will allow students to become confident with a range of data structures and algorithms and able to apply them in realistic situations. The course will provide the tools required to analyze a problem and decide which algorithms or algorithmic techniques to apply to solve it. The course will involve practical programming and encourage a thoughtful approach to analysis and design problems.
Teaching Delivery
This module will be taught in one two-hour lecture per week followed by a one-hour seminar.
Indicative Topics
The module will cover the following topics, which may be subject to variation depending on developments in academic research and the interests of the class:
- What is an algorithm;
- Logic and algorithms;
- Searching and sorting algorithms;
- Graph algorithms;
- Text algorithms;
- Analysis of algorithms;
- Data structures;
- Linked lists and abstract data types;
- Recursion and greedy algorithms.
Module aims and objectives
- Discuss the notions of algorithms and data structuresÌý
- Understand and manipulate sorting algorithmsÌý
- Understand and manipulate graph algorithmsÌý
- Implement algorithms in Python (based on the lectures)Ìý
- Solve recurrence equationsÌý
- Being able to compute computational complexitiesÌý
- Understand and use asymptotic notationÌý
Module deliveries for 2024/25 academic year
Last updated
This module description was last updated on 19th August 2024.
Ìý