Module Descriptors
DATA STRUCTURE AND ALGORITHMS
COMP50065
Key Facts
Digital, Technology, Innovation and Business
Level 5
20 credits
Contact
Leader: Joideep Banerjee
Hours of Study
Scheduled Learning and Teaching Activities: 52
Independent Study Hours: 148
Total Learning Hours: 200
Pattern of Delivery
  • Occurrence A, Stoke Campus, UG Semester 2
  • Occurrence C, British University Vietnam, UG Semester 2
  • Occurrence D, British University Vietnam, UG Semester 1
Sites
  • British University Vietnam
  • Stoke Campus
Assessment
  • PRACTICAL ASSESSMENT - 15 mins weighted at 100%
Module Details
Indicative Content
This module covers topics of:


Algorithm Analysis (e.g. Time Complexity)

Algorithm Design and Strategies (e.g. Brute Force, Best-first, Breadth-First), and Dynamic Programming

Data structure (e.g. List, Stack, Tree traversal, and Queue)

Sorting (e.g. Merge Sort, Quick Sort, and Selection Sort)

Search algorithms, and Graph

Hash tables, Priority Queues, and Advance Tree structure
Additional Assessment Details
Practical Assessment - Students will be expected to solve a problem algorithmically using the theories and practices covered in the module which will be assessed by a presentation of their findings. As background work students are required to carry out research, practically design and code, and show clear understanding of the whole investigation process in their proposed solution(s) (Learning Outcomes 1 to 3).
Learning Strategies
Theory will be delivered via lectures and supported by practical classes, seminars and discussion groups. In addition, you will be provided with a range of resources for independent study such as case studies, academic papers and industry stories. There will be a mixture of practical and theoretical formative exercises which will help you build your knowledge and confidence as well as preparing you for the summative assessment.
Learning Outcomes

1. Demonstrate an understanding of common data structures, algorithms and derive time and space complexity measures

Knowledge and Understanding, Learning

2. Be able to solve a problem algorithmically, and present logical and coherent written/verbal arguments for choices made in relation to data structures and algorithms

Problem Solving, Reflection, Communication, Application



3. Understand how to code and evaluate data structures and algorithms for efficiency

Knowledge and Understanding,

Resources
JetBrains PyCharm (IDE for Python)

Numpy (Python library)

Pandas (Python library), RapidMiner, Microsoft Azure Portal

Scikit-learn API, or similar API

Datasets from Kaggle, Weka, MIMIC or similar sources
Texts
These are indicative only. Texts are updated on an annual basis and when you start to study this module, you will be referred to an online reading list, currently provided through Keylinks. You are advised not to buy any textbooks for this module without checking the online reading list.

Rocca, L, M. (2021), Algorithms and Data Structures in Action, Manning Publications; 1st edition

Skiena, S. (2020), The Algorithm Design Manual (Texts in Computer Science), Springer; 3rd ed. 2020 edition

Wengrow, J. (2020), A Common-Sense Guide to Data Structures and Algorithms, 2e: Level Up Your Core Programming Skills, The Pragmatic Programmers; 2nd ed. edition

Theobald, A. (2021), Machine Learning for Absolute Beginners: A Plain English Introduction (Third Edition): 1 (Machine Learning with Python for Beginners), Independently published

Geron, A. (2022), Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow 3e: Concepts, Tools, and Techniques to Build Intelligent Systems, O'Reilly Media; 3rd edition

Huyen, C. (2022), Designing Machine Learning Systems: An Iterative Process for Production-Ready Applications, O'Reilly Media; 1st edition

Tombs, N. (2022), Reflections of a Robot: Dialogues on Artificial Intelligence, Independently Published

Bramer, M.A. (2016)¿Principles of data mining.¿3rd edn. London: Springer

Engelbrecht, A.P. (2007) Computational intelligence: an introduction. 2nd edn. Hoboken, N.J: John Wiley

Witten, I.H., Frank, E. and Hall, M. (2011)¿Data mining: practical machine learning tools and techniques.¿3rd edn. London; Amsterdam: Morgan Kaufmann

Raschka, S. (2017) Python machine learning: machine learning and deep learning with Python, scikit-learn, and TensorFlow

Web Descriptor
As a student on this module, you will learn theory behind and about fundamentals of data structures and algorithms as these are two of the most important parts in AI required to understand and therefore solve problems algorithmically. Without this knowledge it is impossible to work in the field to any beneficial level, or with any efficiency being shown. The module also teaches the practical side of the discipline through the key principles of algorithms and data structures and how to specifically code for these.