# FOUNDATIONS OF COMPUTING - 2020/1

Module code: COM1026

In light of the Covid-19 pandemic, and in a departure from previous academic years and previously published information, the University has had to change the delivery (and in some cases the content) of its programmes, together with certain University services and facilities for the academic year 2020/21.

These changes include the implementation of a hybrid teaching approach during 2020/21. Detailed information on all changes is available at: https://www.surrey.ac.uk/coronavirus/course-changes. This webpage sets out information relating to general University changes, and will also direct you to consider additional specific information relating to your chosen programme.

Prior to registering online, you must read this general information and all relevant additional programme specific information. By completing online registration, you acknowledge that you have read such content, and accept all such changes.

Module Overview

The course introduces the core concepts of discrete mathematics, including truth tables, propositional and predicate logic, set theory, number theory, relations, functions and mathematical proof. These concepts are useful throughout the programme.

Module provider

Computer Science

Module Leader

DONGOL Brijesh (Computer Sci)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 4

JACs code: I100

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

Module Availability

Semester 1

Prerequisites / Co-requisites

None

Module content

Indicative content includes:

- Logic:

- Truth tables
- Propositional logic
- Quantifiers & Predicate logic

- Set theory:

- Sets: definition, union, intersection, power set, set comprehension
- Cartesian products, relations

- Elements of number theory:

- Natural numbers
- Euclidean algorithm
- Modular arithmetics

- Functions:

- Surjective, injective and bijective functions
- Periodic, logarithmic, exponential and polynomial functions

- Introduction to a programming and mathematical modelling environment, in which the following can be performed:

- Numerical calculations
- Plot graphs
- Simple programs to solve numerical problems (e.g., find zeros of a polynomial)

- Proof Methods

- Direct proofs
- Proofs by contradiction
- Proof by induction

Assessment pattern

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

Practical based assessment | Lab-Test I | 20 |

Practical based assessment | Lab-Test II | 20 |

Examination | EXAMINATION - 2 HOURS | 60 |

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 lab test on truth tables, propositional and predicate logic. This addresses LO1 and LO2.

· An individual lab test on sets, relations, nb. theory, functions. This addresses LO1, LO3, LO4 and LO5.

· A 2h unseen examination on the whole course content. This addresses LO1, LO2, LO3, LO4, LO5 and LO6.

The individual lab-tests will be around week 5 and 10 respectively. The exam takes place at the end of the semester during the exam period.

__Formative assessment and feedback__

PollEverywhere is 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.

Individual formative feedback will also be given during the lab sessions and as part of the summative assessment.

Module aims

- This module aims to introduce students to some of the key concepts of logic, set theory, mathematical functions and proof methods in order to highlight the importance and power of abstraction within computer science. Students will also be introduced to the a programming environment capable of mathematical modelling (e.g., SAGE) to perform calculations, plot graphs, and write simple programs

Learning outcomes

Attributes Developed | ||
---|---|---|

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

002 | Understand and manipulate propositions and predicates | KCT |

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

004 | Understand mathematical functions | KPT |

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

006 | Use a programming environment to perform calculations, plot graphs, and write simple programs | K |

007 | Understand elements of number theory | K |

Attributes Developed

**C** - Cognitive/analytical

**K** - Subject knowledge

**T** - Transferable skills

**P** - Professional/Practical skills

Overall student workload

Independent Study Hours: 113

Lecture Hours: 24

Tutorial Hours: 12

Laboratory Hours: 8

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
- Enable students to extract information about a function by sketching its graph
- Highlight the links between logic, abstraction, software specifications and programming
- Practise to perform calculations, plot graphs, and write simple programs using a mathematical modelling and/or programming environment

The

__learning and teaching__methods include:

- Lectures (11 weeks at 2h) using PollEverywhere handsets to gauge the students’ understanding
- Tutorials (11 weeks at 1h)
- Laboratory session (4 weeks at 2h) using a mathematical modelling and/or programming environment.

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**

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 2020/1 academic year.