CS0004 Computer Programming: Skills and Concepts (INF-1-CP1)
U01510 Computer Programming for Music Technology.

News

Venue changes: Owing to overcrowding, the lecture venues have changed. See below.
Welcome to Computer Programmi ng: Skills and Concepts 1 (INF-1-CP1), code-shared as Computer Programming for Music Technology. The course is given in Semester 1 and runs till December. The exam is in December.
NO LECTURE on Monday, 28th September. Instead we have a Lab from 1-3pm in the AT North/West Labs on level 5 of Appleton Tower.

Contents

  1. People - Lecturers, tutors and tutorial groups, class reps
  2. Suggested book
  3. Module description
  4. Course Guide
  5. Lecture timetable and course material
  6. Tutorials
  7. Assessed practicals
  8. Practical files
  9. Case Studies
  10. Past Papers
  11. Useful Links
  12. Accessing Informatics DiCE Service from University open-access labs
  13. Summary: Ten things you need to know about CP1

People

Course Organiser:
Mary Cryan, cp1co@inf.ed.ac.uk.

Lecturers:
Mary Cryan
Julian Bradfield

Tutors and tutorial groups:
See the relevant section of the ITO database.
If you need to change the time of your tutorial, contact the ITO.
Tutorials start week 3.
Class rep:
< TBD>

Return to top

Suggested book

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

Return to top

Module description

Aims and Objectives

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").

Syllabus

Introduction:
The scope of Computer Science. Elements of a modern computer system and computing environment. UNIX, its file system and programming utilities.

Program design and development:
Specification, problem decomposition. Reasoning about and testing programs.

Programming in ANSI C:
Expressions, types, variables, assignment, conditionals, iteration, arrays, strings, files, functions.

Structured programming:
Functional and procedural abstraction, headers and libraries, names and scope.

Return to top

Course Guide

Download as PDF

Return to top

Lecture timetable and course material

(with special thanks to previous course lecturers: Butler, Cintra, Efthymiou, Franke, Jerrum and others)

For the course syllabus please consult the Course Guide.

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)  

Return to top

Tutorials

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

Practicals

Return to top

Associated practical files

Return to top

Case Studies

Return to top

Past Papers

See the School's archive.

Return to top

Useful Links

Return to top


Home : Teaching : Courses 

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