Abstrakt. I detta dokument presenteras en strategi för inlärningsprogrammering av nybörjare genom ett webbaserat adaptivt utbildningssystem kallat ALEA (Adaptive LEArning). ALEA stöder lärande programmering genom att generera sekvenser av programexempel som fungerar som övningar för en inlärare. Sekvensen är anpassad till de enskilda elevernas behov. För närvarande innehåller ALEA mer än hundra exempel på Lisp- och Prologprogram. Programmet exempel presenteras som specifika fall av program schemata som underlättar förståelsen av grundläggande programmeringsprinciper. Vi har använt programmet schemata i att undervisa en introduktionskurs om funktionell och logisk programmering i nästan tio år. Fram tills ALEA-systemet utvecklades utgjorde programmet schemata en viktig del av föreläsningarna. För närvarande möjliggör ALEA effektivt förvärv av grundläggande programmering färdigheter genom användning av program schemata och anpassade sekvenser av program exempel. Vi diskuterar också vår erfarenhet av att använda webbaserat stöd för undervisningsprogrammering. Nyckelord: lärandeprogrammering, programschema, adaptiv pedagogisk hypermedia, webbaserade system Anpassning till elever och deras aktiviteter håller på att bli ett av de viktigaste kraven för webbaserade utbildningstillämpningar. Sådana tillämpningar bör därför ha en viss intelligensnivå för att på ett effektivt sätt kunna hjälpa och vägleda inlärare. Som ett svar, de flesta av de välkända teknikerna från området för intelligenta tutorial system blir gradvis omimplementeras för webben. De kombineras naturligt med adaptiv hypermediateknik [1]. Webbbaserade adaptiva hypermedia applikationer använder flera metoder för att uppnå anpassning. Anpassningen av det presenterade innehållet eller dess layout är den mest synliga och därför den mest populära. Genom att anpassa visualiseringen av samma innehåll får olika användare olika utdata utifrån sina nuvarande behov. Innehåll som belyser med hjälp av olika färger och/eller bilder är den mest använda tekniken. Anpassningen av innehållet innebär att infoga / flytta fragment, ändra fragment, sortering eller dimning fragment, etc. [2]............................................................... Typisk anpassning som används av adaptiva hypermediasystem är anpassning av navigering. När en användare följer en länk i en vanlig webbapplikation resulterar detta i att visa den begärda sidan. Anpassningssystem som ingår inkluderar vanligtvis ytterligare bearbetning i länkupplösning. Till exempel, om en användare klickar på en länk för att visa innehåll som är relaterat till ett koncept, kan systemet erbjuda dem ett antal sidor att läsa innan du presenterar den begärda sidan (om de inte har läst dessa sidor ännu). Adaptive navigation kan också användas som en generalisering av läroplanen sekvensering teknik i ett hypermedia sammanhang [3], vilket ger den mest lämpliga sekvensen av kunskapsenheter som ska läras av de enskilda inlärare. I detta dokument presenterar vi en strategi för webbaserat stöd för utveckling av programmeringsfärdigheter, som endast kan erhållas genom praktik. Att lära sig programmering är en process som uppenbarligen kräver att man studerar programmeringsprinciperna tillsammans med tillräcklig praxis. De befintliga webbaserade läroböckerna är lämpliga för studier av programmeringsspråkbegrepp. Endast ett fåtal av dem presenterar dock adaptiva pedagogiska tillämpningar; med andra ord kan innehållet och/eller navigeringen sällan anpassas till en students eller en students gruppkrav. ELM-ART-systemet är ett exempel på ett välkänt adaptivt utbildningssystem. Det stöder lärande programmering i Lisp. Det ger också ytterligare funktioner som är typiska för kursprogramhanteringssystem. Systemet implementerades först på 90-talet som en fristående plattformsberoende applikation och byggdes senare om till en webbaserad version [4]. Adaptive educational hypermedia application presented in this paper -ALEA (Adaptive LEArning) - bygger på idén om att lära grundläggande programmering genom program schemata konstruktion och förklaring. ALEA ger studenterna stöd för lärande programmering genom att generera adaptiva sekvenser av programmeringsuppgifter tillsammans med sina lösningar (kallas även programexempel). ALEA innehåller exempel på funktionella och logiska program [5]. Tidningen är organiserad enligt följande. Avsnitt 2 beskriver vårt sätt att lära ut programmering med hjälp av programschemata. Därefter diskuterar vi ALEA, en webbaserad adaptiv applikation som stödjer förvärv av programmeringsfärdigheter. En utvärdering av den beskrivna metoden för inlärningsprogrammering genom nybörjare och ALEA-användning presenteras i avsnitt 4. Dokumentet avslutas med en sammanfattning av arbetet och en kort diskussion om framtida forskning. Utformningen av ett stödverktyg för att lära programmering kräver en undersökning och fånga av arten av datorprogrammering. Detta kan göras genom att specificera relevant kunskap, hitta sätt att representera den och dra slutsatser om dess lämpliga användning för att generera rekommendationer till en student. Metoden för att lära ut programmering vi använder kan bäst karakteriseras som en förklaring och användning av program schemata. Detta var till stor del inspirerat av GeggHarrisons arbete [6, 7]. Det är också i full överensstämmelse med trenderna i Computer Science utbildning mot att representera standardiserade dataprogrammering kunskap som programplaner, program schemata, programmönster, eller program skelett [8, 7, 9, 10]. ALEA är ett allmänt pedagogiskt webbaserat adaptivt system. Vi använder den för att lära ut funktionell och logisk programmering, så för närvarande innehåller dess informationsutrymme texter om funktionell och logisk programmering samt funktionella och logiska programschemata tillsammans med programexempel. De exempel som används i detta dokument är relaterade till ämnet listbehandling i det funktionella programmeringsspråket Lisp. Vid hantering av olika problem, basprogram schemata bör användas i enlighet med olika programmeringstekniker. Den avgörande punkten är att känna igen ett program schema och sedan specialisera sig lämpligt dess generiska delar för att lösa ett problem. Detta är ett särskilt kunnande som en elev bör lära sig. För att uppnå detta lär sig studenterna om de typer av problem som förekommer oftast, och om programmet schemata som bäst motsvarar dessa typer av problem. Ett annat tillvägagångssätt som kompletterar det föregående består av att först presentera ett programschema för studenterna och sedan be dem att öva schema specialiseringar för att lösa givna problem. Den första metoden är baserad på att gå från specifika program exempel till program schemata (generalisering). Den andra metoden bygger på att gå från allmän till specifik (specialisering). Vi fann att det var fördelaktigt att ändra dessa två metoder för att förbättra programmens effektivitet. Som Navrat diskuterade i [11] är samspelet mellan generalisering och specialisering av avgörande betydelse för programverksamheten. Abstraktion och konkretisering används naturligt under programmering. Vi ser inlärningsprogrammeringsprocessen uppdelad i två delar: Studenter försöker förstå kärnan i programmeringsparadigmet (i detta fall funktionellt) genom att lära sig att korrekt känna igen ett programschema eller en kombination av programschemata som ska tillämpas i en given situation. Efter att ha erkänt programschemat är uppgiften att formulera den nödvändiga funktionsdefinitionen ofta ganska enkel. Läraren guidar och hjälper studenterna att organisera sina schemakunskaper i ett psykiskt bibliotek som möjliggör en mer effektiv användning av programschemata samtidigt som man löser mer komplexa problem. Detta kan uppnås genom att tillhandahålla mer praxis genom att lösa ett större antal enkla problem. Studenter övar sedan programmering på mer komplexa problem. Vid funktionell programmering utformar och genomför de en abstrakt datatyp (t.ex. set, tabell, array eller graf) baserad på dess specifikationer. Här kräver vi strikt följsamhet till den funktionella programmeringsstilen. Logisk programmering lärs ut genom att använda samma metod. Här beaktas naturligtvis specifika drag i det logiska programmeringsparadigmet, t.ex. backtracking eller variabla momentiation. De viktigaste fördelarna med det beskrivna tillvägagångssättet för undervisningsprogrammering är följande [9]: Användning av programschemata underlättar förståelsen av de grundläggande programmeringsprinciperna. Processen för att förvärva grundläggande programmering färdigheter påskyndas. Nybörjare skriver bättre program i den meningen att de bättre motsvarar det ansedda programmeringsparadigmet (vare sig det är funktionellt eller logiskt). I själva verket har eleverna inte någon större chans att tillämpa sina tidigare förvärvade procedurvanor, eftersom dessa snart kommer i konflikt med programmet schemata. Programschemata ger inte bara studenterna strukturerad programmeringskunskap, utan används också av läraren för bedömning av studenternas färdighet i programmering. ALEA syftar till att stödja den första delen av inlärningsprocessen. Det implementerar adaptiv navigering stöd med hjälp av två adaptiva hypermedia tekniker: lokal vägledning: genom att presentera "framåt" länkar, lokal orientering: genom att presentera en lista över begrepp som representerar den mest intressanta delen av ALEA information hyperspace med avseende på den enskilde elevens egenskaper; länkarna är i flera färger som uttrycker sin lämplighet för elevernas behov. Studenter som deltar i funktionell och logisk programmering är nybörjare i programmering (med avseende på det funktionella och logiska programmeringsparadigmet). Vi diskuterar här endast funktionella program som lämpar sig för demonstrationsändamål. I början tillämpas flera begränsningar till det presenterade funktionella programmet exempel: (1) den enda typen av data är listor inklusive atomer (antal och symboler); senare på prickade-par beaktas också; (2) ingen indirekt rekursion är inblandad; (3) inga åtgärder med biverkningar är inblandade. Andra program schemata presenteras gradvis när man går vidare till att lösa mer komplexa problem (t.ex. input/output). Eftersom listan är den grundläggande datastruktur som används i programmeringsspråket Lisp, är problemen i samband med listbehandling mycket lämpliga för att lära sig funktionell programmering av nybörjare. Ett speciellt program schema beskriver den typiska strukturen av funktioner som löser en klass av liknande problem. Vi definierar program schemata i ett Lisp-liknande språk [9], med hjälp av två typer av variabler: första ordningen variabler (Lisp funktion argument) och program schemata variabler (variabla funktionssymboler). Detta språk förenklas ytterligare i ALEA systemet, så att program schemata kan användas mer effektivt av nybörjare programmerare. Endast variabler som är viktiga för programschemat presenteras explicit. Exempelvis i programschemat för listkartläggning nedan är variablerna <Karta> och <Transform> programschemavariabler, och Lista är ett funktionsargument. Naturligtvis kan en funktion som motsvarar denna karta schemat ha fler funktion argument (utöver listan). (debun <Karta > (List) (cond ((Null Lista) nil) (t (cons (<Transform > (första Lista))) (<Karta > (rest Lista))) ) ) ) I listan bearbetning har vi identifierat fyra grundläggande klasser av typiska problem - minskning, kartläggning, filtrering och predikering (se bild. 1 )............................................................................................................... Program schemata som används för undervisning programmering är organiserade i hierarkier. Studenter lär sig linjär listbehandling, där bara toppnivåelement i listan behandlas och rekursiv listbehandling, där listor inom den givna listan behandlas rekursivt. Båda grupperna kännetecknas av samma klasser av problem. I de flesta fall av behandling av rekursiva listor är det dock fördelaktigt att betrakta argumentet inte som en lista, utan ett godtyckligt s-uttryck (ett binärt träd). Bilda. 2 visar reduktionsschemat (med fett och svans rekursion) som det presenteras för en student i ALEA systemet.  I ALEA program schemata tillämpas genom att definiera ett särskilt värde för varje schema variabel och slutföra ytterligare funktion argument. Den avgörande frågan i att tillämpa ett program schema för att lösa ett problem är förmågan att känna igen en situation när en kombination av program schemata är önskvärt, till exempel i ett problem där de delar av en lista som uppfyller ett givet villkor ska kartläggas och de andra som helt enkelt tas bort. Lösningen i detta fall är att kombinera ett program schema för en lista kartläggning och ett program schema för ett filter. ALEA presenterar varje programexempel med hjälp av tre informationsfragment: en problemdefinition, tips, en lösning eller flera alternativa lösningar tillsammans med förklarande anmärkningar. Eftersom ALEA riktar sig till nybörjare, är storleken på lösningar (program) i de flesta fall flera tiotals rader kod. Bilda. 3 visar ALEA-skärmen med lösningen av en programmeringsuppgift med hjälp av programschemat för listkartläggning. Problemet är att definiera en funktion som tar en lista som indata och returnerar en lista där alla s-uttryck från indatalistan som skiljer sig från ett givet nummer avbildas till "1" och alla andra avbildas till "0". Alla objekt i listorna presenteras som länkar som ger ett klick tillgång till motsvarande information innehåll. Varje objekt har en bakgrund av en av tre olika färger för att ange: rekommenderas (grön), besökt (blå) och lärt (vit) innehåll. En av de viktiga frågorna i behandlingen av undervisningslistor är den ordning i vilken eleverna blir bekanta med de olika programschemata. Par av liknande problem definieras för båda grupperna av program exempel (relaterat till linjär och rekursiv lista bearbetning). Ett exempel på sådana par av problem är att ersätta den första förekomsten av en given symbol i en lista med en annan symbol och på liknande sätt, att ersätta alla förekomster av denna symbol i listan. Vår erfarenhet under ett antal år är att eleverna kan klara av problem från den tidigare klassen bättre. Således ALEA erbjuder i början program exempel för att öva linjär list bearbetning. ALEA drar slutsatsen att det finns en sekvens av information som ska presenteras för en student som inte har behärskat tillräckligt ett specifikt programmeringskoncept (programschema). Det ökar antalet rekommenderade uppgifter för ett sådant koncept. Detta tillvägagångssätt kan karakteriseras som en direktivinstruktion [12] som är lämplig för nybörjare. Den instruktion som ges av ALEA utförs i följande cykel: Systemet presenterar en förklarande text, ett programschema eller ett programexempel. Inläraren svarar. Systemet leder till den bästa anpassningen för nästa steg i lärandet. Inläraren svarar med hjälp av lokala navigeringsverktyg (fram- och bakåtlänkar till vänster från titeln på det presenterade innehållet, se bild. 3 ) eller anger det presenterade materialets fattningsnivå (t.ex. knappen "Har lösts korrekt" se bild. Denna förordning träder i kraft den tjugonde dagen efter det att den har offentliggjorts i Europeiska unionens officiella tidning. Programdomänen för programmering ger oss en möjlighet att leda eleverna längs olika vägar genom informationsbasen. Några elever föredrar först att se en förklarande text relaterad till ett begrepp de lär sig, sedan en generalisering av det inlärda programmeringskonceptet (givet av programschemat) och slutligen att öva programmering genom att lösa givna uppgifter. Tips förbättrar inlärningsprocessen. Andra studenter föredrar att gå direkt på att lösa programmeringsuppgifter omedelbart efter att ha sett den förklarande texten (om någonsin), och först då de tittar på programschemat relaterade till uppgifterna och jämföra sina lösningar med den presenterade generaliseringen. De ovan nämnda sekvenserna representerar de gemensamma strategierna för lärandeprogrammering. Den första kallas "från allmän till konkret" och den andra "från konkret till allmän". Ett valt tillvägagångssätt avgör vanligtvis den ordning av begrepp som presenteras för eleverna. Adaptive learning with ALEA Adaptive hypermedia applications (Adaptive hypermedia applications) inkluderar följande nyckelmodeller [13, 14] : Domänmodell som beskriver informationsinnehållsstrukturen tillsammans med aktuellt innehåll. Användar-/miljömodell som innehåller användar- eller miljöspecifika data som ofta är relaterade till informationsinnehållet. Anpassningsmodell bestående av en specifikation av anpassningskunskap (ofta representerad med hjälp av regler) och en anpassningsmotor (ansvarig för att utföra en anpassning baserad på anpassningskunskapen enligt användar-/miljömodellen). Domänmodellen används för att strukturera hypermediainnehållet. Den består av begrepp och konceptrelationer [13]. ALEA-domänmodellen utnyttjar en typisk representation genom en graf där varje nod representerar ett begrepp och kanter representerar relationer mellan dem. Begrepp och relationer har ytterligare attribut (t.ex. typ, synlighet osv.). I enlighet med de allmänna hypermediamodellerna representerar och lagrar ALEA informationsinnehållet (t.ex. text, bilder) i informationsfragmentbasen separat från begreppen. Förhållandet mellan begreppen och informationsfragmenten kan vara M till N, dvs. Ett begrepp kan presenteras av flera informationsfragment och ett informationsfragment kan relatera till flera begrepp. Koncepten i ALEA-domänmodellen representerar programmeringskunskap som presenteras som programschemata och programexempel inklusive deras definition, tips och lösning, samt andra förklarande texter. Den nuvarande informationsbasen består av mer än hundra enkla problem för programmeringsspråken Lisp och Prolog. Applikationsdomänen beskrivs med hjälp av följande relationer (se exempel på en del av ALEA-domänmodellen för funktionslistabehandling på bild. 4) : has-subconcept: relation mellan två icke-specialiserade begrepp (typiskt förklarande texter), has-instance: relation mellan ett koncept och ett programexempel, has-schema: relation mellan ett koncept och ett programschema, likhet: relation mellan två eller flera liknande begrepp, förutsättning: relation som bestämmer i vilken ordning begreppen ska läras. ALEA-användarmodellen är av overlay-typ [1]. Den lagrar användarspecifika värden för varje koncept och sida eller informationsfragment. För varje besökt fragment antalet besök på sidan som visar fragmentet, samt datum för den senaste åtkomsten lagras i inlärarmodellen. För varje koncept lagras den uppskattade kunskapsnivån för detta begrepp av eleven. Inlärarens kunskapsnivå beräknas i enlighet med de regler som anges i anpassningsmodellen. För närvarande använder vi en enkel heuristisk baserad på antalet besök av särskilda koncept i kombination med användarens indikation på deras förståelsenivå (genom att använda en speciell knapp som visas i varje informationsfragment, t.ex. knappen "Har lösts korrekt" visas i bild. Denna förordning träder i kraft den tjugonde dagen efter det att den har offentliggjorts i Europeiska unionens officiella tidning. Användarens beteende registreras i en sekvens av åtgärder (t.ex., ContextClick, MarkUnderstand, Logga in, Logga ut, etc.) som också används för anpassning. De viktigaste uppgifterna för anpassningsmotorn är att välja det innehåll (inklusive förteckningen över länkar för lokal orientering) som ska presenteras för en inlärare och förbereda det för att passa elevens behov. I ALEA är kunskapen om adaptivt innehållsval uppdelad i tre skikt: (1) inlärningssekvenslager, (2) konceptlager och (3) informationsfragmentlager. Varje lager representeras separat med hjälp av villkor-åtgärdsregler, skrivna i XML. ALEA-anpassningsmotorn sluter sig till en mekanism för förkedjning framåt. Slutsatsen börjar med att man avfyrar startregeln för ett visst lager. Den regelbaserade slutledning som används i anpassningsmodellen genomförs som en separat modul som är oberoende av övriga delar av ALEA-systemet. Integrationen av denna modul med de andra ALEA-modulerna förverkligas genom de särskilda åtgärderna i den "dåvarande" delen av reglerna genom att använda olika namnrymder för de enskilda modulerna. För varje ALEA-modul finns ett prefix som bestämmer målet för en åtgärdsutförande. Inlärningssekvensskiktet innehåller en uppsättning regler som avgör vilka av de två lärandemetoderna som består av begreppssekvenser ("från allmän till konkret" eller "från konkret till allmän") som för närvarande ska användas. Reglerna definierar heuristik för att bestämma lämplig inlärningsstrategi med villkor som specificerar när särskild inlärningsmetod är användbar och åtgärder som specificerar numerisk värderingsförändring. Till exempel, den heuristiska att det är användbart att börja med att ge information relaterad till ett program schema uttrycks av följande regel: Om en användare besökte mindre än 10% av tillämpning domän begrepp, den numeriska poäng "från allmän till konkret" strategi ska ökas med 20. Konstanterna (10%, 20) här bestäms empiriskt. ALEA drar slutsatsen om det lämpligaste förhållningssättet för studenten i det specifika sammanhanget. Resultatet av regelutvärderingen representeras som en numerisk poängsättning. Lärande metoden med den större numeriska poäng väljs som den mer lämpliga. Systemet åberopar en ny utvärdering av lämpligheten hos en viss inlärningsmetod och grundar sig i första hand på omfattningen av det praktiska arbete som utförs av en viss användare. Metoden "från allmän till konkret" lämpar sig bättre för nybörjare, dvs. studenter med nästan ingen träning. Sådana elever är vanligtvis inte beredda att lösa problem individuellt. Även om de kan definiera en funktion med önskat input/output-beteende skulle programmeringsstilen och överensstämmelsen med ett programmeringsparadigm sannolikt utgöra ett problem. Regler för val av inlärningssekvens specificeras enligt denna heurism baserad på data som visar besökta och inlärda begrepp och andelen av begrepp, som redan erbjuds och visas för eleven (genom en lokal vägledning) och väljs direkt av en inlärare (med hjälp av sammanhangslänkar eller innehållet). Valet av begrepp drivs av den valda inlärningssekvensurvalet. Konceptskiktet representeras också av en uppsättning regler. Dessa regler anger länkar som kommer att visas, ordning och typ av dessa länkar, och nästa koncept som användaren kommer att se efter att han klickar på den framåt länken eller navigerar en sammanhangslänk. Processen för val av koncept börjar varje gång en användare begär ett koncept, dvs. Varje gång han klickar på en länk, genom att ladda reglerna för den för närvarande använda inlärningssekvensen tillvägagångssätt. Resultatet av tolkning av regeluppsättningen är en informationsstruktur som innehåller en förteckning över länkar med anknytning till det begärda konceptet. När en inlärare begär vägledning genom att klicka på länken framåt, föregås dock den ovan beskrivna processen för länkval av den process för val av begreppet "nästa" som ska visas. Systemet laddar en definierad uppsättning regler och resultatet av deras tolkning är en sekvens av ett eller flera begrepp som systemet föreslår för eleven att besöka. Processen för val av koncept förbättrades nyligen genom utvecklingen av ett externt rekommendationssystem som upptäcker mönster i elevernas beteende under lärandet och ger ytterligare en lista över begrepp baserade på upptäckta mönster [15] (se bild 5). Externa rekommendationer införlivade i ALEA. Syftet med informationsfragmentskiktet är att välja fragment från informationsfragmentbasen och producera den resulterande layouten av konceptpresentationen. Huvudkriteriet för att välja fragment för en presentation är typen av det valda konceptet. Till exempel är begreppet "programexemple" normalt relaterat till fragment av tre typer: definition, tips och en lösning. ALEA använder två grundläggande alternativ för en layout av sidan som innehåller ett programexempel. Det första alternativet är att ordna fragment med hjälp av flikar (på olika sidor) enligt bild. 3............................................................... Det andra alternativet är att ordna alla fragment relaterade till programmet exempel på en sida. Detta alternativ är mer lämpligt för mindre erfarna användare. Det är uppenbart att lösningsfragmentet inte kan visas som det första. En kombination av de ovan nämnda tillvägagångssätten är också möjlig, vilket placerar definitionen och tipsen på en flik och lösningen på den andra fliken. Det huvudsakliga syftet med ALEA är att hjälpa nybörjare programmerare att förvärva programmeringsfärdigheter. Att stödja lärarkommunikation är dock mycket viktigt i undervisnings- och inlärningsprocessen. Så vi utökade ALEA med grundläggande kommunikationsfaciliteter. Den första är möjligheten att lägga till egna kommentarer till varje visade koncept. Dessa kommentarer är synliga för andra användare (se bild). 3 ) och låta studenterna samarbeta under inlärningsprocessen. Instruktörernas kommentarer visas med en annan färg än den som används för studenter. Instruktören har möjlighet att ta bort kommentarer. Kommentarer kan också fungera som ett sätt att bedöma studenternas förståelse eller deras aktiviteter inom ALEA-systemet. En annan funktion är möjligheten att lära sig materialuppladdning, som ändrar domänmodellen genom att lägga till nya koncept och motsvarande informationsfragment. För närvarande stöder ALEA bara att lägga till nya programexempel. Studenter kan lägga till ett "programexempel" koncept som är relaterat till något icke-exempelkoncept (t.ex. programschema). Den enda information de behöver lämna är en beskrivning av programmeringsuppgiften och dess definition. Varken tipsen eller lösningen behövs. Ett sådant uppladdat koncept visas med hjälp av olika ikon, för att signalera att instruktören inte har godkänt det ännu. Instruktören har möjlighet att godkänna eller ta bort programexemplet och att redigera innehållet i det nyligen uppladdade konceptet. Efter ett lyckat godkännande av instruktören visas inte längre programexemplet med en annan ikon och det är som andra begrepp som definieras i kursens förberedelsefas. Omkring 100 studenter går denna kurs varje år. Vi har utvärderat vårt tillvägagångssätt och ALEA fokuserat på två huvudaspekter: Att bevisa eller vederlägga antagandet att undervisningsprogrammering med programschemata är effektivare och att studenternas framsteg är mycket snabbare (särskilt under inlärningsprocessens tidiga skeden), För att bevisa att ALEA tjänar väl sitt syfte att hjälpa studenter att förvärva praktik i programmering. När det gäller den första aspekten har vi påbörjat utvärderingen före utformningen av ALEA-systemet. Vi genomförde experiment som innehöll tester för vilka studenterna delades upp enligt två kriterier: om de fick en förklaring av programmet schemata och om det fanns en katalog av program schemata tillgängliga under testet. Slutsatsen var att kunskapen om programmet schemata var avgörande för att uppnå bättre resultat. Skillnaden mellan studenterna med tidigare information om programschemata och de som inte fick någon förklaring innan testet stödde hypotesen om den positiva påverkan av programschemata på lärande funktionell programmering. Studenterna, som fick undervisning relaterad till programmet schemata i förväg (även om de inte hade katalogen över programmet schemata till hands under testet) presterade bättre. Sedan ALEA-systemet först utplacerades har det använts av nästan 300 studenter under deras tredje studieår som en del av kursen Funktionell och Logisk programmering. Kursen består av två delar: funktionell programmering och logisk programmering, en halv termin vardera. ALEA-systemet registrerar åtgärder som utförs av varje student (t.ex. val av ett nytt koncept som inlärningsmål, klicka på sammanhangslänken, markera konceptet som inlärt, framåt som ett krav för lokal vägledning). Under ALEAs användning i kursens funktionella programmeringsdel var den oftast använda åtgärden att välja en kontextlänk (38 %), dvs. klickar på länkarna som visas i den vänstra delen av ALEA-skärmen som visas i bild. 3............................................................... Den näst vanligaste åtgärden var en begäran om lokal vägledning (29 %). Dessa resultat påverkades av det faktum att det fanns flera studenter specialiserade på att uppnå särskilda inlärningsmål (studenterna använde ALEA för att förbereda sig för ett halvtidstest på listbehandling). De mest använda informationsfragmenten var de som innehöll programmet schemata. Visar lösning fragment av program exempel markant undernumrerade krav för presentation av tipsfragment. Det vanliga beteendet hos studenterna var dock att de använde tips för de första programexempelen relaterade till ett visst programschema och sedan bara gick vidare till definitions- och lösningsdelarna. ALEA utvärderades också genom flera frågeformulär. Majoriteten av eleverna svarade positivt. Den mest värdefulla egenskapen som rapporterats av studenterna var den fokuserade visningen av rekommenderade begrepp (kontextlänkar). Flera elever rapporterade att de har använt den lokala vägledningen mindre ofta än den lokala orienteringen främst på grund av deras misstag att använda webbläsaren framåt och bakåt knappar istället för ALEA framåt och bakåt lokala vägledningslänkar. Genom att använda webbläsarknapparna av misstag i stället för ALEA-guiden orsakades förvirring. Studenterna bekräftade också att metoden "från allmän till konkret" är mer lämplig i början av programmeringen. Denna artikel behandlar en webbaserad adaptiv hypermedia-applikation, ALEA, inriktad på att tillhandahålla adaptiva sekvenser av programexempel kompletterade med en förklaringstext. ALEA förbättrar studentens inlärningsprocess genom att välja de mest lämpliga programexempelen för att lära sig programmeringskoncept. Genom att använda systemet i programmeringsmodulen kan behovet av slutna labbsessioner minska. ALEA är inte begränsat till området funktionella eller logiska programmeringsspråk. Grundidén är att erbjuda anpassade sekvenser av programexempel som varken begränsas av ett programmeringsparadigm eller av ett programmeringsspråk. Väsentlig idé relaterad till den anpassningskunskap som finns representerad i ALEA är definitionen av tre separata skikt där systemets beteende kan anpassas: inlärningssekvensskiktet, konceptlagret och fragmenturvalslagret. ALEA:s framtida utveckling kommer att inriktas på att förbättra anpassningsförmågan och ytterligare experimentera med anpassningsteknikernas effektivitet. Den beskrivna metoden, baserad på programschemata, antogs för undervisningsprogrammering före genomförandet av ALEA. Tillvägagångssättet följer tanken att studenterna genom att snabbt komma till insikt om hur man löser ett ganska blygsamt antal grundläggande klasser av problem kommer att kunna lösa andra mer eller mindre liknande problem. Hypotesen att nybörjare kan utforma korrekta funktionella eller logiska program snabbare när man använder programschemata, om man jämför med den "traditionella" metoden, verifierades experimentellt. För närvarande utökar vi ALEA:s domänmodell med programmeringsexempel relaterade till programmeringsspråken Java och C++. Vi planerar också att utöka elevernas bedömningsförmåga genom att kombinera ALEA med ett system för att testa elevens kunskapsnivå (vi överväger webbaserade system för allmänna ändamål för testning, såsom SIETTE [16] tillsammans med ett speciellt webbaserat system för testning av programmeringskunskap, som för närvarande utvecklas). En annan intressant inriktning för framtida forskning är att överväga olika begränsningar som definieras av studenten (t.ex. tid tillgänglig för provberedning) för att förbättra konceptval. I denna forskning kommer vi att använda data om studenters beteende som samlats in under tidigare år.
ALEA:s utbildningssystem för inlärningsprogrammering REF tillhandahåller en anpassningsbar navigering baserad på relationer i konceptskiktet i domänmodellen.
An adaptive web-based system for learning programming
{'venue': 'Int. J. Continuing Engineering Education and Life-Long Learning, Interscience', 'journal': None, 'mag_field_of_study': ['Computer Science']}