Using Data Structures in Applications
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
To learn and practice how to choose and use optimal data structures and algorithms to solve challenging problems. To introduce concepts of advanced data structures.
Indicative content includes:
- Applying the common abstract data types to applications.
- Rules of thumb for choosing among the options.
- Performance and efficiency characteristics of each type.
- More advanced data structures, e.g. hash tables, heaps, and balanced search trees.
Equivalent to 40%. 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.
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.
Evaluate and select appropriate data structures and algorithms to solve a given problem.
Evaluate algorithm-based solutions in terms of efficiency, both in terms of time and space.
Implement data structures and algorithms for problem-solving.
Describe the design and implementation of more advanced data structures.
|CLASS TEST||In-class Test||
In class test to assess understanding of theoretical elements of the module.
An assignment requiring the use of a range of data structures and algorithms in order to design and implement an efficient computer application.
A series of assessed laboratories, demonstrating various programming and analytical skills to make use of a range of data structures and algorithms in order to design and implement efficient computer applications.
Teaching and Learning Strategy
Tutor-directed study, including individual assignments.
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
- 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.
- Presentation - Able to clearly present information and explanations to an audience. Through the written or oral mode of communication accurately and concisely.
- 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;
- Knowledge and understanding of facts, concepts, principles & theories
- Use of such knowledge in modelling and design
- Problem solving strategies
- Analyse if/how a system meets current and future requirements
- Deploy theory in design, implementation and evaluation of systems
- Specify, design or construct computer-based systems
- Evaluate systems in terms of quality and trade-offs
- Deploy tools effectively
- Development of general transferable skills
- Deploy systems to meet business goals
- Specify, deploy, verify and maintain information systems
- Defining problems, managing design process and evaluating outcomes
- System Design
- Knowledge and/or understanding of appropriate scientific and engineering principles
- Knowledge and understanding of mathematical principles
- Knowledge and understanding of computational modelling
- Specify, deploy, verify and maintain computer-based systems
Talis Reading listhttp://readinglists.bangor.ac.uk/modules/ice-3212.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:
- H117: MComp Computer Science year 3 (MCOMP/CS)