Week 1

[Lecture 1] on 16-Jan (Tue)

* Ability Test * The Lab01-Q1 program: Q1_Explain.pdf * Lab01 - Page 5: Drawing of variables and objects * Topic 00 Course Introduction * Topic 01 Introduction to Java * Lec01_Ex Lecture Exercise: Common programming problems, Cast, Solution of Lec 1 Ability Test, Recursion (Fibonacci) * + Debugger Demo

[Lab 01] on 19-Jan (Fri)

* Lab01-Q1: Compile and run the Day program, briefly taking a look at Main.java. * Lab01-Q2: Make it work and finish submission to PASS (100%) ! * Lab01-Q3 to Q6: As homework * + Demo of Redo for Lab01-Q1

[Complementary video] Redo Lab01-Q1


Week 2

[Lecture 2] on 23-Jan (Tue)

* Lec02 Ex Q-3: About variables and objects in the memory; draw them ! * Lec02 Ex Q4 (Lab01Q5: Previous Day) * Lec02 Ex Q5 (Lab01Q6 Java Version A) * Lec02 Ex Q6,7 About PASS * Topic 02 Basic Progr. Structures

[Lab 02] on 26-Jan (Fri)

* Lab02-Q1: Finish submission to PASS (100%) ! * Lab02-Q2: Finish submission to PASS (100%) ! * Lab02-Q3 to Q6: As homework

[Complementary video] Writing Lab01-Q6A from scratch, Lab02-Q3 demo


Week 3

[Lecture 3] on 30-Jan (Tue)

* Lec03 Lecture Exercise Q1-5 * Topic 03 - Part only Objects and Classes * Lec03 Lecture Exercise Q6-? * Lec03 Lecture Exercise Q11 (Lab2Q3 Scanner and File objects) * Lec03 Lecture Exercise Q12 (Lab2Q4 Solution) * Lec03 Lecture Exercise Q13 (Lab1Q6B Solution)

[Lab 03] on 2-Feb (Fri)

* Lab03-Q1: Finish submission to PASS (100%) ! * Lab03-Q2: Finish submission to PASS (100%) ! * Lab03-Q3 to Q4: As homework

[Complementary video] Lab03-Q4 demo


Week 4

[Lecture 4] on 6-Feb (Tue)

* Mock for Quiz * Review mock answers * Information about the Quiz in week 5 * [Lab04.pdf] Q0-Q1 * Lec04 Lecture Exercise Q1-2(OO), Q3(Lab2Q6) * [Topic 03] Teaching

[Lab 04] 16-Feb (Fri)

* Lab04 Q2-6: Finish submission to PASS (100%) ! * Lab04 Q7-11: As homework. Helena will explain during lectures before deadlines.

Week 5

[Lecture 5] on 20-Feb (Tue)

* Quiz (5%) * About Quiz Redo * Lab04 Q5-11 * [Topic 03] Teaching

[Lab 05] on 23-Feb (Fri)

* Lab05 Q0-Q2 Finish Q0 on Canvas and Q2 on PASS (100%) ! * Lab05 Q3-7 will be explained during the coming lecture

Week 6

[Lecture 6] on 27-Feb (Tue)

* Quiz - review * Lec06 exercise Q11 (Summarize Lab5 Q2, Q5) * Lab05 Review Q2, Explain Q3-5 * Lab05 Briefing for Q6-7 * [Topic 04] - Teaching * Lec06 exercise Q1, 2

[Lab 6] on 1-Mar (Fri)

* Lab06.pdf page 1: State-pattern and OCP - an introductory example * Lab06 Q1-2 * Lab06 Q3-5 as homework (Q3-5 will be discussed during the lecture before deadline)

Week 7

[Lecture 7] on 5-Mar (Tue)

* [Topic 04] - Teaching (continued) * Lec06 exercise Q3-10 * Lab05 Q7 Drawing (Answer already posted on course web) * Lab06 Q3 and Progress Summary * Lec07 exercise Q1-3 (Singleton for Lab06 Q3, Explain Lab06 Q4-5)

[Lab 7] on 8-Mar (Fri)

* Warm up exercise: null and static * Lab07 Page 1 Review * Lab07.pdf Q1-4 * Remaining will be covered during lecture.

Week 8

[Lecture 8] on 12-Mar (Tue)

* [Topic 04] - Teaching (last part) * Lec07 exercise Q4-5 (Heap and Stk, Java Exceptions; GC) * Lab07 Q5-6, Progress check, Q7 (as Lec08 Ex Q5) * Lec08 exercise Q1-4 * [Topic 05] - First part

[Lab 8] on 15-Mar (Fri)

* Lab 8 Q1: Finish submission to PASS (100%) ! * Lab 8 Q2: Demo * Lab 8 Q2-6: As homework. Helena will explain Q5-6 during the lecture before deadlines.

Week 9

[Lecture 9] on 19-Mar (Tue)

* [Topic 05] - Remaining contents * [Topic 06] - Exception Handling (for Assignment) * Lab 8 Page 6 - Progress check * Lecture Exercise Lec09 Q4 Lab8 Q5 Fire (for Assignment) * Lecture Exercise Lec09 Q1 Exercise-IReadWrite-IGrade * Lecture Exercise Lec09 Q2 CompareTo * Lecture Exercise Lec09 Q3 O-O Approach (for Assignment) * Lecture Exercise Lec09 Q5 Exception Handling (for Assignment)

[Lab 9] on 22-Mar (Fri)

* Lab09.pdf Intro (All Lab09 Q1-2 are for the assignment) * Lab09 Q1: Finish submission to PASS (100%) ! * Lab09 Q2: As homework; video available.

Week 10

[Lecture 10] on 26-Mar (Tue)

* Lecture Exercise Lec09 Q1 Exercise-IReadWrite-IGrade Another example: course web => Given Code => 05 Programs => Topic05x * Lecture Exercise Lec09 Q6 Inner classes * [Topic 06] - Exception Handling (remaining contents) * Lecture Exercise Lec10 Q1 Fixing SystemDate * Lecture Exercise Lec10 Q2 Exception Handling -- summary * [Topic 07] - Generics

[Lab 10] on 29-Mar (Fri)

* Lab10 Q2: MC Part A * Lab10 Q1: Coding (for Assignment)

Week 11

[Lecture 11] on 2-Apr (Tue)

* Lab10 Q2: MC Parts B-C * [Topic08] Collections * Lecture Exercise Lec11 (Include Mock of Midterm Q1, Q2)

[Lab 11] on 5-Apr (Fri)

* Lab11.pdf Questions (a) and (b) * Please finish all part a and b by the deadlines

Week 12

[Lecture 12] on 9-Apr (Tue)

* Midterm * Lab12 : Introduction of Q1-Q3 (small questions) We will review Q1-Q3 briefly in tutorials

[Lab 12] on 12-Apr (Fri)

* Review Lab12 Q1-Q3 (We already introduced Q1-Q3 during the lecture) * Go through Lab12 Q4

Week 13

[Lecture 13] on 16-Apr (Tue)

* Lecture Exercise Lec13 * [Topic09] OOP Review and more * Review the Midterm questions * Preparation for the exam

[Lab 13] on 19-Apr (Fri)

Lab 13: Functional programming