Vai al contenuto principale
Se prosegui nella navigazione del sito, ne accetti le politiche:
  • Condizioni di utilizzo e trattamento dei dati
Prosegui
x
Se prosegui nella navigazione del sito, ne accetti le politiche:
  • Condizioni di utilizzo e trattamento dei dati
Prosegui
x
e-Learning - UNIMIB
  • Home
  • Altro
Ascolta questa pagina con ReadSpeaker
Italiano ‎(it)‎
English ‎(en)‎ Italiano ‎(it)‎
Ospite
 Login
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Area di Scienze
  2. Corso di Laurea Triennale
  3. Informatica [E3102Q - E3101Q]
  4. Insegnamenti
  5. A.A. 2021-2022
  6. 1° anno
  1. Programmazione 1
  2. Introduzione
Insegnamento Titolo del corso
Programmazione 1
Codice identificativo del corso
2122-1-E3101Q105
Descrizione del corso SYLLABUS

Syllabus del corso

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

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, Anno Accademico 2020-2021

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 10 domande a risposta multipla, 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

Esporta

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, Academic Year 2020-2021

Assessment method

Learning assessment includes a written exam and an oral exam.

The written exam consists of:

  • 10 multiple-choice 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

Entra

Scheda del corso

Settore disciplinare
INF/01
CFU
8
Periodo
Primo Semestre
Tipo di attività
Obbligatorio
Ore
76
Tipologia CdS
Laurea Triennale
Lingua
Italiano

Staff

    Docente

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

Opinione studenti

Vedi valutazione del precedente anno accademico

Bibliografia

Trova i libri per questo corso nella Biblioteca di Ateneo

Metodi di iscrizione

Iscrizione manuale
Iscrizione spontanea (Studente)

Ospite (Login)
Politiche
Ottieni l'app mobile
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy
  • Accessibilità
  • Statistiche