Vai al contenuto principale
Oggetto:
Oggetto:

Programmazione I

Oggetto:

Programming I

Oggetto:

Anno accademico 2022/2023

Codice dell'attività didattica
MFN0582
Docenti
Cristina Baroglio (Corso A)
Felice Cardone (Corso A)
Luigi Di Caro (Corso A Turno 1)
Alessandro Mazzei (Corso A Turno 2)
Luca Roversi (Corso B + Corso B Turno 1)
Marco Beccuti (Corso B + Corso C)
Attilio Fiandrotti (Corso B Turno 2)
Valerio Basile (Corso C Turno 1)
Robert Birke (Corso C Turno 2)
Corso di studi
[008707] Laurea in Informatica
Anno
1° anno
Periodo didattico
Primo semestre
Tipologia
Di base
Crediti/Valenza
9 CFU - Numero di ore - Number of hours: 48 (in aula) + 30 (in laboratorio)
SSD dell'attività didattica
INF/01 - informatica
Modalità di erogazione
Tradizionale
Lingua di insegnamento
Italiano
Modalità di frequenza
Facoltativa
Tipologia d'esame
Scritto
Prerequisiti
Non è richiesto alcun prerequisito specifico alla programmazione. È consigliabile avere capacità di uso del calcolatore con sistema a finestre. È invece opportuno possedere conoscenze di base, quali i concetti di numero (naturale, intero, razionale, reale), di funzione, le quattro operazioni, elevamento a potenza, radice, esponenziale, logaritmo, piano cartesiano, calcolo algebrico elementare. Infine, è indispensabile una buona padronanza della lingua madre, possibilmente accompagnata da una propensione al ragionamento strutturato.
Insegnamenti propedeutici (forniscono le competenze attese in ingresso): nessuno
No programming skills are required to take this course, however it is advisable to be comfortable at using a windowing system based personal computer. Instead, it is required to to have a grasp on the basic of maths, such as the concepts of number (natural, integer, rational, real), function, four basic operations, power elevation, root, exponential, logarithm, Cartesian plane and elementary algebraic calculation. Finally, a good mastery of the mother tongue is essential, possibly accompanied by a tendency to structured reasoning.
Preparatory Courses (providing the expected entry skills): none
Oggetto:

Sommario insegnamento

Oggetto:

Obiettivi formativi

Questo insegnamento concorre al raggiungimento degli obiettivi formativi specifici del Corso di Laurea in Informatica (L31), in particolare di quelli dell’area Informatica di base, mirando a fornire le conoscenze di base della programmazione e del funzionamento di un interprete virtuale, propedeutici alla quasi totalità dei corsi a seguire.

In compliance with the training objectives of the Corso di Laurea in Informatica (L31) and being part of the area “Informatica di base”, the present module aiming at providing the basic knowledge about programming and about how a virtual interpreter behaves, preparatory to almost all of the subsequent courses.

Oggetto:

Risultati dell'apprendimento attesi

CONOSCENZA E CAPACITÀ DI COMPRENSIONE. Acquisizione di metodologie di progettazione e sintesi di algoritmi di base.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE. Acquisizione dell'uso di strumenti linguistici e del calcolatore elettronico per tradurre algoritmi di base in programmi funzionanti.

AUTONOMIA DI GIUDIZIO. Acquisizione di criteri per stabilire correttezza e coerenza dei programmi sintetizzati rispetto a semplici specifiche.

ABILITÀ COMUNICATIVE. Acquisizione dei primi elementi del lessico che caratterizzano un informatico finalizzati al passaggio da una descrizione algoritmica informale, per descrivere la soluzione ad un problema, alla sua versione in linguaggio di programmazione vero e proprio.

CAPACITÀ DI APPRENDIMENTO. Acquisizione di capacità autonome di apprendimento e di autovalutazione della propria preparazione, atte ad intraprendere gli studi successivi con un alto grado di autonomia.

