Course Syllabus
Obiettivi formativi
Il corso introdurrà concetti riguardanti: l'architettura dei computer, l’hardware, il software, i sistemi operativi e il processo di sviluppo del software. Il corso fornirà inoltre le conoscenze per costruire script per gestire dati. Al termine di questo corso, gli studenti saranno in grado di risolvere problemi utilizzando un linguaggio di programmazione e gli strumenti di elaborazione automatica delle informazioni.
Contenuti sintetici
- L'elaborazione dell'informazione
- Hardware/Software
- Ciclo di vita del software
- Sistemi operativi
- Linguaggi di programmazione
- Variabili, istruzioni condizionali, cicli
- Strutture dati complesse
- File
- Procedure e funzioni
Programma esteso
- Elaborazione delle informazioni
- Cenni di Hardware/Software
- Introduzione agli algoritmi
- Dagli algoritmi alla programmazione
- Linguaggi di programmazione (Interprete e compilatore)
- Programmazione in Python
- Struttura di un file sorgente
- Istruzioni
- Variabili
- Logica booleana
- Ambienti di esecuzione e sviluppo per Python
- Istruzioni condizionali
- Input Output
- Sistemi Operativi
- Command Line Interface e Graphic User Interface
- Cenni di File System
- Differenze tra File System Unix e File System Windows
- Funzioni
- Parametri formali e parametri attuali
- Moduli, Package, Package Manager
- Strutture dati complesse (tuple, liste, dizionari)
- Strutture dati complesse e iteratori
- File
- Trattamento dei file di testo
Prerequisiti
Nessuno.
Metodi didattici
Lezione frontale
Didattica in Blended E-Learning (video, quiz per fissare i contenuti, esercizi di autovalutazione)
Esercitazioni in laboratorio
Esercitazione finale con simulazione delle modalità di verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Premessa
Per gli studenti di SSE, l'insegnamento di "Informatica" è costituito dal solo modulo "Programmazione (6CFU)" erogato nel 2. ciclo.
Indicazioni
Per sostenere la verifica dell'apprendimento (cioè l'esame) è obbligatorio effettuare l'iscrizione via segreterie online o via terminali SIFA secondo le scadenze stabilite (generalmente le iscrizioni chiudono 3 giorni lavorativi prima dell'appello d'esame).
Alcuni avvisi per gli studenti di Scienze Statistiche ed Economiche (non si applicano agli studenti SGI).
- Studenti SSE
- Chi nell'anno accademico 2017/18 non ha superato il test d'ingresso, non potrà sostenere altri esami prima di aver superato e verbalizzato Statistica 1. Se non avete superato né il test d'ingresso né l'esame di Statistica 1, non potrete iscrivervi (e quindi non potete sostenere ) l'esame di informatica.
- Eventuali aggiornamenti dei regolamenti che interessano le modalità di verifica dell'apprendimento di questo corso saranno comunicate il prima possibile
Modalità di verifica dell'apprendimento, parte Programmazione in Python (6CFU)
Le informazioni presenti qua sotto sono fornite a puro titolo indicativo. Le modalità di verifica dell'apprendimento potranno subire delle variazioni. In ogni caso, cercheremo di mantenere aggiornata questa sezione nel tempo se saranno introdotte modifiche.
La verifica dell'apprendimento del modulo "Programmazione (6CFU)" ("esame" oppure "appello d'esame" da qui in avanti) consiste in una prova scritta e in una successiva discussione/accettazione del voto.
La prova scritta è composta da circa 10 domande a risposta chiusa e 1 o 2 domande a risposta aperta, il numero di domande di entrambe le tipologie potrà variare da un appello all'altro. Le numerosità delle domande e il tempo a disposizione potranno variare da una prova all'altra. Come tempi, orientativamente potete preventivare 2 ore.
Per ogni domanda a riposta chiusa vi saranno proposte un insieme di possibili risposte e dovrete scegliere la risposta corretta (una e una sola sarà la risposta corretta, se non indicato diversamente nel compito). Le risposte sbagliate non daranno luogo a penalizzazioni, le risposte corrette contribuiranno al raggiungimento del voto finale. Le domande a risposta chiusa riguarderanno argomenti di teoria oppure richiederanno di simulare l'esecuzione di uno script oppure richiederanno di individuare l'output prodotto da uno script. Verso la fine del corso sarà svolta una simulazione dell'esame. Il testo della simulazione e le soluzioni saranno successivamente pubblicati su questa piattaforma.
Nelle domande a risposta aperta vi sarà richiesto di implementare uno script in linguaggio python. Per implementare lo script potrete utilizzare l'editor e l'interprete python installato nel computer che avrete a disposizione nell'aula. Nei laboratori potrete trovare installato Python2 oppure Python3 (dipenderà dall'aula). Dovete essere in grado di svolgere gli esercizi proposti in entrambi gli ambienti.
Per poter passare l'esame dovrete raggiungere la sufficienza, sia nelle domande a risposta chiusa, sia nelle domande aperte. In altre parole dovrete dimostrare una adeguata conoscenza della teoria e dovrete essere in grado di scrivere script python in grado di risolvere i problemi proposti. Durante l'esame, ogni studente avrà un compito personalizzato (con domande diverse da quelle di tutti gli altri studenti). Per quanto riguarda la capacità di scrivere script python, potete utilizzare un semplice test per verificare la vostra preparazione: al termine del corso, se avete bisogno di guardar le soluzioni per poter svolgere uno qualsiasi degli esercizi proposti durante le esercitazioni oppure uno qualsiasi degli esercizi delle autovalutazioni, allora dovete studiare ed esercitarvi di più.
In caso di compito gravemente insufficiente, non ci sono limitazioni a ripresentarsi ad uno degli appelli successivi. Confidiamo tuttavia che vi presentiate agli appelli preparati o che chiediate di non correggere la prova se riterrete di aver svolto il compito in modo gravemente insufficiente.
Durante lo svolgimento dell'appello dovete essere in grado di estrarre i contenuti da file .zip in directory da voi create, editare script .py e mandarli in esecuzione. Vi ricordiamo che potete creare nuovi file e directory solamente in zone bene precise del file system dei laboratori (es., la directory c:\temp).
Al termine del corso, dopo la simulazione d'esame sarà aggiunta una sezione del sito con le raccolte dei temi d'esame degli appelli precenti e le relative soluzioni.
A causa dell'emergenza COVID le modalità d'esame potranno subire delle variazioni. Saranno comunicate dal docente tramite questo sito.
Testi di riferimento
Materiale per lo studio
- Le slide, gli esercizi ed in generale tutto il materiale presentato a lezione sarà pubblicato su questo sito web.
- Libri
- T. Gaddis, Introduzione a Python. Pearson. Maggiori informazioni qua.
- A. Downey, J. Elkner, C. Meyers. "Pensare da informatico, Imparare con Python", traduzione italiana di "How to Think Like a Computer Scientist", Green Tea Press, Wellesley, Massachusetts. EBook disponibile in rete (basta effettuare una ricerca su google). Alcuni link: formato pdf, formato html.
- Durante il corso potrà essere indicato del materiale aggiuntivo. I riferimenti saranno pubblicati su questo sito web.
- Il materiale per lo studio del corso di Informatica erogato agli studenti SGI è compatibile al 99,9% con il materiale erogato agli studenti SSE. I docenti indicheranno di volta in volta eventuali differenze.
Periodo di erogazione dell’insegnamento
Primo semestre, secondo ciclo dell'anno.
Lingua di insegnamento
Italiano
Learning objectives
The course will introduce some concepts about the architecture of computers, hardware, software, operating systems, and software development. The course will focus on building scripts to solve problems related to dataset management. On completion of this course, students will be able to solve problems using a programming language and computing tools.
Contents
- Information processing
- Hardware/Software
- Software lifecycle
- Operating Systems
- Programming languages
- Variables, Conditional Instructions, Loops
- Complex Data Structures
- Files
- Functions and Procedures
Prerequisites
None
Teaching language
Italian
Key information
Staff
-
Mirko Cesarini
-
Marco Daldoss
-
Cristiano De Nobili
-
Simone Scolaro
-
Federico Ravenda