Page 1 of 1

Module Code - Title:

CS4447 - COMPUTATIONAL THINKING

Year Last Offered:

2025/6

Hours Per Week:

Lecture

2

Lab

12

Tutorial

1

Other

0

Private

10

Credits

15

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