THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2026/2027

Draft Edition - Due to be published Thursday 9th April 2026

Timetable information in the Course Catalogue may be subject to change.

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Informatics 1 - Foundations of Computing (INFR08035)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 8 (Year 1 Undergraduate) AvailabilityAvailable to all students
SCQF Credits20 ECTS Credits10
SummaryThis course introduces you to fundamentals of logic, models of computation, computer architecture, and programming concepts and features. At the end of this course, you should be able to reason with computational models and apply various programming concepts.
Course description This course is an important foundational course for all areas of Informatics. It is key preparation for our undergraduate degrees, covering foundational models of computing, and various concepts that inform our understanding of how practical limitations affect the behaviour of computer systems. This material will be linked to practical programming throughout the course. The course will run in semester 2, through a mixture of lectures, tutorials, and labs.

The following is an indicative list of topics covered:
- Sets, data types (strings of characters/bits/numbers, functions)
- Boolean logic and its application in software and hardware. Methods for reasoning and constructing proofs in propositional logic, and methods for checking a proof. This will include truth tables and some sequent-based method of deduction. Conjunctive normal form (CNF) will be covered.
- Finite-state machines (FSMs) as a model of computation, and equivalence results about deterministic and non-deterministic FSMs. Regular expressions.
- System-based models of computation (von Neumann and RAM), and some simple examples of these models. Big-O asymptotic notation.
- Lambda calculus and the composition of lambda calculus expressions.
- Different programming paradigms (imperative, functional, and some aspects of object-oriented) and how to apply them.
- Illustration of imperative programming via pseudocode or an imperative programming language.
- Abstract data types (including basic types, but also interfaces and modules) in the context of programming. Algebraic data types and pattern matching.
- Programming environments: Compilers and interpreters, and memory allocation for programming.
- Using recursion and other decomposition techniques to solve problems by breaking them into smaller subproblems; composing functional programs from suitable function specifications such as types.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Students MUST NOT also be taking Informatics 1 - Introduction to Computation (INFR08025)
Other requirements Any student taking this course must have a strong background in Mathematics, attaining high grades at High School level. They should also have mastered at least one computer programming language.

For any non-Informatics UoE students wanting to take this course, we will require equivalent Maths/programming entry qualifications to those of the Informatics students.
Information for Visiting Students
Pre-requisitesAny student taking this course must have a strong background in Mathematics, attaining high grades at High School level. They should also have mastered at least one computer programming language.

For any non-Informatics UoE students wanting to take this course, we will require equivalent Maths/programming entry qualifications to those of the Informatics students.
High Demand Course? Yes
Course Delivery Information
Academic year 2026/27, Available to all students (SV1) Quota:  None
Course Start Semester 2
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 33, Seminar/Tutorial Hours 9, Supervised Practical/Workshop/Studio Hours 10, Summative Assessment Hours 2, Revision Session Hours 2, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 140 )
Assessment (Further Info) Written Exam 70 %, Coursework 30 %, Practical Exam 0 %
Feedback Students will receive summative feedback on their submitted coursework during semester. There will be an opportunity to receive formative feedback in advance of the submission of coursework.
Exam Information
Exam Diet Paper Name Minutes
Main Exam Diet S2 (April/May)Informatics 1 - Foundations of Computing (INFR08035)120
Resit Exam Diet (August)Informatics 1 - Foundations of Computing (INFR08035)120
Learning Outcomes
On completion of this course, the student will be able to:
  1. describe models of computation (such as Finite State Machines, Von Neumann models, lambda calculus), reason about these models and their limitations, and build small systems in these models
  2. apply and reason with logic, including in the context of software and hardware
  3. explain and demonstrate a range of different programming concepts and features (to include imperative programming and functional programming), and reason with those concepts
  4. critically evaluate similarities and differences of computational models, logic, systems, and programs
Reading List
There will be no set course textbook.

One relevant reference text is ``Introduction to Computation: Haskell, Logic and Automata (Undergraduate Topics in Computer Science)", by D. Sannella, M. Fourman, H. Peng and P. Wadler; Springer-Verlag, 2022

For background reading, one interesting text is ``Models of Computation - Exploring the Power of Computing", by John E. Savage, AddisonWesley 1997.
Additional Information
Graduate Attributes and Skills Not entered
KeywordsModels of computation,Logic,Imperative Programming,Functional Programming
Contacts
Course organiserDr Richard Mayr
Tel: (0131 6)50 5130
Email: rmayr@staffmail.ed.ac.uk
Course secretaryMs Kendal Reid
Tel: (0131 6)50 5194
Email: kr@inf.ed.ac.uk
Navigation
Help & Information
Home
Introduction
Glossary
Search DPTs and Courses
Regulations
Regulations
Degree Programmes
Introduction
Browse DPTs
Courses
Introduction
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Prospectuses
Important Information