Corsi Python0 2016: differenze tra le versioni
(→Contenuto del corso) |
|||
Riga 1: | Riga 1: | ||
− | ==''' ISCRIZIONI | + | ==''' ISCRIZIONI APERTE DAL 22/102016 '''== |
Riga 19: | Riga 19: | ||
= Figure di riferimento per l'organizzazione = | = Figure di riferimento per l'organizzazione = | ||
− | * | + | * Docenti: Stefano Morandi, Loris Tissino, Claudio Driussi. |
* Tutor: Roby.deb (Roberto Colonello) | * Tutor: Roby.deb (Roberto Colonello) | ||
Riga 42: | Riga 42: | ||
=== Costo === | === Costo === | ||
− | Il costo per i partecipanti soci è di € | + | Il costo per i partecipanti soci è di € 60,00. |
I soci, che nei ultimi 24 mesi abbiano già frequentato un altro corso PN-Lug,<br> | I soci, che nei ultimi 24 mesi abbiano già frequentato un altro corso PN-Lug,<br> | ||
avranno diritto ad una riduzione pari al 30% dell'importo. <br> | avranno diritto ad una riduzione pari al 30% dell'importo. <br> | ||
− | In questo caso, la quota sarà di € | + | In questo caso, la quota sarà di € 42,00. |
===Logistica === | ===Logistica === | ||
Riga 57: | Riga 57: | ||
Il corso avrà la durata di 20 ore, suddivise in 8 lezioni da 2.5 ore ciascuna. | Il corso avrà la durata di 20 ore, suddivise in 8 lezioni da 2.5 ore ciascuna. | ||
− | Si terrà una lezione a settimana dalle ore | + | Si terrà una lezione a settimana dalle ore 19:30 alle 22:00, tutti i Mercoledì a partire dal 2 Novembre 2016. |
− | + | ||
===Approccio didattico=== | ===Approccio didattico=== | ||
Riga 80: | Riga 79: | ||
Il programma del corso è il seguente e la suddivisione in lezioni non | Il programma del corso è il seguente e la suddivisione in lezioni non | ||
− | è rigida. | + | è rigida. |
Riga 87: | Riga 86: | ||
{|style="border: 1px solid #789DB3; border-collapse: collapse; align:center; width:100%;" | {|style="border: 1px solid #789DB3; border-collapse: collapse; align:center; width:100%;" | ||
|- | |- | ||
− | ! style="background:#9aa3f9;" width="2"| | + | ! style="background:#9aa3f9;" width="2"|Lezione |
− | + | ||
− | + | ||
! style="background:#9aa3f9;" width="2"|Contenuti didattici | ! style="background:#9aa3f9;" width="2"|Contenuti didattici | ||
+ | ! style="background:#9aa3f9;" width="2"|Abstract | ||
|- | |- | ||
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | 1 | + | 1 - 02/11/2016 |
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | Presentazione del corso e del linguaggio Python. Strumenti di lavoro. Modalità di esecuzione delle istruzioni. | |
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | * Richiesta motivazioni dei partecipanti | ||
+ | * Breve presentazione di Python rispetto agli altri linguaggi e motivi della scelta | ||
+ | * Breve presentazione degli strumenti di lavoro (organizzazione cartelle, editor, interprete) | ||
+ | * introduzione veloce al concetto di programma come insieme di istruzioni che devono essere eseguite | ||
+ | * concetto di input, elaborazione, output | ||
+ | * concetto di variabile | ||
+ | * concetto di dati (valori numerici, stringhe, strutture più complesse), | ||
+ | * concetto di informazione (dato associato al significato) | ||
+ | * modalità di lavoro con python: interattiva oppure con script/programma | ||
+ | * alcune prove con l'interprete interattivo | ||
+ | - impostazione di valore in una variabile | ||
+ | - output della variabile | ||
+ | - input, qualche calcolo, output | ||
+ | |||
+ | |||
+ | |- | ||
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | 2 - 09/11/2016 | |
+ | |||
+ | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
+ | Variabili semplici. Uso di funzioni predefinite. Scelta tra alternative. | ||
+ | |||
+ | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
+ | * uso di funzioni predefinite, come ad esempio len() o alcune matematiche, tipo pow() | ||
+ | * necessità di importare moduli per altre funzioni, tipo math.sqrt() | ||
+ | * predisposizione di uno script | ||
+ | - input di due numeri, output della somma | ||
+ | - input di due numeri, output della potenza | ||
+ | - input di due numeri, output del rapporto | ||
+ | - presa di coscienza del fatto che non si può dividere per zero | ||
+ | * introduzione al costrutto "if ... else ..." | ||
+ | - esercizi diversi con l'if, a partire dalla gestione della divisione per zero | ||
+ | * il tipo di dato "booleano" | ||
+ | - diverse selezioni di seguito: "if ... elif ... elif ... else ..." | ||
+ | - esercizio: chiedere in input anche l'operatore da usare per l'operazione, oltre ai due operandi | ||
+ | |||
|- | |- | ||
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | 3 - 16/11/2016 | |
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | Sequenze e intervalli. Ripetizioni, parte prima. | |
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | * | + | * range |
− | * | + | * ciclo "for" |
− | * | + | - sequenze di numeri |
− | + | - elenco dei numeri da 1 a 100 che non siano multipli di 7 | |
− | + | * accesso ai singoli caratteri di una stringa | |
+ | * cercare un carattere in una stringa, con un ciclo di scansione | ||
+ | - elenco dei numeri da 1 a 100 che non siano multipli di 7 e che non contengano la cifra "7" | ||
+ | - liste? | ||
+ | |||
+ | |- | ||
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | 4 - 23/11/2016 | |
− | + | ||
+ | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
+ | Validazione dell'input. Ripetizioni, parte seconda. | ||
+ | |||
+ | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
+ | * ciclo while | ||
+ | - input controllato di un numero: chiedere un valore ed insistere fino a quando non è maggiore di zero | ||
+ | - somma di numeri dati in input che termina quando l'input è zero | ||
+ | - ecc. | ||
+ | |||
|- | |- | ||
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | 5 - 30/11/2016 | |
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | Definizione di funzioni, parte prima | |
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | * | + | * definizione di funzioni |
− | * | + | - definizione della funzione per la radice quadrata che usa pow(x, .5) |
− | * | + | * parametri formali e attuali |
− | * | + | * funzioni che restituiscono valori senza input/output e funzioni che fanno cose e gestiscono input/output |
− | * | + | * visibilità delle variabili |
− | + | * ... altro | |
+ | |||
+ | |- | ||
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | 6 - 07/12/2016 | |
− | + | ||
+ | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
+ | Definizione di funzioni, parte seconda | ||
+ | |||
+ | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
+ | * si continua con quanto visto la volta precedente | ||
+ | * introduzione allo unit testing | ||
+ | |||
+ | |||
|- | |- | ||
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | 7 - 14/12/2016 | |
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | Sviluppo di un progetto software completo: prima versione | |
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | * | + | * gioco dell'impiccato |
− | + | - versione con funzione per il disegno già fornita (devono fare l'import) | |
− | + | - dall'algoritmo al codice, per gradi | |
− | + | ||
+ | |||
+ | |||
+ | |- | ||
!style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
− | + | 8 - 21/12/2016 | |
− | + | ||
− | + | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | |
+ | Sviluppo di un progetto software completo: miglioramenti | ||
+ | |||
+ | !style="border: 1px solid #789DB3;font-size:100%;text-align:left; padding:5px;"| | ||
+ | * gioco dell'impiccato | ||
+ | - scelta casuale della parola da indovinare, da un elenco (veloce introduzione a liste e dizionari) | ||
+ | - definizione della funzione per il disegno | ||
+ | - uso di liste e dizionari per tenere traccia dei dati disponibili (tipo file di log) | ||
+ | |||
|- | |- |
Versione delle 18:35, 20 ott 2016
ISCRIZIONI APERTE DAL 22/102016
Il corso
Il Linux User Group di Pordenone con la collaborazione dell'Istituto scolastico comprensivo di Chions,
presenta il suo primo corso Python.
.
Nota:
'Pordenone Linux User Group ha per scopo la diffusione della cultura informatica con particolare riferimento al software libero e a sorgente aperto (Free/Libre Open Source Software, FLOSS), ha quale oggetto associativo la diffusione della cultura del libero scambio del sapere per il progresso comune e l'incentivazione dell'utilizzazione, della promozione, della formazione e dello sviluppo del sistema operativo GNU/Linux e del software libero; l'associazione si propone come luogo di incontro e di aggregazione nel nome di interessi culturali assolvendo alla funzione sociale di maturazione e crescita umana e civile attraverso l'ideale dell'educazione permanente.'
(Art.2 dello statuto)
Per questo motivo alcuni Soci particolarmente competenti in materia si sono resi disponibili per fare da relatori a questo corso. I suddetti relatori-soci NON riceveranno alcun compenso per la loro prestazione (solo il rimborso spese di viaggio) e offriranno la loro prestazione gratuitamente. Ecco spiegato anche il basso costo complessivo del corso (3,00€/h) che servirà a coprire anche le spese sostenute per la realizzazione del materiale cartaceo consegnato ai partecipanti e ai costi del piccolo buffet di fine corso.
Figure di riferimento per l'organizzazione
- Docenti: Stefano Morandi, Loris Tissino, Claudio Driussi.
- Tutor: Roby.deb (Roberto Colonello)
Dove
Presso l' Istituto scolastico primario "Berengario Ortis" di Chions
via Mauro De Zorzi, 6 - 33083 Chions (PN)
Dati da OpenStreetMap -
Pubblicati sotto licenza ODbL
INFORMAZIONI ED ISCRIZIONI
Tutte le iscrizioni su come iscriversi le trovate nella Pagina principale corsi
Numero Chiuso
Il numero massimo di iscritti è 15.
Costo
Il costo per i partecipanti soci è di € 60,00.
I soci, che nei ultimi 24 mesi abbiano già frequentato un altro corso PN-Lug,
avranno diritto ad una riduzione pari al 30% dell'importo.
In questo caso, la quota sarà di € 42,00.
Logistica
Verranno utilizzati solo i calcolatori presenti nella classe; non sarà necessario portare il vostro PC. Se desiderate installare su un vostro PC il sistema operativo GNU/Linux, potete venirci a trovare in sede al martedì sera, dalle ore 19.30 alle 22.20.
Programma ed orari del corso
Il corso avrà la durata di 20 ore, suddivise in 8 lezioni da 2.5 ore ciascuna.
Si terrà una lezione a settimana dalle ore 19:30 alle 22:00, tutti i Mercoledì a partire dal 2 Novembre 2016.
Approccio didattico
Viene proposto un approccio didattico orientato al "problem solving".
Invece di adottare un percorso sistematico che spiega gli elementi della programmazione e le caratteristiche del linguaggio Python, proponiamo di sviluppare un progetto concreto e con il progredire delle versioni verranno introdotti i vari concetti di programmazione. I relatori saranno a disposizione dei partecipanti per approfondimenti mirati e specifici per portare a compimento i moduli di apprendimento.
Considerando il carattere aperto del programma, gli obiettivi verranno adeguati alla velocità di apprendimento del gruppo e nei limiti del possibile si cercherà di tenere conto delle diverse competenze di partenza dei partecipanti.
Il progetto da sviluppare scelto è il "Gioco dell'impiccato" che abbiamo ritenuto sia particolarmente adatto per questo tipo di metodologia.
Il programma del corso è il seguente e la suddivisione in lezioni non è rigida.
Contenuto del corso
Lezione | Contenuti didattici | Abstract |
---|---|---|
1 - 02/11/2016 |
Presentazione del corso e del linguaggio Python. Strumenti di lavoro. Modalità di esecuzione delle istruzioni. |
- impostazione di valore in una variabile - output della variabile - input, qualche calcolo, output
|
2 - 09/11/2016 |
Variabili semplici. Uso di funzioni predefinite. Scelta tra alternative. |
- input di due numeri, output della somma - input di due numeri, output della potenza - input di due numeri, output del rapporto - presa di coscienza del fatto che non si può dividere per zero
- esercizi diversi con l'if, a partire dalla gestione della divisione per zero
- diverse selezioni di seguito: "if ... elif ... elif ... else ..." - esercizio: chiedere in input anche l'operatore da usare per l'operazione, oltre ai due operandi
|
3 - 16/11/2016 |
Sequenze e intervalli. Ripetizioni, parte prima. |
- sequenze di numeri - elenco dei numeri da 1 a 100 che non siano multipli di 7
- elenco dei numeri da 1 a 100 che non siano multipli di 7 e che non contengano la cifra "7" - liste?
|
4 - 23/11/2016 |
Validazione dell'input. Ripetizioni, parte seconda. |
- input controllato di un numero: chiedere un valore ed insistere fino a quando non è maggiore di zero - somma di numeri dati in input che termina quando l'input è zero - ecc.
|
5 - 30/11/2016 |
Definizione di funzioni, parte prima |
- definizione della funzione per la radice quadrata che usa pow(x, .5)
|
6 - 07/12/2016 |
Definizione di funzioni, parte seconda |
|
7 - 14/12/2016 |
Sviluppo di un progetto software completo: prima versione |
- versione con funzione per il disegno già fornita (devono fare l'import) - dall'algoritmo al codice, per gradi
|
8 - 21/12/2016 |
Sviluppo di un progetto software completo: miglioramenti |
- scelta casuale della parola da indovinare, da un elenco (veloce introduzione a liste e dizionari) - definizione della funzione per il disegno - uso di liste e dizionari per tenere traccia dei dati disponibili (tipo file di log)
|
Strumenti didattici
L'aula di Chions dispone dei posti di lavoro. Il lavoro potrebbe essere salvato su chiavette e si possono fornire anche credenziali per lavorare su sistemi remoti tramite connessione ssh.
Per ogni modulo del corso verranno preparate slides che indicheranno le linee guida ed a consuntivo verranno preparati documenti con i risultati.
Tutta la documentazione viene rilasciata con licenza CreativeCommons nella versione
Attribution-ShareAlike 3.0 se non diversamente specificato.
Sviluppi successivi
Sulla base dei risultati del corso si potranno proporre per la primavera 2017 ulteriori corsi, o gruppi di lavoro.
Si si potrebbe preparare un Corso Python Uno orientato a consolidare le conoscenze acquisite.
Oppure, se c'è interesse, si potrebbe formare un gruppo di lavoro orientato alla soluzione di problematiche specifiche e concrete.
Documentazione ed ausili didattici
Documentazione a disposizione
- modello di feedback, richiesta dati per i talk
- modello della liberatoria PN LUG per l'installazione Linux sui PC
PC e Hardware a disposizione
- Pc della scuola
Servizio fotografico
PN LUG provvederà con i propri mezzi all'intero evento. Successivamente, condivideremo altro materiale fotografico reso disponibile dai partecipanti
a questo evento, tramite il nostro blog associativo principale.