CS917-15 Foundations of Computing
Introductory description
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.
Module aims
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.
Outline syllabus
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)
Learning outcomes
By the end of the module, students should be able to:
- Understand the foundational concepts of computing mathematics and statistical methods.
- Write computer programs with an understanding of type systems and control flow in both procedural and object oriented programming paradigms and have strategies for debugging. Use data structures such as arrays, lists stack, queues, hash tables and trees effectively.
- Understand the relationships between algorithms and complexity.
Indicative reading list
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.
Subject specific skills
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
Transferable skills
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.
Study time
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 description
Private study, background reading and revision.
Costs
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.
Assessment group A2
Weighting | Study time | Eligible for self-certification | |
---|---|---|---|
Programming assignment | 34% | No | |
Programming assignment. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
|||
Algorithms assignment | 33% | No | |
Algorithms assignment. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
|||
Maths and Statistics assignment. | 33% | No | |
Maths and Statistics assignment. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
Feedback on assessment
Individual feedback on each assignment.
Courses
This module is Core for:
- Year 1 of TPSS-C803 Postgraduate Taught Behavioural and Data Science
-
TCSA-G5PD Postgraduate Taught Computer Science
- Year 1 of G5PD Computer Science
- Year 1 of G5PD Computer Science
- Year 1 of TCSA-G5PA Postgraduate Taught Data Analytics