Programmazione ad oggetti 2015/2016

pages
learning outcomes

At the end of the course, students will be acquainted with basic knowledge of the object-oriented paradigm of software construction, of its basic design patterns, its incarnation in the Java programming language and the corresponding framework, including advanced aspects like GUIs, multi-threading and events.

course contents
  • Basic elements of object-oriented programming and design
  • The case of the Java programming language: overview and development tools
  • Basic functionality: classes, objects, methods, fields, and instantiation
  • Polymorphism, inheritance, reuse: interfaces and abstract classes
  • Advanced aspects: generics, annotations, exceptions, inner classes, lambda expressions
  • Basic libraries for program construction
  • I/O management and graphical interfaces
  • Elements of concurrency programming in Java
  • Design patterns and techniques of effective programming
  • Development tools: JDK, Eclipse, Mercurial
readings / bibliography
  • Reference book:
    • Bruce Eckel. Thinking in Java -- Fourth Edition
  • Additional books:
    • Joshua Bloch. Effective Java -- Second Edition
    • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns
      The course will also rely on tutorials and documentation available on the Internet.
teaching methods

9 hours of lesson per week, typically 6 in the teaching room and 3 in the lab

assessment methods
  • Practical test on Java programming in lab
  • Oral exam based on presentation of a project
teaching tools

Slides projected during the lessons, published on the web site Software: Java Development Kit, Eclipse

course series