The aim of the module is to equip students with a grounding in foundations of computing, to enable students from a wider background to confidently undertake a taught masters programme in advanced computing topics.
The aim of the module is to equip students with a grounding in foundations of computing, to enable students from a wider background to confidently undertake a taught masters programme in advanced computing topics.
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
-Computational Mathematics and Statistical Methods (logic, sets, probability and hypothesis testing)
-Programming and Data Structures (procedural and object oriented programming, using appropriate data structures)
-Algorithms and Complexity (analysis of algorithms, searching and sorting algorithms and calculation best, worst and average case complexities)
By the end of the module, students should be able to:
Huth and Ryan, Logic in Computer Science
Daniel Liang Y, Introduction to Java Programming - Comprehensive (7th ed), Pearson, 2008. Goodrich MT, Tamassia R and Goldwasser MH, Data Structures and Algorithms in Java (6/e), Wiley, 2015.
Kleinberg J and Tardos E, Algorithm Design, Addison Wesley, 2005.
Computing Mathematics and Statistical Methods
Computing Mathematics: Logical analysis; Propositional Logic; Sets and Relations; Predicate Logic
Statistical Methods: Probability; Distributions; Significance Tests; Confidence Intervals; Hypothesis Testing
Programming and Data Structures
Programming: Procedural and Object Oriented
Programming; Type Systems; Control Flow; Debugging
Data Structures: Arrays, Lists, Stacks and Queues; Hash
Tables; Trees
Algorithms and Complexity
Algorithms: Basics of Algorithm Analysis; Sorting and
Searching; Graph Algorithms
Complexity: Best, Worst and Average Case Complexity;
Applications of the Master Theorem; Problem Instances
Computing Architectures
Processors and Memory Hierarchies; Client Server; Models of Distributed Systems; Application Domains
-Computing Grand Challenges
-Big Data; Internet of Things; Privacy; Quantum Computing; New Approaches in Al; Smart Cities
Ability to program in Python, to design and analyse efficient computing algorithms, to apply logical analysis as well as probability and statistical tools to computationally address mathematics and statistics problems.
Type | Required |
---|---|
Lectures | 30 sessions of 1 hour (20%) |
Seminars | 20 sessions of 1 hour (13%) |
Private study | 100 hours (67%) |
Total | 150 hours |
Private study, background reading and revision.
No further costs have been identified for this module.
You do not need to pass all assessment components to pass the module.
Students can register for this module without taking any assessment.
Weighting | Study time | |
---|---|---|
Programming assignment | 34% | |
Programming assignment. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
||
Algorithms assignment | 33% | |
Algorithms assignment. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
||
Maths and Statistics assignment. | 33% | |
Maths and Statistics assignment. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
Individual feedback on each assignment.
This module is Core for: