Algoritmer och datastrukturer HI1029 8,0 hp Introduktion
Lärandemål Efter kursen ska studenten: Ha kunskaper om de vanligaste algoritmteknikerna och datastrukturerna I viss mån kunna utvärdera algoritmers effektivitet och ha kännedom om olika komplexitetsklasser Kunna anpassa kända algoritmer och konstruera egna utifrån de algoritmtekniker som ingår i kursen Ha stor vana vid att lösa algoritmiska problem Bonus: Lära oss Java s API bra att kunna, state of the art
KTH-social: https://www.kth.se/social/course/hi1029/page/vt-2017-2/ Kurs-PM: hur går kursen till? Läs alltid denna först när ni undrar något. Planering LABA-uppgifter Övningsuppgifter Redovisningsgrupper
Referenser Kursen och föreläsningarna kommer av pedagogiska skäl att i hög grad följa kursboken: Koffman and Wolfgang, Data Structures: Abstraction and Design Using Java 2Ed För att det ska bli tydligt kommer jag ofta att använda mig av exempel och kod liknande eller samma som i boken. Istället för att vid varje tillfälle ange referens så ger jag den här för hela kursen. En del material kommer från det kompendium som Håkan Strömberg skrivit. Du kan nå det från 2013 års sida på kth-social.
Vilket råd skulle du vilja ge till framtida kursdeltagare? (2015) -Gör alla uppgifter! -Häng med från början i kursen, annars blir det jobbigt senare. -besök hemsidan hittade hemsidan i slutet av kursen borde ha besökt den tidigare. -Gör alla labbar i början av kursen. -Fråga kursare och lärare om du kör fast direkt. Man hinner inte gå tillbaka senare. Det blir bara högre och högre tempo under hela perioden. -Ligg i fas med inlämningar. Att läsa alla kapitel gav inte mig så mycket, bättre att lägga ner den tiden på att förstå vad man kodar och hur algoritmerna funkar osv. -Att lägga ned tid och läsa igenom kurslitteraturen. Väldigt bra bok, som går igenom hur man ska gå tillväga med mesta av arbetsuppgifterna. -Var inte så låst vid att göra många uppgifter för att få ett högt betyg, se det istället som en chans att lära sig mycket så slipper man (förhoppningsvis) stressa inför tentan.
-De behöver lägga mycket tid redan från första föreläsningen. Försöka samala så mycket poäng som möjligt i början. -försök hänga på från början och programmera uppgifter annars hänger man inte med så mycket om man ligger efter... -Börja direkt, ligg i fas. -Läs boken. Gör uppgifterna så snart som möjligt. -Förstå algoritmen innan implementering, då vet man hur man ska lösa problemet i framtiden, det är svårare att komma ihåg en komplett tentamen. -Sätt dig och programmera -Börja jobba med uppgifterna så snabbt som möjligt. -Häng med från början. Börja direkt med uppgifterna. -diskutera uppgifterna med andra, vissa uppgifter kan misstolkas och då är det bra att diskutera med andra som kanske tolkat uppgiften rätt
Vilket råd skulle du vilja ge till framtida kursdeltagare? (2016) Hela kursen handlar om att ta sig tid att göra övningsuppgifterna för att öva sig på problemlösning -> Gör du övningsuppgifterna så klarar du kursen -> Gör du inte övningsuppgifterna så kommer du med största sannolikhet inte att klara den. Försök att alltid ligga steget före eller i fas med planeringen om möjligt då kursen blir mer och mer intensiv i kombination med att om ni som vi parallellt läser kommnät. Kommnät är väldigt lätt att skjuta fram på då boken är ett sömnpiller och cisco materialet tär på ens själ (vetenskapligt bevisat), så kommer ni troligtvis att ha väldigt mycket att göra vid periodens slut om ni skjuter upp på övningsuppgifterna. Om kursen läggs ut på samma sätt som detta året för nästkommande studenter så kan jag rekommendera att faktiskt försöka hålla schemat med föreläsningarna och komma igång med programmeringen tidigt. Det är lätt att tänka "Äh, föreläsningarna kommer vara där senare också och därmed hamna efter i ämnet. Och att komma igång med laborationsdelen tidigt är bra just för att man aldrig vet när man kommer fastna och då vill man kunna reda ut det i lugn och ro, inte i panik 2 dagar innan redovisning.
För många av de som inte arbetat med rekursion tidigare kommer det kännas väldigt tufft i början men försök trycka förbi det, det är ungefär som i början utav C kursen för alla som var nya efter ett tag lugnar det ner sig och då ser man styrkan i rekursion. Gör många utav övningsuppgifterna så kommer ni dessutom se att det finns en hel del problem som ni inte kommer ha någon aning om hur ni ska lösa iterativt men är faktiskt väldigt lätt att lösa rekursivt. Hitta tentan, jag hittade min när det var 1 minut kvar av tentan borde gjort det tidigare... Kappa gör alla övningsuppgifter kontinuerligt under kursen. Gå på föreläsningarna/mötena, det är sjukt vad mycket man lär sig och förstår mer av att diskutera med läraren och andra studenter. Kom på lektionerna och se till att hänga med redan från början. Se till att vara kreativ och lös uppgifter från boken/ övningshäftet. Allting i denna kursen är "Guld" värt och försök att inte missa något. Niklas är alltid där och ger skit bra feed back även om man är "lost in space ibland. Ni kommer stöta på en betong vägg i mitten av kursen men likaså där, ge inte upp, kötta på för det ger så mycket. Kan säga att jag är stolt över att ha läst denna kurs och haft som Nicklas som lärare.