Lecture Log - Semester 1

The following is a log of the material covered in the Semester 1 Lectures.

Week Number Lecture Content Examples Tutorial material
Week 1

Pocket calculator type computations, simple strings, variables

In the first lecture we briefly discussed different operating systems, discussed platform dependence vs platform independence, that a program has to be understandable to computers and humans. In order to write programs, we open in Linux a terminal, edit a file with an editor, save it, and then run it.

More information on Linux can be found from https://www.cs.bham.ac.uk/internal/courses/java/msc/introshort/.

On Friday we look first at the meaning of assignment. The second hour involves a lab session on an easy problem to be solved by everybody on their own with some support.

Examples
Week 2

Classes and Objects

On Wednesday, we introduced Objects, Classes, Methods (in particular, constructor, getter, setter, and toString methods). Furthermore we learned about javadoc. On Friday, we started with a more involved example, the Amount class as a way to make exact computations of amounts in a bank account.
Examples
Week 3

Basic types, conditionals, loops, JUnit tests

On Wednesday, we saw all basic types, the conditionals if and case, as well as for and while loops.

On Friday we solve together a non-trivial example for an if-then-else statement. Furthermore we learn about JUnit tests.

Examples
Week 4

Loop Invariants, Arrays, Array Lists, printf, scanner

On Wednesday, we stressed the importance to comment loops appropriately, in particular, to give a loop invariant capturing the meaning of the loop. Furthermore we saw arrays and arraylists.

On Friday we will see in addition printf and the scanner for input.

Examples
Week 5

Eclipse

On Wednesday, we introduced Eclipse and started with a User Interface which has been extended in the example files.

On Friday there was an in-class exercise to extend the bank account example by some I/O and a statement.

Examples
Week 6

Exceptions, Patterns, File I/O

On Wednesday, we looked at exceptions and patterns and briefly looked at the revised bank account example. More on this on Friday. We also went through the module questionnaires and had the first in-class test.
Examples
Week 7

Inheritance

On Wednesday, we revised the core idea of object oriented programming, introduced inheritance and looked at the bank account example again.

On Friday you were to implement a simple library system.

Examples
Week 8

Inheritance - An example, Packages, HashMap

On Wednesday, we discuss the example from last Friday and use packages. Because of a powercut we develop it on the whiteboard and finish the example on Friday. In addition, we introduce HashMap as an implementation of hash tables for efficient retrieval of data.
Examples
Week 9

Abstract classes, Interfaces

On Wednesday, we introduced Interfaces and exemplified them with the Payable interface (from Deitel/Deitel). On Friday, we did something similar in the lab when students should implement a Measurable interface with use in the BankAccount and Country class.
Examples
Week 10

Graphics and Events

On Wednesday, we looked at Graphics (frame, panel, and how to put objects on a panel with the Graphics.java class. Furthermore we looked at the simple event of clicking a button. introduced Interfaces and exemplified them with the Payable interface (from Deitel/Deitel).
Examples
Week 11

Test and Revision

On Wednesday we mainly had the second in-class test. On Friday we had two hours of revision and discussed the answers to the in-class test, which was returned. In the revision part we looked in detail at an example of inheritance. We also discussed HashMap and Graphics briefly.
Examples