Newsgroup: it.comp.lang.c
Titolo: Didattica del C

Ciao NG
 
è possibile che mi venga affidato un corsetto introduttivo
al C. Il tema sarebbe la programmazione di arduino ma a
quanto ho capito, dal lato hardware sanno il fatto loro e
sono solo leggermente deboli nella programmazione. Di
fatto sarà un corso di C "arduino oriented" con l'idea di
far accendere qualche led e leggere qualche dato, tanto
per tenere il contatto con la realtà, che è
importantissimo. Il target è un istituto tecnico, credo
industriale ma non sono ancora certo. Prevedo dalle 6 alle
10 lezioni, anche questo da definire.
 
A me piace fare 'ste cose e non ho problemi a farmi
capire. Ma non ho mai insegnato la programmazione anche se
a livello elementare, e non so calibrare la scaletta delle
lezioni. In altre parole: in media, nella prima lezione si
fanno variabili e tutte le strutture di controllo (dubito)
oppure per spiegare le variabili si impiegano 4 lezioni?
 
Certo, mi direte che tutto dipende sia dall'uditorio sia
dal tempo a disposizione in relazione a quel che si vuol
fare. Grossomodo questi dati sono quelli sopra, e mi
interesserebbe una valutazione di larga massima, tanto per
regolarmi.
 
Ad appendice di tutto questo, esiste qualche corsetto
online alla cui scansione mi possa ispirare? So che posso
trovarne a tonnellate con gugl, ma è probabile che cose
fatte bene siano ancora meno e ai fini della selezione del
materiale in rete sarebbe importante l'opinione di chi ha
fatto didattica del linguaggio.
 
grazie di ogni suggerimento!
 
Apx.
 
-- 
"La teoria è sapere come funzionano le cose e
non sapere come farle funzionare; la pratica è
sapere come far funzionare la cose senza sapere come
funzionano; il nostro scopo è unire la pratica
alla teoria per riuscire a non far funzionare
le cose senza capire come abbiamo fatto"
 

 
 
Ciao!

 grazie di ogni suggerimento!
 
Tempo fa feci un progettino che prevedeva di tradurre in codice morse un
testo da seriale: ti permetterebbe di introdurre la definizione di 
funzioni, i puntatori per la lookup table, un minimo di i/o, e come 
hardware, ti serve solo il led.
 
Non vorrei scoraggiarti, ma 10 ore, se ï¿œ il loro primo linguaggio,
mi sembrano poche.
 
Facci sapere.
 
Riccardo
 
 
 

 al C. Il tema sarebbe la programmazione di arduino ma a
 
Ciao,
io ho avuto occasione, qualche anno fa, di tenere un corso C
da 10 lezioni in una scuola serale,
due lezioni da 4 ore alla settimana, dalle 18 alle 22,
ad un gruppo di diplomati all'istituto tecnico.
 
Considerato l'orario, dedicavo le prime due ore 
ad una lezione frontale, le due successive alle esercitazioni.
 
La scaletta che ho seguito è stata la seguente:
 
Lezione 1
Rappresentazione dell'informazione
Sistema di numerazione binario
Standard IEEE per i numeri in virgola mobile
ASCII, UNICODE
 
Lezione 2
Introduzione al linguaggio C
Concetto di variabile e di assegnamento
Istruzioni while, for
Primi esempi di programmi C
 
Lezione 3
Tipi di dati: variabili e costanti
Modificatori short/long, signed/unsigned
Conversioni dei tipi numerici
Esempi di programmi C
 
Lezione 4
Operatori: priorità e associatività
Istruzione if, do/while, switch, break, continue
Esercitazione
 
Lezione 5
Funzioni
Variabili: visibilità, life-time, scope
Esercitazione
 
Lezione 6
Cenni sulle funzioni ricorsive
Tipi vettoriali
Algoritmi di ordinamento
Algoritmi di ricerca
Esercitazione
Cenni sui vettori multidimensionali
 
Lezione 7
Puntatori: definizione, usi più frequenti
Puntatori e array
Aritmetica dei puntatori ad array
 
