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 algorithmic 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 exhaustive and heuristic AI search algorithms, mathematical optimisation algorithms (linear programming), and stocastic algorithms, including Monte Carlo simulations. We will also be formalising and coding some of the matrix-based and machine learning algorithms that the students have already studied in Mathematical Foundations of Management II and in Data Analytics I.
This module will also introduce students to 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 determine the complexity and processing requirements of algorithms
- Understand the key elements of software technology.
- Understand some of the challenges and benefits of using software technology in business.
This module with cover the following topics:
- Introduction to programming using Python
- Computational thinking
- Data abstraction
- Matrix algorithms
- Machine learning algorithms
- Search and optimisation algorithms
- Stochastic algorithms
- 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 consisting of an essay.
60% is awarded for an individual coding project consisting of a report plus annotated code.
Current students should refer to Moodle for specific details of the current year’s assessment.
Introduction to Computation and Programming Using Python, John V Guttag, MIT Press, 2013