Short Title: Algorithmic Analysis Algorithmic Analysis English
Module Code: ALGO H4001

 Credits: 5
Field of Study: Computer Science
Module Delivered in 2 programme(s)
Reviewed By: FINBARR FEENEY
Module Author: MARGARET FINNEGAN
Module Description: Analysis of algorithms and design of algorithms. This module provides the student with the knowledge and skills to analyse and design algorithms.
Learning Outcomes
On successful completion of this module the learner will be able to:
LO1 To carry out a basic complexity analysis of algorithms and estimate their worst-case and average-case behaviour
LO2 Understand and analyse the resource requirements of algorithms and data structures.
LO3 Identify the most appropriate algorithms and data structure to solve various types of computing problems
LO4 Design software that can search and sort data structures such as Trees, Priority Queues, Dictionaries, and Graphs.

## Module Content & Assessment

Course Work
Assessment Type Assessment Description Outcome addressed % of total Assessment Date
Continuous Assessment Continuous Assessment 1 - In class practical and theory exam. A typical task would involve the: analysis of a given algorithm (e.g. sorting, searching, tree traversal) to determine its time complexity. The exam would also include a number of theory questions. For example, given a graph depicting the growth rate functions of algorithms, determine which algorithm performs best for given input values. Task assessed in terms of: use of mathematical notations and formulae to represent programming constructs; application of appropriate mathematical tools and techniques that derive the algorithm’s growth rate function; knowledge and understanding of the theory of algorithm analysis. 1,2,4 20.00 n/a
Continuous Assessment Continuous Assessment 2 - in class practical and theory exam. A Typical Task might be to: formulate the recurrence relations for a given recursive algorithm (e.g. a shortest path algorithm) and the solution of these equations. The exam would include a number of theory questions. Such as the different ways in which data structures (e.g. priority queues, trees, graphs) can be represented, their performance and limitations and when to choose one over another for a specific algorithm. Task assessed in terms of: derivation of recurrence relations from an algorithm’s pseudo-code; application of a method for solving recurrence relations; knowledge of data structures, when to use them and their spa 1,3,4 20.00 n/a
End of Module Formal Examination
Assessment Type Assessment Description Outcome addressed % of total Assessment Date
Formal Exam n/a 1,2,3 60.00 End-of-Semester

TU Dublin – Tallaght Campus reserves the right to alter the nature and timings of assessment

Lecture Class based instruction. Theory and worked examples. 2.00 Every Week 2.00
Lab Lab assignments and practical work 1.00 Every Week 1.00
Independent Learning Reading, researching. 2.00 Every Week 2.00
Total Weekly Contact Hours 3.00
Lecture Class based instruction. Theory and worked examples. 1.00 Every Week 1.00
Lab Lab assignments and practical work 1.00 Every Week 1.00
Independent Learning Time Reading and researching. 2.00 Every Week 2.00
Total Weekly Contact Hours 2.00

## Module Resources

Recommended Book Resources
• Addison Wesley, The Art of Computer Programming: Fundamental Algorithms Volume. 1: Fundamental Algorithms [ISBN: 978-02018968]
• Narasimha Karumanchi, 2017, Data Structures and Algorithms Made Easy: 700 Data Structure and Algorithmic Puzzles, 5 Ed., CreateSpace [ISBN: 978-1456549886]
• Michael T. Goodrich, Roberto Tamassia, David M. Mount, 2011, Data Structures and Algorithms in C++, 2nd Ed. [ISBN: 978-0470383278]
• Mark Allen Weiss 2006, Data structures and algorithm analysis in C++, Pearson Addison-Wesley Boston [ISBN: 978-0321441461]
• Robert Sedgewick, Philippe Flajolet 1996, An introduction to the analysis of algorithms, Addison-Wesley Reading, Mass. [ISBN: 978-0-201-40009-0]
• Stephen Skiena 2010, The Algorithm Design Manual, 2 Ed., Springer [ISBN: 9781849967204]