Skip to main content Skip to navigation

CS917-15 Foundations of Computing

Department
Computer Science
Level
Taught Postgraduate Level
Module leader
Feng Hao
Credit value
15
Module duration
10 weeks
Assessment
100% coursework
Study location
University of Warwick main campus, Coventry

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 A1
Weighting Study time Eligible for self-certification
Practical Assignments 100% Yes (extension)

There are three coursework assignments for this module.
Programming:
Algorithms:
Maths and Stats.
They are weighted equally.

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