Software and Programming I

Lecturers: Roman Kontchakov and Carsten Fuhs
Programmes: BSc Computing, BSc IS&M and FdSc
Time: Thursday 2pm - 5pm and 6pm - 9pm
Room: MAL B04 and UCL Malet Place Eng 1.03
Lab: MAL 109
Code: COIY018H5


[Java for Everyone, 2nd ed.]

Cay S. Horstmann
Java for Everyone
2nd edition, John Wiley & Sons, 2013

Companion Web Site (including worked examples and screencasts)

Schedule and Slides

12 Jan
Introduction. Basic Elements of Java.
Lab: HelloWorld and InterestCalculator.
19 Jan
Conditional Statements. Method call stack walk-through.
Lab: InterestCalculator2 and InterestCalculator2ErrorFree.
Marked Exercise 1 (deadline: 2 Feb)
26 Jan
Loops and Expressions.
Lab: InterestCalculator3, InterestCalculator3Advanced and InterestCalculator4.
Marked Exercises 2 & 3 (deadline: 9 Feb)
2 Feb
Arrays and Basic Algorithms.
Lab: ArrayExercises.
Marked Exercise 4 (deadline: 16 Feb).
9 Feb
Test 1.1, Test 1.2 (answers 1.1, answers 1.2). Example (answers).
Lab: FibonacciSequence.
16 Feb
Objects and Classes.
23 Feb
More on Objects and Classes.
Lab: CurrencyExamples.
Marked Exercise 5 (deadline: 9 Mar).
2 Mar
Inheritance and Subclasses.
Marked Exercise 6 (deadline: 23 Mar).
9 Mar
Classes and Arrays.
Lab: Student and StudentTest; with subclasses: Person, StudentR, Tutor and PeopleTest.
16 Mar
Collections and Maps.
Test 2.1, Test 2.2 (answers 2.1, answers 2.2). Example (answers).
23 Mar
Input-Output and Exception Handling.
11 May
Revision Lecture (UCL Malet Place Eng 1.03, 6-9pm).
Exam Papers: SP1-2013, SP1-2014, SP1-2015 and SP1-2016
18 May
Revision Lecture 2 (MAL 421, 6-9pm)
Java code for selected questions: T16, Q16, Y16Q7, FrequentFlyer, Y16Q2, Y15Q2, Y14Q6 and P14
30 May


Coursework: 25%

Examination: 75% (past exam papers can be found at Birkbeck eLibrary)


Labs: MAL 109

Teaching Assistants: Tobi Brodie, Ping Brennan, Dilek Celik, Suneel Kingrani and Martin O'Shea

Software and Links

Virtual Machine and development tools (compiler, etc.)
Integrated Development Environment (BlueJ tutorial)
Educational software designed to make learning programming easy and fun
A website has coding puzzles and games
Java tutorials
Practical guides for programmers by Oracle
Java API specification
A list of all packages and classes with descriptions of their methods