INF2C 2009-10: Schedule of Course Activities

Wk Date Lecture Topic Reading Tutorial Lab Coursework
22/9 Comp. systems introduction: the big picture
(Slides, Notes)
P&H 1      
24/9 Data representation
(Slides, Notes)
P&H 2/e: 4.1-4.4, 4.8 (up to FP add)
P&H 3/e: 3.1-3.3, 3.6 (up to FP add)
P&H 4/e: I.1-I.3, I.6-I.7
25/9 MIPS instructions and programming 1
(Slides, Notes)
P&H 2/e: 3.1-3.8, A.1-6, A.9. (A3,4,6,9 non examinable)
P&H 3/e: 2.1-2.9, A.1-6, A.9. (A3,4,6,9 non examinable)
P&H 4/e: 2.1-2.8, A.1-6, A.9. (A3,4,6,7,9 non examinable)
29/9 A few (non-examinable!) words on flu
Software overview
slides, handout,
Suggested: flick through Proceedings of the 1968 NATO Software Engineering workshop
Sommerville Ch1 and/or Stevens Ch1
Google Chaos Standish reports, finding e.g. this.

Required: read the coursework.
    Both SE courseworks issued  
1/10 The user's role
slides, handout,
Required: Website accessibility
How to report bugs effectively

Suggested: especially Alertboxes
Smart questions
2/10 Requirements capture and use cases
slides, handout, movie of creating a use case diagram with argouml,
Required: SWEBOK 2004 Ch2 - mostly for meanings of terms
Suggested: Stevens Ch7, Sommerville ch.6,7., start here
6/10 MIPS programming and instructions 2
(slides, notes: see part 1)
See part 1 CS tutorial 1
CS lab 1  
8/10 C programming language - part 1
(Slides, Notes)
K&R 2/e for reference
J. Maasen's C for Java local copy: PDF
S. Simpson's Learning C from Java web page
I. Gupta's C for Java programmers web page
I. Kennedy'sTop tips to help the Java programmer code in C
9/10 Tool demonstrations and coursework discussion  
13/10 C programming language - part 2
(slides, notes: see part 1)
SE tutorial   First CS practical
15/10 Construction 1: High quality code for `programming in the large'
slides, handout
Venners Java package chapter (or equiv)
Javadoc tutorial

Stevens Ch14
16/10 Construction 2: Configuration, build, unit testing, debugging
slides, handout,
Required:Ch 1 of SVN book
Suggested: man rcsintro
Eclipse team programming with CVS

Ant tutorial
Browse (will be required, later)
20/10 Logic design
(Slides, Notes)
P&H 2/e: B1-3 (up to ROMs), B5 (up to SRAMs), B6
P&H 3/e (on CD): B1-3 (up to ROMs), B8 (up to verilog), B10
CS tutorial 2 SystemC basics      
22/10 Processor design - single cycle
(Slides, Notes)
P&H 2/e: 5.1-5.3
P&H 3/e: 5.1-5.4
P&H 4/e: 5.1-5.3, C.1-C.3
23/10 Processor design - Multicycle
(Slides, Notes)
P&H 2/e: 5.4, 2.3
P&H 3/e: 5.5, 4.2
P&H 4/e: 5.3
27/10 Design
design slides, refactoring slides, design handout, refactoring handout
Required: Refactoring for everyone

Suggested:GSWEBOK2004 Ch3
Stevens Ch3, Sommerville Ch14
web-browsing to taste...
SE tutorial   Second CS practical
29/10 Architecture and class diagrams
slides, handout
Suggested: SEI's architecture definitions
(architecture) Sommerville ch 11-13
(class diagrams) Stevens ch 5.
30/10 Interactions and patterns
interaction slides, pattern slides, interaction handout, pattern handout
A Laboratory for Object-Oriented Thinking
Wikipedia entries on Observer and Template Method

Suggested: Read more on design patterns, e.g. starting at Stevens or Sommerville, Ch18.2 (in both cases!!), or at Wikipedia.
3/11 Processor Design - Pipelining
(Slides, Notes)
P&H 2/e: 6.1
P&H 3/e: 6.1
P&H 4/e: 3.1-3.2, A.1-A.4
CS tutorial 3      
5/11 Exceptions and processor management
(Slides, Notes)
P&H 2/e: 5.6, A7. S&G 5/e: 2.5.1, 4.1-4.3
P&H 3/e: 5.6, A7. S&G 7/e:
P&H 4/e: 5.3
6/11 The memory system - part 1
(Slides, Notes)
P&H 2/e: 7.1-7.2, 7.4
P&H 3/e: 5.1-5.2, 5.4
P&H 4/e: 5.1-5.2, C.1-C.3
10/11 Verification, validation and testing
slides, handout
Required: GSWEBOK Ch11
Design by Contract with JML (Section 1 only)
Something on JUnit, see slides

Suggested: GSWEBOK2004 Ch5
The rest of Design by Contract with JML
Sommerville Ch22-24 and/or Stevens Ch19.
SE tutorial  
12/11 How to measure a system
slides, handout
Required: Sommerville 26.3.1

Suggested: the rest of the chapter
13/11 How to improve the quality of your system(s)
slides, handout
Suggested: Paulk, Rational Planning of Software Projects
Sommerville \S5.4, Ch 27,28 and/or Stevens Ch19,20.
Sommerville Chs 4,5,17 and/or Stevens Ch 4.
9 17/11 The memory system - part 2
(Slides, Notes)
P&H 2/e: 7.1-7.2, 7.4
P&H 3/e: 5.1-5.2, 5.4
P&H 4/e: 5.1-5.3, C.1-C.3
Tutorial - CS4 (past exam papers)      
19/11 I/O and peripherals
(Slides, Notes)
P&H 2/e: 8.1, 8.3,8.5
P&H 3/e: 7.1, 7.3, 7.7
P&H 4/e: 6.1, 6.4
20/11 Kernel vulnerabilities
24/11 Secure programming
Secure programming slides, Secure programming handout,
Deployment slides, Deployment handout,
IP and licensing
IP and licensing slides, IP and licensing handout.
Required: GPL
Open source definition
Suggested: Ross Anderson paper
Java WebStart overview and the deployment guide.
SE tutorial  
26/11 Software development processes
slides, handout
27/11 XP, an agile software development process
slides, handout


Home : Teaching : Courses : Inf2c 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail:
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh