Module description: Computational thinking refers to a collection of problem-solving techniques which software developers use to understand problems, break them down, and express their solutions in a step-by-step manner suited to programming on a computer. Whilst crucial for computer scientists and engineers, these problem-solving techniques are general: computational thinking is a fundamental skill, and its techniques are useful for general everyday problem solving. This module will explore the tools and techniques for reasoning about problems in a computational thinking way, using them to solve a wide variety of riddles, puzzles, and more practical problems.
Syllabus: introduction to computational thinking, propositional logic, sets, predicate logic, modelling processes, distinguishing between processes.