Utredning av behörighetskraven för datalogimastern Viggo Kann, 2015-05-31 Bakgrund ======== Behörighetskraven för datalogimastern sänktes inför antagningen till höstterminen 2014 för att fler studenter som inte läst D-programmet på KTH skulle vara behöriga. I första hand skulle kraven göra det möjligt för studenter från Teknisk fysik och högskoleingenjörer i datateknik att bli behöriga. Detta har lett till att studenter som inte har tillräckliga förkunskaper för dom obligatoriska kurserna i programmet har antagits. Studenter som inte har förmågan att klara masterprogrammets kurser kan därmed luras in på programmet. CSCs pedagogiska utvecklare Viggo Kann har under våren 2015 utrett vilka behörighetskrav som är rimliga att ställa. I denna rapport beskrivs hur utredningen har skett, vilka förkunskaper som faktiskt krävs för programmets kurser och ett förslag till nya behörighetskrav. Metod ===== Datalogimastern har relativt stor valfrihet, vilket gör att en student kan anpassa sina kursval och spårval till dom förkunskaper han eller hon har. Det som inte kan anpassas är programmets sex obligatoriska kurser. Därför har utredningen koncentrerat sig på att fastställa vilka förkunskaper som verkligen krävs för dom obligatoriska kurserna: DA2210 Vetenskapsteori och vetenskaplig metodik för dataloger DD2300 Programsammanhållande kurs i datalogi DD2380 Artificiell intelligens DD2395 Datasäkerhet DD2440 Avancerade algoritmer IK2218 Internets protokoll och principer Kursplaner och kursbeskrivningar för kurserna gåtts igenom, kursledarna har intervjuats och en student som nyligen läst kurserna har intervjuats. Dessutom har programansvariga Monika Lundell och Örjan Ekeberg intervjuats om varför behörighetskraven ändrades 2014. Vidare har resultaten på masterprogrammet för dom studenter som började mastern 2014 och inte går på D-programmet undersökts, särskilt med avseende på vilka förkunskaper dom hade då dom började på mastern. Resultat ======== Nuvarande behörighetskrav för masterprogrammet är: * Matematik: tre olika ämnen om totalt 22.5 hp. Bland dessa ämnen skall ingå en kurs i Envariabelanalys och en kurs i Linjär algebra eller Diskret matematik. * Datateknik/Datavetenskap/Datalogi/Informationsteknik: tre olika ämnen om totalt 22.5 hp. Bland dessa ämnen skall ingå en kurs i Objektorienterad programmering och en kurs i Algoritmer och datastrukturer. Resultaten nedan redovisas kurs för kurs. DA2210 Vetenskapsteori och vetenskaplig metodik för dataloger och DD2300 Programsammanhållande kurs i datalogi Inga formella behörighetskrav eller förkunskapskrav utöver behörighetskraven för masterprogrammet, vilket i denna utredning alltså blir självrefererande. Läraren och studenterna håller med om att inga ytterligare förkunskaper krävs för dessa två kurser. DD2380 Artificiell intelligens Kursplanen beskriver följande rekommenderade förkunskaper: * Programmeringskunskaper i Java eller C++ * Datalogikunskaper motsvarande Introduktion till datalogi. * Numeriska metoder * Sannolikhetsteori och statistik Kursledaren understryker att goda kunskaper i Java eller C++ är mycket viktigt, liksom datalogikunskaper (algoritmer och datastrukturer). Vad gäller matematik krävs kunskaper i linjär algebra, envariabelanalys och sannstat, och dessutom behövs ytterligare matematisk mognad. Numeriska metoder är kanske inte helt nödvändigt, men vana vid att omforma matematik till programkod är nödvändigt. Studentintervjun visar också att Java/C++, algoritmer och datastrukturer och sannstat är nödvändigt för att klara kursen. DD2395 Datasäkerhet Kursplanens förkunskapsrekommendationer är * Internets protokoll och principer * grunderna i kommandoradsgränssnitt och operativsystem * allmänna kunskaper i programmering * webbprogrammering (html, javascript, sql) Kursledaren anser att dom flesta kunskaper som krävs kan läsas in under kursen, för den som saknar dom. Grundläggande kunskaper i programmering och hur datorer fungerar borde räcka. Den intervjuade studenten anser att den som vill tillgodogöra sig kursen väl behöver kunna programmera i C och Javascript, samt ha kunskaper i Internets protokoll och principer. DD2440 Avancerade algoritmer Enligt kursplanen krävs * diskret matematik och * algoritmer och komplexitet. Kursledaren berättar att utöver diskmatte, algoritmer och komplexitet behövs sannstat, linjär algebra och programmeringskunskaper. I studentintervjun hålls goda kunskaper i diskret matematik fram som allra viktigast. Java eller C++ krävs i praktiken av den som vill klara labbarna bra. Även algoritmer och komplexitet och sannstat behövs. IK2218 Internets protokoll och principer Kursplanens enda förkunskapskrav är Inda eller motsvarande programmerings- och datalogikurs. Kursledaren anser att dessa förkunskapskrav är tillräckliga. Studentintervjun bekräftar detta. Resultat för alla 37 icke-D-teknologer som började på mastern 2014 Externa (dvs kommer inte från KTH): 17 stycken antogs. Av dessa dök inte 4 upp, så dom har ingen terminsregistrering. Av resterande 13 har 5 inte tagit någon poäng och har ingen terminsregistrering för våren. Av resterande 8 har en tagit totalt 1,5 hp och en tagit 9 hp utan att ha avslutat en enda kurs. Av resterande 6 hade 4 förkunskaper motsvarande diskmatte och ADK. Dessa fyra har många poäng och har mest betyg A i sina kurser. Återstående två har inte diskmatte eller ADK och har inte klarat dom under året. Dom har 24 respektive 28 hp avklarade. 10 går på F: Hälften av dessa har gjort ADK/algokomp och/eller diskmatte före mastern. För alla går det bra på masterprogrammet. 4 går på Media: Alla dessa klarade ADK/algokomp och diskmatte före mastern, och det går bra för allihop. 4 går på IT: Alla dessa ha tagit diskmatte som ingår i IT-programmet. Hälften har tagit ADK, hälften inte. En har inte tagit någon kurs på mastern, en har tagit två av dom obligatoriska och två har tagit tre av dom obligatoriska kurserna. Men ingen har klarat avalg. 2 har gått högskoleingenjörsprogram i datateknik: Ingen av dessa har tagit ADK/algokomp. Ingen av dessa har klarat någon enda poäng på masterprogrammet. Analys ====== Uppenbart krävs för flera av kurserna följande kunskaper: * god kunskap om programmering i Java eller C++, vilket kan uttryckas som att en kurs i objektorienterad programmering ska ha lästs * algoritmer och datastrukturer * linjär algebra * sannstat Dessutom behövs envariabelanalys i AI och som förkunskap till sannstat. Kunskaper i numeriska metoder behövs för vissa spår och valfria kurser, men det går att klara sig igenom programmet utan nummekunskaper, bara man har en tillräcklig matematisk mognad. Goda kunskaper i diskret matematik och fördjupade kunskaper i algoritmer och komplexitet behövs för Avancerade algoritmer. Som det är nu går det att bli antagen till masterprogrammet utan att ha läst diskret matematik och algoritmer och komplexitet. Den som inte gjort det måste då läsa det inom masterprogrammet och får läsa avancerade algoritmer i årskurs 2 istället. Notera att diskret matematik är förkunskapskrav till algoritmer och komplexitet och i så fall måste läsas först. För den som varken läst diskret matematik eller algokomp kan det vara en övermäktig utmaning att läsa dessa kurser och dessutom avancerade algoritmer. Den som går Teknisk fysik tycks klara det. Den som går på IT-programmet eller kommer från högskoleingenjörsprogram klarar inte detta. Även för externa studenter går det en klar skiljelinje mellan dom som har diskmatte och ADK som förkunskaper och dom som inte gjort det. Det går mycket bra på masterprogrammet för den första gruppen och dåligt för den andra. Diskret matematik och ADK är inte bara förkunskaper till en obligatorisk kurs, dom är också en god prediktor av studieframgång på masterprogrammet, förutom för en grupp, nämligen F-teknologer. Om behörighetskraven för datalogimastern höjs kommer inte studenter som saknar förmåga att klara det att bli inlurade på programmet. Problemet med att studenter från Teknisk fysik inte har läst diskmatte och algokomp kan lösas med dispenser. Om civilingenjörsprogrammet teknisk matematik inrättas kommer troligen det att överta dom studenter som nu går på F och sedan söker till datalogimastern. Enligt ansökningshandlingarna för programmet teknisk matematik kommer studenter på detta program kunna bli behöriga till datalogimastern även med dom höjda behörighetskrav som föreslås här. Slutsats ======== Behörighetskraven för datalogimasterprogrammet behöver höjas så att: * både linjär algebra och diskret matematik krävs * sannstat krävs * en fortsättningskurs i algoritmkonstruktion och komplexitetsteori krävs Med tanke på att envariabel och linjär algebra bör vara på minst 7,5 hp vardera och att sannstat och diskmatte bör vara på minst 6 hp vardera bör poänggränsen för antalet matematikpoäng höjas till 27 hp. Förslag till nya behörighetskrav: * Matematik: minst 27 hp. I dessa poäng ska ingå en kurs i Envariabelanalys, en kurs i Linjär algebra, en kurs i Sannolikhetsteori och statistik och en kurs i Diskret matematik. * Datateknik/datavetenskap/datalogi/informationsteknik: minst 22,5 hp. I dessa poäng ska ingå en kurs i Objektorienterad programmering, en inledande kurs i Algoritmer och datastrukturer och en fortsättningskurs i Algoritmkonstruktion och komplexitetsteori.