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

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