Tips från coachen

Små korta tips och trix till den som jobbar med webbprogrammering och webbutveckling.

Rättningsverktyget Umbridge

Umbridge är ett verktyg för att automaträtta inlämningar i programmeringskurser.

Källkoden för verktyget kan ni hitta på GitHub.

#Hur det funkar

Det finns enhetstester kopplade till varje inlämning. Enhetstesterna är skrivna så att de täcker upp alla kraven. På så sätt är vi 99% säkra på att studenten har utfört uppgifterna på lämpligt sätt för att uppnå godkänt om alla tester passerar.

Översikt av Umbridge

Översikt av Umbridge

Processen består av fyra steg, där egentligen det bara är steg två och tre som är en del av Umbridge.

  1. Förberedelse fasen. Studenten laddar upp sin kod så den finns tillgänglig för Umbridge och lämnar in på Canvas.

  2. Var 5:e minut kopplar Umbridge upp sig mot Canvas och samlar in alla inlämningar som inte är rättade.

  3. För varje inlämning laddar Umbridge ner studentens kod och kör testerna. Om testerna passerar sätts betyget PG (preliminärt godkänt) annars sätts Ux (komplettering). När betyget sätts skickar Umbridge också med en loggfil med utskriften av testerna och en länk som kan användas för att titta på studentens kod.

  4. Sista steget i processen är att en rättare kollar igenom alla inlämningar som har betyg PG. Rättaren dubbelkollar innehållet i loggfilen, läser igenom redovisningstexten och kollar på studentens kod.

Det sista steget är viktigt för att säkerställa att studenterna inte skriver kod för att lura testerna och för att inspektera hur bra koden är skriven. Då kan rättaren ge feedback på hur koden är skriven, om den bör förbättras.

#Syfte

Varför valde vi att börja med automaträttning och varför utvecklade vi systemet själva istället för att köpa in en färdig tjänst?

Det finns främst två anledningar till att vi började med automaträttning, tid och snabb återkoppling. Studenter behöver inte vänta i några dagar på att en rättare ska få tid att kolla på deras inlämningar. Istället kan studenten själv köra testerna som finns innan inlämning för att vet om de är klara eller inte. Samtidigt kan de se vad som är fel, som de behöver fixa. Studenterna kan också jobba iterativt och nästa lite TDD. Forskningen visar också på att det är bra för studenter när de kan få återkoppling direkt om de är klara eller inte. I sektionen Forskning kommer vi, en vacker dag när vi har tid över, sammanfatta hur forskningsläget ser ut för automaträttning. Rättningen går väldigt mycket snabbare när rättarna bara behöver kolla på inlämningar som de vet har uppnått kraven för inlämningen, de slipper laddar ner kod och köra kod som inte alltid funkar. Det är tid vi kan lägga på att vara aktiva i chatten eller utveckla kursen istället.

Vi valde att utveckla ett eget system för att existerande tjänster kostar väldigt mycket pengar och vi anser inte att tjänsten är komplex nog att förtjäna sin prislapp. Sen är vi också väldigt förtjusta i konceptet “kan själv”, budord 3. Vi behöver också öva och lära oss nya saker, som vi kan använda i våra kurser. Därför var detta ett ypperligt tillfälle att utveckla ett eget verktyg.

#Forskning

Vad säger forskningen om automaträttade uppgifter?

TO-DO

#Revision history

  • 2021-06-22: (A, aar) Första versionen.

Document source.

Read more »

Hur ber man om hjälp med kod i chatten?

Det händer ofta att koden vi skriver inte fungerar och vi kan inte komma på varför själva. Då är det bra att det finns ett community där vi kan be om hjälp, där kommer våra chatter in i bilden där lärare och andra studenter kan hjälpa oss. Här ska vi lära oss hur vi kan utforma vår fråga så att vi får svar så snabbt som möjligt.

Read more »

Hur man tänker som en programmerare och problemlösare

Jag hittade en intressant artikel om hur man tänker som en programmerar och hur man blir bättre problemlösare. En av programmerares viktigaste kunskaper är problemlösning, att kunna bryta ner stora komplexa problem. Det räcker inte med att kunna syntaxen för ett programmeringsspråk. Utan man behöver vara duktig på problemlösning för att bli en bra utvecklare.

Read more »

Flask som CGI-skript

När man sätter en Flask-applikation i drift tillsammans med en webbserver finns det flera alternativ. Ett av de enklaste är att använda CGI för att köra din Flaskapplikation. För att köra Flask på studentservern behöver vi ett CGI-skript.

På studentservern kan du köra CGI-skript på detta sättet. Så här gör du för att koppla ett CGI-skript till din Flaskapplikation.

Read more »

Category: python, flask, kurs oopython.

Radbrytning i Python

Ett vanligt validerings fel är line-to-long, vilket kan vara svårt att lösa ibland. Här ska vi lära oss olika sätt vi kan bryta ner lång rader på.

Read more »

Category: python.

Använd TIMESTAMP för status i databastabellen

Vi tar en databastabell för användare och vi vill veta när användaren skapades, senast uppdaterades, om användaren är aktiv och om användaren är raderad (soft-deleted). Det är vanlig status som kan påverka hur en användare skall hanteras.

Låt oss se hur vi kan hantera detta med tidsstämplar i tabellen.

Read more »

Category: mysql, sql, kursen databas.

Vad returnerar en SQL UPDATE i Node.js och MySQL/MariaDB?

När man gör en SQL UPDATE, eller INSERT/DELETE så genereras inte ett resultset från en sådan query. Du är troligen van vid att köra dessa queries i terminalklienten eller i Workbench och du får svaret om uppdateringen gick bra eller inte.

Men hur ser det ut när du köra samma kod från ett annat klientprogram, till exempel JavaScript i Node.js via npm-modulen mysql mot en databas som är MySQL/MariaDB?

Vad returneras från en sådan UPDATE-sats?

Read more »

Category: mysql, javascript, npm mysql, sql, kursen databas.

Visa dolda tecken i texteditorn Atom

I textfiler kan det finnas dolda tecken som inte kan skrivas ut då de inte representeras av ett traditionellt synligt tecken.

Det kan vara tecken som är tabbar \t, olika typer av radbrytningar som \n, \r\n eller \r eller non breaking spaces, hårda mellanslag. Dessa representeras normalt av mellanslag eller visas inte alls i din texteditor.

Alla dessa syns normalt inte i texteditor, men de kan ha olika effekt när vår text visas eller våra program körs.

Read more »

Category: texteditor.

Låt PHP-funktion make_clickable() automatiskt skapa klickbara länkar

Har du texter som innehåller länkar till webbplatser och du vill automatiskt göra dessa till klickbara HTML-länkar? Då kan en funktion som make_clickable() hjälpa dig.

Read more »

Category: php, textfilter.

Skriv för webben med Markdown och formattera till HTML med PHP (v2)

Markdown är ett ofta använt sätt för att låta en användare skriva texter som är läsbara i råformat men enkelt kan formatteras till HTML.

Read more »

Category: php, markdown, textfilter.