DD1366 VT24 Programmeringsparadigm (progp24)

Välkommen


cutekittens.jpg
Bilden är generad av Dall E 3.

Välkommen till kursen programmeringsparadigm, DD1366. Den röda tråden i kursens 3 första delar är programmeringsspråk med fokus på deras paradigm. Kursen består av tre delar som i korthet innehåller:
1. Funktionell programmering: Haskell: ett stark typat språk i det funktionella paradigmet.
2. Paradigm: Klassificering av programmeringsspråk och hur det kan användas för att programmera i legendariska och nya språk.
3. Syntax: Implementation av programmeringsspråk. Förberedande för kompilatorkonstruktion.
4. Internetprogrammering: Gör en webbapplikation.

Guide till kursinformationen på Canvas

Lärandemål och kursliteratur anges i kurs-PM.
Labbhäftet finns här Download här.
Guider, ordlistor och vissa läsanvisningar finns i Moduler.
En guide till föreläsningar och deadlines finns i Kursöversikt.

De gamla föreläsningarna från de senaste åren finns på Youtubekanalen @programmering: https://www.youtube.com/@programmering Links to an external site.

9 råd för att klara kursen:
1. Lägg fokus på D.A.R.P. dvs Dokumentera, Analysera, Reflektera och Presentera. I den här kursen läggs stort fokus på processen och vår tankegång när vi löser programmeringsproblem.
2. Lägg fokus på CDIO, dvs Conceive-Design-Implement-Operate. Många är överfokuserade på att förklara för datorn hur den ska övervinna de automatiska testerna, men Design, dvs hur algoritmer och datastrukturer ska läggas upp samt hur koden ska organiseras i olika abstraktioner är också centralt, liksom att göra egen testning och inte bara förlita sig på att låta Kattis göra det åt er. Många CDIO-aspekter påverkas av valet av programmeringsspråk. För mer information om CDIO, se boken Rethinking Engineering, the CDIO approach Links to an external site..
3. Lägg mycket tid på kursen, utspritt över lång tid. Kursen är på 6 högskolepoäng, dvs 160h så 2h om dagen i 4 månader med 20 arbetsdagar i varje månad är lagom.
4. Studera aktivt. Fokusera på uppgifter som får dig att tänka och fall inte in i att passivt länksurfa alltför mycket på Wikipedia eller titta på för mycket youtubevideos. Även när du läser så kan du göra det på ett aktivt sätt och stänga boken för att se om du har kommit ihåg vad du just läste, eller att pausa videon och försöka räkna ut vart den är på väg.
5. Fastna inte i att bara försöka bli bättre på det du redan kan utan angrip även dina svagaste punkter. Mästarprovet bedöms efter det eller de lärandemål som du behärskar sämst så lägg fokus där.
6. Ha ett loggsystem. Det kan vara så enkelt som att du skriver ner några rader med frågor eller stödord utifrån vad du gjort under dagen. Gå sedan igenom loggen för igår, för en vecka sedan, för en månad sedan och för ett år sedan. Systematisk repetition är ett utmärkt sätt att behålla sina kunskaper.
7. Tänk på ställtid - den tid det tar att byta mellan två olika arbetsuppgifter. Om du lämnar din kod i ett oläsligt skick så kommer det att ta tid att hitta tillbaks till den nästa gång du kommer tillbaka. Den lilla tiden det tar att ha bra namn på sina variabler och funktioner är mycket värd. Tänk också på ställtid när du frågar en kompis. Det kanske bara tar 1 minut för dig att få svaret, men kompisen kan råka lämna sin problemlösning och behöver hitta tillbaka vilket kan ta längre tid. Fråga hellre "När du har tid..." så att kompisen kan skriva en kort "hitta tillbaka till uppgiften"-guide till sig själv och hjälpa dig.
8. Fokusera lagom mycket på betyg och högskolepoäng. Om du ligger under kursens godkäntkrav så kan betygen guida dig till att lära dig fler aspekter av ämnet och att fördjupa dig inom flera områden. Fortsättningskurserna som kompilatorkonstruktion, storskalig programvaruutveckling och seminariekursen i funktionell programmering kommer att bygga vidare på denna kurs.
9. Satsa på livslångt lärande. Efter kursen kan du bygga upp en portfölj med en uppsättning program som du gjort utöver kurserna på Teknis. Det kan handla om programmeringsprojekt på Github, en personlig webbplats, en Youtubekanal med videos om programmering eller att lösa mångra problem på webbplatser som Project Euler, Kattis, Codeforces eller liknande. Dels är det roligt, dels så ökar ständigt kraven på de mest attraktiva arbetstillfällena.