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

Textbook

[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.
Lab.
22 Feb
More on Objects and Classes.
Lab: CurrencyExamples.
Marked Exercise 5 (deadline: 8 Mar).
1 Mar
Inheritance and Subclasses.
Lab.
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.
Lab.
22 Mar
Collections and Maps.
Test 2.1, Test 2.2. Example (answers).
10 May
Revision Lecture (43 Gordon Square, B04, 6-9pm).
Exam Papers: SP1-2014, SP1-2015 and SP1-2016
17 May
Revision Lecture 2 (MAL B35, 6-9pm)
Java code for selected questions:
29 May
Exam

Assessment

Coursework: 25%

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

Labs

Labs: 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

Java SE SDK
Virtual Machine and development tools (compiler, etc.)
BlueJ
Integrated Development Environment (BlueJ tutorial)
Greenfoot
Educational software designed to make learning programming easy and fun
CodinGame
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