AY 22/23 - Advanced Programming

This page is about the courses named (actually the same course):

  • Programmazione avanzata (143IN), for master program IN05, 9 CFUs
  • Programmazione avanzata (316MI), for master program IN20, 9 CFUs
  • Programmazione avanzata (558EC), for master program EC71, 9 CFUs

Program, goals, requirements #

Detailed program #

Available here, in Italian, or here, in English.

Goal of the course #

Knowledge and understanding #

  • Know what object-oriented programming is: how to store, process, and access data with objects.
  • Know the syntax and the features of the Java programming language and of the Java software platform.
  • Know the style conventions for Java language.
  • Know Java main frameworks and APIs.
  • Know the common structure of the basic development tools, including those for unit testing.
  • Understand how a Java program is executed by a computer.

Applying knowledge and understanding #

  • Design, develop, test, and debug complex software in Java.

Making judgements #

  • Decide if Java fits a given programming task.
  • Judge the quality of a software written in Java in terms of code style, software artifacts structure, testing, and documentation.

Communication skills #

  • Describe the motivations behind choices in the design and development of a software written in Java.
  • Comprehend, formulate, and describe the specifications for a software.

Learning skills #

  • Learn, through software documentation and examples, to use any software written in Java.
  • Learn the basics of other object-oriented programming languages.

Requirements #

Basics of programming and data structures: algorithm, data types, loops, recursion, parallel execution. Basics of computer networks: IP, TCP.

Method, language, material #

Language of teaching #

Italian

Teaching method #

Frontal lessons with blackboard and slide projection; exercises, under teacher’s supervision, consisting in solving simple tasks of software design and development in Java. Bring your own laptop!

There will be extra excercise sessions led by the teaching assistant Giorgia Nadizar. The details about these sessions will be communicated.

Course material #

The course material (teacher’s slides) is served directly from here. The slides might be updated during the course.

The lectures will be recorded and made available on Teams.

Lectures timetable and course calendar #

The course will start on 1/3/2023.

The lectures will be:

  • on Wednesday, from 8.30 to 10.00, in room 3B, 3rd floor, building D
  • on Thursday, from 8.30 to 11.00, in room 3B, 3rd floor, building D
  • on Friday, from 12.00 to 13.30, in room A, ground floor, building C7

The lectures will be done in person, recorded, and made available on Teams. Students enrolled in this course should already be able to access the team of the course.

Short announcements about lectures schedule #

Lectures will be suspended from 12/4/2023 to 24/4/2023 (included).

The lecture of 28/4/2023 is suspended, for allowing the students to take part in the Porte Aperte initiative.

The lecture of 12/5/2023 is suspended, for allowing the students to take part in visiting organized by the department to u-blox.

End-of-course test (exam) #

The student can pass the exam in one of the following ways (student’s choice):

  1. Two parts: Final project + “Short” oral exam. Exam is passed only if the grade is >6/10 on each part. Overall grade is determined as 50%, 50%.
  2. One part: Oral exam.

The exam may be repeated an unlimited number of times. Overall grades corresponding to failed exams (with the exception of Project missed deadlines) will be registered as failed. The student may ask to repeat an exam also when passed: acceptance and specific parts to be repeated will be agreed with the teacher.

Student must register for the exam session of their interest using the online system esse3. Note that there are deadlines for registration (usually 1 week before the session date).

Final project #

At the end of the course, a project will be assigned that consists in the design and development of a software in Java, including testing and a simple documentation and following the provided specifications. The student will be required to submit the software within a deadline corresponding to the day of the written test she/he plans to apply. The evaluation will be as follows: 0/10 not submitted (missed deadline); 5/10 to 10/10 submitted, depending on quality of code, software structure, documentation, test coverage, degree of working.

The project assignment is here.

Oral exam #

Questions on the the main and minor concepts and short programming exercise.

Results of assessment by students #

Students of IN20 (17 answers)
Students of IN20 (17 answers)
Students of IN05 (22 answers)
Students of IN05 (22 answers)

Questions #

(In Italian)

  1. Le conoscenze preliminari possedute sono risultate sufficienti per la comprensione degli argomenti previsti nel programma d’esame?
  2. Il carico di studio dell’insegnamento è proporzionato ai crediti assegnati?
  3. Il materiale didattico (indicato e disponibile) è adeguato per lo studio della materia?
  4. Le modalità di esame sono state definite in modo chiaro?
  5. Gli orari di svolgimento di lezioni, esercitazioni e altre eventuali attività didattiche sono rispettati?
  6. Il docente stimola/motiva l’interesse verso la disciplina?
  7. Il docente espone gli argomenti in modo chiaro?
  8. Le attività didattiche integrative (esercitazioni, tutorati,laboratori, etc…), se previste, sono utili all’apprendimento della materia?
  9. L’insegnamento è stato svolto in maniera coerente con quanto dichiarato sul sito web del corso di studio?
  10. Il docente è reperibile per chiarimenti e spiegazioni?
  11. È interessato/a agli argomenti trattati nell’insegnamento?
  12. È complessivamente soddisfatto di come è stato svolto questo insegnamento?
  13. L’utilizzo degli strumenti per la DAD (TEAMS, Moodle, …) da parte del docente ha permesso la corretta fruizione delle lezioni a distanza?
  14. Hai usufruito delle registrazioni delle lezioni? Se sì, ritieni fruibili le registrazioni delle lezioni di questo insegnamento, indipendentemente dalla piattaforma?
  15. Durante il periodo di svolgimento delle lezioni il docente ha garantito la possibilità di interazione con gli studenti?
  16. Sei COMPLESSIVAMENTE soddisfatto di come si è svolta la didattica digitale per questo insegnamento?