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%).
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.
CP/CPMT is taught in semester 1. It is taught as a combination of two Lectures:
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 |
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.
"A Book on C: Programming in C", 4th edition; by Al Kelley and Ira Pohl.
|
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 |