Indicative Content
Students will understand the necessity of thinking algorithmically, when solving computation problems. This will include:
Asymptotic Notation
Brute Force Techniques
Divide and Conquer Algorithms
Sorting Algorithms
Search Algorithms
Graph Algorithms and Data Structures
Greedy Algorithms and Dynamic Programming
Algorithms for NP-Hard Problems
Additoinal Assessment Details
Assessment Component 1 – (Learning outcomes 1,2,3 and 4)
Portfolio of Problems weighted at 100% consisting of:
You will be presented with a range of computational problems which you will be expected to solve using both algorithmic and programming techniques. The solutions will come in a variety of forms, ranging from pseudo code, spreadsheeting, and programmed elements. Further, your answers will demonstrate the efficacy of the techniques used. For each of these answers, you will also be expected to analyse the techniques in terms of formal efficiency notation.
Learning Strategies
2 * 1-hour lectures per week
1 * 2-hour practical per week
1 * 2-hour seminar per week
Learning Outcomes
1. Demonstrate knowledge in the development of solutions to computational problems, based on algorithmic methods
2. Reproduce solutions to computational problems using either spreadsheet, or programming techniques.
3. Apply solutions according to the algorithmic techniques
4. Use research techniques to find and help justify understanding of mathematical principles used
Resources
Microsoft Office 365
Microsoft Visual Studio
Version Control (GitHub, Plastic SCM or equivalent)
Digital Academy Forum
Digital Academy Upload
Texts
Roughgarden, T. (2022) Algorithms Illuminated. Cambridge: Cambridge university Press. ISBN: 9780999282984
Cormen, H et al. (2009) Introduction to Algorithms. 3rd Edition. Massachusetts: MIT Press. ISBN: 978-0262533058
Web Descriptors
Computer games systems need to solve computational problems very quickly, in order to deliver the best experience possible. In Computational Methods, students will learn the kinds of techniques, developed through computer science, that can help to solve computational problems in the most efficient ways possible. Students will also learn to appreciate just how long problems can take if the more efficient techniques are not employed.