Lezione 8
Stringhe: array di caratteri
Libreria standard
 string.h: str[n]cat, str[n]cpy, str[n]cmp, strchr, strstr
 stdlib.h: conversioni: atoi, atol, atof, sprintf
Esercitazione
 
Lezione 9
Libreria standard
 time.h: time, ctime, asctime, localtime, gmtime
Classi di memorizzazione delle variabili: auto, register, static
Tipi di dati strutturati: struct, vettori di struct
typedef
Esercitazione
 
Lezione 10
Costanti simboliche, enumerative e variabili costanti
File
Libreria standard
 stdio.h: fopen, fclose, fprintf, fscanf, fputc, fgetc, fputs, fgets, fwrite, fread, fseek
Esercitazione
 
Se ti interessa, dovrei avere ancora l'elenco degli esercizi (dal determinare dall'età di una persona se questa è maggiorenne, alla creazione dell'indice analitico di un file di testo).
 
Che strumento di sviluppo pensavi di utilizzare?
Al tempo optai per editor di testo e linea di comando
(come unica opzione alternativa avrei avuto il C++ Builder).
 
Ciao,
Gianfranco


Ti suggerisco come base di partenza il manualetto che trovi a questo 
link:  
http://publications.gbdirect.co.uk/c_book/
  Non ha molte 
pretese ma ha una suddivisione in capitoli che potrebbe aiutarti per 
organizzare le lezioni.  Sono sette
 
Io lo usai un paio di anni fa per introdurre al C mio nipote che 
doveva preparare la tesi (con tanto di programma) per la laurea in 
ingegneria.  Lo trovai anche molto vicino al corso che feci al lavoro 
più di 30 anni fa passando dal PL/M al C.  Se ben ricordo furono 4 o 5 
mattinate con teoria ed esercitazioni usando un compilatore sotto Ultrix.
 
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >
 

> Ciao NG [...]
 
Eccomi qua... ho aspettato a ringraziarvi perché proprio
stamattina sono andato a vedere di cosa si trattasse. La
situazione è "classica": un paio di professori bravissimi,
non certo di fresca nomina che nonostante abbiano tutto il
diritto legale di tirare a campare vogliono invece
continuare a evolversi e fare evolvere i loro studenti
(cui tengono) organizzando seminari con consulenti
esterni. Dall'altra parte, programmi ridicoli, orari
risicati, laboratori con sempre meno roba, studenti
mediamente svogliati che non vedono l'ora di prendere il
diploma e iniziare a lavorare alla manutenzione di caldaie
e cancelli e di cosa sia il teorema di Kircfhoff e/o
Thevenin non gliene potrebbe fregare di meno (se è per
questo pare gliene freghi poco anche di sapere a cosa
serve una resistenza...).
 
Le mie già non alte aspettative rispetto alla possibilità
di fare qualcosa di buono, sono state stroncate: pare che
il problema sia la scarsa motivazione media, per cui non
se ne parla nemmeno di alternare Arduino e qualche
esercizio di "c puro" ai terminali, come inizialmente
pensavo: devono lavorare subito con arduino a costo di
sacrificare tutto il resto. Mi fido dei prof, vedo che
tengono molto agli studenti, hanno tanta esperienza e
sanno cosa meglio fare per non perdere la gente per
strada. Sono sicurissimo che fare diversamente da come
dicono vorrebbe dire allontanarsi dal "punto ottimo".
 
Posso solo deplorare ancora una volta di vivere in un
paese che non dà prospettive e in cui tutto va a rotoli.
 
Grazie delle idee... nonostante tutto non dispero di poter
mettere in pratica qualcosa di quanto mi avete suggerito.



 
Ciao,
dovessi avere ancora un'occasione del genere prendi come riferimento
il Kernighan & Ritchie, almeno per quanto riguarda gli argomenti.
I capitoli di interesse sono dall'1 al 7. Considerato che è solo C89
e che il capitolo 1 è solo una panoramica, verrebbero fuori 7-10 ore
di lezione, compresi esercizietti, pur banali. Certo organizzare un
corso così è da folli, ma nella "costrizione" è quello che farei.
 
-- 
Vincenzo Mercuri