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. 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 8 (10%).

People

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

The Class Rep is Konstantinos Bantounos (s1204517). Mail him by mid-November to raise any issues at the Staff-Student meeting.

Timetable

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

and one of the following (compulsory) scripted and supervised Labs (from week 2 onwards): and a 1-hour Tutorial (from week 3 onwards). The allocation of students to Tutorials is here and to Labs is here (DICE authenticated).

Schedule

The complete collection of log entries is here (final update 12th Dec). Individual log entries can be found by clicking on the active titles in the schedule below.

Meeting Day Date Who Where Title Slides & Handouts     Code    
Week 1  
1. Monday 17 Sept Mary/Julian FH D.02 Introduction to CP sl1, sl1x4 hello.c
2. Tuesday 18 Sept Mary AT LT5 Imperative programming, operations, errors sl2, sl2x4
 
Week 2  
Lab Mon 24 or Thurs 27 Julian+/Mary+ AT4.12 Intro to the DICE Environment lab1.pdf, unix.pdf, emacs.pdf  
3. Monday 24 Sept Mary FH D.02 Variables and ints sl3, sl3x4 square.c, max.c
4. Tuesday 25 Sept Mary AT LT5 Arithmetic operations, int, float, double sl4, sl4x4 floats.c, quadratic.c
 
Week 3  
Tutorial Tutor   week 3 sheet tutwk3.pdf, tutsoln3.pdf tutw3b.c, tutw3c.c
Lab Mon 1 or Thurs 4 Julian+/Mary+ AT4.12 Simple arithmetic problems lab2.pdf  
5. Monday 1 Oct Mary FH D.02 arithmetic, if-statement (cont.) sl5, sl5x4 quadratic1.c, quadratic2.c
6. Tuesday 2 Oct Mary AT LT5 iteration: for and while sl6, sl6x4 table.c, fib.c, fib-for.c,
 
Week 4  
Tutorial Tutor   week 4 sheet tutwk4.pdf week4sol.tar
Lab Mon 8 or Thurs 11 Julian+/Mary+ AT4.12 Programming with iteration lab3.pdf  
7. Monday 8 Oct Julian FH D.02 Functions sl7, sl7x4 triangle.c
8. Tuesday 9 Oct Mary AT LT5 Functions 2 sl8, sl8x4 scope.c, scope2.c
 
Week 5  
Tutorial Tutor   week 5 sheet tutwk5.pdf, tutsoln5.pdf tutw5c.c
Lab Mon 15 or Thurs 18 Julian+/Mary+ AT4.12 Simple Graphics with descartes lab4.pdf, lab4sl.pdf lab4.tar
9. Monday 15 Oct Mary FH D.02 Arrays sl9, sl9x4 fib-arr.c, whatday2.c
10. Tuesday 16 Oct Julian AT LT5 Practical Programming sl10, sl10x4 base.c
 
Week 6  
Tutorial Tutor   week 6 sheet tutwk6.pdf, tutsoln6.pdf fbase.c
Lab Mon 22 or Thurs 25 Julian+/Mary+ AT4.12 Functions, some pointers, some arrays lab5.pdf  
11. Monday 22 Oct Julian FH D.02 scanf in more detail; char sl11, sl11x4
12. Tuesday 23 Oct Julian AT LT5 Strings sl12, sl12x4
 
Week 7  
Tutorial Tutor   week 7 sheet tutwk7.pdf, tutsoln7.pdf tutw7a.c
Lab Mon 29 or Thurs 1 Julian+/Mary+ AT4.12 Arrays and some strings lab6.pdf  
13. Monday 29 Oct Julian FH D.02 Structured Data sl13, sl13x4
14. Tuesday 30 Oct Julian AT LT5 Structured Data, cont.; enums; switch
 
Week 8  
Tutorial Tutor   week 8 sheet tutwk8.pdf, tutsoln8.pdf bubblesort.c, mergerec.c,
Lab Mon 5 or Thurs 8 Julian+/Mary+ AT4.12 Structured data types lab7.pdf running.c
15. Monday 5 Nov Mary FH D.02 Searching and sorting sl15, sl15x4
16. Tuesday 6 Nov Mary AT LT5 Recursion (including mergesort) sl16, sl16x4
 
Week 9  
Tutorial Tutor   week 9 sheet tutwk9.pdf sidebyside.c
Lab Mon 12 or Thurs 15 Julian+/Mary+ AT4.12 mock exam  
17. Monday 12 Nov Mary/Julian FH D.02 MergeSort/Libraries and Separate Compilation sl17, sl17x4
18. Tuesday 13 Nov Julian AT LT5 Files in C sl18, sl18x4
 
Week 10  
Lab Julian+/Mary+ AT4.12 Recursion and some File work lab8.pdf
Tutorial Tutor   Mock exam Qs; Files and Arguments see prev sheet
19. Monday 19 Nov Julian FH D.02 Program Arguments, More C; Mock exam feedback sl19, sl19x4, slM, slMx4 arg.c
20. Tuesday 20 Nov Mary AT LT5 Some past exam Questions Aug12 paper files
 

Assessment

Your grade for CP will depend on two components. The first part will be a single electronically-submitted piece of coursework which will be 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.

Course Text

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

Return to top

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: school-office@inf.ed.ac.uk
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh