De basis van elke programmering op... puzzels

Gegroet, inwoners van Khabrovsk!

In dit artikel wil ik het hebben over mijn ervaring als programmeerleraar C++ op een hogeschool aan een technische universiteit. Het was een unieke ervaring die mij veel heeft geleerd. Als het gaat om interessante feiten uit je persoonlijke verleden, is deze passage uit het leven een van de eerste die in je opkomt.
Gaan.

Eerst iets over mezelf.
In 2016 studeerde ik cum laude af aan het instituut met een graad in informatiebeveiliging van geautomatiseerde systemen. Tijdens mijn studie heb ik herhaaldelijk mijn potentieel kunnen verwezenlijken door het schrijven van wetenschappelijke artikelen, het deelnemen aan wedstrijden en subsidies. In 2015 kreeg ik de kans om de winnaar te worden van de All-Russische competitie voor jonge wetenschappers “UMNIK”. In 2016, voordat hij zijn studie afrondde, was hij al werkzaam bij een grote organisatie in de stad als ‘Information Security, Cryptography and Encryption Specialist’.
Kortom, zoiets als dit. Je kunt je voorstellen dat ik nog steeds een idee had over programmeren.

En hier is het 2017. Postdoctorale studie. Ik werd gevraagd om een ​​semester C++ te geven aan een universiteit, waarvoor mij goede bonussen werden beloofd om de last van een afgestudeerde student te verlichten en niets meer.

Eerlijk gezegd was ik oprecht geïnteresseerd om mezelf in dit credo uit te proberen.

Eerste paar
September. Eerste schoolweek. Studenten kwamen naar mij toe. “De stoutste groep” - zo werden ze genoemd.
23 personen. "Programmeurs".

Zoals verwacht stelde ik mezelf eerst voor. Ik vertelde hen discreet de inhoud van het onderdeel “Eerst iets over mezelf”...
Toen begon het verschrikkelijke. Op de vraag “Wat kun je doen?” de studenten (we zullen ze vanaf nu zo noemen) antwoordden dat ze iets meer konden doen dan helemaal niets (nou ja, dit betekende dat sommigen van hen wisten hoe MS VS eruit zag en een “Hallo wereld”-project konden opzetten). .. Programmeurs. Laatste cursus…

Verder legden ze gedetailleerd uit, “in kleuren”, dat ze niets hadden geleerd en dat ze over het algemeen teleurgesteld waren in het programmeren...

Bijna alle dagen tot mijn volgende les gingen als volgt:
De basis van elke programmering op... puzzels

... maar de dag ervoor ontstond het idee om inspanningen te leveren om de huidige situatie in de hoofden en het bewustzijn van deze jonge mensen te corrigeren. En toen “werd Ostap meegesleept.”

Inleiding tot programmeren
Voor de volgende les heb ik... een puzzel meegenomen.
Ja Ja. Puzzel. "Hoe je draak te trainen." De regels waren eenvoudig. De groep werd verdeeld in 3 teams. Elk team verzamelde zijn deel. Sommige zijn het bos, andere zijn de aarde, en weer andere zijn de draak in het midden van de foto. Terwijl het hele stel de puzzel in elkaar zette, vertelde ik ze dat een puzzel samenstellen is ook programmerendat programmeurs vaak de code van iemand anders gebruiken, dat elk project verschillende teams, functies, modules...
Geleidelijk aan sloten de meest lethargische studenten zich bij het proces aan.
Toen ik klaar was met het verwerken van het idee van programmeren in bedrijfsconcepten, processen en... puzzels, was het tijd om de trainingsregels vast te stellen.
Voor elke les moest elke leerling 10 termen uit IT in een notitieboekje opschrijven. Elk. Iedereen heeft zijn eigen. Het punt is dat ik het notitieboekje van een leerling heb gepakt en tussen alle termen heb gevonden maximaal toegepast en vroeg een andere leerling ernaar. Als een andere leerling zegt: ‘Ik heb die term niet opgeschreven’, volgde er geen straf (vanwege gezond verstand), maar die leerling moest de ‘ontbrekende’ termen opschrijven (net als alle anderen die ze niet hadden). en vind hun betekenis bij het volgende beroep.

Dat is wat wij deden. Elke les begon met een vrolijke willekeur in relatie tot twee of drie studenten. De jongens hadden enthousiasme voor dit proces.

Lesonderwerpen
Bij het starten van de opleiding is het erg belangrijk om studenten van goede literatuur te voorzien. Naar mijn mening was het ideale boek:
De basis van elke programmering op... puzzels

Op een gegeven moment moest ik het stiekem lezen terwijl ik Microsoft Visual Studio omhelsde. Toen kon ik het programmeren bijna helemaal opnieuw begrijpen. Perfecte optie.

Je gaat bescheiden naar de studenten toe en zegt: “Om programmeur te worden, moet je gewoon alles in dit boek lezen en uitproberen”, en het boek op tafel gooien. Het belangrijkste is om de boeken in je rugzak niet te verwarren...

Voor elk onderwerp moest ik me zeker grondig voorbereiden. Ik heb dezelfde Laforet en verschillende andere interessante bronnen van internet gelezen.
De uitleg ging bijna vanaf nul. Bovendien was het nodig om te begrijpen waar de basiskennis van de studenten op deductieve wijze werd afgesneden.
Arrays -> Werken met geheugen (constructors) -> Links -> Hoe geheugen werkt -> Schijven -> Wat is een fysieke schijf -> Binaire weergave van gegevens...
De basis van elke programmering op... puzzels

Een zeer sterke crashtest van kennis van fundamentele feiten over programmeren. Ik ben geen programmeur meer, ik ben een historicus!

En dus betekent het dat er voor meerdere paren op rij historische veldslagen plaatsvinden. Op een dag kijkt een secretaris van de afdeling ons kantoor binnen en als hij de groep ziet, opent hij zijn ogen, tuurt en sluit de deur. Zoals mij later werd verteld, was ze geschokt dat DEZE groep zo stil zat en zo aandachtig naar mij luisterde... Eh, makkelijk.

Laboratorium werken
De eerste toegepaste informatie zijn de eerste “labs”. In totaal slaagde de groep tijdens het semester voor 10 laboratoriumwerkzaamheden. Aanvankelijk maakten ze de eenvoudigste console a + b, en in het laatste schreven ze, zij het op consoles gebaseerde, maar behoorlijk interessante toepassingen, zoals het berekenen van de waarde van de integraal van een willekeurig gegeven functie met behulp van een van de drie methoden - ongeveer dezelfde taken stonden op de eindcertificering - cursuswerk.

Dat is gewoon de acceptatiebenadering geen was bekend. Tijdens mijn studie aan het instituut werd ik geconfronteerd met het feit dat slim zijn en rapporten kunnen halen niet hetzelfde zijn. Dit beviel mij totaal niet.

- Jongens, ik zat te denken. Laten we een “conceptuele” relatie opbouwen. Als iemand van jullie denkt dat je geen programmering nodig hebt, dan is de deur daar. Ik leer het je gratis. Ik wil hier alleen nieuwsgierige, zorgzame en zorgzame enthousiastelingen zien. “Ik vraag alle anderen om niet ieders tijd te verspillen”, zei ik op de eerste dag van het laboratoriumwerk. Hierna stopten 5 mensen onmiddellijk met het volgen van de lessen. Dit was logisch en te verwachten. Het was mogelijk om te proberen iets begrijpelijks met de rest te doen.

- ... Ik ben er niet in geïnteresseerd om iemand jouw werk te zien doen alleen maar om het te halen. Jullie zijn misschien geen programmeurs, maar jullie zullen wel mensen zijn in mijn lessen moet.

Het zag er zo uit:

case отличник

Een student komt bij mij zitten om zijn werk in te leveren.
– Heb je het zelf gedaan?
- Ja.
- Wat is dit?
- *antwoordt correct*.
*Ik vraag nog een paar punten. Correcte antwoorden*
- geaccepteerd. Geweldig.

case болтун

– Heb je het zelf gedaan?
- Ja.
- Wat is dit?
- *antwoordt verkeerd / antwoordt niet*.
*Ik vraag nog een paar punten. Hetzelfde resultaat*
- Niet geaccepteerd. MISLUKT Ik wacht op de herkansing.

case хорошист

– Heb je het zelf gedaan?
- Ja.
- Wat is dit?
- *antwoordt correct, maar niet zelfverzekerd, zwemt*.
*Ik vraag nog een paar punten. Hetzelfde resultaat*
- geaccepteerd. Prima.

case ровныйТроечник

– Heb je het zelf gedaan?
- Niet.
- waarom?
- Moeilijk. Hij heeft me geholpen... *noemt eerlijk gezegd een uitstekende student uit de groep*
- Heb je begrepen?
- Ja, ik begreep bijna alles.

- Wat is dit?
- *antwoordt correct*.
*Ik vraag nog een paar punten. Antwoordt min of meer juist, soms helemaal fout, ook al is het 50/50 goed en fout*
- geaccepteerd. Prima.

