- Docente: Enrico Denti
- Credits: 12
- SSD: ING-INF/05
- Language: Italian
- Moduli: Enrico Denti (Modulo 1) Gabriele Zannoni (Modulo 2)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
- Campus: Bologna
-
Corso:
First cycle degree programme (L) in
Computer Engineering (cod. 0926)
Also valid for First cycle degree programme (L) in Electrical Energy Engineering (cod. 8610)
Learning outcomes
The course aims to provide an in-depth concptual & practical
knowedlge about the basics concepts, methodologies, technologies
and tools for the design and development of applications according
to the object-oriented paradigm.
Java and .NET platforms are considered, adopting Java and C# as the
main reference languages.
Course contents
Basic concepts of programming
languages. Language families -- imperative, functional, logic, and
object-oriented languages. Introduction to software design:
software components, abstract data types, objects. Basic concepts
of the Java language and architecture: classes, instances, object
construction and deletion, inheritance, polymorphism. Abstract
classes, interfaces, multiple inheritance. Exceptions and exception
handling. Basic elements for GUI construction in Java: event-driven
programming, event listeners. I/O streams and file access, object
serialization.
Data structures: lists, hashmaps, trees and related algorithms:
such structures are considered both as Java collections and as
user-designed data types -- according to both a procedural and an
object-oriented approach.
Readings/Bibliography
Please see the course's web portal.
Teaching methods
Powerpoint slides (whose PDF printouts
are available from the teacher's Web portal before the
corresponding lecture) are projected and discussed during class
hours, thus avoiding students the burden of taking notes all the
time, letting them focus on the discussed concepts.
Exercises are continuously interleaved with theoretical concepts
and immediately shown 'on line' from the teacher's notebook.
This course (Module 1) is strictly integrated with the other
parallel course (Module 2), which is mainly devoted to lab
experiments and exercises under the tutor's guide, both in groups
and as individual activities: each week, a task is assigned to be
completed during the lab session. Its resolution tests the
students' ability in the concepts explained in the previous
weeks.
Assessment methods
Assessment is achieved both as self-evaluation in the lab sessions
systematically proposed during the course, and as a final
examination, which is integrated for both Module 1 and Module
2.
The lab tests during the course do not replace the final
examination, nor do they contribute to the final evaluation, given
their purpose of allowing students to self-evaluate.
The final examination consists in the practical implementation of
the solution to a practical medium-size problem in the lab: during
the test, students can freely consult books, manuals, on-line
slides and resources in order to provide a solution to the proposed
application problem. The solution can be considered for correction
and evaluation only if it is compiled by the java compiler: if
compilation fails, the test is not passed, regardless of any other
consideration. If it compiles, the proposed solution is evaluated,
taking into account in particular its conformity to the problem
specification.
Once the lab test has been passed, the student is admitted to the
oral discussion, which is mainly (but not exclusively) devoted to
discuss the approach and solution of the lab test. The oral
discussion may be waived if the lab test is passed with a score of
at least 23/30.
Teaching tools
The teacher's web portal provides updated information, copy of the slides projected and discussed during the lecture hours, some extra material, and suggested books.
Links to further information
http://enricodenti.disi.unibo.it
Office hours
See the website of Enrico Denti
See the website of Gabriele Zannoni