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 (additional optional tutorials 5pm - 6pm)
Room: 43 Gordon Sq, GOR B04 (A-K: 2-3.30pm, L-Z: 3.30-5pm) and
UCL Malet Place Eng 1.02 (A-J: 6-7.30pm, K-Z: 7.30-9pm)
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)

Electronic version (via Birkbeck Library)

Schedule and Slides

11 Jan
Introduction. Basic Elements of Java.
Lab: InterestCalculator.
18 Jan
Conditional Statements. Method call stack walk-through.
Lab: InterestCalculator2 and RomanNumber.
Marked Exercise 1 (deadline: 1 Feb)
25 Jan
Loops and Expressions.
Lab: InterestCalculator3.
Marked Exercises 2 & 3 (deadline: 8 Feb)
1 Feb
Arrays and Basic Algorithms.
Lab: ArrayExercises.
Marked Exercise 4 (deadline: 15 Feb).
8 Feb
Test 1.1, Test 1.2 (answers 1.1, answers 1.2). Example (answers).
Lab: FibonacciNumbers.
15 Feb
Objects and Classes.
22 Feb
More on Objects and Classes.
Lab: CurrencyExamples.
Marked Exercise 5 (deadline: 8 Mar).
1 Mar
Inheritance and Subclasses.
Marked Exercise 6 (deadline: 15 Mar).
8 Mar
Classes and Arrays.
Lab: Student and StudentTest; with subclasses: Person, StudentR, Tutor and PeopleTest.
15 Mar
Input-Output and Exception Handling.
22 Mar
Collections and Maps.
Test 2.1, Test 2.2 (answers 2.1, answers 2.2). Example (answers).
10 May
Revision Lecture (43 Gordon Square, B04, 6-9pm).
Exam Papers: SP1-2014, SP1-2015, SP1-2016 and SP1-2017
Java code for selected questions: P17, Q17, QQ, T17
17 May
Revision Lecture 2 (MAL B35, 6-9pm)
Java code for selected questions: QR, FrequentFlyer, OysterCard
29 May


Coursework: 25%

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


Lab: MAL 109

Teaching Assistants: Tobi Brodie, Ping Brennan, Dilek Celik (afternoon), Abul Hasan (afternoon), Azeem Khan (evening), Suneel Kingrani, Martin O'Shea and Margarita Razgon (evening)

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