Registry
Module Specifications
Archived Version 2019 - 2020
| |||||||||||||||||||||||||||||||||||||
Description The aim of this module is to introduce the student to data structures and algorithms, with an emphasis on applications to engineering problem solving. Students will develop an understanding of a range of abstract data types and fundamental sorting and searching algorithms, and gain practical experience in their implementation using high-level programming languages. Students will also encounter a broad range of applied engineering problem areas, as apply to networks, optimisation and statistical analysis, for example. Students will explore and evaluate different approaches to implementing solutions to engineering problems, given requirements for speed and solution accuracy, or constraints such as real-time response, available processing power, or energy consumption. | |||||||||||||||||||||||||||||||||||||
Learning Outcomes 1. Classify general problem solving approaches 2. Implement abstract data types including lists, trees and sets and implement elementary sorting and searching algorithms 3. Implement solution methods using iterative or recursive approaches 4. Translate abstract solution descriptions to concrete programming language implementations 5. Evaluate appropriate data structures and algorithms for given engineering application problems 6. Analyse algorithm time and space complexity 7. Use object-oriented principles in design and implementation of data types and algorithms | |||||||||||||||||||||||||||||||||||||
All module information is indicative and subject to change. For further information,students are advised to refer to the University's Marks and Standards and Programme Specific Regulations at: http://www.dcu.ie/registry/examinations/index.shtml |
|||||||||||||||||||||||||||||||||||||
Indicative Content and
Learning Activities IntroductionImportance of algorithms to Engineering applications. Approaches to problem solving: exact vs heuristic solutions, iterative vs recursive procedures, divide and conquer, brute-force, greedy methods, trial and error, problem reduction.Elements of Algorithm ImplementationAbstract data types: arrays, lists, trees, graphs, maps, sets, stacks, queues. Fundamental operations on data structures: insertion, deletion, existence, searching. Traversing data structures using iteration or recursion.Review of Essential Programming ElementsTranslation from abstract data types and abstract solution descriptions to programming language implementations. Composing complex data types from simple types: indexing, linking, mapping and hashing. Using Object Oriented principles to compose, encapsulate and re-use data structures and algorithm functionality.Sorting, Searching and SelectingBubble sort, selection sort, insertion sort, binary search, heuristic searches and optimisation, ranking and selection.Algorithms for Engineering ApplicationsProblems in networks and graphs, coding, searching and optimisation problems, statistical methods, Monte Carlo method, computing discrete transforms and signal processing applications.Algorithm PerformanceConsiderations for selecting algorithms given functional and performance requirements and computational and energy consumption constraints in engineering applications. Time and space complexity. Deterministic and non-deterministic algorithms. Parallelisable algorithms. Numerical limitations of finite precision machines. | |||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||
Indicative Reading List | |||||||||||||||||||||||||||||||||||||
Other Resources None | |||||||||||||||||||||||||||||||||||||
Programme or List of Programmes | |||||||||||||||||||||||||||||||||||||
Archives: |
|