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

People

Lecturers are Mary Cryan and Julian Bradfield.
The official Course Organiser is Ewan Klein.
The Class Rep is Simrin Wahal (s1040857).

Course Results for 2011/12

If you want to know your result for the course, check your MyEd record.

Past CP1 Papers

As CP is running for the first time, there are no past papers for the programming exam. However, as mentioned in class, many of the written problems on the exams for the previous course can provide material to practise on. The past exams for CP1 can be found here (DICE login required). Two warnings:

Tutorial solutions (Wed 14th Dec)

I have got round to putting up most of the tutorial solutions on a subpage. Click here. There are a couple more to go up, we will take care of that as soon as possible.

Mock Exam Results (Sunday 20 Nov)

Your submissions and feedback from the mock exam are now available, together with the question paper and solutions. Click here.

Sample Exam Questions (Thursday 10 Nov)

A couple of sample exam questions are available.

News (Friday 21 Oct)

Administration

Timetable

CP/CPMT is taught in semester 1. It is taught as a combination of Lectures (2 every week), Compulsory Labs (2 hours/week from week 2 onwards), and Tutorials (1 hour/week from week 3 onwards). The first meeting is a lecture at 2pm on Monday, 19th September, meeting in Appleton Tower 2.14.

Lectures

Lectures for Autumn 2011 take place in semester 1 as follows:

Labs

You will be assigned to one of the following labs for weeks 2-11 of semester 1:

The allocation of students to labs appears here.

Tutorials

Tutorials take place in weeks 3-10 of semester 1 (start during 4th-6th October).

The assignment of students to tutorial groups is available here on the ITO database.
The time/place for Tutorial 1 did not transfer from the database when the web page was generated: Tutorial 1 place in 3.05 AT on Wednesdays at 11.10.

Descartes Package

Some of the practical work involves a very simple graphics package we call descartes. You will need to download the following files to your practical directory: You can also download a short test program square.c, which you can compile with the command gcc -Wall square.c descartes.o -lSDL

Note: If you are doing the practicals on a home machine, you will probably need a 32-bit version of descartes.o. Download descartes-32bit.o and rename it to descartes.o.

Schedule

Meeting Day Date Who Where Title Slides & Handouts     Code    
Week 1  
1. Monday 19 Sept Mary/Julian AT2.14 Introduction to CP1 sl1, sl1x4
2. Tuesday 20 Sept Mary AT2.12 Imperative programming and C sl2, sl2x4
 
Week 2  
Lab Mon 26 or Thurs 29 Julian+/Mary+ AT4.12 Intro to the DICE Environment lab1.pdf, unix.pdf, emacs.pdf  
3. Monday 26 Sept Mary AT2.14 Variables and ints sl3, sl3x4
4. Tuesday 27 Sept Mary AT2.12 Arithmetic operations, int, float, double sl4, sl4x4 quadratic.c
 
Week 3  
Tutorial Wed 5 or Thurs 6 Tutor   week 3 sheet tutwk3.pdf  
Lab Mon 3 or Thurs 6 Julian+/Mary+ AT4.12 Simple arithmetic problems lab2.pdf  
5. Monday 3 Oct Julian AT2.14 arithmetic, if-statement (cont.) sl5, sl5x4
6. Tuesday 4 Oct Julian AT2.12 iteration: for and while sl6, sl6x4 lect6code.tar
 
Week 4  
Tutorial Wed 12 or Thurs 13 Tutor   week 4 sheet tutwk4.pdf  
Lab Mon 10 or Thurs 13 Julian+/Mary+ AT4.12 Programming with iteration lab3.pdf  
7. Monday 10 Oct Mary AT2.14 Functions sl7, sl7x4
8. Tuesday 11 Oct Mary AT2.12 Functions 2 sl8, sl8x4, pics: 1, 2, 3, 4
 
Week 5  
Tutorial Wed 19 or Thurs 20 Tutor   week 5 sheet tutwk5.pdf  
Lab Mon 17 or Thurs 20 Julian+/Mary+ AT4.12 Simple Graphics with descartes lab4.pdf, lab4sl.pdf lab4.tar
9. Monday 17 Oct Julian AT2.14 Practical Programming sl9, sl9x4
10. Tuesday 18 Oct Julian AT2.12 scanf in detail; char type sl10, sl10x4
 
Week 6  
Tutorial Wed 26 or Thurs 27 Tutor   week 6 sheet tutwk6.pdf  
Lab Mon 24 or Thurs 27 Julian+/Mary+ AT4.12 Functions and some pointers lab5.pdf  
11. Monday 24 Oct Mary AT2.14 Arrays sl11, sl11x4
12. Tuesday 25 Oct Mary AT2.12 Strings sl12, sl12x4
 
Week 7  
Tutorial Wed 2 or Thurs 3 Tutor   week 7 sheet tutwk7.pdf bubblesort.c, tutw7a.c
Lab Mon 31 or Thurs 3 Julian+/Mary+ AT4.12 Programming with arrays lab6.pdf  
13. Monday 31 Oct Julian AT2.14 Strings, cont. (sl12); Structured Data sl13, sl13x4
14. Tuesday 1 Nov Julian AT2.12 Structured Data, cont.; enums; switch (sl13)
 
Week 8  
Tutorial Wed 9 or Thurs 10 Tutor   week 8 sheet tutwk8.pdf
Lab Mon 7 or Thurs 10 Julian+/Mary+ AT4.12 Strings and structured types lab7.pdf  
15. Monday 7 Nov Mary AT2.14 Searching and sorting sl14, sl14x4
16. Tuesday 8 Nov Mary AT2.12 Recursion (including mergesort) sl15, sl15x4 mergerec.c
 
Week 9  
Tutorial Wed 16 or Thurs 17 Tutor   week 9 sheet tutwk9.pdf bubblesort.c, mergerec.c
Lab Mon 14 or Thurs 17 Julian+/Mary+ AT4.12 mock exam  
17. Monday 14 Nov Julian AT2.14 Libraries and Separate Compilation sl16, sl16x4
18. Tuesday 15 Nov Julian AT2.12 Files in C sl17, sl17x4
 
Week 10  
Lab Mon 21 or Thurs 24 Julian+/Mary+ AT4.12 Recursion and some File work lab8.pdf
Tutorial Wed 23 or Thurs 24 Tutor   Mock exam Qs; Files and Arguments tutwk10.pdf
19. Monday 21 Nov Julian AT2.14 Program Arguments; Mock exam feedback sl18, sl18x4 arg.c
20. Tuesday 22 Nov Mary AT2.12 Some past exam Questions.
 

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

Tutorials


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.
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh