COMP20290 Algorithms

Academic Year 2024/2025

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 major concepts:
Introduction to Algorithm Analysis

Pseudo Code

Divide and Conquer Algorithms
Dynamic Programming Algorithms

Greedy Algorithms

Brute Force Algorithms


This module will cover sorting, searching, and data compression algorithms.

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

Autonomous Student Learning

58

Total

106

Approaches to Teaching and Learning:
In this module we will follow a hybrid approach to teaching and Learning. This includes the main concepts of the module delivered by lectures, students will then have the opportunity to work in the labs following an active/task-based learning; the assignment is designed to enable group work, and the result of the assignment requires some critical writing and student presentations. 
Requirements, Exclusions and Recommendations

Not applicable to this module.


Module Requisites and Incompatibles
Required:
COMP20250 - Introduction to Java, COMP20300 - Java Programming (Mixed Delive, COMP20350 - Object-Oriented Programming

Incompatibles:
COMP20230 - Data Struc & Algorithms (Conv)

Additional Information:
Students must have attempted COMP20350 *OR* COMP20300 *OR* COMP20250 prior to taking this module.


 
Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Assignment(Including Essay): This assignment is a group work, including understanding a research paper and implementing the proposed methods in the paper. n/a Graded No

30

Exam (In-person): Final paper based exam, this exam will include questions on the concepts covered in the module. n/a Graded No

70


Carry forward of passed components
No
 
Resit In Terminal Exam
Summer Yes - 2 Hour
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.

Name Role
Mr Jack Geraghty Tutor