Het heeft geen zin om alle andere gevallen te beschrijven. Ja, een “goede leerling” kan op basis van eerlijkheid ontevreden zijn over het feit dat een leerling met een “C” hetzelfde cijfer krijgt. Dan hangt het allemaal af van de stemming. Of ik vraag de 'goede student' om naar de grond te kijken, want 'nu laat ik een snufje wijsheid vallen', en dan vertel ik je de essentie van de aanpak, beschrijf wat in het leven van grotere waarde is en leg het uit dat het voor de “C”-student veel moeilijker was om te slagen dan voor hem, de “goede student.” ", enz...
... of, zoals mijn leraar ooit deed, ik teken een kleine tand in de dagboekdoos tegenover deze ontevreden persoon en de volgende keer zal ik persoonlijk het laboratoriumwerk voor hem afmaken. Zojuist. Om uw kameraden niet te ‘blussen’.

De basis van elke programmering op... puzzels

Оценки
Het onderwijsproces verdrinkt, net als de hele wereld, letterlijk in prijskaartjes en cijfers.
Studenten zijn ook mensenMaar naar mijn mening had het ‘framework’ ook hier moeten worden ‘geschud’.
Gedurende het semester kreeg iedereen een bonustaak. Registreren voor github.com, upload daar een leeg C++-project, maak 2 updates, commit ze en push ze. Voor deze acties werden er 15 toegewezen Ja, ja, niet 4, niet 5, maar 15. Drie hebben het door. Dit was op de een of andere manier begrijpelijk voor het psychotype van de student, maar er was nog een ander geval.
Een keer werd ons stel zo verplaatst dat zij de laatste was, en ook via een paar ramen. Er kwamen echter nog steeds 15 mensen op af. Ik wilde geen nieuw onderwerp uitleggen ter ere van dergelijk heldendom, aangezien we puur qua onderwerpen al behoorlijk vooruitgang hadden geboekt + het volgende onderwerp was niet erg eenvoudig voor vermoeide hersenen (die van mij en die van de studenten). Toen besloot ik over filosofie te praten.

— Ik kondig een aantrekkingskracht aan van ongekende vrijgevigheid. Iedereen vertelt me ​​welk cijfer ik hem moet geven voor het paar van vandaag.
Iedereen wilde een "A".
‘Beschouw het maar,’ zei ik. Iedereen was blij.
Silence.
- waarom wilde niemand dat? 7-ku of 10-ku?
De ogen van iedereen werden groot en ze begonnen dom te glimlachen.
- Wil je wedden? Naar het tijdschrift?! - er kwam een ​​stem uit de achterbank.
- Ja Makkelijk! - Ik zei: - Ik kondig een blitz aan op voorwaarden, wie ook maar 10 van mijn vragen beantwoordt - ik wed dat op de 20e naar het tijdschrift, zonder een addertje onder het gras, degene die niet antwoordt, is degene -10 (min tien).

'Het team werd vrolijker, er begon een debat', iedereen had eerlijk punten verdiend. Twee meldden zich vrijwillig aan. Met kleine onnauwkeurigheden stelden ze om beurten 10 vragen over de stapel, wachtrij, constructor, destructor, garbage collector, inkapseling, polymorfisme, hashfuncties...
Ze werden allemaal in een tijdschrift getekend 20... maar het belang van het tijdschrift en de cijfers viel iedereen in de ogen. Nu heb ik er spijt van dat ik niet heb gevraagd of ze hun beoordeling met iemand willen ‘delen’. Het lijkt mij dat ze het zouden delen... Vanaf nu heeft iedereen het 'lab' met kennis en eerlijkheid overgedragen.

Vanaf dit moment verscheen er een ander type laboratoriumlevering:


case честноНеЕгоНоОнПытался

– Heb je het zelf gedaan?
- Niet.
- waarom?
- Moeilijk. Hij heeft me geholpen... *noemt eerlijk gezegd een uitstekende student uit de groep*
- Heb je begrepen?
— Sergej Nikolajevitsj, eerlijk gezegd begrijp ik niets, dus schreef ik commentaar naast elke regel — nou, dat is niet mijn ding, ik word tractorchauffeur
- Wat is dit?
— *leest de opmerking tegenover de regel*.


