S7 Inf A3 — Java for Graphical and Mobile Programming
Stéphane Derrode — Centrale Lyon
Course overview
This course introduces Java programming to M1 engineering students who already know Python and object-oriented programming. It is structured in three parts:
| Part | Content | Tools |
|---|---|---|
| Part 1 — Java Fundamentals | Types, OOP, collections, exceptions, file I/O | VSCodium + Maven |
| Part 2 — GUI with Swing | Event-driven programming, Graphics 2D | VSCodium + Maven |
| Part 3 — Android | Mobile app development | Android Studio |
Schedule
48 h total — 16 h lectures (CM) · 20 h labs (TD) · 12 h autonomous projects (2 × 6 h).
Part 1 — Java Fundamentals · 16 h
| Session | Type | Hours | Content |
|---|---|---|---|
| CM1 | CM | 2 h | From Python to Java — types, classes, Maven (the Car class) |
| TD1 | TD | 2 h | Build the Car & Garage classes |
| TD-Git | TD | 2 h | Version control with Git on the Car project |
| CM2 | CM | 2 h | Collections, exceptions, file I/O |
| TD2 | TD | 2 h | FleetManager (HashMap, file I/O) + RPN calculator |
| CM3 | CM | 2 h | Inheritance, interfaces, composition |
| TD3 | TD | 2 h | Shape hierarchy, ShapeStats, Zoo |
| TD-Modern | TD | 2 h | Modern Java — Streams, records, lambdas (+ Polynomial capstone) |
Subtotal: 6 h CM · 10 h TD = 16 h**
Part 2 — GUI with Swing · 16 h
| Session | Type | Hours | Content |
|---|---|---|---|
| CM4 | CM | 2 h | Swing: components, layouts, events (CarUI) |
| TD4 | TD | 2 h | CarUI control panel |
| CM5 | CM | 2 h | Graphics 2D, mouse & keyboard (GridPanel) |
| TD5 | TD | 2 h | DrawPanel + interactive GridPanel |
| TD-Threads | TD | 2 h | Concurrency — the EDT & SwingWorker |
| BE1 — supervised launch | Autonomy | 2 h | Spider Game: model + placement phase, in class |
| BE1 — personal work | Autonomy | 4 h | Spider Game: movement, win detection, restart |
Subtotal: 4 h CM · 6 h TD · 6 h autonomy = 16 h**
Part 3 — Android · 16 h
| Session | Type | Hours | Content |
|---|---|---|---|
| CM6 | CM | 2 h | Android architecture, first app (NotesPad v1) |
| TD6 | TD | 2 h | Android Studio & NotesPad v1 |
| CM7 | CM | 2 h | Layouts, navigation, intents (NotesPad v2) |
| TD7 | TD | 2 h | RecyclerView, navigation, result (NotesPad v2) |
| CM8 | CM | 2 h | Persistence, app polish, beyond this course (NotesPad v3) |
| BE2 — supervised launch | Autonomy | 2 h | Calculator/Converter: layout + persistence, in class |
| BE2 — personal work | Autonomy | 4 h | Calculator/Converter: logic, SharedPreferences, history |
Subtotal: 6 h CM · 4 h TD · 6 h autonomy = 16 h**
Assessment
- Written exam: 50 %
- Average of 2 graded projects (BEs): 50 %
- BE1 — Spider Game (Part 2)
- BE2 — Calculator or Converter (Part 3)
Getting started
Before your first lab session, follow the setup tutorial for your part:
- VSCodium & Maven Setup — required before TD1
- Android Studio & Emulator Setup — required before TD6