C Programming

If you wish to get a C compiler for use at home Dev-C++ is a good C and C++ compiler which is free if you use windows. If you use Linux then gcc is highly recommended.

All lecture notes and practical sheets are provided in Microsoft Word format. Slides are in powerpoint format. Coursework answers are OFFLINE until the work has been handed in.

Course Summary

First Week

Worksheet
Source Files
Lecture notes
Lecture Slides
Coursework
Model solutions

Second Week

Worksheet
Source Files
Lecture notes
Lecture Slides
Coursework
Model solutions

Third Week

Worksheet
Source Files
Lecture notes
Lecture Slides
Coursework
Model solutions

Fourth Week

Worksheet
Source Files
Lecture notes
Lecture Slides
Coursework
Model solutions

Fifth Week

Worksheet
Source Files
Lecture notes
Lecture Slides

Sixth Week

Lecture notes
Lecture Slides

Seventh Week

Lecture notes
Lecture Slides

Eigth Week

Lecture Slides

Project Information

Undergraduate Projects Masters Projects

General information about C

The C libraries A more concise definition of the C libraries

Undergradute projects are due in by noon of Friday week ten. Masters projects are more advances and are due in by Friday week two of Spring term.


The course has been rewritten to work with windows 2000 and Microsoft Visual C++. The previous course material using unix is still available as are 2003 course notes.
From The Practice Programming by Brian W Kernighan & Rob Pike:
Another effective [debugging] technique is to explain your code to someone else. This will often cause you to explain the bug to yourself. Sometimes it takes no more than a few sentences, followed by an embarrassed "Never mind. I see what's wrong. Sorry to bother you." This works remarkbly well; you can even use non-programmers as listeners. One university computer center kept a teddy bear near the help desk. Students with mysterious bugs were required to explain them to the bear before they could speak to a human counselor.
For information about the course please send mail to : richard@manor.york.ac.uk