UF 06: JAVA¶

Course intro¶

Alta Formazione Professionale - ITT Marconi

January 2021

About me¶

David Leoni¶

david.leoni.work@gmail.com¶

semantic web¶

  • Università di Trento, DISI - Povo, Trento
  • University of Edinburgh and Heriot-Watt University (Scotland)

promoting computer science education¶

elementary, middle school level:

  • Manager CoderDojo Trento
  • Presidente Associazione CoderDolomiti

university level:

  • DISI, Trento (master Data Science)
  • Sociologia, Trento
  • Educazione professionale, Scienze cognitive, Rovereto

Entry survey¶

link¶

Course¶

Java part: 30h theory + 15h lab

probably we will follow 2h theory + 1h lab format

material in English

will talk in Italian (mostly)

Expectations¶

you want to be a well paid programmer

... so you will do a lot of exercises

... and think like a pro

Evaluation¶

midterm (mostly to check progress)

oral exam (~1h), coding interview style

groupwork

Plan¶

goals¶

  • basics, simple algorithms
  • data modelling
  • some concurrent programming
  • some groupwork (versioning with git, documentation, unit testing)

non-goals¶

  • learning specific librieries (i.e. GUI, XML parsing, web)
  • frameworks (i.e. Spring)

Syllabus¶

  1. Intro, Tools, Primitive Types
  2. Using Objects, Math class, strings
  3. Boolean Expressions, If Statements
  4. Iteration: while, for
  5. Writing Classes, documentation
  6. Arrays, ArrayList
  7. Sets, Maps

Midterm exam (TBD)

  1. Error handling and testing, JUnit
  2. 2D Arrays
  3. I/O: file formats, lines, CSV
  4. Inheritance
  5. Project: dependencies, versioning (git), documentation
  6. I/O: serialization, JSON, XML
  7. Project Lab
  8. Concurrency: threads, immutability

Final exam (TBD)

Course Material¶

Main book: CSAwesome by Dr. Barbara Ericson

  • online
  • step-by-step
  • lots of activities to do

Extra exercises:

  • Edabit website (select Java language), difficulty from 'Easy' to 'Very hard' included (don't worry, it's not actually so hard)

  • Thinking in Java book, by Bruce Eckel

Extra reading: Core Java eleventh edition, by Cay S. Horstmann and Gary Cornell

  • Volume 1: you can read all except graphical user interfaces
  • Volume 2: chapters Streams; Input and output
  • straight to the point, for professionals, no exercises
  • if you are serious about Java (you should be), I recommend buying it