``A Book on C: Programming in C", 4th edition; by Al Kelley and Ira Pohl.
This course is intended for students who wish to develop their programming skills. It can be taken by students with little or no prior experience of programming; however, most students will have some previous computing experience.
The material covers an introduction to the basic components of a modern computer system, the working environment provided by such a system including some simple utilities provided by the operating system (Linux), the principles of simple program design, construction and testing and their exploitation in the context of the simpler features of the ANSI C programming language.
Note: A large part of the course focuses on the C programming language; almost all the practical work involves programming in C.
Note: The CP1 lectures, courseworks and exam form the main part of a separate course called CPMT1 ("Computer Programming for Music Technology 1").
This is a predicted timetable of lectures. As with weather forecasting, the predictions are more reliable at shorter timescales :). As the course progresses, various teaching materials will be linked to this table. By the end of the semester, the table will provide an accurate record of the whole course.
CHANGED: Lectures are:
Mondays 2:00 pm, Appleton Tower, LT3
Tuesdays 11:10 am, Minto House (Chambers St) LT1
Thursdays 11:10 am, David Hume Tower, LTA
| Lecture | Day | Date | Who | Title | Slides | Notes | Code |
| Week 1 | |||||||
| 1 | Tuesday | 22/09/2009 | Julian | Introduction to CP1 | sl1 | sl1x4, Prac0 | |
| 2 | Thursday | 24/09/2009 | Julian | The Informatics computing environment | sl2 | sl2x4, Unix, emacs | |
| Week 2 | |||||||
| 3 | Monday | 28/09/2009 | Mary | LAB 1pm-3pm, North and West labs, AT | |||
| 4 | Tuesday | 29/09/2009 | Mary | The C programming language | sl3 | sl3x4 | |
| 5 | Thursday | 1/10/2009 | Mary | The C programming language: 2 | sl4 | sl4x4, T-wk3.pdf | |
| Week 3 | |||||||
| Monday | 05/10/2009 | 2pm | Coursework 0 DUE | ||||
| 6 | Monday | 05/10/2009 | Mary | Variables; Scanf; Conditional Execution | sl5 | sl5x4 | |
| 7 | Tuesday | 06/10/2009 | Mary | Conditionals (cont.); Boolean Operators; Loops | sl6 | sl6x4, Prac1 | |
| 8 | Thursday | 08/10/2009 | Mary | Intro to Practical 1; error-checking with scanf | sl7 | sl7x4, T-wk4.pdf | |
| Week 4 | |||||||
| 9 | Monday | 12/10/2009 | Julian | Functions | sl8 | sl8x4 | |
| 10 | Tuesday | 13/10/2009 | Julian | Parameters and pointers | sl9 | sl9x4 | |
| 11 | Thursday | 15/10/2009 | Julian | Case study: coin changing | sl10 | sl10x4, T-wk5.pdf | |
| Week 5 | |||||||
| 12 | Monday | 19/10/2009 | Mary | Simple character-by-character I/O | sl11 | sl11x4 | |
| Tuesday | 20/10/2009 | 11am | Coursework 1 DUE | ||||
| 13 | Tuesday | 20/10/2009 | Mary | Structured data: Arrays | sl12 | sl12x4 | |
| 14 | Thursday | 22/10/2009 | Mary | Pattern matching with arrays; bitwise operations | sl13 | sl13x4, T-wk6.pdf | |
| Week 6 | |||||||
| 15 | Monday | 26/10/2009 | Mary | Structured data: struct and enum. Prac2 out!! | sl14 | sl14x4, Prac2 | |
| 16 | Tuesday | 27/10/2009 | Mary | Iteration, arrays and the correctness issue | sl15 | sl15x4 | |
| 17 | Thursday | 29/10/2009 | Mary | Searching and Sorting | sl16 | sl16x4, T-wk7.pdf | |
| Week 7 | |||||||
| 18 | Monday | 02/11/2009 | Mary | MergeSort | sl17 | sl17x4 | sorts.tar |
| 19 | Tuesday | 03/11/2009 | Mary | Revision: functions, pointers, arrays. | pointers.c | ||
| 20 | Thursday | 05/11/2009 | Mary | Boolean Expressions; Inc and Dec | sl19 | sl19x4, T-wk8.pdf | tutw8.tar |
| Week 8 | |||||||
| Monday | 9/11/2009 | 2pm | Coursework 2 DUE | ||||
| 21 | Monday | 9/11/2009 | Mary | Strings | sl20 | sl20x4 | strLeqTest.c |
| 22 | Tuesday | 10/11/2009 | Mary | Introduction to Practical 3 | sl21 | Prac3, sl21x4 | prac3.tar |
| 23 | Thursday | 12/11/2009 | Mary | Libraries and Separate Compilation | sl22 | sl22x4, T-wk9.pdf | |
| Week 9 | |||||||
| 24 | Monday | 16/11/2009 | Mary | Programming techniques: recursion and flags | sl23 | sl23x4 | |
| 25 | Tuesday | 17/11/2009 | Julian | Syntax of programming languages | sl24 | sl24x4 | |
| 26 | Thursday | 19/11/2008 | Julian | Files in C | sl25 | sl25x4, T-wk10.pdf | |
| Week 10 | |||||||
| 27 | Monday | 23/11/2009 | Mary | ||||
| 28 | Tuesday | 24/11/2009 | Mary | ||||
| 29 | Thursday | 26/11/2009 | - | Revision | |||
| Week 11 | |||||||
| Monday | 30/11/2009 | 2pm | Coursework 3 DUE | ||||
| 30 | Monday | 30/11/2009 | - | Independent Revision (for CP1 students) | |||
| 31 | Tuesday | 1/12/2009 | - | Independent Revision (for CP1 students) | |||
| 32 | Thursday | 3/12/2009 | - | Independent Revision (for CP1 students) | |||
See the relevant part of the ITO database.
18 Nov: I have now put up .pdfs of solutions to
the tutorial sheets, with C-programs also when relevant.
Sometimes programs are grouped together (for the relevant week) as
.tar files.... To unpack a tar file, place it in the directory
you want the files to sit, and type (where ? is the week you are
unpacking)
tar -xvf week?sol.tar
Accessing Informatics DiCE Service from open-access labs.
C Compiler for Windows: Programming at home
|
Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 650 2690, Fax: +44 131 651 1426, E-mail: hod@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 |