Ho iniziato l'università ma non riesco a programmare

Pubblicità
Il senso del mio intervento era un altro, non credo ci sia bisogno di spiegazioni … ;)
Ai miei allievi faccio usare ClickCharts per la modellazione concettuale di un database tramite i diagrammi E-R e UML e non mi pare che sia morta alcuna mosca … :asd:
Speriamo almeno di avere ammazzato qualche zanzara :)
Ma vedi, per spiegare come modellare con database occorre avere conoscenze di database, per spiegare come si usi un diagramma UML per progettare un software bisogna avere almeno conoscenze di programmazione.
In questa discussione invece parliamo di uno studente alle prime armi che NON SA ancora come programmare. Inutile insegnare cosa sia un algoritmo se ancora non si sa come scrivere due righe di codice. Occorre insegnare prima i concetti della programmazione, e se non lo si fa bene si corre il rischio che lo studente non si interessi per nulla. E lo dico perche' capito' a me, nel 1977, nella mia prima classe dedicata ai computer, dove le prime leazioni erano tenute da un insegnante di matematica che di matematica era un genio, ma di computer non ne sapeva un cippa e passava ore e ore a insegnarci l'algebra boleana. Che per carita' e' importante, ma non a quel punto dell'insegnamento.

Guarda per esempio come si insegna una lingua straniera. Non si chiede allo studente di scrivere un romanzo o un poema. Non gli si chiede di imparare grandi concetti di grammatica. Si impara dall'inizio, poche parole, la pronuncia, frasi fatte, e piano piano si introduce la grammatica e la sintassi. Cosa che non si faceva nelle scuole italiane, io ho sempre studiate lingue straniere facendo all'inizio ore e ore di noiosa grammatica che a quel punto non serve a nulla. Usavo il libro della grammatica francese per addormentarmi alla notte (ha sempre funzionato). Finalmente imparai lingue straniere quando cominciai a seguire corsi piu' "moderni".
L'insegnamento della programmazione dovrebbe seguire la stessa idea, infatti e' come si fa nei college americani. SI lasciano da parte concetti come algoritmi, tipi di dato, bits, interi e floating point, introdotti piu' tardi quando si sa almeno come scrivere due linee di codice che fanno effettivamente qualcosa. Perfino Ritchie e Kernighan iniziano il loro ormai famosissimo testo sul C scrivendo il programma "Hello world".
 
Assolutamente NO. Quello era vero una volta, quando si parlava in termine di "algoritmi" che era in pratica sinonimo di "algoritmi matematici", utili appunto a risolvere un problema matematico. Si "traduceva" un problema in numeri e vettori capaci di memorizzarli, e si scriveva un algoritmo. Tipo il Bubble Sort.
Adesso le cose sono cambiate parecchio. Usiamo linguaggi di alto livello, non stiamo piu' a reinventare la ruota. Il Bubble Sort lo impariamo a scuola, ma poi quando andiamo a lavorare il nostro manager ci licenzia in tronco se scriviamo un Bubble Sort di nostro pugno, per lo stesso motivo che non scriviamo il nostro compilatore e il nostro sistema operativo.
Ormai chi scrive algoritmi sono ben poche persone, principalmente a livello accademico. Chi lavora deve affrontare un problema reale, deve trovare gli strumenti piu' adatti per risolverlo. Per esempio, progettare e poi ottimizzare le tavole di un database per ottimizzare il tempo di richiesta da parte di un utente.

Se si ha un problema reale da affrontare, nel lavoro, come si fa trovare gli strumenti più adatti per risolverlo senza affidarsi agli algoritmi?

Per me un algoritmo indica un metodo un percorso che ti permette di arrivare all' obbiettivo finale o/e di risolvere il problema. Poi magari c'è chi non ha ne bisogno e gli si accende la lampadina sopra la testa.
 
Se si ha un problema reale da affrontare, nel lavoro, come si fa trovare gli strumenti più adatti per risolverlo senza affidarsi agli algoritmi?

Per me un algoritmo indica un metodo un percorso che ti permette di arrivare all' obbiettivo finale o/e di risolvere il problema. Poi magari c'è chi non ha ne bisogno e gli si accende la lampadina sopra la testa.
Ma qui non parliamo di lavoro, o di risolvere un problema.
Parliamo di una persona che si lamenta perche' nonostante gli sforzi NON riesce a programmare. Segno che non ha ancora chiaro i concetti base della programmazione, per cui a questo punto e' perfettamente inutile parlare di puntatori, tipo di dati, algoritmi e cosi' via. Sto parlando del primo corso introduttivo di Computer Science come viene insegnato nei college americani, per esempio:
https://online.stanford.edu/courses/soe-ycscs101-sp-computer-science-101
dove invece di iniziare nei dettagli (come per esempio la diffrenza tra un char e un int, tanto chi non sa come sia organizzato un computer non lo capisce per nulla) si inizia solo a dare un concetto generale (chiamato "big picture"). E attento: si spiega anche cosa SIANO gli algoritmi (ma senza andare nei dettagli)
 
Pubblicità
Pubblicità
Indietro
Top