Introduzione all'Informatica
10 Moduli
58 Lezioni
11 Ore

Introduzione all'Informatica

Principiante Informatica Teorica Programmazione
Effettua il login per accedere

Il seguente corso introduce le principali idee associate al pensiero computazionale. Il corso è adatto a tutti coloro che vogliono costruire delle solide fondamenta nella materia informatica.


Molto spesso l'informatica viene introdotta introducendo le tecnologie del Web, con i famosi tre linguaggi principali: l'HTML, il CSS e il JavaScript. Questo approccio, per quanto valido, risulta limitativo nel momento in cui si vuole andare oltre le basi. Perché l'informatica non si riduce alla scrittura di codice. L'informatica è un complesso insieme di conoscenze, tecniche e modalità di pensiero.


Questo corso vuole essere un alleato per tutte quelle persone che hanno bisogno di andare più in profondità. Durante il corso parleremo del ruolo delle astrazioni, del sistema binario, di modelli di calcolo e linguaggi di programmazione, della differenza tra sintassi e semantica, del ruolo dei sistemi operativi e di tanto altro.

Si parlerà di compilazione con il linguaggio C, di interpretazione con il linguaggio Python e si introdurrà la famiglia dei linguaggi Lisp, una serie di linguaggi molto interessanti che mostrano dei modi diversi per descrivere le computazioni. Si andranno a discutere le differenze tra un programma e un processo, e tra un programma e un algoritmo e si analizzerà il ruolo delle strutture dati nello sviluppo di algoritmi efficienti.


Insomma, questo corso contiene tante idee. Per ogni idea, laddove sia possibile, saranno mostrati dei comandi, comandi che possono essere eseguiti sul sistema operativo Linux, comandi che manifestano nella realtà le idee analizzate. A tale fine, sarà messo a disposizione un ambiente controllato in cui eseguire i comandi mostrati per fini educativi.

Contenuti del corso

1 Introduzione alla Materia Informatica
  • Che cos'è l'informatica?
  • L'informatica è una scienza?
  • Il ruolo della tecnologia
2 Elementi costitutivi
  • Sistema binario
  • Transistor
  • Astrazione
  • Codifica
  • Macchine e linguaggi
  • Sistema operativo
3 Introduzione alla programmazione
  • Perché programmare?
  • Variabili
  • Tipi
  • Espressioni e predicati
  • Condizionale
  • Iterazione
  • Funzione
  • Statement
  • Libereria
4 Sintassi e semantica nella programmazione
  • Differenze tra sintassi e semantica
  • Tipi statici vs Tipi dinamici
  • Accesso alla memoria
  • Lexical Scope vs Dynamic Scope
5 Il linguaggio C
  • Cosa significa compilare?
  • La lingua franca dell'informatica
  • Analisi del processo di compilazione in C
6 Il linguaggio Python
  • Cosa significa interpretare?
  • Interpretazione in Python
  • Esempi di codice in Python
  • Un primo programma interessante
7 Il linguaggio LISP
  • Che cos'è LISP?
  • Comprendere il LISP
  • Le citazioni in LISP
  • Lavorare con gli atomi
  • Lavorare con le liste
  • Condizionali in LISP
  • Funzioni in LISP
  • Omoiconicità
8 Algoritmi e Strutture Dati
  • Che cos'è un algoritmo?
  • Problemi e istanze
  • Algoritmo e esecuzione
  • Complesistà computazionale
  • Fibonacci iterativo
  • Perché le Strutture Dati?
  • Array
  • Strutture custom
  • Stack
  • Grafo
  • Conclusione
9 Librerie
  • Che cos'è una libreria?
  • Librerie statiche
  • Librerie dinamiche
  • Librerie standard
  • Librerie Non-standard
10 Paradigmi di Programmazione
  • Che cos'è un paradigma?
  • Paradigma procedurale
  • Objected Oriented Programming (OOP)
  • Caratteristiche programmazione OOP
  • Programmazione funzionale

Insegnanti

Corsi successivi