Introduzione alla programmazione
Lezione 1
a cura di Andrea Fazzi
Prima le presentazioni
- Andrea Fazzi <andrea.fazzi@alcacoop.it>
- Mi occupo di programmazione da... sempre!
- Laurea in Fisica
- Insegno Matematica e Fisica negli istituti superiori di II grado
- Per mettere le mani sul mio codice siete invitati su https://github.com/remogatto
Raccogliamo qualche dato
- Vi propongo un questionario al fine di dare una direzione al corso
- Il questionario è anonimo
- Lo trovate qui: http://andreafazzi.eu:8080/
Commentiamo i risultati
Breve storia dell'Informatica
Macchine calcolatrici
Macchine programmabili
- Macchina analitica
- La macchina di Turing (Bomba)
- e da lì il boom dell'informatica...
Sono fatti così
ovvero "Cosa c'è dentro un computer?"
Architettura base
- CPU
- Memoria
- Dispositivi di I/O
I linguaggi di programmazione
Linguaggio
I linguaggi di programmazione sono appunto linguaggi e come tali servono per comunicare.
Essi garantiscono la comunicazione tra uomo e macchina.
Come il linguaggio umano essi sono regolati da grammatiche e sintassi.
Dall'uomo alla macchina
Dall'uomo alla macchina: sequenza base
- File di testo contenente il programma
- Interpretazione o compilazione
- Creazione di una versione "macchina" del programma originale
- Fase di linking per la creazione del file eseguibile
- Esecuzione
Linguaggi, sistema operativi, hardware
ovvero "Ben venuti all'inferno"
Sistema operativo
E' un software.
E' lo strato software più basso prima dell'hardware.
Regola le interazioni tra le componenti hardware, tra applicazioni e hardware, tra utente e hardware.
Esempi di sistemi operativi: GNU/Linux, MacOS, Windows, Android, iOS, ...
Linguaggi di programmazione
Alcune classificazioni
- Per livelli (alto, medio, basso)
- Per modalità di traduzione (interpretati, compilati, transcompilati)
- Per tipi di variabile (tipizzati, non tipizzati)
- Per concorrenzialità (concorrenti, sequenziali)
Alcuni linguaggi
- Assembler
- C, C++, C#, D, Go, Rust
- Javascript, CoffeeScript
- Basic, Visual Basic
- Pascal, Delphi
- Cobol
- Fortran
- OCaml, F#, Scala, Logo
- Ruby, Python
- Java
Ambienti di lavoro
Ambienti di sviluppo
Per scrivere un programma non è strettamente necessario un ambiente di lavoro complesso.
C'è chi usa un semplice blocco note.
Ma per essere realmente produttivi meglio cercare il proprio ambiente di lavoro ideale.
Esempi di ambienti di lavoro (IDE)
- Atom.io
- Eclipse
- Visual Studio
- Emacs
- Vim
Metodologie di sviluppo
Metodologie
Nel corso degli anni sono state sviluppate numerose metodologie di sviluppo.
La classica metodologia ("a cascata") prevede tre fasi: progettazione, sviluppo, test.
La metodologie "a cascata" è stata rivista e superata dalle successive tecniche (sviluppo agile, per esempio) le quali sono a loro volta da rivedere.
Introduzione alla programmazione
By Andrea Fazzi
Introduzione alla programmazione
Lezione 1
- 1,280