Module Code - Title:
CS4447
-
COMPUTATIONAL THINKING
Year Last Offered:
2025/6
Hours Per Week:
Grading Type:
N
Prerequisite Modules:
Rationale and Purpose of the Module:
This is Block 11 (15 ECTS) on the 3+1 Integrated BSc/MSc Immersive Software Engineering and runs Year 3 Weeks 8 to 15 (8 Weeks) in the spring semester.
This block introduces the student to computational thinking and problem solving through a broad range of advanced algorithms that are characterised by a strong mathematical basis, well understood convergence properties, and proven application across many domains. The students will demonstrate a deep understanding of the algorithms through empirical studies that quantify the impact of parameter tuning on efficiency and performance.
Syllabus:
1. Computational Thinking pillars: decomposition, pattern recognition, data representation and abstraction, and algorithms
2. Model checking and correctness
3. Applied Computational Thinking using a selection of algorithms that will be studied and evaluated using journal/conference papers, examples include:
- Alpha Beta and Minimax search algorithms
- Fast Fourier Transform and Convolution in image processing
- Linear Programming for graph layout
- Integer Programming for instruction scheduling
- Algorithms for the Travelling Salesman Problem
- Monte Carlo Tree Search
- String algorithms such as suffix trees
4. NP Complete problems.
Learning Outcomes:
Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)
On successful completion of this module, students will be able to:
- Identify the key constituents in algorithmic thinking
- Distinguish between computational, mathematical and engineering thinking
- Describe the properties and mechanics of a range of advanced algorithms
- Justify the selection of an appropriate algorithm for a specific problem
- Build a user library of sample advanced algorithms that are benchmarked against standard libraries
- Profile and evaluate the efficiency and performance of the selected algorithm
- Describe problems that are suitable and unsuitable for the advanced algorithms - covered and outline the underlying rationale.
- Construction proofs, and inductive proofs in particular.
Affective (Attitudes and Values)
On successful completion of this module, students will be able to:
Psychomotor (Physical Skills)
On successful completion of this module, students will be able to:
How the Module will be Taught and what will be the Learning Experiences of the Students:
The block is taught using problem-based learning, the flipped classroom concept, and blended learning in a state of the art laboratory setting with an emphasis on collaborative practice and technical excellence. Learning and teaching will be research led with a focus on translating theory into practice, innovation and knowledge creation.
Research Findings Incorporated in to the Syllabus (If Relevant):
Prime Texts:
T. Roughgarden (2017)
Algorithms Illuminated: Part 1: The Basics
, Soundlikeyourself Publishing
T. Roughgarden (2018)
Algorithms Illuminated (Part 2): Graph Algorithms and Data Structures
, Soundlikeyourself Publishing
T. Roughgarden (2019)
Algorithms Illuminated (Part 3): Greedy Algorithms and DynamicProgramming
, Soundlikeyourself Publishing
T. Roughgarden (2020)
Algorithms Illuminated (Part 4): Algorithms for NP-Hard Problems
, Soundlikeyourself Publishing
Other Relevant Texts:
J. V. Guttag. (2016)
Introduction to Computation and Programming Using Python, 2nd Ed.
, The MIT Press
P. Curzon and P. W. McOwan .
(2017)
Power of Computational Thinking: Games, magic, and puzzles to help you become a computational thinker.
, WSPC (EUROPE)
Programme(s) in which this Module is Offered:
Semester(s) Module is Offered:
Autumn
Module Leader:
colin.venters@ul.ie