Wanneer studente in die inleidende rekenaarwetenskapkursusse leer om te kodeer, sukkel baie van hulle om die grondbegrippe toe te pas. Cay Horstmann, RW-dosent by SJSU, wou studente help om programmering op hul eie te oefen sodat hulle hul vaardighede vinniger kon verbeter. Ongelukkig, aangesien koderingprobleme dikwels jaar na jaar hergebruik word, kon studente die oplossings maklik aanlyn vind. Professor Horstmann het 'n manier benodig om meer oefengeleenthede te bied, sonder dat dit maklik was om die antwoorde iewers te kry.
San José State University ondersteun studente om hulself die grondbeginsels van programmering te leer
Weens beperkte virtuelemasjienkapasiteit, het SJSU se rekenaarwetenskapdepartement 'n manier gesoek om hulpbronne uit te brei ten einde onbeperkte programmeringoefeninge vir rekenaarwetenskapstudente te fasiliteer.
"Op 'n Sondagaand wanneer studente besig is met hul huiswerk, kan daar 20 virtuele masjiene aan die loop wees. Soos die werklading verander, sal die masjiene outomaties aanpas."
Cay Horstmann, Dosent in rekenaarwetenskap, San José State-universiteit
Opstelling van praktiese en realistiese opleiding vir alle studente
Om 'n stelsel te skep waarmee studente hulself kan leer het belangriker geword aangesien studente van nierekenaarwetenskaplike agtergrond, soos biologie of regsgeleerdheid, 'n belangstelling in programmering ontwikkel het as 'n manier om met hul navorsing te help of om meer produktief te wees. Programmering is nie meer net vir aspirantontwikkelaars nie.
"RW-departemente moet voorberei vir hierdie verskuiwing in die aptyt vir programmeringvaardighede," sê Horstmann. "Studente uit alle dissiplines neem rekenaarwetenskapklasse om hulle te help om meer doeltreffend op hul eie gebied te wees. Aangesien daar 'n tekort aan RW-instrukteurs is, moet studente deur middel van 'n selfonderrigpraktyk kan leer."
Cay heard about the Google Cloud Education Grants program through the Special Interest Group on Computer Science Education (SIGCSE) and applied for a research grant to receive Google Cloud credits. He was awarded the credits to use for any Google Cloud product. He used the tools to develop the autograder, CodeCheck, with hundreds of exercises for students to practice programming.
CodeCheck is 'n webgebaseerde program wat ontwerp is as hulpmiddel om studente te leer om in enige van verskeie tale te programmeer. Dosente kan die programmeringprobleme pasmaak, sodat studente hul eie oplossings moet skep en nie bloot die antwoorde aanlyn kan vind nie. Aangesien rekenaarwetenskapdepartemente se bedieners reeds op volle kapasiteit geloop het, het Cay CodeCheck gebou met gebruik van Google Compute Engine – virtuele masjiene met onbeperkte rekenaarwerkkrag. Hy het Stackdriver gekies vir kontrolering, rekordhouding en diagnostieke, en Cloud SQL vir die skaleerbaarheid en gemak.
"Op 'n Sondagaand wanneer studente besig is met hul huiswerk, kan daar 20 virtuele masjiene aan die loop wees. Soos die werklading verander, sal die masjiene outomaties aanpas," sê Horstmann.
Nou kan RW-dosente by SJSU wolkrekenaars gebruik om programmering te onderrig, sonder om bekommerd te wees oor die kapasiteit van die instelling se bedieners. Dit maak dit makliker om 'n groter aantal studente te akkommodeer, insluitend diegene wat ander grade as rekenaarwetenskap volg. Studente leer oor die bestuur van 'n afgeleë stelsel, skalering van werkladings, loglêers en geoutomatiseerde implementering.
Aanmoediging aan studente om hulself te leer
CodeCheck gee aan studente intydse terugvoer oor hul kodering, sodat hulle onmiddellik weet of hul oplossing suksesvol was. CodeCheck sê nie vir studente wat hulle verkeerd gedoen het nie – dit moet hulle self uitwerk. In die verlede het studente nie terugvoer oor hul werk gekry tot weke nadat dit ingedien is nie. Teen daardie tyd het hulle dikwels reeds die proses wat hulle gevolg het om by die oplossing uit te kom, vergeet.
Opnames toon dat studente dit waardevol vind om 'n aanlyn oefenhulpbron te hê. Hulle is nie verleë as hulle 'n fout maak nie en voel nie onder druk om die taak in 'n spesifieke tyd te voltooi nie.
Volgens Horstmann bevorder CodeCheck ook leerders se studie- en toetswerkverrigting. In 'n sekondêre Java-kursus met twee afdelings, het die afdeling wat CodeCheck gebruik het, 50% beter gevaar as die kontrolegroep. In 'n programmeertaalklas het die afdeling wat CodeCheck gebruik het, 20% beter gedoen in Skemaprogrammeringvrae as die kontrolegroep. Vir een vraag wat nie in die voorbereidende vrae was nie, het die twee groepe gelyk gevaar. In 'n C++ -klas vir oordragstudente waar almal oefenprobleme moes uitwerk, het die gemiddelde aantal pogings per probleem gedaal met 'n derde tussen die begin en die einde van die kursus, en die gemiddelde tyd om die oefeninge te voltooi is gehalveer.
Leer almal hoe om te programmeer
Studente is besig om natuurlike wolkgebruikers te word, en opvoedkundige nutsgoed moet ontwikkel om studente in RW te kan dien, sowel as dié in ander dissiplines. Wanneer studente byvoorbeeld vorder van basiese prentgebaseerde probleme na die skep van luslope, is dit 'n groot konseptuele sprong, aangesien die lusloop vir alle insette moet werk. Baie studente verstaan die konsep, maar dit is baie moeiliker om dit toe te pas. Sodra hulle 'n patroon leer, begin hulle verstaan hoe om die konsep op kode toe te pas.
Met die outonasiener kan studente klein begin met vyf reëls kode. Wanneer studente 200 reëls kode vir 'n klasopdrag moet skryf, kan vyf reëls na baie min lyk, maar die doel is om studente in klein inkremente te laat oefen en geleidelik dit wat hulle leer op meer komplekse opdragte toe te pas.
"Programmering is 'n vaardigheid van die 21ste eeu vir sakelui, wetenskaplikes, regsgeleerdes, joernaliste … vir enigiemand wat met data werk," sê Horstmann. "As ons groot druipsyfers ervaar met die tradisionele klas-laboratorium-huiswerk-model by ons RW-hoofvakstudente, gaan dit verseker nie vir die ander studente werk nie. Dit is hoekom ek die beproefde 'leer-deur-herhaling'-metode gebruik."
"Programmering is in die 21ste eeu 'n vaardigheid vir sakelui, wetenskaplikes, regsgeleerdes, joernaliste … vir enigiemand wat met data werk."
Cay Horstmann, Dosent in rekenaarwetenskap, San José State-universiteit
Outonasiener loop met probleemvrye agtergrondbewerkings
Stackdriver bied kragtige kontrolering- en diagnostiese vermoëns wat Cay toelaat om probleme op te los en te verseker dat studente die outonasiener behoorlik gebruik. As 'n student byvoorbeeld probeer om 'n program uit te voer wat ander programme uitvee of die masjien afskakel, is die outonasiener ontwerp om so 'n bevel te blokkeer. In die verlede het Cay soms ure spandeer om programme te ontfout en om die oorsaak van 'n probleem te vind.
Die hoofdoel van CodeCheck is om die haakplekke vir studente wat programmering wil oefen, uit die weg te ruim. Studente hoef nie te registreer of aan te meld om die outonasiener te gebruik nie. Dosente kan CodeCheck met die studiebestuurstelsels integreer. Studente werk direk in die studiebestuurstelsel en die outogradeerder lewer die studente se resultate. Cloud SQL hou 'n rekord van hoe lank 'n student aan 'n opdrag werk en rugsteun dit outomaties. Met hierdie integrasie kan studente net op "Teken my punte aan" klik om 'n werkopdrag in te dien, wat programindiening vir dosente en studente maklik maak.
"Aangesien programmering besig is om 'n toekomsvaardigheid te word teenoor 'n vaardigheid net vir ontwikkelaars, moet rekenaarwetenskapdepartemente aanpas sodat studente volgens hulle eie tempo kan leer," sê Horstmann. "Met CodeCheck kan studente hulself uitdaag om verder te leer buite die klaskamer."