Computational Thinking introduces students to algorithms and how they programmed and used in a management context. Algorithms describe how problems can be solved using sequences of instructions, selection rules, iterative processes and control abstractions. This module is concerned with understanding how software is designed to solve problems and how thinking in this way can help structure and solve problems generally. Students will learn to program in Python as a tool to aid understanding algorithm design.
Students will be introduced to a range of algorithms, including search, game-playing, optimisation and symbolic processing algorithms. We will also be formalising and coding some of the algorithmic methods that the students have already studied in Mathematical Foundations of Management II (linear algebra) and in Data Analytics I.
This module will also introduce students to computational mathematics, which is particularly concerned with analysing the complexity of algorithms and the time required to complete computations. This will introduce important concepts to understanding the challenges and limits of processing big data.
Upon successful completion of the module, students will be able to:
- Understand how to express and design algorithms in terms of sequences of instructions, selection rules and iterative processes.
- Characterise algorithms and the data structures they employ.
- Understand how to design algorithms in a general purpose programming language.
- Use Python to code and execute algorithms.
- Understand how to use computational mathematics to determine the complexity and processing requirements of algorithms
- Understand the key elements of software technology.
- Understand the challenges and benefits of using software technology in business, especially in a big data context.
This module with cover the following topics:
- Introduction to programming using Python
- Computational thinking
- Data abstraction
- Matrix algorithms
- Machine learning algorithms
- Search and game-playing algorithms
- Text and symbolic processing
- Types of programming languages
- Computation, scale and complexity
- Software and business
20% is awarded for a scenario week group coursework consisting of a 10 min video presentation and slide pack.
20% is awarded for an individual coursework consistening of a 2000 word essay.
60% is awarded for an individual coding project consisting of 2,000 word report plus annotated code.
Introduction to Computation and Programming Using Python, John V Guttag, MIT Press, 2013