COMP20290 Algorithms

Academic Year 2020/2021

We increasingly live in a world that is driven by algorithms and the services they provide touch our lives in multiple ways, underpinning how we navigate the world, how we retrieve information, how we play and how we manage our health.

In this module, you will learn some of the fundamental and most powerful concepts in computer science that distinguish good programmers from talented computer scientists.

This module will cover the following:
* Introduction to Algorithm Analysis

* Pseudo Code

* Simple Recursive Algorithms

* Backtracking Algorithms

* Divide and Conquer Algorithms

* Dynamic Programming Algorithms

* Greedy Algorithms

* Branch and Bound Algorithms

* Brute Force Algorithms

* Randomized Algorithms

* Calculating Upper and Lower Bounds

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

On completion of this module, you should be able to:
- understand the process for developing and testing algorithms
- be familiar with Big O notation and complexity analysis
- understand various algorithmic strategies for solving problems
- be familiar with the common sorting, searching and string-based algorithms
- be able to implement, as well as both theoretically and empirically analyze, a wide range of algorithms in Java


Indicative Module Content:

This module will cover:

* Introduction to Algorithm Analysis
* Pseudo Code
* Simple Recursive Algorithms
* Backtracking Algorithms
* Divide and Conquer Algorithms
* Dynamic Programming Algorithms
* Greedy Algorithms
* Branch and Bound Algorithms
* Brute Force Algorithms
* Randomized Algorithms
* Calculating Upper and Lower Bounds

Student Effort Hours: 
Student Effort Type Hours
Lectures

24

Practical

24

Total

48

Approaches to Teaching and Learning:
Lecture based content delivery.
Practical exercises. 
Requirements, Exclusions and Recommendations

Not applicable to this module.


Module Requisites and Incompatibles
Not applicable to this module.
 
Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Continuous Assessment: An algorithm code repository that is maintained over the course of the semester. Week 12 n/a Graded No

30

Assignment: A java assignment focused on implementing an algorithm. Week 11 n/a Graded No

40

Multiple Choice Questionnaire: 1 hour multiple choice online test at the end of the semester End of trimester MCQ n/a Graded No

30


Carry forward of passed components
No
 
Remediation Type Remediation Timing
In-Module Resit Prior to relevant Programme Exam Board
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Feedback individually to students, post-assessment

How will my Feedback be Delivered?

Feedback on assessments will be provided to each individual with an opportunity to discuss grades in person offered.