TEK/NAT Kursrapport Kurs Kurskod Poäng År Start v. Datastrukturer och algoritmer (C) 5DV149 7.5 217 12 Institution Institutionen för datavetenskap Antal registrerade (män/kvinnor) 98 (82/16) Antal aktiva studenter (deltagit i minst en examinerande del) 88 Genomströmning (i %) och betygsutfall efter första tillfälle för examination (för varje betyg som satts på kursen ange antal som uppnått detta på formen??? Genomströmning: 11% Betyg: U(88) 3(4) 4(4) 5(2) Hur mycket schemalagd lärar-/assistent-ledd tid har studenten tillgång till på kursen? 21h föreläsning + gruppövning 24h handledning i labbet Därutöver möjlighet till handledning på kontoret och via epost. Totalt sett har kursen haft 159 timmar lärarresurser tilldelat. Hur är undervisningen upplagd? Ett pass på 2-3h per vecka med föreläsning och/eller gruppövning. Ett pass på 2h per vecka handledning i labbet. Självrättade övnings-"quiz" för varje vecka med repetition av genomgånget material. En OU (komplexitet) gavs som självrättande quiz. En OU (användande av debugger) hade muntlig redovisning. Övriga OU innehöll kodning och rapportskrivning och lämnades in elektroniskt. Kursen bedrevs med reducerade resurser som specialkurs för TFY-studenter. OBS! Denna kurs gav också i en "normal" version med start v. 3 och anmälningskod 57314. För vart och ett av lärmålen (FSR:en) i kursplanen, beskriv kortfattat hur det examineras. förklara grundläggande begrepp relaterade till datastrukturer och algoritmer, beskriva vanliga abstrakta datatyper och algoritmer, formulera lösningar till enkla problem i form av algoritmer inklusive att identifiera och använda lämpliga datatyper, implementera lösningen i form av ett program i programspråket C, tillämpa filhantering och dynamisk minnesallokering, använda sig av grundläggande problemlösningsstrategier, tentamen + experimentellt och teoretiskt undersöka en mjukvaras tids- och minneskomplexitet, samt redogöra för och dokumentera utfallet enligt givna riktlinjer, tentamen + visa att en komponent i ett program fungerar korrekt med hjälp av testning, använda sig av en debugger för att hitta fel i program. visa förståelse för hur struktur-, tids- och minnesaspekter påverkar kvalitet hos program. Beskriv hur betygssättningen på kursen fungerar. (Vilka betyg ges på kursen och hur sker bedömningen, dvs vilka delar betygssätts och hur vägs de samman? Finns det skrivtliga betygskriterier och/eller lärmål (FSR) för de olika betygen?) Kursen består av två moment. Ett laborationsmoment och ett teorimoment. Laborationsmomentet har betygen U och G och examineras via fem (5). Teorimomentet examineras via en tentamen med betygen U,3,4,5. Betygsgränserna är ungefär 5/65/8% av full poäng. För gränsfall görs en helhetsbedömning.
Samläses denna kurs med andra kurser?? Om ja, hur många? Hur stor andel av kursen samläses? Samläser flera program denna kurs? Om ja, hur många? Arbetar studenterna i projektform på kursen? Om ja, uppskattad omfattning i poäng på projektdelen: Antal projekt som varje student deltog i: Antal studenter i projektgrupp: Förväntades studenterna använda en projektmetodik för dokumentation och styrning (tex LIPS)? Hur skedde indelning av studenter i projektgrupper? Har studenterna uppmanats föra projektdagbok? Om ja, Har dagboken utgjort grund för examination? Kursens samverkan med forskning Ingen samverkan med forskningsverksamhet förekommer på kursen Annan samverkansform, nämligen: Kursens samverkan med näringsliv eller offentlig verksamhet Ingen samverkan med näringsliv/offentlig verksamhet förekommer på kursen Annan samverkansform, nämligen Genomförda förändringar till detta kurstillfälle Ökning av föreläsnings/gruppövnings-träffarna till en gång per vecka. Ökning av schemalagd handledning till en gång per vecka + några extra tillfällen i slutet av kursen. Fler kodexempel under föreläsningarna, inkl. illustrationer av pekare. Tidigareläggande av tentan för att minska tidskonflikt med OU5. Omskrivning av flera specifikationer av laborationerna för att förtydliga kraven. Specifikationen för OU3 släpptes samtidigt med OU2 enligt erfarenhet från januarikursen. Förändringsförslag från föregående kursrapport Försök se om kodexempel går att lägga in. Se om man kan ha återlämningstillfällen för labbarna utan att minska på handledningstiden i övrigt i ngn större grad. Fundera över handledningstidernas placering. Fundera över om man kan ha ett handledningstillfälle med några övningsuppgifter gällande kod tidigt på kursen. Tänk på att gruppövningar kan behöva ha en intro. Lärare Information om inblandade lärare Kursansvarig Niclas Börlin Antal övrig personal som ej föreläser
Antal övriga föreläsare Hur stor del av den schemalagda tiden på kursen undervisas av forskande lärare (dvs lärare med mer än 25% forskning i sin tjänst)? Hur stor del av den schemalagda tiden på kursen undervisas av lärare verksamma i näringsliv/offentlig verksamhet (dvs lärare med mer än 25% av sin tjänst förlagd till näringsliv/offentlig verksamhet)? Kursvärd. Totalt antal svarande 11 Sammanställningsdatum 217-6-16 När genomfördes kursvärderingen? Efter genomfört första examinationstillfälle För varje lärmål på kursen ange hur stor del av de studerande som uppger att det har behandlats på kursen - ange svaret i procent på formen har behandlats/har inte behandlats/vet ej förklara grundläggande begrepp relaterade till datastrukturer och algoritmer, beskriva vanliga abstrakta datatyper och algoritmer, 82/9/9 formulera lösningar till enkla problem i form av algoritmer inklusive att identifiera och använda lämpliga datatyper, implementera lösningen i form av ett program i programspråket C, 82//18 tillämpa filhantering och dynamisk minnesallokering, använda sig av grundläggande problemlösningsstrategier, experimentellt och teoretiskt undersöka en mjukvaras tids- och minneskomplexitet, samt redogöra för och dokumentera utfallet enligt givna riktlinjer, visa att en komponent i ett program fungerar korrekt med hjälp av testning, 82//18 använda sig av en debugger för att hitta fel i program. 82//18 visa förståelse för hur struktur-, tids- och minnesaspekter påverkar kvalitet hos program. 82/9/9 Sammanf. Sammanfattning av åsikterna i kursvärderingen - positivt och negativt kring föreläsningar, seminarier, grupparbeten, laborationer, examination etc
Vad har varit positivt med kursen och bör behållas? (8 svar) Obligatoriska uppgifterna var väl gjorde och hade ett bra syfte Bra progression mellan OU2, OU4 och OU5 i hur avancerade de var. Att lägga tentan tidigare var väldigt bra. Strukturen på Cambro förtjänar an guldstjärna! Väldigt lätt att hitta dit man skulle. Möjligtvis lägg datatyperna man behöver i filsamlingen eller till uppgifterna. Med begränsad tid så funkade föreläsningarna ändå rätt så bra. Den datavetenskapliga aspekten, alltså de mer teoretiska delarna (abstraktion osv) tycker jag var bra och intressant i kursen. Öppnade mina ögon mer för datavetenskap. Examineringen (inlämning/tenta) var bra. Bemötande och hjälp, både vid föreläsningar och labbtillfällen. Slidesen var oftast utförliga. Föreläsning och lektionstillfällena var mycket bra för oss som var i Umeå! Quizen som fanns för att testa sina kunskaper på varje del var ett bra sätt att lära sig på. Också smart att man "låste upp" lösningar till uppgifter med dessa. Vet ej. Mångfalden av olika typer av program man skulle skriva för dom na *********************************************************************** Vad kan förbättras? Ge gärna tips på hur! (8 svar) Man (eller iaf jag) visste inte riktigt vilka som var handledare på laborationspassen jag var på (var inte på så många). Visste inte vem man skulle fråga förutom Niclas. En crash course i C hade varit bra för mig. Det behöver inte vara en del på en föreläsning, men något på cambro som man kan följa och göra på egen hand t.ex. För mig var det i alla fall länge sedan jag programmerade i C. OU2, OU4 och OU5 hade en bra progression i hur avancerade de var, men bortsätt från OU5 så var de inte så intresseväckande. I OU5 var uppgiften "lös detta problem" vilket är intressantare än implementera en tabell eller testa en kö. Utan att göra uppgifterna allt för svåra eller långa hade jag gärna sett att man gör någonting utöver att bara implementera en datatyp. En liten introduktion till standarden för header-filer i C. Det handlar ju inte så mycket om själva kursinnehållet men vid exempelvis uppgift 5 hade det varit bra att ha lite mer kunskap att börja med. Formatet på kursen är som det är, inte optimalt men vet inte vad som kan göras åt det. Många gånger kändes labbspecarna lite oklara, såpass ibland att man mer gissade sig till vad tanken var kring ett visst krav på koden. Delen med tidskomplexitet var generellt rätt bra, men just hur man använder och tänker kring den experimentella tidskomplexiteten kändes väldigt oklar under OU4, där den skulle användas. Hade varit bra att få se ännu lite mer exempelkod. Särskilt då man varit ifrån C länge så är man ganska seg i starten på att komma ihåg även de lättare delarna. Det var svårt att få programmen installerade på egen dator. Går det att göra installationsbeskrivningarna ännu tydligare? Instruktionerna till dem na är formulerade på ett förvirrande sätt. Att förstå vad uppgiften kräver tog för vissa uppgifter orimligt långt tid. Tycker att labspecarna var av varierande kvalitet, bland annat saknaden av förklaring hur man sätter inagument för programmet (OU5) *********************************************************************** Saknar du något på kursen som borde vara med? (3 svar) En "djupare" genomgång av minnesfel och valgrind. I slutändan vart man ganska haj på det hela, men jag tror att en bättre introduktion till troliga problem skulle kunna kickstarta arbetet med de OU som kräver kod fri från minnesläckor. Vet ej. En liten visning av codelite kanske ********************************************************************** Övriga synpunkter: (3 svar) Mycket bra kurs med en mycket bra föreläsare Niclas. En sak som jag tycker borde ändras är att deadlinen inte ska vara 17. på dagen. Den borde flyttas bak till iaf 2.. Anledningen är att vid många deadlines så har man laboration kl 1-3 samma dag. Då känns det riskabelt att spara frågor till den dagen då man har väldigt lite tid att korrigera fel. Har ej deltagit i kursen. Gick fjolårets.. Riktigt intressant kurs, fortsätt så Niclas! Lärarnas synpunkter på kursens innehåll och genomförande Kursen led av schemakollision för en stor studentgrupp. Jag försökte att hantera detta genom att saxa onsdagar/torsdagar, men det är förstås frustrerande att en kurs som redan har reducerad tid för träffar öga-mot-öga dessutom drabbas av schemakollisioner. Lite svårt att veta hur mycket hjälp studenterna behöver med C-kodning. Några har kommenterat att det var länge sen. Samtidigt har många lämnat in mycket bra lösningar. Erfarenheterna från januari-versionen av kursen var värdefulla, bl.a. om relationen OU2/OU3 och tidigareläggning av tentan. Förslag till nästa kurstillfälle - ange vem som ansvarar för förändringen Schemakollisionerna måste fixas - måste rimligtvis ske bättre kommunikation mellan studieplanerare på datavetenskap och fysik. (Nedan duplicerat från januari-versionen av kursen.) Behåll att släppa specifikationen till OU3 samtidigt med OU2. Behåll den tidigarelagda tentamen. Behåll exempel på latex-kod till labrapporterna. Uppdatera kodbasen för ökad konsistens (kod + kommentarer) och förståelse. Lägg till någon fullt typad datatyp (lista?) för att underlätta körning i debugger. Lägg till exempel i kodkommentarerna. Fundera på att lägga till övningsuppgifter i kod - gärna självrättande. Ännu mer kodexempel på dynamisk minnesallokering + filhantering. Om OU5 kvarstår i nuvarande form, förtydliga kraven på tolerans vad gäller filslut på kartfilen. Fundera på någon lösning med peer review av kod/rapport. Behåll upplägget med att planera in handledning i början av kursen med spara resurser att sätta in mot slutet.
Bör kursplanen ändras till nästa kurstillfälle - vem ansvarar i så fall för att förändringen görs? Granskn. Granskare lärare (CAS-identitet) nibo1 [Börlin, Niclas] Granskare student (CAS-identitet) leka1 [Kallin Westin, Lena] Granskare studieadministratör (CAS-identitet) leka1 [Kallin Westin, Lena] Eventuella kommentarer på granskningsprocessen