WM189-15 Data Structures and Algorithms
Introductory description
Efficient algorithms and data management have contributed to the advances in digital solutions design and implementation. However, practitioners often face resource constraints related to computing speed and memory when designing digital artefacts. It is therefore essential to acquire the knowledge and skills necessary to apply the principles of efficient data structure and algorithm design to better maximise the available computing resources. That is what this module intends to achieve.
This module contributes to AHEP 4 learning outcomes for Partial CEng and BCS accreditation criteria for Full CITP as referenced in the learning outcomes.
Module aims
This module aims to enhance students’ competency as efficient programmers through a systematic understanding and application of programming concepts such as arrays, linked lists, search, and sorting algorithms. By integrating theoretical principles with practical implementations, students will develop the necessary skills to design, analyse, and implement efficient data structures and algorithms to solve real-world problems. Additionally, the module will empower students with the tools required to pursue further research within the domain of computer science.
Outline syllabus
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
Basic and advanced data structures;
Algorithmic paradigms and design; Recursive, brute force, divide & conquer, dynamic programming, greedy algorithms, backtracking;
Searching algorithms,
Sorting algorithms,
Graph data structures.
Space and Time complexity (O-notation).
Learning outcomes
By the end of the module, students should be able to:
- Describe the fundamental data structures and discuss their trade-offs in different contexts [AHEP:4-2.1.1, C1].
- Analyse a range of algorithms by evaluating their complexity [AHEP:4-2.2.2, C1, C2].
- Evaluate common algorithm design techniques based on their strengths and limitations, and correctly apply them to solve real-world problems [AHEP:4-2.1.1, 2.2.1, 2.2.2, C3, C4, C13.]
- Implement efficient data structures and algorithms to solve complex computational problems [AHEP:4-2.1.1, 2.1.2, 2.2.1, C2, C3, C5].
Indicative reading list
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein;
Algorithm Design by J. Kleinberg and E. Tardos; Algorithms by S. Dasgupta, C.H. Papadimitriou and U.V. Vazirani.
Subject specific skills
Analyse a business problem in order to specify an appropriate digital and technology solution (S3).
Initiate, design, code, test and debug a software component for a digital and technology solution (S4).
Use appropriate analysis methods, approaches and techniques in software engineering projects to deliver an outcome that meets requirements (S18).
Transferable skills
Problem Solving: Use rational and logical reasoning to deduce appropriate and well-reasoned conclusions. Retain an open mind, optimistic of finding solutions, thinking laterally and creatively to look beyond the obvious. Knows how to learn from failure.
Written communication: Present arguments, knowledge, and ideas, in a range of formats.
Active listening: questioning, reflecting, summarising.
Critical Thinking: Recognise patterns, themes, and key messages from sometimes confused and incomplete data. Make informed decisions on the value of a range of sources allowing an evidence-based conclusion based on this analysis.
Professionalism: Prepared to operate autonomously. Aware of how to be efficient and resilient. Self-motivated, setting and achieving goals, prioritising tasks.
Study time
Type | Required | Optional |
---|---|---|
Lectures | 15 sessions of 1 hour (10%) | |
Seminars | 5 sessions of 1 hour (3%) | |
Supervised practical classes | 10 sessions of 1 hour (7%) | |
Online learning (scheduled sessions) | (0%) | 1 session of 1 hour |
Online learning (independent) | 20 sessions of 1 hour (13%) | |
Private study | 40 hours (27%) | |
Assessment | 60 hours (40%) | |
Total | 150 hours |
Private study description
Private study and independent:
-pre-module preparation and quizes.
- self-guided study.
-in-module assignment.
Costs
No further costs have been identified for this module.
You must pass all assessment components to pass the module.
Assessment group A
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
In-Module Assignment | 30% | 18 hours | Yes (extension) |
The in-module assignment assesses student's based on LO1 and LO2. Students will be asked to answer a variety of programming challenges. |
|||
Post-module Assignment | 70% | 42 hours | Yes (extension) |
The PMA assesses students based on LO2, LO3 and LO4. A written report of a substantial piece of programming problem with code implementation will be submitted. |
Feedback on assessment
-Verbal feedback during sessions, seminars and tutorials.
-Formative feedback given for individual contributions.
-Written feedback for assessed work.
Courses
This module is Core for:
- Year 2 of UWMS-H65E Undergraduate Digital and Technology Solutions (Cyber)
- Year 2 of DWMS-H655 Undergraduate Digital and Technology Solutions (Cyber) (Degree Apprenticeship)
- Year 2 of UWMS-H65B Undergraduate Digital and Technology Solutions (Data Analytics)
- Year 2 of DWMS-H652 Undergraduate Digital and Technology Solutions (Data Analytics) (Degree Apprenticeship)
- Year 2 of UWMS-H65C Undergraduate Digital and Technology Solutions (Network Engineering)
- Year 2 of DWMS-H653 Undergraduate Digital and Technology Solutions (Network Engineering) (Degree Apprenticeship)
- Year 2 of UWMS-H65D Undergraduate Digital and Technology Solutions (Software Engineering)
- Year 2 of DWMS-H654 Undergraduate Digital and Technology Solutions (Software Engineering) (Degree Apprenticeship)