The course aims to put into practice the topics covered in the lessons of the Programming course through appropriate programming exercises in Java language.
Course Content - Lesson
The course aims at introducing the students to the computational thinking, and to the methodological foundations and the corresponding basic notions of the procedural and object-oriented programming paradigms, and of the algorithmic techniques for problem solving and experimental program verification.
P. Crescenzi, Gocce di Java, Franco Angeli, 2014.
Java per Impazienti, Cay Horstmann, Pearson 2018.
Learning Objectives - Workshop - Last names M-Z
At the end of the course, the students will be able to analyse and to model a problem, to develop a solution by using algorithmic and programming techniques, to test its correctness, and to verify its efficiency. The students will be able to implement algorithms for several kinds of problems by using a programming language (in particular, Java).
Learning Objectives - Lesson
At the end of the course, the students will be able to analyse and to model a problem, to develop a solution by using algorithmic and programming techniques, to test its correctness, and to verify its efficiency. The students will be able to implement algorithms for several kinds of problems by using a programming language (in particular, Java).
Prerequisites - Workshop - Last names M-Z
Knowledge of the topics covered in the lessons of the Programmazione course, which will be put into practice and deepened through appropriate programming exercises in Java language.
Prerequisites - Lesson
No prerequisite.
Teaching Methods - Workshop - Last names M-Z
Practical programming excercizes in class or in the laboratory
Teaching Methods - Lesson
Class lessons
Further information - Workshop - Last names M-Z
Laboratory attendance: recommended.
Tools for supporting teaching: http://e-l.unifi.it.
Further information - Lesson
Lesson attendance: recommended.
Tools for supporting teaching: http://e-l.unifi.it.
Type of Assessment - Workshop - Last names M-Z
Described in the syllabus for the Programmazione course.
Type of Assessment - Lesson
The exam consists of:
- Written: one or more exercises to be carried out in the laboratory, using the laboratory computers, without notes, books, cell phones, portable devices. During the exam, the laboratory computers will not be connected to the network;
- Oral: questions about the whole program (referring to the course textbooks and supplementary handouts, as reported on the Moodle website of the course).
The oral exam can only be taken after passing the written exam (i.e. if at least the written exam is taken).
The exam (both written and oral) can be taken in a certain session only after having booked on the appropriate website of the university.
Necessary (but not sufficient) conditions for passing the written exam are all the following:
- The code compiles without errors
- The code respects all the specifications of the exercizes
- All automatic tests provided by teachers are successful
The writing remains valid for the current exam session only. Therefore who has passed the writing has to take the oral exam in the same session.
If the oral interview is not passed, or if the student decides to refuse the final grade:
- Studente has to redo both the writing and the oral exam in a following session, and
- the intermediate test (if passed) is cancelled (so the student has to take the written exam in the "complete" (not "reduced") form starting from the following session.
The oral date will be communicated after the written exam and will be indicatively the next day or a few days after the written date.
Structure of the written exam: it consists of two parts:
- Part on "Java--", which requires to implement a Java program focusing on the arguments treated in the first semester of the course.
Students who have passed and want to take the intermediate test are exempted from carrying out this part of the exam. Please note that the student, in order to try to improve the evaluation of the intermediate test, can still decide to carry out this first part of the exam too. In this case, at the time of its delivery, the intermediate test is canceled regardless of the evaluation of the exam itself.
- Part on "Java", which requires to implement a Java programfocused on the topics seen in the second semester of the course. This part must be done by all students.
If the student also passes the oral exam, the final mark is calculated taking into account the assessment of the written exam and the assessment of the oral exam.
Intermediate tests
-------------------
They can take the tests in itinere (intermediate tests) only:
- First year students
- Students from previous years who have never enrolled in the Programming exam of previous academic years
A student can only enroll in one of the two intermediate tests.
Passing the intermediate test will allow students to take the written task in a "reduced" form, ie with less exercises to carry out during the exam in the laboratory. In particular, students with the intermediate test passed may not carry out the exercises of the exam on the part of "Java--" and therefore carry out only the exercises on the part of "Java".
To try to improve the evaluation of their intermediate test, students can still decide to carry out the written task in a complete form by also delivering the exercises on the part of "Java--". In this case the intermediate test is canceled regardless of the evaluation of the exam itself.
The intermediate test is canceled (therefore it will no longer be valid) if:
- The student does not pass the oral test;
- The student refuses the final grade;
- In order to try to improve the evaluation of the intermediate test, the student decides to carry out the written task in a complete form, also delivering the exercises on the "Java--" part. In this case, the intermediate test is canceled regardless of the evaluation of the task itself.
The intermediate test is NOT canceled if the student gives the assignment in reduced form (only the exercises on the "Java" part) and this is not considered sufficient. In this case, the student will again be able to carry out the written exam in the reduced form starting from the next session.
If the student also passes the oral exam, the final mark is calculated taking into account the assessment of the intermediate test, the assessment of the written assignment (in "reduced" form), and the assessment of the oral exam.
Course program - Workshop - Last names M-Z
Practical programming excercizes using Java on the arguments covered in the course of Programmazione (see the syllabus).
Course program - Lesson
Algorithms and programs. Design, analysis, implementation and debugging.
Information representation.
Procedural programming.
The programming language Java.
Control flow. Methods. Recursion. Object-Oriented Programming. Classes and Objects. Interfaces and Inheritance. Functional Programming. Generic Programming. Data structures and Collections. Techniques for the design and implementation of programs. Manual and automatic verification of programs with unit tests.