Fondamenti di Informatica (Ingegneria Elettronica)

a.a. 2020/21

Lezioni: prof. Alberto Paoluzzi;

Obiettivi formativi

Fornire alcuni elementi della “cultura informatica” attraverso strumenti metodologici e concettuali per affrontare in modo flessibile l’evoluzione tecnologica e il mondo delle applicazioni. Obiettivi particolari sono:

Al termine del corso gli studenti saranno in grado di affrontare un problema di programmazione in tutte le sue parti, ovvero:

Programma

  1. Introduzione alla struttura hw/sw degli elaboratori elettronici
  2. Interazione uomo-macchina: GUI e terminale alfanumerico (linux, shell)
  3. Linguaggi di alto e basso livello: compilatori ed interpreti, Julia
  4. Introduzione alla programmazione: tipi, variabili, costanti e funzioni
  5. Introduzione alla programmazione: strutture di controllo
  6. Dati strutturati: array, tuple, dizionari
  7. Strutture dati: liste, pile, code, alberi binari, grafi
  8. Ingresso/Uscita: tipi di files (testuali, binari, csv), serializzazione
  9. Algoritmi fondamentali: cenni alla complessità di calcolo (fusione, ordinamento)
  10. Algebra lineare con vettori e matrici (espressioni e funzioni matriciali)
  11. Librerie Julia: Calcolo e visualizzazione di funzioni
  12. Markup di contenuti e dati: html, json, latex (pandoc)
  13. Introduzione a Python: Similarità e differenze con Julia

Testo/i di riferimento

  1. Materiali didattici a cura del docente (su GitHub).
  2. Think Julia: How to Think Like a Computer Scientist
  3. How to Think Like a Computer Scientist (Python)