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 - Introduction to Programming (INFR07004)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 7 (Year 1 Undergraduate) AvailabilityAvailable to all students
SCQF Credits20 ECTS Credits10
SummaryThe purpose of this course is to allow students who start their degree without a strong background in programming to develop the knowledge, skills and confidence required for later courses. The course assumes no prior experience of coding, and will use Python to introduce students to a range of basic programming concepts, allowing them to gain skills through practical application. Students passing this course will have achieved a level of knowledge in programming similar to those who have completed Higher Computing or similar. This will lay the foundations of success for later courses for Informatics students, and provide non-Informatics students with the tools to develop their own programming skills.
Course description The course will introduce students to basic programming concepts and focus on embedding good software engineering practice in their approach to coding. There will be three levels to the course: a) fundamental principles; b) extended principles; c) application of programming principles to AI-assisted coding. Each stage will have to be mastered to unlock the next level. Demonstrating mastery of the first level will be sufficient to pass the course; higher grades can be gained by achieving this and demonstrating skills at higher level.

As well as covering fundamental programming concepts such as data types, operators, loops, conditionals and functions, the course will teach essential software engineering principles such as test-driven programming, debugging and refactoring. Once the students have demonstrated their ability to use their own programming skills to create code, they will be introduced to AI-assisted coding and will learn how to use these skills to effectively interact with AI coding, including identifying errors and inefficiencies in automatically-generated code.

Material will be provided in regular lectures . However, students will be encouraged to work at their own pace and will be generally expected to have demonstrated mastery of lower levels before accessing assessments at higher levels of the course. Students will be in large group tutorials and will be assigned smaller groups within that based on their performance in the class tests - so that, e.g., students retaking the first class test will be with other students in this position, whereas students progressing on to the next stage will be with other students doing that.

The main focus of the course is developing programming practice. Students will participate in regular lab sessions, with periodic class tests allowing them to advance to higher levels as they demonstrate mastery. A final test week offers opportunities to improve or complete missed assessments. Tutors will provide support to prepare for tests and assignments, helping students use feedback to enhance their skills. Independent study will involve working on assignments and practicing with test materials to aid understanding and improvement.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Other requirements Those with high-level CS qualifications at high grades (e.g., A at AH, A at A-level) will not be allowed to take the course. Other students will take a diagnostic test which will tell them whether we recommend they take the course or not. The course is aimed at those without significant prior experience in programming ¿ which may or may not have been gained through formal education routes. The diagnostic test will assess not just whether students can hack working code but their understanding of it and of SE principles.
Information for Visiting Students
Pre-requisitesThose with high-level CS qualifications at high grades (e.g., A at AH, A at A-level) will not be allowed to take the course. Other students will take a diagnostic test which will tell them whether we recommend they take the course or not. The course is aimed at those without significant prior experience in programming ¿ which may or may not have been gained through formal education routes. The diagnostic test will assess not just whether students can hack working code but their understanding of it and of SE principles.
High Demand Course? Yes
Course Delivery Information
Academic year 2026/27, Available to all students (SV1) Quota:  None
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 20, Supervised Practical/Workshop/Studio Hours 15, Summative Assessment Hours 3, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 158 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Feedback 1) Class tests: students will get information on which skills they demonstrated and which they failed to. Materials will be provided to help them revise for whatever skills they failed to demonstrate to prepare them for the next test.
2) Assignment: written and/or oral feedback will be provided by a tutor for each submission stage. They will also work together to provide peer feedback. This will help them improve their assignment for the next submission.
No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. identify the syntactic concepts in a program and explain their purpose / role
  2. write simple programs according to good Software Engineering (SE) principles, such as readability and reusability
  3. test and debug a program
  4. evaluate a program against good SE principles, such as efficiency and quality
  5. recognise the role and limitations of tools of practice and AI tools
Reading List
None
Additional Information
Graduate Attributes and Skills Not entered
KeywordsIntroduction,Programming,Python,Beginners,AI-assisted coding
Contacts
Course organiserDr Fiona McNeill
Tel: (0131 6)50 4421
Email: F.J.McNeill@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