CS2S560 - Data Structures and Algorithms with Object Oriented Programming 01 Sep 2022 - 31 Aug 2028 | Version 4
Associated Module Information
| Module Code: | CS2S560 | ||
|---|---|---|---|
| Module Title: | Data Structures and Algorithms with Object Oriented Programming | ||
| Faculty: | Faculty of Computing, Engineering and Science | ||
| Faculty Group: | Computing and Mathematical Sciences | ||
| Faculty Sub Group: | Computer Science | ||
| Module Leader: | Janusz Kulon | ||
| Module Team: | Shiny Verghese, Christopher Tubb | ||
| First Intended Intake: | SEP 2016 | Final Year of Intake: | |
| Date Closed: | |||
| Credit Value: | 20 | Credit Level: | 5 |
| Language: | English | ||
| Percentage of Module Taught in Welsh: | 0 | ||
| Equivalent Module: | |||
| HECOS codes: | 100960 - object-oriented programming | ||
| HECOS Code Weighting: | 100 | ||
Document Version Information
| Version | 4 |
|---|---|
| Valid From | 01 Sep 2022 |
| Valid To | 31 Aug 2028 |
Module Aims
To examine common data structures, understand the algorithms that efficiently manipulate those data structures, and reinforce and extend understanding of object-oriented programming.
Content Summary
Data Structures and Algorithms: Generic containers such as lists, vectors and maps; recursion; binary search trees, AVL trees, tree traversal and balancing; priority queues; sort algorithms;
Models of Computation: sequential computation, finite state machines, regular expressions, models of parallel & distributed computation, complexity, time vs space complexity, big-O notation, np-hard problems, applied complexity
Problem Solving: defining a problem, finding a solution, recurrence, elegance vs efficiency, divide and conquer, dynamic programming, representations of problems as graphs and networks
Object-Oriented Programming & Design Patterns: OO design principles (abstraction, encapsulation, inheritance, composition, SOLID). Strategy, Decorator, Adapter, Mediator, Command, State, Factory, Singleton, Observer.
Learning and Teaching Methods
| Activity Type | Hours |
|---|---|
| Lecture | 24 |
| Practical classes and workshops | 24 |
| Independent Study | 80 |
| Directed Study | 52 |
| Problem / challenge based learning | 20 |
| Total Hours Selected | 200 |
Learning Outcomes
| # | Learning Outcome |
|---|---|
| LO1 | Demonstrate knowledge, comprehension and discernment in the efficient application of common data structures and algorithms, and collections. |
| LO2 | Demonstrate knowledge, comprehension and discernment in the efficient application of object-oriented programming. |
Module Requisites
N/A
Assessment Criteria
| Assessment Category | Assessment Type | Description | Duration | Word Count | Weight (%) | Best of? | Pass Mark |
|---|---|---|---|---|---|---|---|
| Asynchronous Assessment | Practical Coursework 2 (Asynch) | Implement design patterns using OO best practice | 0 | 2000 | 50 | No | 40 |
| Asynchronous Assessment | Practical Coursework 1 (Asynch) | Implement algorithms using OO best practice | 0 | 2000 | 50 | No | 40 |
Assessment Matrix
| Assessment Type | Learning Outcomes | ||
|---|---|---|---|
| LO1 | LO2 | ||
| Practical Coursework 2 (Asynch) | ✔ | ✔ | |
| Practical Coursework 1 (Asynch) | ✔ | ✔ | |