Nuova ricerca

Marco VILLANI

Professore Associato
Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Fisica

Insegnamento: Informatica generale

Matematica (Offerta formativa 2024)

Obiettivi formativi

Il corso introduce lo studente alla programmazione, utilizzando il linguaggio Python, una delle scelte principali per chi scrive software in ambito scientifico. Le lezioni saranno il più possibile integrate con le attività di laboratorio, per “toccare con mano” le principali soluzioni viste a lezione. Al termine del corso, lo studente avrà autonomia di giudizio (capacità di scegliere e poi codificare l’algoritmo più adatto per diversi problemi), sarà in grado di presentare e commentare dati e risultati di simulazioni, avrà la capacità di imparare ad utilizzare strumenti simili a quelli visti nel corso. Lo studente avrà così una visione completa su come progettare, strutturare ed implementare applicazioni che necessitano di un elevato utilizzo di risorse di calcolo.

Prerequisiti

Familiarità con l'uso semplice del calcolatore: accensione/spegnimento, archiviazione di file, stampa, navigazione sul Web

Programma del corso

L'insegnamento si svolge nel I semestre del I anno, per un totale di 72 ore di didattica frontale (9 CFU) suddivise tra "teoria", cioè lezioni nelle quali vengono introdotti ed illustrati gli argomenti del corso, e "laboratorio”, lezioni in cui si applicano le idee e gli strumenti appresi nella parte teorica.

Un breve elenco dei contenuti può essere il seguente:

Introduzione al corso (2 CFU)
Descrizione delle idee di base e degli scopi del corso.
Algoritmi e loro codifica. Metodi per l’analisi di problemi e codifica delle soluzioni. I diagrammi di flusso. Linguaggi di programmazione, interpreti, compilatori, linker.
L'esecutore del codice: informazioni base sul computer. Algebra booleana.

Il linguaggio di programmazione Python (3 CFU)
Costanti e variabili, tipi di dato primitivi, espressioni di assegnamento, condizionali, iterative; operatori; oggetti; liste, tuple. Stringhe di formato. Istruzioni di controllo. Funzioni. File.


Esercitazioni, Esempi ragionati (2 CFU)
Il corso prevede esercitazioni sui seguenti argomenti: ambiente di sviluppo di programmi Python (in ambiente Windows), progetto e realizzazione di programmi in linguaggio Python, semplici esempi di calcolo numerico.

Argomenti importanti (2 CFU)
Ordinamenti di vettori. Numeri casuali. Complessità computazionale

Metodi didattici

La didattica è basata, in via ordinaria, su lezioni frontali alla lavagna, ed esercitazioni.
Le domande e gli interventi degli studenti sono graditi e incoraggiati. La frequenza non è obbligatoria, ma fortemente consigliata. Il corso è erogato in lingua italiana.
Tutte le informazioni tecniche e organizzative ull'insegnamento, nonché il materiale didattico, saranno caricati su piattaforma Moodle https://www.fim.unimore.it/site/home/didattica/moodledolly.html Si invita lo studente ad iscriversi ed a consultare tale piattaforma con regolarità. Non vi sono indicazioni particolari per gli studenti lavoratori, che potranno usufruire delle registrazioni delle lezioni (disponibili sul sito)

Testi di riferimento

Lucidi del corso e dispense a cura del docente sono disponibili sul sito Moodle del corso.
Sempre sul sito sono disponibili suggerimenti su libri di testo

Verifica dell'apprendimento

La verifica del profitto avverrà tramite una prova di laboratorio ed un esame finale scritto, comprendente domande di teoria ed esercizi. Il voto finale è la media pesata di tali prove (con pesi indicativamente 60% per la prova di lavoratorio e 40% per la prova scritta). Scopo delle prove è verificare la capacità di problem solving degli studenti, la loro competenza nella scrittura di codice e l'apprendimento delle principali tematiche del corso.

Risultati attesi

- Conoscenza e capacità di comprensione: al termine del corso lo studente avrà le conoscenze di base della programmazione, utilizzando il linguaggio Python, una delle scelte principali per chi scrive software in ambito scientifico.
- Capacità di applicare conoscenza e comprensione: al termine del corso lo studente sarà in grado di applicare queste conoscenze a semplici problemi. Le lezioni saranno il più possibile integrate con le attività di laboratorio, per “toccare con mano” le principali soluzioni viste a lezione.
- Autonomia di giudizio: al termine del corso lo studente avrà autonomia di giudizio (capacità di scegliere e poi codificare l’algoritmo più adatto per diversi problemi)
- Capacità di comunicazione: lo studente sarà in grado di presentare e commentare dati e risultati di simulazioni, e sarà in grado di relazionare oralmente sugli argomenti presentati nel corso con un linguaggio tecnico appropriato e un formalismo corretto.
- Capacità di apprendimento: lo studio permetterà lo sviluppo di abilità di apprendimento autonomo e di approfondimento di argomenti collaterali a quelli presentati nel corso; avrà inoltre la capacità di imparare ad utilizzare strumenti simili a quelli visti nel corso. Lo studente avrà così una visione completa su come progettare, strutturare ed implementare applicazioni che necessitano di un elevato utilizzo di risorse di calcolo