KNOWLEDGE AND UNDERSTANDING. Acquisition of methodologies for designing and synthesizing basic algorithms.

APPLYING KNOWLEDGE AND UNDERSTANDING. Acquisition of the use of linguistic and computational tools to translate basic algorithms into working programs.

MAKING JUDGMENTS. Acquisition of criteria for checking correctness and consistency of synthesized programs with respect to simple specifications.

COMMUNICATION SKILLS. Acquisition of the first elements of the vocabulary that characterize a computer scientist aimed at moving from an informal algorithmic description, to describe the solution to a problem, up to its translation into actual programming language.

LEARNING SKILLS. Acquisition of autonomous learning skills and self-assessment, suitable for undertaking further studies with a high degree of autonomy.

Oggetto:

Modalità di insegnamento

L'insegnamento si sviluppa in 48 ore di lezione in aula e di 30 ore di lezione in laboratorio. In entrambi i casi la frequenza è facoltativa. Le lezioni potranno essere costituite dall'esposizione di parti delle dispense o di elementi specifici di una tecnica algoritmica, da esercizi svolti sotto la guida del docente, dalla sintesi, per mezzo di un calcolatore, dello schema di un algoritmo, da piccole dimostrazioni di correttezza parziale di un algoritmo, etc.

The course comprises 48 hours of lectures and 30 hourse of laboratory. Attendance is optional for both parts. The lectures could involve explanation of parts of the course material o specific elements of an algorithmic technique, exercises guided by the teachers, synthesis of an algorithm schema with the computer, simple correctness proofs, and so on.

Oggetto:

Modalità di verifica dell'apprendimento

L'esame è essenzialmente uno scritto che si svolge al calcolatore o su carta. Esso verifica la capacità di saper:

  • progettare semplici algoritmi iterativi e ricorsivi;
  • codificare programmi che implementano algoritmi iterativi e ricorsivi;
  • rispondere a domande su aspetti fondamentali della programmazione, come correttezza o terminazione;
  • simulare il funzionamento di interprete virtuale per un linguaggio di programmazione.

La somma dei punteggi degli esercizi proposti permetterà di ottenere voti sino al "30 e Lode".

The test is a written examination at the computer or on paper. The following skills will be evaluated:

  • design simple iterative and recursive algorithms;
  • write programming code to implement iterative and recursive algorithms;
  • answer questions on core aspects of programming, such as correctness and termination;
  • emulate a virtual interpreter for a programming language.

The total score of the exercises may sum up to "30 e lode".

Oggetto:

Programma

  • Struttura di base di un calcolatore;
  • Informazioni essenziali su linguaggi di programmazione, differenze tra compilatori e interpreti;
  • Algoritmi iterativi e ricorsivi;
  • Linguaggio di riferimento: variabili, tipi di dato fondamentali e array, assegnazione e controllo del flusso, procedure e funzioni con parametri, modello di gestione della memoria;
  • Correttezza parziale, terminazione e intuizioni sulla nozione di costo di un algoritmo.

 

  • Introduction to the very basic structure of a computer;
  • Basic notions about programming languages, differences between compilers and interpreters;
  • Iterative and recursive algorithms;
  • Language of reference: variables, basic data types and array, assignment, flow control, procedures and functions with parameters, model of memory management;
  • Partial correctness, termination and some intuition about the notion of cost for an algorithm.

Testi consigliati e bibliografia



Oggetto:
Libro
Titolo:  
Programmazione di base e avanzata con Java --- ISBN 9788865181904 Dispense o lucidi ufficiali, distribuiti dai docenti.
Anno pubblicazione:  
2014
Editore:  
Pearson
Autore:  
Walter Savitch
ISBN  
Obbligatorio:  
No
Oggetto:

Dispense o lucidi ufficiali, distribuiti dai docenti.

Official notes and slides, provided by the teachers.



Oggetto:
Ultimo aggiornamento: 18/04/2023 13:23
Non cliccare qui!