Corso di Programmazione ID106

04 Mar Corso di Programmazione Entry Level

Il corso di programmazione, giunto alla quarta edizione, offre l’opportunità di conoscere le basi, e di approfondire, il linguaggio di programmazione Processing.
Il corso costituisce un’ottima occasione, sia per adulti che per ragazzi, per imparare le basi della programmazione, partendo da zero, e creare il primo software con le proprie mani!

Alla fine di questo “viaggio” intenso, il corso si prefigge l’obiettivo di portare i partecipanti dal livello zero (nessuna esperienza di programmazione), alla capacità di sviluppare codice di complessità intermedia, con il fine di creare grafica interessante dal punto di vista artistico computazionale ed iniziare a connettere assieme vari dispositivi hardware quali computer, tablet e smartphone, per creare interazioni intelligenti con l’ambiente.

L’apprendimento sarà agevolato attraverso l’utilizzo di una terminologia semplificata e proponendo obiettivi sempre chiari e stimolanti.

Il prezzo del Corso è di 190€ e comprende:
4 lezioni di programmazione da 3 ore l’una;
Accesso al Forum del corso per condivisione e aiuto riguardo i progetti di questa edizione + progetti sviluppati nelle edizioni passate;
10+ ore, online, via forum dedicato, durante le settimane intermedie del corso (esercitazioni per casa, chat e video dal vivo con l’istruttore);
Accesso al database di esempi spiegato ed argomentato, con commenti e soluzioni recuperati dai corsi precedenti.

Per iscriversi al corso, compilare il seguente formhttps://goo.gl/forms/L0UPPseLFV1m5xB42

Di seguito il programma delle 4 lezioni:

Giorno 1 – Sabato 9 Marzo (h. 15:00-18:00)

    • impostazione del corso
      • panoramica iniziale, realizzazione e salvataggio dei codici
    • basi della programmazione
      • che cos’è un programma ?
      • come si passa dal codice ai pixel colorati ?
      • variabili
      • i commenti al codice
      • condizionali
      • loop

 

    • disegni statici
      • ambiente
        • size(width, height)
        • le coordinate cartesiane – brevissimo ripasso matematico

 

  • rotate( ) and radians( )

 

      • i colori
        • rgb + alpha value
          • trick della scia !
            • fill con alpha < max
            • + rect grande quanto il canvas
        • scala di grigio
      • funzioni
        • funzioni che restituiscono void
        • funzioni che restituiscono altro
        • void setup( )
        • fill( ) and noFill( )
        • stroke( ), noStroke( ) and strokeWeight( )
        • background( )
        • ellipse( )
        • rect( )
        • creare la propria funzione!

 

  • smooth( )
  • save()
  • saveFrame()
  • Movie Maker (tool)

 

Giorno 2 – Domenica 17 Marzo (h. 15:00-18:00)

 

  • Riepilogo dei concetti affrontati e considerazioni emerse dal forum
  • PVector 2D
    • spiegazione geometrica e matematica semplice dei vettori
          • mag( )
          • heading( )
          • sum( )
          • sub( )
          • mult( )
          • div( )
        • shapes
          • beginShape( )
          • vertex( )
          • endShape( )
          • line( )
          • triangle( )
          • quad( )
  • Disegni simmetrici

 

    • programmazione
      • gli array come strutture dati: ArrayList
        • add( )
        • get( )
        • size( )
        • scorrere un ArrayList con un loop
      • basi della programmazione
        • scrivere le proprie funzioni
        • chiamare le proprie funzioni
        • trovare gli errori nel codice
          • la console
          • println

 

  • la nuova IDE (Integrated Development Environment) di Processing 3
  • shortcuts
  • cmd+shift+F (ctrl+shift+F)
  • tricks e consigli per uscire dai guai

 

 

Giorno 3 – Sabato 23 Marzo (h. 15:00-18:00)

 

    • come prepararsi a questa giornata
        • ricontrollare quanto svolto precedentemente
    • riepilogo dei concetti affrontati e considerazioni emerse dal forum
    • trucchi per uscire dai guai
      • passare a noLoop() e tutto è più semplice !
      • commentare parti e scommentare “una funzione” alla volta
      • usare valori per i quali si conosce come dovrebbe essere la risposta
      • errori tipici
        • mancato re-set a 0 di una o più variabili subito fuori da un loop
          • il disegno “esce” dal canvas e non capiamo perché non vediamo più nulla !
    • introduzione a Git

 

  • array

 

  • color (Lorenzo)
  • albero (ricorsivo – frattale)
  • ascoltare suoni
    • la pianta che si apre
    • i rettagoli di Andrea
    • tarare l’ascolto dell’audio
  • creazione di interfacce grafiche: la libreria ControlP5
  • la funzione seno
    • matematica
    • come usarla nel codice per la grafica
  • Modes:
    • Run

 

  • Present

 

    • Tweak

 

  • Debugger

 

  • altre funzioni fondamentali
      • map( )
      • random( )
      • save( )
      • noCursor( )
  • caricare un’immagine (PImage)
    • disegni dinamici
      • la funzione void draw( )
      • disegnare e creazione di un pennello
    • altre funzioni che facilitano la programmazione
      • translate( )
      • pushMatrix( ) and popMatrix( )
      • pushStyle( ) and popStyle( )
    • disegni interattivi
      • Mouse
      • Keyboard
  • grafiche complesse con poco codice
    • translate + rotate = accoppiata vincente !
    • exploit di valori negativi e/o inaspettati a functions
      • esempio dell’arrotondamento negativo del rettangolo ! (v. codice Furia Latente!)
  • creare un bottone:
    • a mano
    • usando la libreria ControlP5 (cenno, di più al prossimo incontro!)

Giorno 4 – Domenica 31 Marzo (h. 15:00-18:00)

    • come prepararsi a questa giornata
    • ricontrollare quanto svolto precedentemente
    • scrivere qualche esempio in codice
  • rivedere il setting iniziale di the midi bus
  • riepilogo dei concetti affrontati e considerazioni emerse dal forum
  • PGraphics
    • createGraphics()
    • beginDraw()
    • endDraw()
        • librerie
        • cosa sono? quali librerie sono disponibili?
        • come si installano?
        • non re-inventiamo la ruota !
        • git
      • GitHub
        • fork
        • clone
        • pull
        • modify
        • commit
        • push
        • pull request

 

A scelta del gruppo, uno o più di questi argomenti verranno spiegati ed uno o più esempi verranno implementati dai partecipanti:

    • disegnare in 3D
    • l’ambiente P3D e OPENGL
    • camera (peasyCam)
    • funzioni
      • sphere
      • box
      • PVector 3D
      • beginShape() and endShape() nel 3D
      • tipi di lights e shaders
    • La libreria Midibus
      • interfacciare dispositivi midi e Processing: comandare lo sketch tramite tastiere, controller e periferiche midi in generale
    • Sound
    • come analizzare il suono (volume, beatdetect, fft, ecc)
    • come rendere reattivo uno sketch, colleghiamo l’analisi del suono alle nostre variabili
  • Come gestire Arduino tramite Processing
    • realizzazione di una interazione fisica semplice: il nostro sketch inizia ad interagire con il pubblico !
  • proiezioni di interazioni/disegni/animazioni realizzate

 

No Comments

Post A Comment