Coronavirus (Covid-19): Latest updates and information
Skip to main content Skip to navigation

CS917 Foundations of Computing

Throughout the 2020-21 academic year, we will be adapting the way we teach and assess modules in line with government guidance on social distancing and other protective measures in response to Coronavirus. Teaching will vary between online and on-campus delivery through the year, and you should read the additional information linked on the right hand side of this page for details of how we anticipate this will work. The contact hours shown in the module information below are superseded by the additional information. You can find out more about the University’s overall response to Coronavirus at: https://warwick.ac.uk/coronavirus.

CS917-15 Foundations of Computing

Academic year
20/21
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
Practical Assignments 100%

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 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-G5P8 Postgraduate Taught Computer Science and Applications
  • Year 1 of TCSA-G5PA Postgraduate Taught Data Analytics

Further Information

Term 1

15 CATS (7.5 ECTS)

Online Material

Additional Information