Newsgroup: it.scienza.informatica
Titolo: Testo di algoritmi per le superiori

Ciao, insegno informatica alle superiori da poco e ho trovato l'enorme
problema di reperire esercizi (anche facili) di algoritmica base. Con
gli studenti alle superiori non basta fare un esempio, si devono fare
almeno 5-6 esercizi per ogni struttura algoritmica, poi si devono
organizzare i temi, le prove,... avete mica un suggerimento di un
testo che possa andare bene. In particolare mi interesserebbe un testo
di nozioni base, supportate da molti esercizi e esempi, senza troppa
teoria. Non è necessario che il testo si rifaccia a qualche
linguaggio, ma se lo facesse mi saprei tranquillamente convertire nel
linguaggio che utilizzano a scuola (Visual Basic).

 linguaggio che utilizzano a scuola (Visual Basic).
Uhm... Non penso che per VB si trovino moltissimi testi, comunque se mi
contatta alla mail in firma posso provare a chiedere a scuola mia :-)
-- 
--------------------------
PiNe (pine <at> irclab <dot> net)
VRHG WIZARD
IRCLab Administrator (
http://www.irclab.net
)
http://www.vrhg.org
--------------------------

Meri ha scritto:

Segui il mio ragionamento:
informatica significa dati, velocità, tante altre cose e soprattutto
rinnovamento continuo, quindi un testo ha già perso in partenza, perché é
statico! Voglio dire, i tuoi studenti OGGI imparano qualcosa che DOMANI
verrà considerato obsoleto già da IERI !
Il mio consiglio:
di solito la scuola é connessa ad una rete, é fornita di stampanti e
carta. Questo per dire che in rete trovi veramente di tutto, dagli
algoritmi base agli esami di informatica universitari con tanto di
soluzioni. 
Poi, niente Visual Basic, se il mio consiglio può essere utile visita
http://www.python.it/
é un ottimo linguaggio per imparare, e predispone eventualmente il neo
programmatore ad una migrazione verso altri linguaggi come javascript,
php, ruby, per esempio. Anche se in fondo in fondo i linguaggi di
programmazione sono tanti ma la programmazione é sostanzialmente una.
E' ricco di documentazione, ma per imparare scarica il tuorial di Josh
Cogliati 
http://www.python.it/doc/Easytut/easytut-it/
(c'é anche in formato pdf, cercalo) e fili via liscio.
Ah, il tutto é gratuito e perfettamente modificabile perché Python é open
source.
facci sapere 
ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 verrà considerato obsoleto già da IERI !
Questa cosa che dici e' palesemente falsa.
Forse Office, i linguaggi di programmazione e l'hardware possono
diventare obsoleti piu' o meno velocemente,
ma le strutture dati e gli algoritmi (che sono i capisaldi dello studio 
dell'informatica) sono argomenti consolidati e a bassissima obsolescenza.
Non e' molto probabile che tra 10 anni il quicksort o una ricerca 
binaria si facciano in modo diverso da come si facevano 20 anni fa.
Per dare le basi di algoritmi e strutture dati (e farci ragionare sopra
gli studenti) i vari linguaggi vanno piu' o meno bene anche a seconda di
quanto l'insegnante li padroneggia.
L'importante e' che capiscano che l'informatica non si riduce a premere
un icona per far venir fuori una finestrella con scritto "ciao!"...
ciao,
g.

Anche secondo me NON č assolutamente vero che un testo č subito
vecchio. I dati, gli algoritmi, sono sempre gli stessi e quando inizi
a programmare ti impari quelli. Io cercavo qualcosa per fare esercizi
in piů perchč i libri che ho sottomano hanno solo gli esercizi
"standard".

Meri wrote:

Sinceramente non so quali siano gli esercizi "standard".
Comunque di esercizi me ne vengono in mente a bizzeffe, basta solo
sedersi un attimo al tavolino per pensarci e due attimi per risolverli.
Per esempio, in ordine casuale di difficolta':
Scrivere un programma che legge un file composto da un numero
arbitrario di righe corte (ma di diversa lunghezza) le "impagina"
per colonne e pagine (dove hai specificato il numero di righe per
pagina e quanti caratteri ci sono per riga).
Scrivere un programma che visualizza il crivello spirale dei
numeri primi.
Scrivere un programma che verifica se gli anagrammi di una
parola data compaiono in una data lista di parole (mi raccomando:
senza generare le permutazioni della parola data!)
Scrivere un programma che dati 9 numeri interi cerca di disporli
in un quadrato magico 3x3.
Scrivere un programma che dati n punti genera il "convex hull" o
inviluppo convesso (ci sono diversi algoritmi piu' o meno complessi).
Scrivere un programma che dati alcuni rettangoli di dimensioni
fissate prova a impacchettarli in un quadrato piu' piccolo possibile.
Scrivere un programma che data una scacchiera e 4 pezzi a scelta degli
scacchi determini in quale posizione metterli in modo da tenere sotto
scacco il numero massimo (o minimo) di case.
Scrivere un programma che data una operazione "crittografata", tipo
cani + gatti = tigre (in cui a lettera uguale corrisponde numero uguale)
determina quante e quali soluzioni esistono (per la cronaca in questo 
caso sono 3).
Scrivere un programma che cerca numeri palindromi (tipo 7, 66, 151,
8668, 23732, etc) il cui quadrato sia palindromo oppure palindromi che
siano anche numeri primi oppure palindromi i cui fattori primi siano
tutti palindromi.
Scrivere un programma che gioca al famoso gioco Nim (implementando
la semplice e stranota strategia vincente).
Scrivere un programma che legge un testo e fornisce la frequenza 
relativa di tutte le parole che vi compaiono.
Scrivere un programma che realizza la somma e la moltiplicazione di
numeri interi in precisione arbitraria.
Scrivere un programma che data una mappa (per esempio con regioni 
rettangolari, definite mediante le coordinate dei rettangoli) trova una
colorazione della mappa con 4 colori in modo regioni confinanti
abbiano colori diversi.
Scrivere un programma che determina le soluzioni intere della
equazione a^3 = b^3+c^3+d^3
Scrivere un programma che partendo da alcuni insiemi di parole
date (sostantivi, aggettivi, verbi etc.etc.etc) e opportunamente
classificate per genere (maschile, femminile, singolare,etc.)
genera casualmente brevi haiku o piccole composizioni non-sense,
tipo: "la formica di giada affetta velocemente il vescovo calvo".
etc.etc.etc.
Naturalmente questi esercizi non e' detto che tu li trovi fatti
in un libro. D'altra parte non sono difficilissimi e chiaramente li
insegneresti meglio se provassi prima a risolverteli per conto
tuo...
Per quel che riguarda esercizi piu' facili penso che piccole
modifiche di quelli che trovi nei vari testi dovrebbero
essere piu' che bastevoli.
ciao,
g.

Ecco appunto, il problema è che questi esercizi (che trovi appunto
facilmente in giro, che io ho definito "standard") sono troppo
difficili per dei ragazzini delle superiori che non sanno nemmeno
cos'è una variabile... o un numero primo... io ho inventato un po' di
esercizi alla loro portata ma dopo un po' la mia fantasia si esaurisce
e volevo trovare un libretto di esercizi che non presupponesse di
sapere tante cose prima... ad esempio spesso trovi esercizi sul
calcolo dell'area del triangolo rettangolo, dell'ipotenusa... ma loro
nemmeno sanno le formule delle aree e allora mi sono dovuta inventare
esercizi del tipo: calcolare lo sconto di un prodotto, il totale della
spesa, un programmino per gestire un facile conto corrente (solo con
versamento e prelevamento) ecc ecc


Scusa, ma dove insegni ? Le aree si fanno alle elementari e il
teorema di Pitagora e la fattorizzazione in primi alle scuole medie.
Forse li sottovaluti...
Capisco che forse la mia lista era un po' troppo impegnativa
per uno studente medio, anche se dovrebbe essere alla portata di
un liceale sveglio.
D'altro canto se il livello e' quello
di fare il totale della spesa allora ancora non stiamo neanche
parlando di algoritmi e strutture dati, ma delle 4 operazioni
e forse forse di qualche if e un ciclo for.
Non penso possano esistere dei libri per problemi cosi' semplici,
anche perche' spero che uno ci si possa soffermare un po' e poi
passare a cose piu' interessanti.
Devo pero' confessare di non conoscere il mercato librario
specifico per gli insegnanti. Potresti andare a cercare in
una libreria specializzata.
Caso mai potresti cercare anche su Amazon qualche libro in inglese di
informatica per le "elementari". Essendo un mercato piu'
vasto magari trovi qualcosa.
ciao,
g.


  Proposta:
io ho 30-40 esercizi pronti in C# (non i testi dell'esercizio, ma i 
files del programma risolto) da svolgere durante tutto l'anno, da quelli 
banali fino all'uso di classi. Li ho usati quest'anno a scuola e li ho 
fatti perchè era il primo anno che usavo il C# (sono tutte applicazioni 
console).
Questo problema degli esercizi bisogna risolverlo perchè è comune. Lo 
stesso avviene per gli esercizi sui database.
Possiamo scambiarci tutti gli esercizi che abbiamo.....
-- 
TheProf

Insegno in una ragioneria. Lo so benissimo che aree ecc ecc si fanno
alle elementari-medie ma forse non hai mai parlato con studenti che
vanno a scuola "per forza"... loro studiano per le prove, dopo un
mesetto hanno dimenticato... figurati se puoi chiedere che ricordino
le cose delle elementari! Certo, alcuni (anche tanti quest'anno ne ho
trovati) se le ricordano e si applicano anche su esercizi di media
difficoltą, ma ad esempio l'altro giorno al tema ho dato da fare un
algoritmo per decidere se un numero č primo... metą classe ha
consegnato in bianco!!!
PS: Se vogliamo scambiarci esercizi ben contenta, sentiamoci via mail!