CS2040 - Spring course 2020
Courses classes are on Monday, Wednesday and Thursday form 1h45 to 3h05 in room PL-5 (2bis, Passage Landrieu).

Textbook

INTRODUCTION TO. JAVA. PROGRAMMING (10th Edition) by Daniel Jiang

Tutor

Gavin Goerke

Online resurces

On Java

Base 2 integer conversion

From base 10 to base 2 and

Linear Feedback Shift Register

The "De Brujin" magic trick

!! their card encoding may not corresponds to the one proposed in this excercise!!

Program of the course

Date Content Assignments
Week 1:
Gen 13
Introduction
  • Introduction to the course and the course Web site
  • Peergrade
  • Compilers and IDE
  • Introduction Slides
!! Class only on Monday 13 !!
  • Ex1 Part1
  • try Part 2
Week 2:
Gen 20 at 13h45
Gen 23 at 13h45 and at 15h20
Types
  • Data type
  • Program type
  • Type casting
  • An elementary encryption method: Caesar cipher
  • Encrypting via LFSR
No class on Wednesday 22, double class on Thursday 23
  • Write a Caesar cipher encripting program
  • Finish Ex1 and upload the solution on peergrade.
  • Revise course CS1040 topics: Chapters 1-8 of the book (see also myProgrammingLab excercises)
Week 3:
Gen 27 at 13h45
Gen 29 at 13h45
Gen 30 at 13h45 and at 15h20
Objects and Classes
  • What is a class?
  • Unified Modeling Language
  • this
  • What is an object?
  • Differences between objects and classes
  • Why to use OOP?
  • Programming paradigms (procedural vs OOP)
  • here our zoo classes
! Double class on Thursday 30 !
  • Book chapter 9
  • Give feedback to at least 2 peergrade submissions
  • myProgrammingLab excercises on book chapter 9 (at least the two projects at the end of the chapter)
Week 4
Feb 3 at 13:55
Feb 5 at 13:45
Feb 6 at 13:45
OOP thinking & Inheritance & Abstract Classes
  • Why to use OOP?
  • Data access
  • Association
  • Subclasses
  • Inheritance
  • super
  • Override VS Overload
  • Polymorphism
  • here our new zoo
  • ArrayList
  • Excercise: social network (the code we wrote in class)
  • Book chapter 10 & 11 & 13
  • myProgrammingLab excercises on chapter 10
  • myProgrammingLab projects of chapter 11
Week 5
Feb 10 at 13:55
Feb 12 at 13:45
Feb 13 at 13:45
Excercises
  • Some excercises on the point of the plane (solution w.i.p.)
  • Solution of assignement 2
  • Assignement 2
  • Revise Book chapters 9-11 & 13
  • myProgrammingLab excercises on chapter 10
  • myProgrammingLab projects of chapter 11
17.2 - 28.2 Spring Break
Revise Chapters form 1 to 11 and 13, focussing on 9-11 and 13.
Pay attention to the following key concept summarized in the Chapters Summary (at the end of each Chapter):
  • Chapter 2: 9-12, 17;
  • Chapter 3: 1, 4-6;
  • Chapter 4: 2, 8-11;
  • Chapter 6: all;
  • Chapter 7: 1-9;
  • Chapter 9: all;
  • Chapter 10: 1, 2, 3;
  • Chapter 11: all;
  • Chapter 13: 1-6, 9, 10;
Keep in practice with coding
Week 7
9.3
Midterm Exam
  • Theory Test
  • Programming Test
  • Debugging and imporving the test code
Book chapters 1-11 & 13

Course Syllabus

download

Date Content Book Chapters
Week 1
13.1
Introduction
  • Introduction to the course and the course Web site
  • Peergrade
  • Compilers and IDE
  • Data type, casting and Program type
  • Linear-Feedback Shift Register
1-8
Week 2
20.1
Objects and Classes
  • What is a class
  • Unified Modeling Language
  • this
  • What is an object
  • Differences between objects and classes
9
Week 3
27.2
OOP thinking
  • Why to use OOP?
  • Data access
  • Encapsulation
  • Programming paradigms (procedural vs OOP)
10
Week 4
3.2
Inheritance
  • Trees
  • Parent/Child class
  • super and final
11
Week 5
10.2
Exceptions
  • Exception handling
  • Try-Catch
12
17.2 - 24.2 Spring Break
Week 6
2.3
Abstract Classes
  • Association/Composition/Aggregation
  • Abstract Classes
13
Week 7
9.3
Midterm Exam
Week 8
16.3
JavaFX basic
  • Graphic objects
  • Create user interface
  • Drawing
14
Week 9
23.3
Event Driven Programming
  • Event source
  • Event handler
  • Anonymus classes
  • Anonymus functions (λ-Expressions)
15
Week 10
30.3
JavaFX
  • Label class
  • Button
14+15
Week 11
6.4
Input-Output
  • Read ad write primitive values
  • Read and write files
17
Week 12
20.4
Recursion
  • Recursion in programming
  • Factorial
  • Hanoi Tower Game
  • Fractals
  • Recursion vs Iteration
18
Week 14
27.4
Complexity
  • O(n) notation
  • Complexity of algorythm
  • 1000000$ Problems
22
7.5 Final Exam, h12, room: PL-5 1-18