Data Structures & Algorithms
Run by School of Computer Science and Electronic Engineering
20 Credits or 10 ECTS Credits
Organiser: Dr Ik Soo Lim
Overall aims and purpose
To introduce fundamental data structures. To introduce fundamental algorithms. To introduce time and space complexity of algorithms. To introduce computer-implementations of data structures and algorithms.
• Data structures and abstract data types; arrays, linked-lists, stacks, queues, sets, maps, and binary search trees. • Algorithms: sorting, insertion, deletion, searching, traversal, iterative and recursive algorithms. • Efficiency measures for time and space: rates of growth; asymptotic behaviour, big-O notation. Algorithm complexity classes. Constraints and Trade offs (time vs. space).
Use complexity analysis to assess the efficiency of algorithms.
Show an understanding of the design and implementation of fundamental data structures and algorithms.
Teaching and Learning Strategy
Interactions via questions-and-answers.
ASSESSED assignments based on computer programming.
- Numeracy - Proficiency in using numbers at appropriate levels of accuracy
- Computer Literacy - Proficiency in using a varied range of computer software
- Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
- Exploring - Able to investigate, research and consider alternatives
- Information retrieval - Able to access different and multiple sources of information
- Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
- Argument - Able to put forward, debate and justify an opinion or a course of action, with an individual or in a wider group setting
- Self-awareness & Reflectivity - Having an awareness of your own strengths, weaknesses, aims and objectives. Able to regularly review, evaluate and reflect upon the performance of yourself and others
Subject specific skills
- Apply an understanding and appreciation of continuous improvement techniques
- Solve problems logically and systematically;
- Analyse and display data using appropriate methods and mathematical techniques;
- Knowledge and understanding of facts, concepts, principles & theories
- Problem solving strategies
- Knowledge and understanding of mathematical principles
- Evaluate systems in terms of quality and trade-offs
Resource implications for students
Hard copies of the main course text are available at the library. On-line access to the highly recommended book is available.
Talis Reading listhttp://readinglists.bangor.ac.uk/modules/ice-2201.html
Main Course text: Java collections: an introduction to abstract data types, data structures, and algorithms - David A. Watt, Deryck F. Brown c2001
Highly Recommended: Introduction to algorithms - Thomas H. Cormen 2010, c2009
Recommended: Probability and Computing 2nd ed - Michael Mitzenmacher and Eli Upfal, Cambridge University Press, 2016
Courses including this module
Compulsory in courses:
- H612: BEng Computer Systs Eng (3 yrs) year 2 (BENG/CSE)
- H61B: BEng Computer Sys Engineering (4yr with Incorp Foundation) year 2 (BENG/CSE1)
- G400: BSC Computer Science year 2 (BSC/CS)
- G40B: BSc Computer Science (4 year with Incorporated Foundation) year 2 (BSC/CS1)
- G40F: BSc Computer Science year 2 (BSC/CSF)
- I103: BSc Computer Science with Game Design year 2 (BSC/CSGD)
- I102: BSc Computer Science (with International Experience) year 2 (BSC/CSIE)
- H113: BSc Data Science and Machine Learning year 2 (BSC/DSML)
- H114: BSc Data Science and Visualisation year 2 (BSC/DSV)
- H117: MComp Computer Science year 2 (MCOMP/CS)
- H617: MEng Computer Systs Eng (4 yrs) year 2 (MENG/CSE)
- H619: MEng Computer Systems Engineering (with International Exper) year 2 (MENG/CSEIE)