— Wat is het verschil tussen Wit-Russische MTZ en Don 500 en K700?
- ??!.. De eerste is een tractor op wielen, gemaakt in Minsk, die vaak wordt gebruikt in lichte en middelzware landbouwproductie. Het heeft ook kleine wielen vooraan en grote wielen achteraan. De Don 500 is in feite een oogstmachine, en de K-700 Kirovets is een Sovjet-offroad-tractor op wielen voor algemeen gebruik, tractieklasse 5.
- geaccepteerd. Prima (!!!).
- Bedankt, Sergej Nikolajevitsj!!!

In mijn thuisland is praten over TractorA bijna hetzelfde als hier praten over SOLID.

Genie
Er was een genie in mijn groep. De leerling was vanaf de allereerste les erg laat en maakte de puzzel niet samen met alle anderen af. Toen vroeg ik hem om te doen wat ik voor iedereen had gepland voor de volgende les: op een vel papier voor zichzelf schrijven waarin hij geïnteresseerd is, wat hem interesseert. Volgens de resultaten had 'Genius' 2-3 regels: zoiets als 'Ik besef de nutteloosheid van het zijn'...

...Oh God, in mijn groep heb ik de tweede Lao Tzu en Kojima in één persoon...
De basis van elke programmering op... puzzels

Tot mijn verbazing beantwoordde hij in de eerste twee lessen echt briljant vragen over termen, maar het effect duurde niet lang. Het 'genie' stopte met het volgen van lessen en de volgende keer kwam hij alleen om het eerste laboratoriumwerk te halen, dat hij met succes voltooide. is niet geslaagt om objectieve redenen. Vervolgens heeft hij door ziekteverzuim op natuurlijke wijze schulden opgebouwd, die, zoals hij geloofde, Ik was eenvoudigweg verplicht hem, om zo te zeggen, ‘op broederlijke wijze’ te tellen.
Het niet bijwonen van paren + verhoogde hartslag was in strijd met de gevestigde principes van het bijwonen van mijn lessen. 'Genie' had maar twee manieren om uit de situatie te komen: zichzelf rehabiliteren (het verwachte pad) of de lessen opgeven en hopen op een 'C' van het decanaat om van de slapper af te komen.
Nou, dit is “geniaal”... je moet meteen “briljant” handelen. Deze jongeman kon niets beters vinden dan in de algemene dialoog op VK (waar ik en alle studenten in deze groep waren) een boze tirade met vloeken en beledigingen aan mij gericht te schrijven.

Hmm... Teleurstelling.
Het meest opvallende was dat hij, voordat de strafoperatie van de universiteitsdirectie was afgerond, besloot zich bij mij te verontschuldigen. Waarvoor? - Ik begrijp het oprecht niet. In die tijd was ik lange tijd onafhankelijk geweest van kritiek, vooral van zulke ronduit stomme kritiek. Mijn persoonlijkheid werd niet beïnvloed, maar de processen zijn processen, en als docent kon ik niet anders dan dit melden. Het bleek dat er tijdens zijn studie al zoveel klachten tegen hem waren verzameld dat deze zaak de laatste bleek te zijn. Hij werd verdreven. Uit het laatste jaar van de vakschool.
Misschien houdt hij me al een hele tijd in de gaten door de aanblik van een sluipschuttersgeweer, maar eerlijk gezegd kan het me niet schelen.
Eh, genie, je bent harteloos...

epiloog
Voor mij persoonlijk was de leservaring een van de meest verhelderende. Dit heeft mij geholpen mijn fundamentele kennis van programmeren te consolideren na mijn studie aan het instituut. Ik had vertrouwen in het door mij gekozen specialisme (het aanbod aan beschikbare specialiteiten). Van bijzonder belang is het feit dat de "stoutste groep" mij respect en vriendelijkheid heeft gegeven - dit is veel waard. Ik slaagde erin een weg te vinden naar hun innerlijke vernieuwers, probeerde de realiteit bij te brengen, en niet deze stereotiepe prioriteiten. Het is jammer dat we bij het coderen niet tot de “puzzel” zijn gekomen - wanneer iedereen een deel van de code zou moeten doen, en door alle delen tot één te verbinden, zouden we een groot werkprogramma krijgen...
Ik hoop dat ieder van hen dit op een dag zal voelen... maar voor nu staan ​​hieronder screenshots met recensies van verschillende studenten na 2 jaar.

De basis van elke programmering op... puzzels

Het is voor geen van hen te vroeg om conclusies te trekken over het succes van de carrière van een programmeur, omdat het grootste deel van deze groep nu aan een universiteit studeert. De tijd zal het leren.

Ik hoop dat het artikel nuttig was. Bedankt voor uw aandacht!
Creatief succes en positieve stemming, collega's!

Bron: www.habr.com

Voeg een reactie