Obiettivi

Il corso illustra i principi fondamentali della programmazione orientata agli oggetti con riferimento al linguaggio Python.
Viene posta attenzione sia agli aspetti metodologici di progettazione del software sia alle tecniche di rappresentazione e manipolazione delle informazioni.
Si intende, inoltre, fornire allo studente la padronanza degli strumenti tecnologici di ausilio alla programmazione come compilatori, librerie di funzioni, debugger, ecc. A tal fine il corso prevede numerose esercitazioni guidate da svolgersi al calcolatore.
Al termine del corso lo studente dovrà essere in grado di progettare, implementare e collaudare programmi in linguaggio Python di media complessità.

Canali

1

ADRIANO FAZZONE ADRIANO FAZZONE   Scheda docente

Programma

Nozioni preliminari:
.) Il calcolatore.
.) Linguaggi di programmazione.
.) Sintassi e Semantica.
.) Algoritmi.
.) Paradigmi di Programmazione.

Introduzione alla programmazione tramite il linguaggio Python3:
.) Variabili, istruzione d'assegnamento, espressione, tipi di dato, operatori.
.) Istruzioni condizionali e cicli.
.) Definizione ed invocazione di funzioni.

Strutture dati: liste, set e dizionari.

Gestione dei dati in memoria secondaria:
.) apertura, scrittura e lettura di file.

Test, debug e documentazione del codice.

Testi adottati

Slide e raccolte di esercizi forniti dai docenti.

C. Horstmann R. D. Necaise "Concetti di Informatica e fondamenti di Python", ed. Maggioli, ISBN 9788891605085
http://www.maggiolieditore.it/9788891605085-concetti-di-informatica-e-fondamenti-di-python.html

"Think Python", un manuale gratuito in lingua italiana di Python scaricabile dal sito dell'autore:
https://github.com/AllenDowney/ThinkPythonItalian/blob/master/thinkpython_italian.pdf

Prerequisiti

Non sono richiesti prerequisiti per il corso.

Modalità di valutazione

Le prove d'esame richiedono il progetto e l'implementazione diretta su calcolatore di funzioni attraverso il linguaggio di programmazione Python3.

Data inizio prenotazione Data fine prenotazione Data appello
09/12/2021 13/01/2022 14/01/2022
17/01/2022 13/02/2022 14/02/2022
01/03/2022 10/03/2022 11/03/2022

2

Raffaele Nicolussi Raffaele Nicolussi   Scheda docente

Programma

Riferimenti:
C. Rif. [1]: Horstmann e R. N. Necaise. Concetti di informatica e fondamenti di Python. Ed. Apogeo, 2014.
CI. Rif. [2]: Dispense e altro materiale proposto dai docenti, reperibile su: https://piazza.com/uniroma1.it/fall2018/ldi1819/resources

Nozioni introduttive
Introduzione al corso. Architettura generale di un calcolatore e schema di Von Neumann.
Concetto di algoritmo

Rif. [1], capitolo 1
Rif. [2], Dispense presenti sul sito

Nozioni elementari sulla programmazione in python
Uso della shell e I/O di base. Uso dell'ambiente di sviluppo IDLE

Rif. [1], capitolo 1
Rif. [2], Dispense presenti sul sito

Aspetti di base della programmazione in python
Espressioni aritmetiche e tipi di dati elementari. Variabili e istruzioni di assegnazione.
Rappresentazione dell'informazione. Set di caratteri e funzioni chr, ord. Il tipo di dato stringa.

Rif. [1], capitolo 2 fino a 2.6 escluso
Rif. [2], Dispense presenti sul sito

Decisioni - costrutti if ed else-if (elif)
Istruzioni if ed else-if (elif). Operatori relazionali. Variabili booleane e operatori. Diramazioni annidate e alternative multiple.

Rif. [1], capitolo 3
Rif. [2], Dispense presenti sul sito

Cicli
Ciclo for. Ciclo while. Algoritmi che usano cicli. Cicli annidati

