Una dintre cele mai dificile științe studiate la școală este, fără îndoială, programarea. Se pare că este dificil să înveți cum să dai succesiunea acțiunilor pe care computerul le-ar transforma într-un program? La urma urmei, programarea, de fapt, este asemănătoare traducerii. Odată cu traducerea textelor din limba rusă în limba engleză, programatorul traduce succesiunea acțiunilor într-un program într-unul din limbile de programare. Ce este complicat în acest sistem? Destul de ciudat, aceeași magie "secvență de acțiuni", numită algoritm.
Un algoritm este un set de acțiuni logic conectate, adesea secvențiale, care conduc la un rezultat dat. Nu voi intra în proprietățile teoriei algoritmilor, ale conceptelor de discreție, de completitudine și de finitudine, dar mă voi concentra doar pe fraza "legată în mod logic". Pentru a programa, trebuie să cunoașteți și să înțelegeți logica și gândirea logică. În viața obișnuită, ne ghidăm regulile. Programul este un set rigid de acțiuni (cu excepția limbilor declarative, dar acestea sunt subiectul unei conversații separate). Luați cel mai simplu lucru - berea ceaiului. Te-ai gândit vreodată la ceea ce trebuie să faci pentru a face ceai. Îmi amintesc "fierbeți apa, turnați într-o cană, puneți o pungă de ceai și zahăr, beți". Cu toate acestea, algoritmul, chiar și aproximativ, ar arăta diferit:
- Ia ceainicul
- Dacă nu există apă în boiler, turnați apă rece în ea.
- Puneți ceainicul și porniți-l.
- Așteptați până ce fierbătorul se fierbe.
- Când fierbătorul se fierbe, luați o cană.
- Puneți în cană o pungă de ceai și zahăr.
- Se toarnă apă din fierbător.
- Dacă ceaiul nu este dulce, atunci adăugați zahăr.
- Repetați pasul 8 până când se obține un gust satisfăcător
Și asta este - pe scurt. Pentru a explica mașinii ceea ce dorește o persoană, sunt necesare mai multe comenzi. Într-un astfel de algoritm simplu, pe care creierul nostru nu vrea să îl trateze ca fiind complex, se folosesc condițiile și ciclurile și predicatele. Desigur, programele reale sunt mai dificile.
Și aici mulți studenți au disonanță cognitivă. De exemplu, cum să forțați o mașină să facă ceva? Creierul refuză să scrie programul "în cazul evident", refuză să înțeleagă "evident". Studiul diagramelor și logicii poate ajuta acest proces, dar nu până la sfârșit. Înțelegerea vine cu practica.
Prin urmare, programarea este atât de rea în școlile obișnuite. În gimnazii, în special fizic-mat. lucrurile sunt puțin mai bune, deoarece acești copii sunt forțați să gândească chiar și la o vârstă fragedă. Dar fără o înțelegere clară a scopului, fără capacitatea de a împărți "dificil în simplu", fără capacitatea de a construi lanțuri logice, nu puteți învăța să programați. Puteți învăța să scrieți programe similare cu cele care au trecut deja. Dar ceva nou va provoca întotdeauna o stupoare. Stupor, format, inclusiv sistemul modern de învățământ, în care nu există loc pentru logică sau gândire.
De ce vorbesc toate astea? În afară de faptul că, în opinia mea, cea mai mare parte facultatea de informatică poate fi împărțit în 2 clase: proști (cei cu un calculator la tine învață din manuale, știți cu mare dificultate, dacă înțeleg), și cei care au ceva de învățat / realizate în virtutea vârstei, iar acum consideră că acest lucru este evident și se întreabă cu sinceritate ce copii stupid, dacă nu pot scrie un program simplu. De exemplu, voi prezenta adevăratul caz al problemei pentru un elev de gradul 8, căruia mi sa cerut să o rezolv. Trebuia să-mi petrec o oră. Cu o experiență de 7 ani de muncă + 5 ani MatMeha + 4 fiz.-mat. școală.
O scurtă declarație a problemei: Este necesar să se atragă în ferestre multiple Pascali, fiecare dintre care se execută un șarpe, controlat de la tastatură, și își schimbă culoarea „caracterul“ la el, însă sau schimbarea direcției, ferestrele sunt comutate prin apăsarea Z. tasta
În același timp, ciclurile practic nu au fost trecute, programarea funcțională nu a fost studiată, în general nu au existat explicații ca atare. Întrebare: cum poate fi rezolvată o astfel de problemă în clasa a VIII-a, cu condiția ca, de fapt, să înceapă programarea în clasa a VIII-a (în unele școli)? Cu toată stima mea de sine și așa mai departe, nu dau sarcini de această complexitate în clasa a 10-a, când copiii au un sens mult mai bun decât cei de 8 grade. Nu înțeleg.