THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2024/2025

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 - Introduction to Computation (INFR08025)

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 is only available to Informatics students and those on combined Informatics degrees with Maths and PPLS.

**This 20 credit course replaces the two 10 credit courses - 'Informatics 1 - Functional Programming INFR08013' and 'Informatics 1 - Computation and Logic INFR08012' from 2018/19**.

An introduction to concepts of programming, using a functional programming language, and to concepts of computation and specification using finite-state systems and propositional logic. These provide examples of the logical ideas of syntax and semantics and the computational ideas of structure and behaviour. Students learn to specify, model and solve small-scale problems succinctly and at an abstract level.
Course description An introduction to concepts of programming, using the Haskell functional programming language, and to concepts of computation and specification, using finite-state machines and propositional logic. The use of sets, functions and relations to describe models of logic and computation. Programming using functions and data structures, including lists and trees, equational reasoning, case analysis, recursion, higher-order functions, algebraic and abstract data types. Finite-state machines as a basic model of computation: deterministic and non-deterministic automata; regular expressions; acceptors; structured design of finite state machines. Propositional logic: truth tables; satisfiability; deduction. Applications from different areas will be used to illustrate and motivate the material.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Other requirements SCE H-grade Mathematics or equivalent is desirable.

Note: This course is only available to students on Informatics degrees (including combined degrees with Informatics), or those where it is a compulsory course on their DPT. Maths students may be permitted on the course, subject to capacity.
Information for Visiting Students
Pre-requisitesSCE H-grade Mathematics or equivalent is desirable.
High Demand Course? Yes
Course Delivery Information
Academic year 2024/25, Available to all students (SV1) Quota:  473
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 44, Seminar/Tutorial Hours 15, Supervised Practical/Workshop/Studio Hours 10, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 127 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) Coursework: 100%

The course will be assessed through a combination of short low-stakes quizzes (altogether worth 16% of the course mark) and weekly exercises (altogether worth 64% of the course mark), and a small programming project (worth 20% of the course mark).
Feedback Each student will attend one tutorial a week, each with an attached coursework assignment. There will also be multiple-choice quizzes attached to lectures.

No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. use sets, functions and relations to create a simple mathematical model of a real-world situation and use the syntax and semantics of propositional logic to express simple constraints
  2. solve simple programming tasks and define appropriate data types. Choose appropriate decompositions of given problems and compose corresponding functional programs from suitable function definitions, including their types
  3. read and write programs that use basic list processing functions, list comprehensions, case analysis, recursion, and higher-order functions. Understand algorithms for searching and sorting. Document, test and debug programs
  4. formalise simple propositional reasoning using various methods, including truth tables
  5. design finite state acceptors for particular languages. Use regular expressions to search for simple patterns. Understand the relationship between finite state acceptors and regular expressions
Reading List
Introduction to Computation, by Sannella, Fourman, Peng, and Wadler.
Additional Information
Course URL https://opencourse.inf.ed.ac.uk/inf1a
Graduate Attributes and Skills Not entered
KeywordsINF1A
Contacts
Course organiserProf Don Sannella
Tel: (0131 6)50 5184
Email: D.T.Sannella@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