Data Structures and Algorithms; Theory and Mathematics
Run by School of Computer Science and Electronic Engineering
20.000 Credits or 10.000 ECTS Credits
Organiser: Dr Ik Soo Lim
Overall aims and purpose
This module aims to introduce concepts of fundamental data structures and algorithms. It will also introduce methods to analyse algorithms for complexity both in time and space, and the required mathematics.
Indicative content includes:
- Data structures and abstract data types; arrays, linked-lists, stacks, queues, sets and binary search trees.
- Algorithms: sorting, insertion, deletion, searching, iterative and recursive algorithms.
- Mathematics: powers, exponentials, logarithms, series summations, recurrences, sets and Venn diagrams.
- Efficiency measures for time and space: rates of growth, asymptotic behaviour, and big-O notation.
Equivalent to the range 60%-69%. Is able to analyse a task or problem to decide which aspects of theory and knowledge to apply. Solutions are of a workable quality, demonstrating understanding of underlying principles. Major themes can be linked appropriately but may not be able to extend this to individual aspects. Outputs are readily understood, with an appropriate structure but may lack sophistication.
Equivalent to 50%. Uses key areas of theory or knowledge to meet the Learning Outcomes of the module. Is able to formulate an appropriate solution to accurately solve tasks and questions. Can identify individual aspects, but lacks an awareness of links between them and the wider contexts. Outputs can be understood, but lack structure and/or coherence.
Equivalent to the range 70%+. Assemble critically evaluated, relevent areas of knowledge and theory to constuct professional-level solutions to tasks and questions presented. Is able to cross-link themes and aspects to draw considered conclusions. Presents outputs in a cohesive, accurate, and efficient manner.
Describe the concepts of fundamental data structures and algorithms.
Evaluate algorithms, in terms of efficiency, using complexity theory.
Teaching and Learning Strategy
Revision of lecture notes.
ASSESSED assignments based on computer programming.
Interactions via questions-and-answers.
- 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
Talis Reading listhttp://readinglists.bangor.ac.uk/modules/ice-4201.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