# FOUNDATIONS OF COMPUTING - 2024/5

Module code: COM1026

## Module Overview

This module aims to introduce students to some of the key concepts of set theory, relations, functions, automata, logic, graphs, trees, proof methods, probability and statistics in order to highlight the importance and power of abstraction within computer science. These concepts are useful throughout the programme.

### Module provider

Computer Science

### Module Leader

DONGOL Brijesh (Elec Elec En)

### Number of Credits: 15

### ECTS Credits: 7.5

### Framework: FHEQ Level 4

### JACs code: I100

### Module cap (Maximum number of students): N/A

## Overall student workload

Independent Learning Hours: 106

Lecture Hours: 22

Tutorial Hours: 22

## Module Availability

Semester 1

## Prerequisites / Co-requisites

None

## Module content

Indicative content includes:

**Set theory**

- Sets: definition, union, intersection, power set, set comprehension

**Relations and Functions**

- Cartesian products, types of relations
- Equivalence classes
- Orders
- Surjective, injective and bijective functions

**Formal Languages and Automata**

- Regular expressions
- Automata theory
- DFA-NFA reductions

**Logic**

- Truth tables
- Propositional logic
- Quantifiers & predicate logic

**Recurrrences, Graphs and Trees**

- Graph and tree terminology
- Connectivity
- Euler and Hamiltonian paths

**Proof Methods**

- Direct proofs
- Proofs by contradiction
- Proof by induction

**Combinatorics**

- Permutations and combination
- Binomial coefficients

**Statistics and probability**

- Bayes' theorem
- Expected value and variance

## Assessment pattern

Assessment type | Unit of assessment | Weighting |
---|---|---|

Online Scheduled Summative Class Test | 24-HOUR ONLINE TEST (1 of 2) | 50 |

Online Scheduled Summative Class Test | 24-HOUR ONLINE TEST (2 of 2) | 50 |

## Alternative Assessment

N/A

## Assessment Strategy

The __assessment strategy__ is designed to provide students with the opportunity to demonstrate that they have achieved the module learning outcomes.

Thus, the** summative assessment** for this module consists of:

- An individual class test covering the first half of the module,
- An individual class test covering the second half of the module.

The individual tests will be around weeks 6 and 11, respectively.

**Formative assessment and feedback**

PollEverywhere will be used in the lectures with each lecture consisting of a number of slides explaining the theory followed by a number of slides gauging the students’ understanding. The answers are discussed when necessary, e.g., if a high proportion (more than 25%) of the students got the answer wrong.

## Module aims

- This module aims to introduce students to some of the key concepts of set theory, relations, functions, automata, logic, graphs, trees, proof methods, probability and statistics in order to highlight the importance and power of abstraction within computer science.

## Learning outcomes

Attributes Developed | ||

004 | Recognise the importance and role of logic in computing | C |

003 | Understand and manipulate propositions and predicates | KCT |

001 | Understand and manipulate set theoretic expressions including relations and functional notation | KCT |

005 | Recognise, understand and construct rigorous mathematical proofs | CT |

002 | Understand the foundations of regular expressions and automata theory | KCT |

007 | Understand the basics of probability theory and statistics | K |

006 | Understand and apply abstraction techniques, including recurrences, graphs and trees | KCT |

Attributes Developed

**C** - Cognitive/analytical

**K** - Subject knowledge

**T** - Transferable skills

**P** - Professional/Practical skills

## Methods of Teaching / Learning

The __learning and teaching__ strategy is designed to:

- Help students recognise the importance and role of logic in computing
- Provide opportunities to manipulate propositions, predicates and set theoretic expressions including relations and functional notation
- Help students to assimilate the concept of formal proof
- Highlight the links between logic, abstraction, software specifications and programming

The

__learning and teaching__methods include:

- Lectures (11 weeks at 2h)
- Flipped lectures and tutorials (11 weeks at 2h) using PollEverywhere handsets to gauge the students’ understanding

Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

## Reading list

https://readinglists.surrey.ac.uk

Upon accessing the reading list, please search for the module using the module code: **COM1026**

## Other information

**Digital Capabilities**

The practical components of this module explore how computers can be used to reason about, model and solve mathematical problems. It teaches the maths required to understand important computing concepts taught later in the course such as algorithms, security, programming languages and systems verification.

**Employability**

This module provides foundational maths skills that allow students to reason about complex computer science problems and apply mathematical techniques to solve these problems. Through teaching the theory of logic, functions, set theory, probability and statistics students are equipped with a solid grounding in the mathematics of computer science that will allow them to apply this theory to new technologies.

**Global and Cultural Skills**

Mathematics is a global language and the foundational knowledge taught in this module can be applied throughout the world.

**Resourcefulness and Resilience**

This module involves practical problem-solving skills that teach a student how to reason about and solve new unseen mathematical problems through applying the foundational theory taught in this module. They are equipped with the tools that will allow them to understand complex computer science concepts.

## Programmes this module appears in

Programme | Semester | Classification | Qualifying conditions |
---|---|---|---|

Computer Science BSc (Hons) | 1 | Compulsory | A weighted aggregate mark of 40% is required to pass the module |

Computing and Information Technology BSc (Hons) | 1 | Compulsory | A weighted aggregate mark of 40% is required to pass the module |

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2024/5 academic year.