Software and Programming I

Lecturers: Roman Kontchakov and Carsten Fuhs
Programmes: BSc Computing, BSc IS&M, BSc Data Science and FdSc
Time: Thursday 2pm - 5pm and 6pm - 9pm (additional optional tutorials 5pm - 6pm)
Room: MAL B04 (A-H: 2-3.30pm, I-Z: 3.30-5pm) and MAL B20 (A-L: 6-7.30pm, M-Z: 7.30-9pm)
Lab: MAL 109 (2-5pm) and MAL 414/415 (6-9pm)
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

16 Jan
Introduction. Basic Elements of Java: HelloWorld and PrintSquares
Lab: InterestCalculator.
23 Jan
Conditional Statements. Method call stack walk-through.
Lab: InterestCalculator2, RomanNumber and RomanNumber2.
Marked Exercise 1: LeapYear (deadline: 6 Feb)
30 Jan
Loops and Expressions.
Lab: PrintHelloWorldWhile, PrintHelloWorld, InterestCalculator3 and InterestCalculator4.
Marked Exercises 2 & 3: Powers & BalancedParentheses (deadline: 13 Feb)
6 Feb
Arrays and Basic Algorithms.
Lab.
Marked Exercise 4: ArrayExercises (deadline: 20 Feb).
13 Feb
Test 1.1, Test 1.2. (answers 1.1, answers 1.2). Example (answers).
Lab.
20 Feb
Objects and Classes.
Lab.
27 Feb
More on Objects and Classes.
Lab.
Marked Exercise 5: CashRegisterP816 and CashRegisterP816Test (deadline: 12 Mar).
5 Mar
Inheritance and Subclasses.
Lab.
Marked Exercise 6: Team, Game and GameTest (deadline: 19 Mar).
12 Mar
Classes and Arrays.
Lab: Student and StudentTest; with subclasses: Person, StudentR, Tutor and PeopleTest.
19 Mar
Object-Oriented Design.
Lab.
26 Mar
Input-Output and Exception Handling.
Test 2 (answers).
14 May
Revision Lecture.
Exam Papers: SP1-2016, SP1-2017, SP1-2018 and SP1-2019.
21 May
Revision Lecture 2.
?? June
Exam

Assessment

Coursework: 25%

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

Labs

Lab: MAL 109

Teaching Assistants: Tobi Brodie, Ping Brennan


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 8 API specification
A list of all packages and classes with descriptions of their methods