AY 19/20 - Advanced Programming

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

  • Programmazione avanzata (223MI), 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!

Course material #

The course material (teacher’s slides) is available here as a zip archive, or served directly from here. The full pack of slides might be updated during the course.

The lectures (with the exception of the first one, due to technical reasons) have been recorded: they are available here.

Lectures timetable and course calendar #

The course will start on 2 March 2020.

End-of-course test (exam) #

The exam works in one of the following ways:

  1. Three parts: Home assignments + Final project + Written test. Exam is passed only if the grade is >6/10 on each part. Overall grade is determined as 10%, 60%, 30%, respectively. The grades for the Home assignments are communicated during the course.
  2. Three parts: Final project + Written test + Oral exam. Exam is passed only if the grade is >6/10 on each part. Overall grade is determined as 40%, 30%, 30%, respectively.

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 sistem 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.

Written test #

Questions on the course program with short open answers and short programming exercise.

Oral exam #

Questions on the course program and short programming exercise.

Home assignments #

During the course, some exercises will be assigned. Each exercise will consist in the design and development of a simple software in Java; the exercise will start in the classroom under the teacher’s supervision. The student will be required to submit the software within a deadline. The evaluation of each exercise will be as follows: 0/10 not submitted (missed deadline); 5/10 submitted, but not working; 8/10 submitted and almost fully working; 10/10 submitted and fully working. The overall Home assignments evaluation will be the average of the exercise evaluations.

Assignments have to be shared with the teacher using repl.it. Students have to send an email to the teacher, within the deadline, saying who they are and which is the url of the shared repl. Due dates are at 23.59, AoE time. Please do not change the code in repl after the due date.

  1. Anagrams, slide 149, assigned on 16/03/2020, due date 30/03/2020
  2. Equivalence, slide 223, assigned on 30/03/2020, due date 20/04/2020
  3. GZIP File Array, slide 336, assigned on 28/04/2020, due date 11/05/2020

Grades for the home assignments are visible here.

Results of students’ assessment #

Students of IN20 (13 answers)
Students of IN20 (13 answers)
Students of IN19 (4 answers)
Students of IN19 (4 answers)

Questions #

(In Italian)

  1. Le conoscenze preliminari possedute sono risultate sufficienti per la comprensione degli argomenti trattati?
  2. Il carico di studio di questo insegnamento è proporzionato ai crediti assegnati?
  3. Il materiale didattico (indicato o fornito) è adeguato per lo studio della materia?
  4. Le modalità di esame sono state definite in modo chiaro?
  5. Gli orari di svolgimento dell’attività didattica 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, laboratori, seminari, ecc.) risultano utili ai fini dell’apprendimento? (se non sono previste attività didattiche integrative, rispondete non previste)
  9. L’insegnamento è stato svolto in maniera coerente con quanto dichiarato sul sito web del corso di studio?
  10. Il personale docente è effettivamente reperibile per chiarimenti e spiegazioni?
  11. Sei interessato agli argomenti dell’insegnamento?
  12. Sei complessivamente soddisfatto dell’insegnamento?
  13. Ritieni che gli strumenti per la didattica a distanza utilizzati dal docente siano stati fruibili: TEAMS
  14. Ritieni che gli strumenti per la didattica a distanza utilizzati dal docente siano stati fruibili: Moodle
  15. Ritieni che gli strumenti per la didattica a distanza utilizzati dal docente siano stati fruibili: Altre piattaforme didattiche (Classroom, Impari, altre)
  16. Ritieni che gli strumenti per la didattica a distanza utilizzati dal docente siano stati fruibili: Altre piattaforme per videoconferenza (Google Meet, Skype, Zoom, altre)
  17. Ritieni che gli strumenti per la didattica a distanza utilizzati dal docente siano stati fruibili: Cartelle virtuali o cloud storage
  18. Ritieni che gli strumenti per la didattica a distanza utilizzati dal docente siano stati fruibili: Messaggistica istantanea (Whatsapp, altro)
  19. Ritieni che gli strumenti per la didattica a distanza utilizzati dal docente siano stati fruibili: Piattaforme social (Facebook, Instagram, altro)
  20. Ritieni che gli strumenti per la didattica a distanza utilizzati dal docente siano stati fruibili: Altro
  21. Il materiale didattico messo a disposizione on line è stato soddisfacente: audio-lezioni registrate
  22. Il materiale didattico messo a disposizione on line è stato soddisfacente: audio-video-lezioni registrate (asincrone)
  23. Il materiale didattico messo a disposizione on line è stato soddisfacente: registrazioni delle lezioni in streaming (sincrone)
  24. Il materiale didattico messo a disposizione on line è stato soddisfacente: slide e/o pdf
  25. Il materiale didattico messo a disposizione on line è stato soddisfacente: altri file
  26. Il materiale didattico messo a disposizione on line è stato soddisfacente: link a contenuti didattici (Youtube, altro)
  27. Il materiale didattico messo a disposizione on line è stato soddisfacente: Altro
  28. La modalità didattica a distanza ti ha permesso di studiare in autonomia?
  29. Durante il periodo di svolgimento delle lezioni il docente ha garantito la possibilità di interazione con gli studenti?
  30. Il docente ha adeguato il materiale didattico alle specificità della didattica a distanza?
  31. Per questo insegnamento il docente ha messo a disposizione tempestivamente il materiale didattico?
  32. COMPLESSIVAMENTE, la risposta del docente all’emergenza COVID19 PER QUESTO INSEGNAMENTO è stata soddisfacente?