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

NICOLA GALESI NICOLA GALESI   Scheda docente

Programma

1.Introduzione su Computer e Programmazione

2.Programmare con numeri e stringhe

3.Decisioni

4.Cicli

5. Funzioni


6.Liste

7.Ricorsione


8.File

9. Insiemi e Dizionari

10.Ordinamenti e ricerca

11. Cenni a Oggetti e classi e programmazione orientata agli oggetti

Testi adottati

C. Horstmann R. D. Necaise "Concetti di Informatica e fondamenti di Python", ed. Maggioli,

Prerequisiti

Nozioni di base di matematica e teoria degli insiemi

Modalità di svolgimento

Lezioni di teoria a di laboratorio

Modalità di frequenza

Non obbligatoria

Modalità di valutazione

Prova scritta o Laboratorio

Data inizio prenotazione Data fine prenotazione Data appello
16/10/2022 01/02/2023 07/02/2023
16/10/2022 22/02/2023 23/02/2023
16/10/2022 23/03/2023 24/03/2023
16/10/2022 04/06/2023 05/06/2023
16/10/2022 13/07/2023 14/07/2023
16/10/2022 07/09/2023 08/09/2023
16/10/2022 24/10/2023 31/10/2023

RICCARDO LAZZERETTI RICCARDO LAZZERETTI   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 svolgimento

Il corso prevede sia lezioni in classe che periodiche esercitazioni guidate in laboratorio

Modalità di frequenza

frequenza non obbligatoria ma fortemente consigliata

Modalità di valutazione

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

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
15/01/2023 06/02/2023 07/02/2023
01/02/2023 22/02/2023 23/02/2023
01/03/2023 23/03/2023 24/03/2023
20/05/2023 04/06/2023 05/06/2023
25/06/2023 13/07/2023 14/07/2023
20/08/2023 07/09/2023 08/09/2023
25/09/2023 24/10/2023 31/10/2023
25/09/2023 24/10/2023 31/10/2023
Scheda insegnamento
  • Anno accademico: 2022/2023
  • 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
  • SSD: ING-INF/05