Rif. [1], capitolo 4 escluso 4.9.3
Rif. [2], Dispense presenti sul sito

Funzioni e moduli
Introduzione alla programmazione Python con funzioni. Moduli e loro uso. Esecuzione di script.

Rif. [1], capitolo 5
Rif. [2], Dispense presenti sul sito

Liste
Proprietà di base. Operazioni sulle liste. Algoritmi elementari che fanno uso di liste. Tuple.
Rappresentazione di tabelle e matrici. Nozioni elementari sulla gestione della memoria: riferimenti/puntatori a oggetti.

Rif. [1], capitolo 6, no 6.5 e 6.6
Rif. [2], Dispense presenti sul sito

File e file system
Apertura, chiusura e manipolazione di file testo. Funzioni di base per l'accesso al file system.

Rif. [1], capitolo 7 fino a 7.3 escluso
Rif. [2], Dispense presenti sul sito
Esempi visti a lezione

Dizionari
Accesso e manipolazione di dizionari. Uso di dizionari per realizzare strutture dati complesse.

Rif. [1], 8.2 e 8.3
Rif. [2], Dispense presenti sul sito

Problemi di ordinamento e ricerca
Il problema di caratterizzare e confrontare l'efficienza di algoritmi e programmi. Cenni alla complessità computazionale. Algoritmi per la ricerca sequenziale e per quella binaria. Analisi qualitativa e sperimentale dei costi per la ricerca binaria e per quella sequenziale.

Rif. [1], 12.6
Esempi visti a lezione
Rif. [2], Dispense presenti sul sito

Testi adottati

Il libro di riferimento è:
C. Horstmann R. D. Necaise "Concetti di Informatica e fondamenti di Python", ed. Maggioli, ISBN 9788891605085
http://www.maggiolieditore.it/9788891605085-concetti-di-informatica-e-fondamenti-di-python.html

Altro materiale didattico sarà reso disponibile nella sezione Resources del sito del corso:
https://piazza.com/uniroma1.it/fall2020/ldi2021/info

Prerequisiti

Nessun prerequisito è richiesto. La conoscenza di un altro linguaggio di programmazione può essere d'aiuto.

Modalità di svolgimento

Il corso si svolge in aula per le lezioni teoriche e in laboratorio per quelle pratiche di programmazione

Modalità di frequenza

La frequenza non è obbligatoria anche se fortemente consigliata.

Modalità di valutazione

Al candidato viene chiesto di risolvere una serie di esercizi di programmazione al calcolatore.

Per superare l'esame occorre conseguire un voto non inferiore a 18/30.

Lo studente deve dimostrare di aver acquisito una conoscenza sufficiente dei concetti base di programmazione.

Per conseguire un punteggio pari a 30/30 e lode, lo studente deve invece dimostrare di aver acquisito una conoscenza eccellente di tutti gli argomenti trattati durante il corso, essendo in grado di raccordarli in modo logico e coerente.

Data inizio prenotazione Data fine prenotazione Data appello
20/12/2021 13/01/2022 14/01/2022
20/01/2022 12/02/2022 14/02/2022
20/02/2022 10/03/2022 11/03/2022
20/05/2022 15/06/2022 17/06/2022
20/06/2022 11/07/2022 12/07/2022
20/08/2022 08/09/2022 09/09/2022
21/10/2022 23/10/2022 24/10/2022
Scheda insegnamento
  • Anno accademico: 2021/2022
  • Curriculum: Ingegneria Clinica (percorso formativo valido anche ai fini del conseguimento del doppio titolo italo-venezuelano)
  • Anno: Primo anno
  • Semestre: Primo semestre
  • SSD: ING-INF/05
  • CFU: 6
Caratteristiche
  • Attività formative di base
  • Ambito disciplinare: Matematica, informatica e statistica
  • Ore Aula: 60
  • CFU: 6.00
  • SSD: ING-INF/05