Wk |
Date |
Lecture Topic |
Reading |
Tutorial |
Lab |
Coursework |
1 |
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)
|
2 |
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: useit.com 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.
c2.com,
start here
|
3 |
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 |
|
4 |
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
|
Required: Venners
Java package chapter (or equiv)
Javadoc
tutorial
Suggested:
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 http://www.junit.org (will be required, later)
|
5 |
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 |
6 |
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
|
Required:
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.
|
7 |
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 |
8 |
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
(Slides) |
|
|
|
10 |
24/11 |
Secure programming
Secure programming slides,
Secure programming handout,
Deployment
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
|
|