Secure Programming is a Level 11 course given in Semester 2. See the Course Catalogue Entry for syllabus and assessment information.
Lectures are on Mondays and Thursdays at 11.10am in 7 George Square, Lecture Theatre F.21.
The course lecturer is David Aspinall. You can reach him at
The course is aimed at MSc students and 4th/5th year undergraduates. It is designed to build on a first course in Computer Security, such as our Computer Security course.
The course focuses on software security quite broadly, discussing attacks as well as defensive programming. A good programming and systems background will be necessary.
Note: our Computer Security course has been extended in 2016/17 and 17/18 with some secure programming topics (especially, buffer overflows and web security). The Secure Programming course will revisit these topics in greater depth, as well as study other aspects.
Lecture slides and other materials appear here as the course goes along. There is no fixed text book. Reading recommendations will be given in lectures and slides. See the links in the first lecture for some starting points.
All course content will be published on this web page.
To preview likely upcoming material, please see the previous session of this course.
|4.||MC: Stacks & Heaps||view||more|
|9.||Web I (authentication)||view||more|
|11.||Program Analysis II||view||more|
|12.||Malware Analysis for Android||view||more|
There will 4 lab sessions in the course, consisting of guided exercises with checkpoint questions. You are encouraged to take brief notes as answers to checkpoints which you may submit to us for additional feedback.
Labs are on Tuesdays in Weeks 2, 4, 6 and 9 and run from 10am-1pm.
|1. (23rd Jan)||Basic Stuff|
|2. (6th Feb)||Data Corruption|
|3. (27th Feb)||Injection and Web Security|
The labs are an essential part of the delivery of the course and supported by a team of hands-on demonstrators. If you have a lecture clash, you should come to as much of the lab as you can. You may undertake (or complete) labs in your own time but you will not have access to the lab demonstrators.
Lab checkpoint notes will be accepted until 4pm on the following Monday after the lab, feedback will be available at the next lab and solutions will be posted online.
There is one assessed coursework for the course.
Update: the coursework component of the final mark will be for Part 1 only (weighted at 30%).
Some guidance about the examination is available here.
Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: email@example.com
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh