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

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)

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.
Lab.
23 Feb
More on Objects and Classes.
Lab: CurrencyExamples.
Marked Exercise 5 (deadline: 9 Mar).
2 Mar
Inheritance and Subclasses.
Lab.
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. Example (answers).
23 Mar
Input-Output and Exception Handling.
Lab.
11 May
Revision Lecture (UCL Malet Place Eng 1.03, 6-9pm).
Exam Papers: SP1-2012, SP1-2013, SP1-2014, SP1-2015 and SP1-2016
Java code for selected questions:
18 May
Revision Lecture 2 (MAL 421, 6-9pm)
Java code for selected questions:
30 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, Suneel Kingrani and Martin O'Shea


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