https://www.dia.uniroma3.it/~paoluzzi/web/did/fondamenti/2022/index.html
News
Fornire gli elementi di base della “cultura informatica” attraverso
strumenti, metodologici e concettuali, efficaci e duraturi per
affrontare in modo flessibile l’evoluzione tecnologica e il vasto mondo
delle applicazioni.
Obiettivi particolari sono:
- introdurre l’Informatica come disciplina per la soluzione automatica
di problemi;
- esaminare i concetti di base della programmazione degli elaboratori
elettronici; gli strumenti linguistici, le metodologie e le tecniche, in
parte formali ed in parte pragmatiche, della programmazione e i relativi
aspetti qualitativi dell’efficienza e della correttezza;
- presentare le strutture di dati e alcuni algoritmi
fondamentali.
Al termine del corso gli studenti saranno in grado di affrontare un
problema di programmazione in tutte le sue parti, ovvero:
- comprendere, analizzare e formalizzare il problema;
- progettare un algoritmo risolutivo;
- implementare l’algoritmo nel linguaggio scientifico Julia;
- effettuare test di correttezza;
- giudicare criticamente il programma in termini di leggibilità del
codice e di efficienza, riusabilità e manutenibilità del programma.
Programma svolto
- Introduzione alla struttura hw/sw degli elaboratori elettronici
- Interazione uomo-macchina: GUI e terminale alfanumerico (linux,
shell)
- Linguaggi di alto e basso livello: compilatori ed interpreti,
Julia
- Introduzione alla programmazione: tipi, variabili, costanti e
funzioni
- Introduzione alla programmazione: strutture di controllo
- Dati strutturati: array, tuple, dizionari
- Strutture dati: liste, pile, code, alberi binari, grafi
- Ingresso/Uscita: files testuali
- Cenni alla complessità di calcolo (fusione, ordinamento)
- Ordinamento per selezione, inserzione, fusione, bubble-sort,
quick-sort
- Algebra lineare con vettori e matrici (espressioni e funzioni
matriciali)
- Cenni alle similarità e differenze con Python
Testo/i di riferimento
- Materiali didattici a
cura del docente
- Think
Julia: How to Think Like a Computer Scientist
- How
to Think Like a Computer Scientist