Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • My Media
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
 Log in
e-Learning - UNIMIB
Home My Media
Percorso della pagina
  1. Science
  2. Bachelor Degree
  3. Informatica [E3102Q - E3101Q]
  4. Courses
  5. A.A. 2023-2024
  6. 1st year
  1. Programming 1
  2. Summary
Insegnamento Course full name
Programming 1
Course ID number
2324-1-E3101Q105
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

Obiettivi

Acquisire le basi della programmazione imperativa in Java

Contenuti sintetici

L’insegnamento presenterà i concetti alla base dei linguaggi di programmazione ad alto livello focalizzandosi sul paradigma imperativo. Questi concetti verranno spiegati utilizzando il linguaggio Java e saranno fatti sperimentare agli studenti con l’implementazione di semplici algoritmi mirati

Programma esteso

  1. Struttura logica di un elaboratore e codifica dell'informazione. Gerarchia dei linguaggi di programmazione, compilatori e interpreti. Cenni informali sulla correttezza dei programmi (sintassi, semantica). La Java Virtual Machine. Algoritmi e programmi
  2. Tipi di dati primitivi. Variabili, dichiarazioni e assegnamenti. Espressioni e valutazione. Type checking
  3. Stringhe. Input/Output da tastiera/su schermo (classe Scanner)
  4. Strutture di controllo: sequenza, selezione, iterazione. Array di tipi primitivi
  5. Applicazione semplificata della progettazione logica del programma
  6. Metodi di classe, definizione ed invocazione. Parametri di tipo primitivo. Uso della dot notation. Record di attivazione. Variabili di classe e costanti
  7. Il concetto di reference: cenni alla gestione della memoria in Java (heap, stack e loro uso durante l’esecuzione dei programmi). Array di reference. Metodi di classe con tipi di dati complessi: definizione e invocazione. Passaggio di parametri by reference e by value
  8. Programmare utilizzando la ricorsione, metodi ricorsivi e gestione dello stack.

Prerequisiti

Le conoscenze di tipo matematico e logico acquisite nella scuola superiore

Modalità didattica

L’insegnamento è composto da lezioni frontali, esercitazioni e sessioni di lavoro assistito in laboratorio.

Inoltre, verranno resi disponibili on-line sia le slide e gli esercizi svolti in classe che vari tipi di esercizi mirati (quiz, domande pratiche) da svolgere individualmente da parte degli studenti.

Le lezioni sono tenute in italiano.

Materiale didattico

Libro di testo:

  • Walter Savitch -Programmazione di base e avanzata con Java - Seconda Edizione, 2018, Pearson Education Italia, ISBN 9788871929613

Appunti scritti dai docenti

Periodo di erogazione dell'insegnamento

Primo semestre

Modalità di verifica del profitto e valutazione

La verifica dell'apprendimento comprende una prova scritta e un colloquio orale.

Nella prova scritta si richiede di:

  • rispondere a domande a risposta multipla e aperte, che hanno lo scopo di verificare la preparazione dello studente sulle varie parti del programma;
  • svolgere al computer alcuni esercizi di programmazione in linguaggio Java, con lo scopo di verificare se lo studente è in grado di applicare le tecniche di programmazione viste durante le lezioni e le esercitazioni, e di implementare tali tecniche nel linguaggio di programmazione Java.

Ciascuna delle due parti sarà valutata in trentesimi e il voto della prova scritta sarà la media dei voti delle due parti.

La prova scritta potrà essere sostituita da due prove parziali erogate in itinere, organizzate e valutate allo stesso modo della prova scritta ma più semplici e riguardanti ciascuna solo una parte del programma.

Al colloquio orale, oltre alla discussione dello scritto, possono essere fatte domande sugli argomenti del corso.

Orario di ricevimento

Su appuntamento

Export

Aims

To learn the basics of imperative programming in Java

Contents

The course will introduce the basis of high level programming languages, with a deeper focus on the imperative paradigm. The Java language will be used, and students will code simple algorithms.

Detailed program

  1. Logical structure of a computer and data representations. Classes of programming languages, compilers vs. interpreters. Concepts of program correctness (syntax, semantics). The Java Virtual Machine. Algorithms and programs
  2. Primitive data types. Variables, declarations and assignments. Expressions and their evaluation. Type checking
  3. Strings. Input/Output via keyboard/screen (the 'Scanner' class)
  4. Control structures: sequence, selection, iteration. Arrays with primitive types
  5. Simplified application of logic development of a program
  6. Class methods, definition and invocation. Primitive type parameters. Dot notation. Activation records. Class variables and constants
  7. References: memory management in Java (heap, stack, and program execution). Arrays of references. Class methods with complex type parameters: definition and invocation. Passing parameters by value and by reference
  8. Programming with recursion, recursive methods and stack handling

Prerequisites

Mathematical-logical skills at the high-school level

Teaching form

The course comprises usual lectures, exercises in the classroom, and assisted sessions in the laboratory.

Moreover, slides and exercises will be made available online.

The course is taught in Italian.

Textbook and teaching resource

Textbook (the English version is also available):

  • Walter Savitch - Programmazione di base e avanzata con Java - Seconda Edizione, 2018, Pearson Education Italia, ISBN 9788871929613

Lecture notes written by the teachers.

Semester

First semester

Assessment method

Learning assessment includes a written exam and an oral exam.

The written exam consists of:

  • multiple-choice and open questions, whose aim is to test student's knowledge of various parts of the program;
  • some programming exercises developed on a computer using the Java programming language. In this case, the aim is to verify that the student is able to apply the programming techniques which have been presented during the course, and to implement such techniques in the Java programming language.

Each of the two parts will result in a score out of thirty and the final mark of the written part will be the average of the two partial scores.

The written exam could be replaced by two intermediate tests, each performed on some of the subjects covered during the course. They will be organised and evaluated in the same way as the written exam.

During the oral exam, besides discussing the contents of the written exam, some questions may be posed on the subjects of the course.

Office hours

On appointment

Enter

Key information

Field of research
INF/01
ECTS
8
Term
First semester
Activity type
Mandatory
Course Length (Hours)
76
Degree Course Type
Degree Course
Language
Italian

Staff

    Teacher

  • SB
    Simone Bianco
  • DC
    Davide Elio Ciucci
  • Claudio Ferretti
    Claudio Ferretti
  • AR
    Alessandro Raganato
  • IZ
    Italo Francesco Zoppis

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

You are not logged in. (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics