INFR08022 Computer Programming: Skills and Concepts (INF-1-CP)
and MUSI09001 Computer Programming for Music Technology.

This course provides an gradual but in-depth introduction to imperative programming using the C programming language. It is intended for students who are not taking Computer Science/Artificial Intelligence as part of their degree. Our lectures (2 a week) are backed up with a scripted (and supervised) two-hour Lab and a one-hour tutorial, every week. The assessment will be based on a 3-hour online programming exam in December (worth 90%) and one coursework due in week 9 (10%).


Lecturers are Mary Cryan and Julian Bradfield. The official Course Organiser is Paul Anderson.


CP/CPMT is taught in semester 1. It is taught as a combination of two Lectures:

It also includes a (compulsory) scripted and supervised Lab (from Thursday, week 1 onwards) which will be one of the following: It also includes a 1-hour Tutorial (from week 3 onwards).


We will keep a log of our lectures, and the collection of log entries will be maintained here. Individual log entries (once written) will be available as direct links from the lecture titles in the schedule below. Details (especially of later lectures) are likely to change a bit.

Meeting Day Date Who Where Title Slides & Handouts     Code    
Week 1  
1. Monday 15 Sept Mary/Julian 50GS LT G.03 Introduction to CP sl1, sl1x4 hello.c
2. Tuesday 16 Sept Mary AT LT1 Imperative programming, operations, errors sl2, sl2x4
Lab 1 Thurs 18 or Mon 22 Mary+/Julian+ AT4.12 Intro to the DICE Environment lab1.pdf, unix.pdf, emacs.pdf  
Week 2  
3. Monday 22 Sept Mary 50GS LT G.03 Variables and ints
4. Tuesday 23 Sept Mary AT LT1 Arithmetic operations, int, float, double
Lab 2 Thurs 25 or Mon 29 Mary+/Julian+ AT4.12 Simple arithmetic problems  
Week 3  
Tutorial Tutor   week 3 sheet
5. Monday 29 Sept Mary 50GS LT G.03 arithmetic, if-statement(cont.)
6. Tuesday 30 Sept Mary AT LT1 iteration: for and while
Lab 3 Thurs 2 or Mon 6 Mary+/Julian+ AT4.12 Programming, with some iteration  
Week 4  
Tutorial Tutor   week 4 sheet
7. Monday 6 Oct Mary 50GS LT G.03 Functions
8. Tuesday 7 Oct Mary AT LT1 Functions 2
Lab 4 Thurs 9 or Mon 13 Julian+/Mary+ AT4.12 Simple Graphics with descartes
Week 5  
Tutorial Tutor   week 5 sheet
9. Monday 13 Oct Julian 50GS LT G.03 Arrays
10. Tuesday 14 Oct Julian AT LT1 Practical Programming
Lab 5 Thurs 16 or Mon 20 Mary+/Julian+ AT4.12 Functions, some pointers, some arrays  
Week 6  
Tutorial Tutor   week 6 sheet
11. Monday 20 Oct Julian 50GS LT G.03 scanf in more detail; char
12. Tuesday 21 Oct Julian AT LT1 Strings
Lab 6 Thur 23 or Mon 27 Mary+/Julian+ AT4.12 Arrays and some strings  
Week 7  
Tutorial Tutor   week 7 sheet
13. Monday 27 Oct Julian 50GS LT G.03 Structured Data
14. Tuesday 28 Oct Julian AT LT1 Structured Data, cont.; enums; switch
Lab 7 Thurs 30 or Mon 3 Mary+/Julian+ AT4.12 Structured data types
Week 8  
Tutorial Tutor   week 8 sheet
15. Monday 3 Nov Mary 50GS LT G.03 Searching and sorting
16. Tuesday 4 Nov Mary AT LT1 Recursion (including mergesort)
Lab Thur 6 or Mon 10 Mary+/Julian+ AT4.12 mock exam  
Week 9  
Tutorial Tutor   week 9 sheet
17. Monday 10 Nov Mary/Julian 50GS LT G.03 MergeSort/Libraries and Separate Compilation
18. Tuesday 11 Nov Julian AT LT1 Files in C
Lab 8 Thur 13 or Mon 17 Mary+/Julian AT4.12 Recursion and some File work
Week 10  
Tutorial Tutor   Mock exam Qs; Files and Arguments see prev sheet
19. Monday 17 Nov Julian 50GS LT G.03 Program Arguments, More C; Mock exam feedback
20. Tuesday 18 Nov Mary AT LT1 Some past exam Questions


Your grade for CP will depend on two components. The first part will be a single electronically-submitted piece of coursework, due by 4pm, Friday 14th November (end week 9). This work is worth 10% of your overall grade. The second is the final exam, carried out as a computer-based programming test held in the computer labs, taking place at the the end of semester 1. This final exam is worth 90% of your overall grade.

The (due end week 9) coursework must also be completed by CMPT students and is worth 10% of their grade also. However, the weighting of the exam is slightly different - it is worth only 70%, with the remaining 20% depending on the extra piece of practical work for CPMT students, done with the Music department in week 11.

Course Text

"A Book on C: Programming in C", 4th edition; by Al Kelley and Ira Pohl.

Practising on your own machine

Home : Teaching : Courses 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail:
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh