på sekundärnivå lärs grundläggande datavetenskapskoncept och praxis i kurser som vanligtvis inom IT-karriärklustret under paraplyet karriär och teknisk utbildning (CTE). Men CS-begrepp och praxis införlivas också alltmer i akademiker och även valfria ämnen (och påverkas av konst och design).
oavsett disciplin, att skapa beräkningsartefakter är en av de centrala CS-metoderna som eleverna konsekvent bör uppleva för att bli bättre problemlösare. Beräkningsartefakter kan innehålla bilder, videor, presentationer, ljudfiler och datorprogram.
exakt och konsekvent övning i datorprogrammering (CP) hjälper eleverna att konstruera tvärvetenskaplig kunskap i kombination med både akademiska och CS-begrepp och praxis. Eftersom CP är processen att skriva ett program från början till slut, får eleverna exponering i sammanslagningen av praxis 3-6 som finns i K-12 Computer Science Framework.
så, hur kan vi framgångsrikt engagera studenter i CP? Så här kan vi göra det i fyra stora steg.
Steg 1: Identifiera problemet
när eleverna är nya på CP börjar vi vanligtvis lära dem hur man programmerar och kodar med hjälp av handledning. Även om det inte är något fel med det, vill vi inte behålla dem där.
vanligtvis har författaren av en handledning redan identifierat både problemet och lösningen av programmet. Det bästa sättet för barn att lära sig är att skriva egna problem och lösningar och skapa egna program. Annars kommer de att fokusera mer på att lära sig att koda specifika funktioner på ett visst språk, vilket i allmänhet inte skiljer sig från rote-memorering, vilket bör ersättas med utvecklingen av arbetsminnet.
identifiera (eller definiera) problemet är den mest kritiska delen av CP processen som studenter kommer att behöva utveckla en konkret plan för vad deras fullständiga program kommer att göra. Denna process innefattar att identifiera både de kända ingångarna (eller givna data) och vad som ska erhållas via utgångar (resultatet). Även om CP inte är en enkel process, kommer konsekvent och exakt övning att bygga studentförtroende över tiden för att artikulera detaljerna om vilken typ av inmatning, bearbetning och utmatning som önskas för sina program. För att få eleverna började i programmering, läs denna stora intro till en lektion för att bygga och dela program genom Code.org.
steg 2: Hitta en lösning
för att hitta eller planera lösningen på problemet som identifierats i steg 1 kan eleverna antingen skapa ett flödesschema eller skriva pseudokod. Erfarna programmerare kan och kommer att använda någon av dessa metoder för att förmedla programutveckling till kunder, lärare etc.
ett flödesschema är en steg-för-steg-lösning på ett problem som använder en bildrepresentation av programmets riktning och består av pilar, lådor och andra symboler som representerar åtgärder (dvs. input/output, process etc.). Pseudokod liknar engelska och används för att förmedla lösningen med mer noggrannhet än på vanlig engelska — men med mindre noggrannhet som krävs av ett formellt programmeringsspråk.
lösningsprocessen gör det möjligt för programmeraren att fokusera på programmets logiska flöde utan att behöva följa den faktiska syntaxen som används av programmeringsspråket för projektet. Kolla in den här roliga Technovation-lektionen för att hjälpa dina elever att planera sin kod.
steg 3: kod it
ofta är kodning förvirrad med programmering, men kodning är bara en del av programmeringsprocessen. Bra kodare kan skapa instruktioner från lösningarna (diskuteras i steg 2) och skriva dem i kod för att datorn ska förstå. Det är här de algoritmiska designfärdigheterna från beräkningstänkande spelar in.
det hjälper när du tänker på ditt problem som ett matematiskt problem, inte för att du alltid gör mycket matematik medan du programmerar, men för att tankeprocessen är densamma. I matematik använder vi ofta algoritmiska uppsättningar instruktioner som vi följer i en sekvens av steg för att uppnå ett mål. Den processen liknas vid både ett väl detaljerat flödesschema och kod (i ett specifikt programmeringsspråk).
öva kodning hjälper eleverna att förstå att kodning inte är komplicerat när de lär sig att tänka logiskt och i steg. Att få eleverna började med att skriva enkla program kommer att lära dem hur man ger datorer instruktioner, hur datorer faktiskt fungerar och att bra kodare inte är vaga och inte hoppa över steg. De kommer också att förstå att koden De skriver bearbetas (översatt) av en kompilator till maskinspråk för körning.
för barn som är nya för kodning rekommenderar jag att du börjar med ett visuellt programmeringsspråk (VPL), vilket gör att barnen kan beskriva sina algoritmer med hjälp av illustrationer och låter kodare beskriva processen i termer som är meningsfulla för dem.
här är några populära VPLs:
- Scratch, ScratchJr
- Blockly
- Ardublock (block programmeringsspråk för Arduino)
- ROBOLAB (programmeringsspråk för LEGO Robotics)
- ROBOTC (grafisk för VEX Robotics)
- LabVIEW (National Instruments)
även om det finns flera sätt att få eleverna igång i kodning, rekommenderar jag starkt att hela skolan deltar i en Hour of Code och också lär barnen att koda inom ramen för en STEM/STEAM design challenge.
steg 4: Testa det
testning i CP är en kritisk process som används för att bestämma kvaliteten på ett program och hitta fel (problem). Som college-praktikant introducerades jag först för att testa och felsöka ActiveX-kontroller i Visual Basic-programmeringsspråket. Även om testning har olika nivåer och kommer att avgöra om program fungerar eller inte — arbetar för att hitta buggar för mjukvaruutvecklare att korrigera var mycket kraftfull för att hjälpa mig att förstå kvaliteten på de program jag använde varje dag och även vikten av att uppdatera dem regelbundet.
kräver studenter att presentera sitt arbete offentligt, är en utmärkt teknik för att engagera och ingjuta i dem vikten av testprocessen för att diskutera och visa upp hög kvalitet CS arbete. Återigen är App Lab (i steg 1) en bra lektion och ett projekt för att hjälpa barnen att lära sig CP från början till testning.
CP för olika betygsnivåer
datorprogrammering kan läras på alla betygsnivåer. Här är några verktyg att använda med olika åldrar och nivåer av elever.
betyg 3-8: littleBits kod Kit. Koden kit är utrustad med elektroniska byggstenar och en app med kodning tutorials, och är en utmärkt byggnadsställning för att lära eleverna begreppen kodning, ljus, ljud och rörelse i samband med en design utmaning eller uppfinning.
vad jag tycker är mest kraftfullt om kodsatsen är appen eftersom den hjälper användarna att bli grundade i grundläggande kodningsprinciper. En bra kodare, oavsett språk eller kodningsupplevelse, måste förstå grunderna-som input / output, loopar, funktioner, variabler och även logik. Framgång avser alltid att utveckla intern självbehärskning av grunderna. Som Dr Stephen R. Covey, författare till de 7 vanorna hos mycket effektiva människor, sa en gång: ”Sätt första saker först.”
kodpaketet fungerar också tillsammans med alla utbildningsresurser som en lärare skulle behöva, inklusive lektionsplaner, studentutdelningar och anpassning till nästa generations Vetenskapsstandarder. Många av resurserna testades och utvecklades av littleBits Lead Educator Cohort 2017 och som en stolt medlem var jag mycket lycklig att ha arbetat och lärt mig med en så begåvad grupp Lärare!
betyg 6-8: robotik. Att få barn att börja programmera är ganska enkelt. I min tidigare roll som läroplanspecialist använde vi Lego Mindstorms robot som intro. Dessa var de steg vi tog för att hjälpa barnen att förstå nyckelbegrepp, samt programmering:
- bygga sina robotar. Nästan alla barn älskade den här delen.
- lär dig grunderna. Genom att utforska handledning lärde de sig om motorer, sensorer, växlar och andra komponenter.
- lär dig att programmera. Tegelstenen hade sex inbyggda uppdrag, vilket gjorde det möjligt för eleverna att se hur man får roboten att röra sig med motorer och svara på beröring eller rörelse med sensorer. När de blev mer vana vid de inbyggda programmen började de skapa egna program med hjälp av ROBOLAB-programmeringsblock.
- Anslut till CS och STEM. Vi fann att detta hjälpte till att belysa begreppen och praxis för både mönsterigenkänning och algoritmisk design. Och sedan, naturligtvis, lektioner i CS och STEM, som inkluderade kodning, kraft och rörelse, och design och teknik. Vi fann också att VEX IQ Kit var bra för liknande ändamål och vi använde både VEX och Lego, baserat på de olika tävlingsevenemang som våra studenter deltog i.
betyg 8-12: avancerad robotik. För gymnasieelever som redan har övat kodning med hjälp av en VPL och antingen har eller behärskar grundläggande programmeringsprinciper, är nästa steg att få dem kodning i ett eftertraktat programmeringsspråk som JavaScript, Python, Pearl eller C++. Lyckligtvis programmerar en robot som VEX EDR ger gymnasieelever en introduktion till denna värdefulla inlärningsupplevelse. Studenter som programmerar VEX EDR lär sig att använda ROBOTC C-baserat programmeringsspråk och kan se effekterna av koden De skriver i realtid genom att lösa problem med hjälp av konstruktionsprocessen.
jag började nyligen lära mig att programmera VEX EDR när jag deltog i en teknisk Designkurs med International Technology and Engineering Educator ’ s Association. Det var där jag träffade och samarbetade med Tim Oltman-årets Martha Layne Collins gymnasielärare. Han och medläraren Shane Ware har stor erfarenhet av att lära barn att programmera robotar för olika VEX robotics konkurrenskraftiga evenemang och har vunnit många utmärkelser i Kentucky.
jag frågade Tim för hans tankar om hur lärare ska gå vidare när man flyttar barn från programmering i en VPL till ett C-baserat program som för VEX, och han sa, ”först bygga relationer med dina elever, och sedan lära sig med dem. Låt dem se dig försöka misslyckas, och de kommer att njuta av att kämpa genom processen med dig. Så småningom kommer de att överträffa dig och bli lärare.”
Jorge Valenzuela är en pedagogisk tränare och en doktorand lärarassistent vid Old Dominion University. Han är också ledande tränare för livslångt lärande definierat, Inc., en nationell fakultet för Buck Institute for Education, en nationell lärareffektivitetscoach med International Technology and Engineering Educators Association (Iteea) och en del av Lead Educator-programmet för littleBits. Du kan ansluta till Jorge på Twitter @JorgeDoesPBL för att fortsätta konversationen.