- 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)
Also valid for 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
In room, we will illustrate object-oriented programming techniques and details of the Java programming language, and conduct exercises to stimulate a critical attitude in students.
In lab, we illustrate various development tools, e assign developing tasks to exercise practical abilities of students.
Assessment methods
Assessment is conducted in two stages, not necessarily ordered:
1) Practical test on Java programming in lab. With a couple of programming exercises in Java, including automated tests or pertaining the production of a simple graphical user interface, we assess the student's capacity of concluding quickly and with pertinence a simple programming/designing task.
2) Ora exam based on presentation of a project. In 3-persons teams, students realise a software development project, producing documentation of requirements, design, and implementation. Assessment includes check of software quality and discussions of design choices.
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