Derek Bridge

Past Teaching

Software Development

Teaching Materials

Lecture Description Resources
1 Software quality; programming as modeling
2 An object-oriented description of the world; a Java program that uses a 'predefined' object
3 Classes and instances; constructing new objects from class definitions; colours and windows
4 Java strings are objects; some of their methods; a string manipulation program
5 Reuse; Writing our own class definitions, containing simple instance methods; the Wreck class definition.
6 Local variables & formal parameters: their declaration, their initialisation, the scope of their identifiers and their lifetimes
  • Overheads: ps (26k)
  • Code: jar (2k)
7 Instance variables: their declaration, their initialisation, the scope of their identifiers, their lifetimes and their visibility.
8 PersonName, another instance variable example; constructors.
9 BankAccount, another example; the object reference this.
10 LibraryBook, another example; overloading of constructors, methods and operators.
  • Overheads: ps (25k)
  • Code: jar (3k)
11 Borrower, another example; class variables.
12 Time, another example; named constants.
13 Continuing the Time example; encapsulation, cohesion, coupling, procedural abstraction & helper methods.
  • Overheads: ps (27k)
  • Code: jar (3k)
14 Modifying the Time example; data abstraction.
  • Overheads: ps (26k)
  • Code: jar (3k)
15 Ticket, another example; class methods.
16 Fraction, an example for discussing how to go about writing and testing class definitions.
17 Continuing the discussion of Fraction and the process of writing and testing class definitions.
  • Overheads: ps (29k)
  • Code: jar (3k)
18 Summary of the elements of a class definition; aspects of software quality; portability.
19 Primitive types versus reference types; the effects of assignment and the role of toString.
20 More on primitive types & reference types; testing for equality and parameter passing; garbage collection.
21 Implementing associations between objects using references stored in instance variables.
22 Class hierarchies; inheritance of instance variables; an example involving an academic's publications.
23 Inheritance of instance methods; overriding; constructors in class hierarchies.
  • Overheads: ps (28k)
  • Code: jar (3k)
24 The root class, Object; its interface; wrapper classes for primitive values.
25 Abstract classes and abstract methods.
  • Overheads: ps (38k)
  • Code: jar (10k)
26 Polymorphism and dynamic method binding; a program that exploits both to print the lyrics of a song.
27 Another example of polymorphism and dynamic method binding: a camera shop; the role of abstract classes and abstract methods.
28 Using polymorphism, dynamic method binding and casting to implement and use generic data structures.
  • Overheads: ps (28k)
  • Code: jar (5k)
29 Java interfaces as specifications; using interface types polymorphically to reduce coupling in programs.
30 The Java 2 Collections Framework; iterators.
31 The way that Java interfaces can `cut across' class hierarchies; when to use interfaces; when to use inheritance.
32 GUIs & event-driven programming; the main objects that comprise a GUI; the Java event dispatch loop.
33 A GUI to a program that converts between Fahrenheit & centigrade; containers & layout managers.
34 Variations on the temperature conversion GUI, showing different design decisions.
35 Positioning & sizing components within containers; layout managers, including GridBagLayout.
36 The 3-layered architecture of a shop till program.
37 The Swing component class hierarchy; how to avoid custom painting (colours, borders, fonts, images, etc., etc.); JLists; burger bars!
38 Custom painting; the paint and repaint methods; the graphics context; drawing pie charts.
39 Very simple concurrent Java programs; animation and concurrency; polite animation.
40 Defensive programming; Java exception-handling.
41 More on exceptions (checked & unchecked; the catch-or-specify principle); simple file handling (reading & writing bytes).
42 Java file-handling; types of file; sequential binary files; a program for managing a file of countries.
43 Writing objects to sequential binary files; sequential text files; random-access files.
  • Overheads: ps (40k)
  • Code: jar (8k)
44 A simple software development process; the Unified Modeling Language (UML); class diagrams; sequence diagrams.
45 Class diagram and sequence diagram case study: modeling the problem domain for a photocopier repair company.
  • Overheads: ps (20k)
46 CD-Direkt case study: analysis, design & implementation.
Exercises
A Exercise sheet A
B Exercise sheet B
C Exercise sheet C
D Exercise sheet D
E Exercise sheet E
F Exercise sheet F
G Exercise sheet G
Sample Exam Sample Exam
Tutorials
  • Tutorial 9/12/02
    • We produced the following solution to sheet A: URLParser.java
    • We discussed the following multiple-choice question: mcq1.txt
  • Tutorial 16/12/02