Kun opiskelijat oppivat ohjelmoimaan tietojenkäsittelytieteen peruskursseilla, monilla on vaikeuksia peruskäsitteiden soveltamisessa. Cay Horstmann, SJSU:n tietojenkäsittelytieteen lehtori, halusi auttaa opiskelijoita harjoittelemaan omaehtoisesti, jotta heidän taitonsa kehittyisivät nopeammin. Opiskelijat pystyivät kuitenkin hakemaan vastaukset verkosta, koska samoja koodausharjoituksia käytettiin usein vuodesta toiseen. Horstmann tarvitsi tavan lisätä harjoittelun määrää niin, että vastauksia ei olisi helppo löytää.
San José State University auttaa opiskelijoita ohjelmoinnin perusteiden itsenäisessä opiskelussa
Rajallisen virtuaalikonekapasiteetin kanssa painivassa SJSU:n tietojenkäsittelytieteen laitoksessa alettiin hakea tapoja laajentaa resursseja, jotta tietojenkäsittelytieteen opiskelijat voivat tehdä rajattomasti ohjelmointiharjoituksia.
"Sunnuntaisin käytössä voi olla 20 virtuaalikonetta, kun oppilaat tekevät kotitehtäviään. Koneita otetaan käyttöön ja poistetaan käytöstä kuormituksen muutosten mukaan."
Cay Horstmann, Tietojenkäsittelytieteen lehtori, San José State University
Käytännönläheistä, todelliseen maailmaan perustuvaa koulutusta kaikille opiskelijoille
Omaehtoisen opiskelujärjestelmän merkitys on korostunut, kun esimerkiksi biologian, lain ja muiden alojen kuin tietojenkäsittelytieteiden opiskelijat hakevat ohjelmoinnista apua tutkimukseen tai tuottavuuteen. Ohjelmointi kuuluu nyt muillekin kuin aloitteleville kehittäjille.
"Tietojenkäsittelytieteen laitosten on valmistauduttava ohjelmointitaitojen lisääntyvään kysyntään" Horstmann kertoo. "Eri alojen opiskelijat ottavat tietojenkäsittelytieteen kursseja, jotka auttavat heitä omalla alallaan. Koska tietojenkäsittelytieteen kouluttajia on vähän, opiskelijoiden on opittava asiat itsenäisesti."
Cay kuuli Google Cloudin koulutusavustusohjelmasta Special Interest Group on Computer Science Education (SIGCSE) ‑ryhmän kautta ja haki tutkimusavustusta Google Cloud ‑avustuksen saamiseksi.Hän sai avustuksen, jolla hankkia haluamiaan Google Cloud ‑tuotteita.Hän käytti uusia työkaluja CodeCheck-järjestelmän kehittämiseen, joka arvostelee automaattisesti satoja ohjelmoinnin harjoitustehtäviä.
CodeCheck on verkossa toimiva ohjelma, joka auttaa opiskelijoita koodaamaan useilla ohjelmointikielillä. Lehtorit voivat muokata ohjelmointitehtäviä, jolloin opiskelijoiden on keksittävä omat ratkaisunsa sen sijaan, että hakisivat vastaukset verkosta. Koska tietojenkäsittelytieteen laitoksen palvelimet olivat jo jatkuvassa käytössä, Cay kehitti CodeCheckin käyttämään Google Compute Enginen virtuaalikoneita, joissa on rajoittamattomasti laskentatehoa. Hän valitsi Stackdriverin valvonta-, kirjaamis- ja diagnostiikkaominaisuuksiensa ja Cloud SQL:n skaalautuvuuden ja helppokäyttöisyyden vuoksi.
"Sunnuntaisin käytössä voi olla 20 virtuaalikonetta, kun opiskelijat tekevät kotitehtäviään. Koneita otetaan käyttöön ja poistetaan käytöstä kuormituksen muutosten mukaan", Horstmann sanoo.
Nyt SJSU:n tietojenkäsittelytieteen lehtorit voivat käyttää pilvipalveluja ohjelmoinnin opettamiseen huolehtimatta oppilaitoksen palvelinkapasiteetin riittävyydestä. Näin ryhmään voi kuulua entistä enemmän ja eri alojen opiskelijoita. Opetettuja aiheita ovat mm. järjestelmän etähallinta, kuormitusten skaalaaminen, kirjaaminen ja automaattinen käyttöönotto.
Opiskelijoiden kannustaminen omaehtoiseen opiskeluun
CodeCheck antaa koodiin liittyvää palautetta reaaliajassa, joten opiskelijat tietävät heti, hyväksyttiinkö heidän ratkaisunsa. CodeCheck jättää opiskelijan tehtäväksi keksiä, mikä meni väärin. Aikaisemmin opiskelijat joutuivat odottamaan palautetta useita viikkoja, jolloin he ehtivät helposti unohtaa, miten he päätyivät ratkaisuunsa.
Kyselyn mukaan opiskelijoiden mielestä verkossa olevat harjoitukset ovat hyödyllisiä. He eivät nolostu virheiden tekemisestä, eikä heillä ole paineita saada tehtävät valmiiksi tietyssä ajassa.
Horstmannin mukaan CodeCheck parantaa opiskelijoiden oppimis- ja koetuloksia. Sivuaineopiskelijoille suunnatulla kaksiosaisella Java-kurssilla CodeCheckia käyttävän ryhmän tulokset olivat 50 prosenttia paremmat kuin verrokkiryhmän. Ohjelmointikielen kurssilla CodeCheckia käyttävä ryhmä sai 20 prosenttia verrokkiryhmää paremmat pisteet Scheme-kielen koekysymyksistä. Ryhmät saivat samat pisteet kysymyksestä, jonka aihetta ei käsitelty harjoituskysymyksissä. Siirto-opiskelijoille tarkoitetulla C++ ‑kurssilla kaikkien opiskelijoiden oli tehtävä harjoitustehtäviä, ja kurssin lopussa havaittiin, että ongelmien ratkaisemiseen vaadittujen yrityskertojen määrä oli vähentynyt kolmanneksella kurssin alkuun verrattuna. Lisäksi opiskelijat ratkaisivat tehtävät puolessa ajassa.
Ohjelmoinnin opettaminen kaikille
Opiskelijat alkavat olla tottuneita pilvipalvelujen käyttäjiä, ja opetustyökaluja on kehitettävä tietojenkäsittelytieteiden ja muiden alojen opiskelijoiden tarpeiden mukaisesti. Vaatii valtavan käsitteellisen harppauksen siirtyä esimerkiksi yksinkertaisista, kuviin perustuvista tehtävistä silmukoiden luomiseen, koska silmukan on toimittava kaikkien syötteiden kanssa. Monet opiskelijat ymmärtävät periaatteen, mutta sen soveltaminen on käytännössä hankalaa. Kun opiskelija oppii mallin, hän alkaa ymmärtää, miten sen periaatetta voi soveltaa koodissa.
Automaattisen arvosteluohjelman avulla opiskelijat voivat aloittaa viisirivisellä koodilla. Kurssitehtävät voivat olla jopa 200 rivin mittaisia, joten viisi riviä voi vaikuttaa vähäiseltä. Tavoite kuitenkin on, että opiskelijat oppivat vähitellen ja alkavat soveltaa oppimaansa monimutkaisemmissa tehtävissä asteittain.
"Ohjelmointi on nykyään tärkeä taito liike-elämän, tieteen, lain ja journalismin asiantuntijoille... kaikille, jotka käsittelevät töissään dataa", Horstmann kertoo. "Perinteistä luento-labra-kotitehtävä ‑mallia seuraavat tietojenkäsittelytieteen pääaineopiskelijat reputtavat usein, joten mallia ei voi käyttää muunlaisten opiskelijoiden kanssa. Siksi käytän hyväksi todettua, kertaamiseen perustuvaa opetusmenetelmää."
"Ohjelmointi on nykyään tärkeä taito liike-elämän, tieteen, lain ja journalismin asiantuntijoille... kaikille, jotka käsittelevät töissään dataa."
Cay Horstmann, Tietojenkäsittelytieteen lehtori, San José State University
Automaattisen arvostelujärjestelmän käyttö saumattomilla backend-toiminnoilla
Cay voi käyttää Stackdriverin tehokkaita valvonta- ja diagnostiikkaominaisuuksia ongelmien vianetsinnässä ja automaattisen arvostelujärjestelmän asianmukaisen käytön varmistamisessa. Jos opiskelija esimerkiksi yrittää suorittaa ohjelman, joka poistaa muita ohjelmia tai sammuttaa koneen, automaattinen arvosteluohjelma estää komennon. Aikaisemmin Cay saattoi joutua viettämään tuntikausia selvittäessään ohjelmien vikojen syytä.
CodeCheckin tärkein tehtävä on helpottaa ohjelmoinnin harjoittelua kaikille opiskelijoille. Automaattisen arvosteluohjelman käyttö ei edellytä rekisteröitymistä tai kirjautumista. Kurssien opettajat voivat integroida CodeCheckin oppimisen hallintajärjestelmään, jolloin automaattinen arvosteluohjelma lisää opiskelijoiden pisteet. Cloud SQL varmuuskopioi tehtävät ja seuraa, miten paljon aikaa opiskelija käyttää niihin. Tämän integraation ansiosta opiskelijat voivat palauttaa tehtävän klikkaamalla "Tallenna pisteeni", jolloin ohjelmien palauttaminen käy helposti niin opettajien kuin opiskelijoidenkin kannalta.
"Ohjelmointi on tulevaisuudessa tärkeä taito muillekin kuin kehittäjille, ja tietojenkäsittelytieteen laitosten on sopeuduttava niin, että opiskelijat voivat oppia omassa tahdissaan", Horstmann sanoo. "CodeCheckin avulla opiskelijat voivat haastaa itsensä oppimaan myös opetustilan ulkopuolella."