70219 - Object-Oriented Programming

Academic Year 2016/2017

  • Docente: Mirko Viroli
  • Credits: 12
  • SSD: ING-INF/05
  • Language: Italian
  • Moduli: Mirko Viroli (Modulo 1) Danilo Pianini (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Cesena
  • Corso: First cycle degree programme (L) in Computer Science and Engineering (cod. 8615)

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 - Polimorphism, 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 Block. Effective Java -- Second Edition  Erich Gamma, Richard Elm, 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   Ora exam based on presentation of a project

Teaching tools

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

Links to further information

http://apice.unibo.it/xwiki/bin/view/MirkoViroli/

Office hours

See the website of Mirko Viroli

See the website of Danilo Pianini