
Tot anul trecut am lucrat ca profesor la un centru educațional provincial (în continuare - CE), specializat în predarea programării. Nu voi numi acest centru educațional și voi încerca să evit menționarea numelui firmelor, autorilor etc.
Așadar, am predat Python și Java. Acest CE achiziționa materiale didactice pentru Java, iar Python l-au lansat când am venit eu și le-am propus acest lucru.
Am scris un ghid pentru elevi (în esență un manual sau un curs autonom) pentru Python, dar a avut un impact considerabil predarea Java și materialele didactice utilizate acolo.
A spune că erau îngrozitoare nu ar spune nimic. Modul manualului de Java, furnizat de o firmă foarte cunoscută din Rusia, nu era de a învăța o persoană fundamentele acestui limbaj, în general, și paradigma OOP, în special, ci de a arăta părinților, care veneau la lecții deschise, cum copiii lor copiază din manual un joc de șarpe sau șah. De ce spun copiază? Foarte simplu, deoarece manualul conținea întregi pagini (A4) de cod, unele aspecte din acesta nefiind explicate. Ca urmare, profesorul trebuia fie să controleze la ce linie de cod se află fiecare elev, explicând fiecare linie, fie totul se reducea la copiere.
Veți spune: „Și ce este atât de rău? Lasă ca profesorul să lucreze mai bine, iar șahul și șarpele sunt cu adevărat cool!”
Ei bine, totul ar fi fost grozav dacă numărul de persoane din grup nu ar fi fost aproape de 15, ceea ce este semnificativ, mai ales dacă intenționezi să urmărești pe toți, explicând: „Dar, de fapt, ce scriem aici?”
Pe lângă numărul de persoane din grup, mai există o problemă legată de acest ghid. Codul este scris... cum să vă spun, pur și simplu oribil. O mulțime de antipattern-uri, arhaisme, deoarece manualul nu a fost actualizat de mult timp, și, bineînțeles, ghidul de stil preferat de noi. Așadar, chiar dacă ai putea controla toți discipolii tăi și să le explici rapid și clar ce înseamnă codul copiat, codul în sine este atât de groaznic încât va învăța, pe scurt, lucruri greșite.
Finalizarea care distruge literal acest manual — de la început lipsește o introducere adecvată care să explice ce sunt tipurile de date, că acestea pot fi obiecte și primitive, care este criteriul ce verifică proprietatea, generând această dihotomie etc. În primul capitol, ție și elevilor tăi vi se propune să creați (să scrieți) un program care creează o fereastră și scrie „Salut!” acolo, însă nu se explică ce înseamnă de fapt acest cod, ci doar se fac referiri la lecții ulterioare, de exemplu, se menționează „main” — punctul de intrare, dar nici măcar nu se explică noțiunea de „punct de intrare”.
În concluzie, acest material a fost un meme chiar și printre profesori și conducere. Nu i-a învățat pe copii nimic în esență, odată am întâlnit un grup care studia de un an cu aceste materiale, iar în final nu puteau scrie un ciclu, deși toți erau foarte inteligenți și în curând nu mai era atât de rău. Majoritatea colegilor cauteau să se abată de la materialele metodice, astfel încât informațiile să fie assimilate și nu doar să dispară în aer, deși erau și persoane mai puțin diligente care considerau că este normal ca elevul lor să copieze fără nicio explicație.
Când a devenit clar că voi părăsi centrul de formare și că trebuie să continui programul de Python în anul următor, am început să scriu propriul meu manual. Pe scurt, l-am împărțit în două părți, în prima explicam totul despre tipurile de date, esența lor, operațiile cu ele și instrucțiunile limbajului. Între teme am făcut QnA, astfel încât viitorul profesor să înțeleagă cum a asimilat tema elevul. La final am realizat o mică sarcină-proiect. Prima parte explică astfel fundamentele limbajului și le detaliază, acoperind aproximativ 12-13 lecții de 30-40 de minute. În a doua parte, am scris deja despre OOP, am descris cum implementarea acestei paradigme în Python se deosebește de majoritatea altora, am făcut multe referiri la style guide etc. Ca să rezum — am încercat să fiu cât mai diferit de ceea ce era în manualul de Java. Recent am scris actualului profesor de Python, cerând feedback despre materiale și acum sunt fericit că totul este bine, că copiii înțeleg cu adevărat programarea în Python.
Ce concluzie aș vrea să tirajez din această poveste: dragi părinți, dacă decideți să vă dați copilul la un centru de formare, vă rugăm să urmăriți cu atenție ce fac ei, să vă asigurați că copilul dumneavoastră nu își pierde timpul degeaba, pentru a nu-i distruge dorința de a programa în viitor.
UPD: Așa cum s-a observat corect în comentarii, aproape că nu am spus nimic despre prezentarea materialului. Voi spune direct că consider că ar trebui să fie mai multe practica, cât mai multe posibil. La sfârșitul fiecărei lecții din prima parte, făceam 4-5 mici exerciții practice pe subiectul capitolului. Între capitole erau sesiuni de întrebări și răspunsuri (lecții de control), unde erau, de asemenea, exerciții practice, dar deja evaluate, iar la sfârșitul primei părți a fost un proiect cu un subiect la alegere dintre cele propuse. În a doua parte, am făcut o introducere în programarea orientată pe obiect prin crearea unui mini-joc pe consolă, dezvoltarea căruia a fost toată a doua parte și întreaga introducere în paradigmă.
Numai utilizatorii înregistrați pot participa la sondaj. , vă rugăm.
Învăță copilul dumneavoastră programarea într-un centru de formare?
4,6%Da3
95,4%Nu62
Au votat 65 de utilizatori. S-au abținut 27 de utilizatori.
Sursa: habr.com
