Newsgroup: it.lavoro.informatica
Titolo: the python paradox

http://www.paulgraham.com/pypar.html
 
 
In a recent talk I said something that upset a lot of people: that you could
get smarter programmers to work on a Python project than you could to work on
a Java project.
 

Se non sbaglio è rimasta famosa una frase di non ricordo chi:
   Java might be a good example of what a programming language should be
   like. But Java applications are good examples of what applications
   shouldn't be like.
penso che calzi a pennello... La massa degli scribacchia-codice punta su
nomi famosi (per l'ambiente che uno scribacchia-codice frequenta) vale a
dire PHP, Java, Js e roba .net. Chi può, ha tempo e cervello frequenta
ambienti diversi e quindi ha molte più chances di puntare su carri diversi.
Oggi la "scuola" del mondo open (che è quello dove più si impara, almeno
all'inizio) punta su Python, su Go, parte dagli script di shell e passa ai
linguaggi di scripting anziché partire da Pascal e C/C++ (in orrido mix)
per "approdare" a Java. Questo non vuol dire che non ci siano Programmatori
ferrati sulla galassia Java, solo la probabilità di beccare code-monkeys in
questo ambito è molto ma molto elevata...
 
-- 
| sed s/_//g on my mail to reach me :-)

 
 
Intanto chi non ha studiato il Pascal è sempre una spanna
indietro rispetto a chi l'ha studiato. Ricordati che il Pascal
è *nato* come *linguaggio ottimo* per la *didattica della programmazione*.
 
 

 è *nato* come *linguaggio ottimo* per la *didattica della programmazione*.
 
rotfl
 
 


Sinceramente: hanno qualche senso, questi confronti?
 
-- 
Ciao!
Luca

 *linguaggio ottimo* per la *didattica della programmazione*.
    "Computer science education cannot make anybody an expert programmer
     any more than studying brushes and pigment can make somebody an
     expert painter."
    - Eric S. Raymond
 
Se poi proprio volessi infierire potrei rilevare che ad insegnare il
Pascal sono matematici, fisici e prof di altre discipline ma mai
informatici e direi che il quadro diventi abbastanza chiaro!
 
Ps anche il Logo era nato come linguaggio didattico, non riesco a trovare
 programmatori che l'abbian mai usato... :P
#endif // VERY_SHORT_FLAME_IF_POSSIBLE


> Sinceramente: hanno qualche senso, questi confronti?
IMVHO sul piano scientifico certamente no, sul piano delle discussioni
da bar non proprio improduttive o futili certamente si: c'è troppa
gente che non ha ancora capito la differenza tra essere un programmatore
e conoscere uno specifico linguaggio (o peggio, IDE) e/o che crede di
dover a tutti i costi studiare (o peggio, far studiare) certi linguaggi
a studenti alle prime armi (matricole, o peggio delle superiori). Ora
non è che articoli da blog siano proprio l'ideale veicolo del sapere o
delle buone pratiche, ma ad oggi sono quanto di meglio vi sia per cercare
di far filtrare sprazzi di luce nelle tenebre di chi studia qualcosa a
tema informatico...


 a studenti alle prime armi (matricole, o peggio delle superiori). Ora
CUT
 
Quindi per te è lo stesso far studiare ai ragazzi di una
scuola media superiore direttamente il C++ piuttosto
che il C o il Pascal?
 
 
 

 che il C o il Pascal?
Per me ai ragazzi di una scuola media superiore si deve insegnare ad
usare una shell GNU/Linux, interessandoli con qualche cosa carina tipo
giochini con ImageMagick e nel contempo facendogli qualche confronto
con FreeBSD e magari IllumOS. Alla V superiore dovrebbero essere in
grado di farsi micro-script quasi on-liners per automatizzare piccole
cose sapendo come gestire files, directory, comuni strumenti di rete,
come è fatto a grandi linee un OS, come si può lavorare in rete ecc.
 
All'università si può iniziare col Python per poi passare al Go quando
il Python risultasse stretto.
 
C e C++ come Java dovrebbero IMVHO essere studiati solo a livello di
laurea specialistica spiegando che oggi il loro uso ha senso solo per
un limitato numero di compiti, circa il 5% di quelli per cui oggi
vengono usati. Pascal e tutti i suoi dialetti, *#, gli n linguaggi che
girano sulla JVM, PHP, ... sino al Prolog non andrebbero proprio
insegnati se non dicendo "ci sono anche loro". Alpiù verso la fine
della triennale o all'inizio della specialistica potrebbe esserci un
pelo di tempo per accennare ai linguaggi funzionali magari con
qualche esempio sommario in haskell.
 
Per me quel che si fa oggi, almeno nelle scuole ed università che ho
visto, è pompare nozioni nella falsa speranza che far tante cose iper
sommarie e memorizzate senza comprensione reale serva a formare più
in fretta ingegneri&c. Di fatto oggi un ingegnere con 110+, medaglia
e bacio se si è limitato al mero percorso accademico ufficiale può
essere impiegato come "assistente" in un negozietto di computers, o
al massimo come passacarte non altro. Ricordo quand'ero ancora al II
anno di ing. inf. che ho spiegato come è fatto un makefile di base ad
un dottorando che non sapeva come compilare una melassa di peseudo-C
"framework per la robotica" che gli avevano dato col compito di
estenderne alcune funzionalità. Gente dietro al progetto-tesi-per-modo
di-dire triennale che "sviluppava" usando Google Docs o un qualche
altro editor WYSIWYG web senza la bencheminima nozione di controllo
versione o collaborazione, in tempi più recenti gente che scrive di
essere "programmatore Java con Eclipse e Netbeans" ecc. Ecco, questo
è il prodotto di "insegnare a programmare" prima di sapere manco a
grandissime linee com'è fatto un OS e cominciando con Pascal, C/C++
mixati allegramente, Java, PHP, JS ecc.
 
Ps per me una "laurea di base" in ingegneria, qualsiasi, dovrebbe
  essere di 6 anni, la specialistica di altri 6.


 che il C o il Pascal?
 
su questo lascio libertà di giudizio, per conto mio non andrebbe 
insegnato nessuno dei tre.
 
quello che è certo è che la tua affermazione "chi non ha studiato il Pascal è 
sempre una spanna indietro rispetto a chi l'ha studiato" è fra le più 
risibili che abbia mai letto.un linguaggio procedurale, con una semantica
semplice e che non richiede alcuna nozione se non imparare la sua sintassi
specifica mi dovresti proprio spiegare quale sia questo fantomatico 
vantaggio.

 vantaggio.
 
Il vantaggio, se del caso, è proprio quello: semplicità. Che non implica inutilità, beninteso, vedi quel che si fa con il C, rispetto al quale il Pascal ha probabilmente il vantaggio di introdurre i medesimi argomenti in maniera un pò più soft. In una scuola superiore (non dimentichiamo che lì si parte con ragazzi di 14 anni) che cosa vuoi insegnare, roba da ultimo anno di università?
Se poi parliamo di istituti tecnici o professionali, a maggior ragione devi insegnare argomenti e strumenti che trovino diretto uso nel mondo professionale del territorio circostante alla scuola, non certo a quello che potrebbe piacere alla startup della Silicon Valley. Quindi non vedo perchè C o C++ no (Pascal chiaramente non ha più un uso professionale).
 
 
 

 In una scuola superiore (non dimentichiamo che lì si parte con ragazzi di 14 anni) che cosa vuoi insegnare, roba da ultimo anno di università?
 
sono d'accordo con kim allamandola. aggiungo, io li doterei di raspberry
e li inizierei al do-it-yourself: progetti di utilità pratica facilmente
prototipabili, quindi stimolanti non astratti e dal risultato tangibile. 
e qui uno già comincia a fare le prime scelte di linguaggio.

 e qui uno già comincia a fare le prime scelte di linguaggio.
 
Mah, il Raspberry è un'ottima invenzione, anche se di fatto è un normale pc miniaturizzato, e molte cose analoghe (se non tutte) le puoi fare proprio con un normale pc, eventualmente con scheda di interfaccia hardware. E d'altronde perchè non usare i microcontroller? Ma alla fine dipende pure dal tipo di scuola. 

 E d'altronde perchè non usare i microcontroller?
 
perchè no è un'altra idea. 
 

 perchè no è un'altra idea.
Perché sono lontani eoni dal modo di ragionare di uno studente e non gli
permettono di realizzare un tubazzo di niente di materialmente utile che
lo possa coinvolgere.


 perchè no è un'altra idea.
 
Bene, però se usi i microcontroller devi per forza imparare almeno il C (ma anche Pascal o perfino il Basic! ) perchè moltissimi di quei chip si programmano solo in quella maniera (tralasciando l'assembly). 

 Quel che voglio dire è che programmare un Raspberry non è diverso da quanto fai su un pc. Se ti vuoi riferire alle utili porte I/O presenti sul RB, puoi comprare od anche costruire simili interfacce per pc senza particolari problemi.
 
ma per carità, si può fare tutto nella vita. solo che ci sono cose più
adatte e cose meno adatte; per esempio si sa che raspberry ha tutto un
ecosistema dedicato a questo scopo per cui se devo fare un prototipo di
(ad esempio) cronotermostato con monitoraggio della temperatura piuttosto
che una stazione di rilevamento qualità dell'aria mi viene da pensare
che un raspberry pi sia leggermente più adatto. 

 che un raspberry pi sia leggermente più adatto.
 
Per la cronaca i kit/schede didattici da collegare ai pc per sperimentazione elettronica  esistono da una vita, mica li hanno inventati per RB.
 
 
 
 
 


per la cronaca non ho affermato che sono invenzioni per raspberry.
hai una dote innata di spostare le discussioni su questioni del tutto
irrilevanti.

 a studenti alle prime armi (matricole, o peggio delle superiori).
 
All'università (prima metà degli anni '90) la mia formazione 
universitaria (fondamenti di informatica) era stata solo a base di 
Pascal e, udite udite, il Modula 2! Perché? Semplicemente perché gli 
insegnanti di quei corsi non conoscevano altro :-) Inutile dire che il 
C/C++ me l'ero studiato poi da solo.
 
Si può discutere all'infinito di quale sia il migliore linguaggio a 
livello didattico. Ai tempi il Pascal non mi sembrava male per 
cominciare, anche se poi il Modula 2 avrebbero pure potuto 
risparmiarselo; molto meglio sarebbe stato il C++ perché era un 
linguaggio più moderno e richiesto dal mercato.
 
Attualmente non so quale sia la scelta migliore: ritengo che Java 
(probabilmente anche C#) abbia sempre il suo perché per la sua 
impostazione rigorosa (io sono un fan dei linguaggi sintatticamente non 
troppo complicati e fortemente tipizzati), altrimenti Python mi sembra 
pure molto valido, anche se forse un po' meno rivendibile.
 
TheStar

   essere di 6 anni, la specialistica di altri 6.
 
Spero non ti facciano mai ministro dell'istruzione.

 Per questo Python va più che bene mentre C, C++, Java ecc sono assurdi.
 
Python e` un gran linguaggio, ma puo` essere usato a cazzo di cane esattamente come gli altri che citi. Certo, magari ti astrae un processo complesso in pochi statement (e questo e` un grosso vantaggio) ma il corretto design di un'applicazione non e` dato dalle sole potenzialita` del linguaggio. Si possono scrivere sistemi ben funzionanti con qualunque linguaggio. 

 Bisogna capire che si intende per "studiare un linguaggio". A mio parere, all'universita` non bisogna insegnare linguaggi di programmazione
 
Suvvia, mi sembra che si inizi ad esagerare. Uno che esce dello scientifico ed è al primo anno di università come pensi che possa capirci qualcosa se nessuno gli insegna in maniera rigorosa il funzionamento di un linguaggio di programmazione?

 potenzialita` del linguaggio.
È proprio questo il punto: oggi a insegnare la classica tripletta si
fa perder tempo dietro alle peculiarità del linguaggio arrivando
addirittura a non comprendere com'è fatta (bene o male che sia)
un'applicazione. Ho visto delle matricole perse ad implementare in
pseudo C uno stack al punto di non capire il legame tra il disegno
alla lavagna e il codice. Idem studenti del terzo anno a far lo
stesso con banali problemi di programmazione concorrente persi
dietro a Java.
 
Il Python grazie alla sua "facilità" dovrebbe se non evitare per lo
meno ridurre di molto questi fenomeni che per quel che ho visto
sinora sono la regola...
 
In altri termini sino adesso se ho visto l'1‰ degli studenti pensare
prima di scrivere codice, organizzare il codice, "leggerlo" e renderlo
"leggibile" è tanto e purtroppo non solo studenti.
 
Per questo vedo molto bene passare dalla shell e da Python facendo in
parallelo un'introduzione veloce alla documentazione, dai doc delle
API coi vari doxygen, sphinx ecc al literate programming, al controllo
versione, ecc. Sono IMVHO basi più importanti persino di sapere in
teoria come funziona un compilatore, almeno per la triennale.


 Spero non ti facciano mai ministro dell'istruzione.
Non penso accadrà :D



mah io mi pongo una semplice domanda: ad harvard dove è stato creato
facebook avevano corsi di php?
secondo me il mero linguaggio dovrebbe essere studiato sostanzialmente
da autodidatta, magari la scuola dovrebbe incoraggiare applicazioni
pratiche e uno dei modi migliori è, a mio avviso, la partecipazione alla
community open source.
insegnare un linguaggio pone il problema di *quale* linguaggio. alla fine
si ricade sempre su ciò che "chiede il mercato", con il risultato che
si sfornano code monkey e non persone capaci di innovare, cambiare trend,
far crescere le aziende dove andranno a lavorare o avere iniziativa 
imprenditoriale. 

 Suvvia, mi sembra che si inizi ad esagerare. Uno che esce dello scientifico ed è al primo anno di università come pensi che possa capirci qualcosa se nessuno gli insegna in maniera rigorosa il funzionamento di un linguaggio di programmazione?
 
Non so rispondere a questa domanda, dal momento che io ho cominciato a smanettare in BASIC a 10 anni su Olivetti M20 e ho proseguito da li`, con Pascal, C, C++, e Java. A mio parere, un linguaggio di programmazione bisognerebbe conoscerlo PRIMA di iscriversi all'universita`, e tutti quelli che scelgono materie informatiche (le quali, per natura, presuppongono passione) quasi sempre ne sanno uno. L'universita` non puo` (e a mio parere non deve) insegnarti un linguaggio di programmazione; deve invece trasmetterti i tanti concetti che servono per essere un buon programmatore.
 

 bravi sanno descrivere a parole/disegno un {bubble,insertion}sort...
 
Si` e no. E` vero che non ci sono docenti preparatissimi nelle universita`, e che sono ancorati a un mondo tecnologico ormai del tutto obsoleto; e` anche vero che giudicare il valore dell'universita` da quel che certi studenti sanno o non sanno non e` propriamente corretto. Quel che uno studente sa dipende moltissimo dall'impegno che quello studente ci mette nello studio (e, nel caso dell'informatica, dalla passione).

 teoria come funziona un compilatore, almeno per la triennale.
 
Non sono basi, mentre imparare come SI SCRIVE (non come funziona) un compilatore o un sistema operativo, lo sono.


Forse stiamo intendendo cose diverse. Come è strutturata all'università (o era strutturata...ora non so) a mio avviso va bene: primo anno c'è il corso di programmazione (concetti generali) e ovviamente viene scelto un caso di studio che sarebbe il linguaggio in questione.
 
A memoria non esistevano corsi di Java, C o C++, ma corsi di strutture dati in cui si usava Java, C o C++. O corsi di linguaggio funzionali (notare il plurale) in cui si insegnava la teoria e poi la si metteva in pratica con il linguaggio tal dei tali.

 compilatore o un sistema operativo, lo sono.
Definire cosa è "di base" non risulta sempre ovvio: per un medico è da
considerarsi di base la chimica elementare? Bhe, se si il 90% dei medici
non sa le basi della sua professione; l'italiano e il latino solo basi
minime dell'avvocato? Allora la maggior parte degli avvocati non ha le
basi minime o per lo meno né ha una conoscenza limitata e vaga... IMO
sapere come si scrive un compilatore è di base se hai grandi propositi,
propositi che non realizzerai con una laurea nuovo ordinamento ma, forse
solo con un percorso didattico (e lavorativo) personale. Perciò le basi
che ritengo minime sono un livello superiori poiché gli obiettivi che si
possono concretamente raggiungere sono parecchio inferiori...


 nello studio (e, nel caso dell'informatica, dalla passione).
È questione di quantità: se un 1%, sino a diciamo anche un 30% degli studenti
non ha competenze minime posso essere d'accordo, quando si arriva alla
quasi totalità dove solo 4 o 5 su n sono veramente preparati allora se non
è un problema dell'università in sé è un problema degli step educativi
precedenti. Idem se i docenti preparati sono pochi ma non proprio mosche
bianche siamo d'accordo ma quando oltre ad essere pochi ti dicono chiaro
che con gli allievi ed i programmi che si ritrovano o usano la bocciatura
come metodo per prender tempo e colmare le lacune degli anni e decenni
precedenti o tagliano con l'accetta gran parte di ciò che vorrebbero
insegnare non saprei più che dire.
 
Ho sempre dato un significativo valore alle università italiche, meno
pratiche ma che fornivano solide basi spesso assenti nel mondo anglosassone
oggi non so se ricredermi o se appoggiare tra tutti il sistema francese
dove con le grandes écoles "abbassa" il rango di "certe" lauree lasciando
un percorso di élite con paletti, purtroppo non solo di merito, per poter
comunque avere alta formazione e "manovalanza competente" solo montata di
un gradino...


CUT
L'universita` non puo` (e a mio parere non deve) 
insegnarti un linguaggio di programmazione; deve invece trasmetterti i tanti 
concetti che servono per essere un buon programmatore.
 
Seee come no... Ma tu lo sai che fino a pochi anni fa, moltissimi
professori universitari delle facoltà informatiche erano laureati
in fisica piuttosto che in matematica, ecc. Proprio per la "giovane"
età dell'informatica. Ora dimmi tu come può un non laureato in informatica
riuscire ad insegnare e a trasmettere passione a degli studenti di
informatica...
 
 
 
 
 
 

 
 
Può essere vero, però se pensi che professori universitari vengono
pagati fior di euro per far studiare i ragazzi su testi degli anni
'70 (cioè i testi che usavano quei professori ai loro tempi), ti
viene un nervoso che ti fa diventare una bestia...
 
 

 Ho sempre dato un significativo valore alle università italiche, meno
CUT
 
Nota che le "università italiche" sono rinomate per lasciare ai
laureati tutta teoria e niente pratica. Perché hanno cambiato
dai 5 anni di una laurea classica ad una lauretta di 3 anni e poi
ad una laurina di 2 anni? Perché le aziende non ne potevano più
di prendere gente tutta teoria e niente pratica, e allora hanno
fatto un diktat: "O fate uscire i ragazzi prima con basi di
pratica e non solo fumo di teoria, oppure non assumiamo più nessuno".
 
 

 Non sono basi, mentre imparare come SI SCRIVE (non come funziona) un
compilatore o un sistema operativo, lo sono.
 
Infatti sono corsi di studio nelle facoltà informatiche.
 
 
 

 pratica e non solo fumo di teoria, oppure non assumiamo più nessuno".
Che manchi la pratica d'accordissimo, che la teoria sia fumo avrei da
ridire. Non sono affatto un neoaristotelico di quelli che van a fare
i "metastudi" pretendendo di trarre conclusioni fisiche dall'analisi
di altri studi e roba del genere ma la Teoria, ovvero il prodotto di
esperienza e studio condensati ai minimi termini è di assoluto valore.
 
Solo deve essere collegata al mondo reale e non deve essere quella
oramai deprecata di molti eoni fa.
 
Quel che le aziende han voluto è carne giovane sperando nel sogno
americano "do it, fix on the go", ma cotale sogno è aria fritta e
la carne fresca, l'operaio modello Ford non vince sul modello Toyota
per continuare il paragone. Le aziende sono motore dell'innovazione
sino a che sono guitate da gente che l'innovazione l'ha fatta, quando
sono a guida manageriale sono una palla al piede dell'innovazione
forse persino maggiore dell'accademia stile italico.


Una piccola novità per buttare un po' di benzina sul fuoco :-)
http://lwn.net/SubscriberLink/641244/5d1d6d20aeb0a647/
 


 laureati tutta teoria e niente pratica. 
 
la pratica non si insegna, la pratica "si pratica" (non so se noti il gioco
di parole, sorprendente nevvero?)
 
le università pensino ad insegnare bene la teoria, gli studenti pensino
alla pratica. certo la scuola per prima potrebbe (e probabilmente dovrebbe) 
incoraggiare all'open source, ma che nel 2015 ci si faccia problemi su 
come fare pratica di programmazione è veramente una cosa risibile.
 
questo paese ha tirato su generazioni con la proattività di un dissipatore.

imprenditoriale. 
 
Qua all'universita' in genere si usa:
 
Storage of information: XML/JSON e affini
Introduction to algorythms and computer programming: C
OOP fundamentals: JAVA (milioni di mosche non possono sbagliare)
 
Databases fundamentals/advanced databases: SQL
Web technologies: PHP  su stack LAMP/LAPP per fare leva sui rudimenti
di SQL (scordati il minimo accenno a input sanitising o a
problematiche di sicurezza)
 
Poi ho visto anche C# (games programming) per chi all'ultimo anno era
in un qualche corso sponsorizzato Microsoft/XBOX.
 
Forse vale la pena usare Python (come si fa al MIT) e passare da
procedurale a OOP gradualmente. Spiegando chiaramente che gli altri
linguaggi hanno delimitatori per i blocchi di codice. :)
 
Visto il livello medio, ti direi comunque che la cosa e' di scarsa
importanza.
 
-- 
Living in Barbaropoli
http://www.barbaropoli.com
 

 linguaggi hanno delimitatori per i blocchi di codice. :)
 
Oppure usi Ruby, che i delimitatori li ha... :)
 
-- 
Ciao!
Luca
 

 di parole, sorprendente nevvero?)
 
Sbagli. In Informatica, la pratica rompe la scienza. Se tu insegni
informatica sulla lavagna, i tuoi studenti non impareranno mai nulla
di concreto. I tuoi studenti *DEVI* portarli in laboratorio per
farli sporcare le mani col codice.
 
 
 

 in fisica piuttosto che in matematica
 
E tu lo sai che le piu` grandi menti che lavorano nel campo dell'informatica, la laurea in "Informatica" (che dovrebbe essere l'equivalente del Computer Science anglosassone) non sanno neanche cosa sia, mentre ne hanno sicuramente una in matematica o fisica? A mio parere, un matematico puo` essere un programmatore migliore di un "informatico".
 

 sapere come si scrive un compilatore è di base se hai grandi propositi,
 
Non necessariamente. Sapere come si scrive un compilatore implica tutta una serie di nozioni che tornano utili anche se non ti troverai mai a scrivere un compilatore. Io vorrei lavorare con qualcuno che e` in grado di tirare fuori un compilatore per un DSL se mai sorgesse la necessita` in ambito lavorativo e che non mi dicesse: eh, ma all'universita` abbiamo studiato la shell Linux, cosa vuoi che ne sappia?
 

 pratiche ma che fornivano solide basi spesso assenti nel mondo anglosassone
 
Le basi ci sono anche nel mondo anglosassone. Ci vuole un trade-off tra cio` che devi necessariamente sapere e il tempo da spendere a scuola. Qui in Inghilterra, la gente esce dall'universita` in 3 anni. A 21 anni puoi iniziare a mettere le basi nel mondo del lavoro. In Italia c'e` gente che inizia l'universita` a 19 anni, per poi finirla 5/6/7 anni dopo, quando i coetanei esteri hanno quasi 10 anni di esperienza.

 cosa vuoi che ne sappia?
Dov'è il problema? Se sa usare la shell tanto sa anche scriptare un po' e
magari sa anche che esiston Yacc, Bison ecc e magari ha imparato ben prima
della fine della specialistica (al netto dei programmi attuali) a fare una
grammatica diciamo per lo meno digeribile. Quel che un neolaureato di ora
sa fare è produrre montagne di codice il cui design evolve in base al codice
stesso, in genere copiato da n fonti in giro per l'web. Vorrei almeno aver
gente che sa scriptare, copiare con criterio, fare un minimo di design anche
solo mentale!


 Inghilterra, la gente esce dall'universita` in 3 anni.
Infatti gli ingegneri inglesi han pessima fama, in compagnia di quelli
elevetici... E anche quel po' di industria che è sopravvissuta alla City
non mi pare abbia nulla di che...


 Sbagli. In Informatica, la pratica rompe la scienza. 
 
ribadisco, la pratica si fa non si insegna.
 
peraltro esistono gli stage, se le aziende lamentano la scarsa pratica sono
benvenute a contribuire.
 
inoltre non è rarissimo sentire di attività innovative nate come spin-off
a cui hanno partecipato delle università. sul tema nuova imprenditoria
ci sarebbe molto da dire ma certo non per colpa degli atenei, ce ne sono
alcuni molto attivi su questo fronte.
 
 

 ha scritto:

No, sbagli ancora. Stai perseverando.
La *prima* cosa che il prof. di Analisi I ci disse in aula stizzito
e scazzato fu:
 
"So che voi volete subito cominciare a smanettare sui computer,
ma in questo corso voi *dovete*(!) piegare la vostra mente a
ragionare come un matematico, non come un informatico!"
 
(Giusto per farti notare come i prof laureati in matematica e fisica
consideravano la laurea in informatica...).
 
Ma fu lui stesso a dare la precisazione:
 
"Per un matematico, 2/3 E' E RIMARRA SEMPRE 2/3.
Per un informatico, 2/3 EQUIVALE a 0.66666666666.."
 
Con menti chiuse così nei propri fortini, come pensi che
potessero andare i corsi di informatica nelle università? A schifio!
 
 
 
 

potessero andare i corsi di informatica nelle università? A schifio!
 
Dipende dal corso.
Al MIT Teorie dei grafi si fa cosi (mettiti seduto, poi vai a 34:45):
 
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/lecture-10-graph-theory-iii/
 
 
Poi se fai Introduction a computer science il corso e' piu'
tranquillo.
 
A stanford la parte la matematica discreta, specificamente la parte di
logica booleana non la spiegano con le tabelle di verita', dimostri
teoremi.


 teoremi.
 
Va beh ma è risaputo che lì vanno tutti i genietti americani e non...
 
 

Va beh ma č risaputo che lě vanno tutti i genietti americani e non...
 
Si vabbe'.
Hai mai provato a seguire un corso del MIT? Prova, ti sentirai
improvvisamente un genio.


 improvvisamente un genio.
 
Non per niente ho usato il termine "genietti americani" se ci fai caso...
Ovvio che loro poi avendo mille stimoli, mille opportunità in più,
mille strumenti in più, ecc. Siano mille volte più avvantaggiati
dei loto poveri colleghi europei.
 
 


 
Ricominciamo da capo.
 
Sono state fatte le seguenti affermazioni:
 
--- L'universita' italiana non e' al passo con i tempi, ed e' tutta
teoria e niente pratica.
 
Mia opinioni: vero, per tutta una serie di motivi.
 
--- Non puoi fare insegnare informatica a uno con la laurea in
matematica o fisica.
 
Mia opinione: Falso, dipende dal corso. Perche' puo' insegnare
Computer Science con un approccio pratico o con un approccio astratto.
 
 
Aproccio pratico:
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/lecture-1/
 
 
Approccio astratto (matematica discreta l'ho vista insegnare anche
senza far venire capelli bianchi in testa):
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/video-lectures/lecture-10-graph-theory-iii/
 
 
 
Spero che quello che volev o dire adesso sia piu' chiaro.
 
Tra l'altro Pisa secondo me al MIT gli gira intorno 2-3 volte, ma e'
un discorso che abbiamo gia' fatto.



Cio' che e' risaputo, borse di studio a parte, ci vanno quelli che hanno 
i soldi (diverse decine di mila$/anno) indipendentemente dalla testa...

 ti sporchi le mani col codice, non impari nulla di utile e concreto.
 
fai delle contestazioni che non hanno ne capo ne coda.
 
come qualcuno ha cercato di farti capire, ma dovresti già averlo chiaro,
tanti corsi non puoi avere un approccio pratico. la succitata teoria
dei grafi, ad esempio, te la devi prima far spiegare da un matematico;
è idiota pensare che tu la possa studiare partendo dalla fine ovvero
dalle implementazioni pratiche. ma questo vale per tanti altri argomenti
dove buttare giù il codice è proprio l'ultimo dei problemi.
 
questo per quanto riguarda il metodo.
 
quanto alla qualità dell'insegnamento, se c'è una cosa che non si presta
a generalizzazioni questa è proprio l'università italiana. se da una parte
ci sono situazioni disastrose dall'altra ci sono, come è stato 
detto, eccellenze assolute. 

 detto, eccellenze assolute. 
 
Si, delle "eccellenze assolute" come tutti gli scandali degli
ultimi anni che hanno coinvolto tante università italiane.
Ora stai cercando di difendere l'indifendibile. Contento tu...
 
 
 

 Spero che quello che volev o dire adesso sia piu' chiaro.
 
Tu continui a postare roba del MIT, fai invece un esempio localizzato in
ITALIA di quello che affermi...
 
 

ITALIA di quello che affermi...
 
Spiacente: non ho idea di dove le universita' italiane rendano
disponibile online le loro meravigliose lezioni.
 
Rimane il fatto che Computer Science si puo' insegnare sia in maniera
pratica che astratta.


 Ora stai cercando di difendere l'indifendibile. Contento tu...
 
io non sono contento e non me ne frega un tubo di difendere chicchessia.
sto discutendo ma con un interlocutore che argomenta solo con facili
stereotipi per cui mi sarei anche stufato. ti lascio al tuo muro del
pianto e mi scuso per averti disturbato.

 ti sporchi le mani col codice, non impari nulla di utile e concreto.
 
Che ingenuità. "Sporcarsi le mani" mica vale solo per l'informatica, vale per ogni tipo di studio. 
 
 
 
 

 Che ingenuità. "Sporcarsi le mani" mica vale solo per l'informatica, vale per
ogni tipo di studio. 
 
Certo, se studi filosofia, per mettere in pratica, vai in piazzetta,
ti siedi a fianco ad un anziano e cominci a parlargli di Kant e della
Critica della ragion pura...
 
Ma dai ma è logico che ogni percorso di studio ha le sue caratteristiche!
 
Quello su cui si voleva concentrare il discorso, è che se in INFORMATICA
non metti in pratica i concetti astratti non impari una beata fava!!!
 
Adesso è più chiaro il concetto?
 
 
 

 non metti in pratica i concetti astratti non impari una beata fava!!!
 
Parlando di concetti astratti, metterli in pratica non si riduce di certo a scrivere N-mila righe di programma.  Anzi, quello è solo un accessorio, a volte c'è a volte non c'è.
Guardati un pò di tesi:
http://www.tesionline.it/consult/elenco-tesi.jsp?page_nav=1&CorsoID=356