DD1331 HT22 Grundläggande programmering (CTFYS)

DD1331 Grundläggande programmering

Två söta katter funderar på hur de ska programmera. Bilden är generad av DALL·E 2 vilket syns på färgkoden nere till höger i bilden. Som en skönhetsfläck så är tangentbordet fullt med små fel men det kan tolkas som att det är tillverkat av katter som bara vet på ett ungefär hur tangenbord ska se ut.
Välkommen till grundläggande programmering! Den här kursen lotsar nybörjare till en nivå där de kan skriva en liten applikation i Python och ger även er mer erfarna programmerare en utmaning för att öka chansen att förverkliga era drömmar. Kursinformationen är organiserad i tre delar.

KursPM innehåller information om kursens upplägg.

Kursöversikt innehåller en detaljplan över vad som gås igenom vecka efter vecka och vad du bör göra för att hänga med.

Moduler innehåller information om hur man kommer igång, hur man bygger upp en bra rutin samt examinerande moment som labbar och gamla kontrollskrivningar. Här finns också länkar till videoinspelningar av föreläsningarna från lockdown under pandemin och OLI-materialet som är en uppsättning interaktiva övningar med feedback som gör att det går snabbare att ta till sig av materialet i kursen.

Länk till det obligatoriska pythonquizet. Ett gott försök räknas som godkänt. Det är ok att hoppa över frågor om ni absolut inte kan svaret, men de två sista frågorna (reflektionsfrågorna) behöver ni svara på och i de fall då ni hoppat över tidigare frågor så är detta ett bra tillfälle att reflektera kring vad som var svårt.

8 råd för att lyckas i kursen:
1. Lägg mycket tid på kursen, utspritt över lång tid. 1h per dag bör räcka för betyg E. 2h per dag bör räcka för betyg A. En stark daglig rutin för hur man kommer igång och får saker gjorda är viktigt i kursen.
2. 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.
3. Fastna inte i att bara försöka bli bättre på det du redan kan utan angrip även dina svagaste punkter. Kontrollskrivningen i kursen bedöms efter dina 2 sämsta delar (av 6). Labbarna och P-uppgiften försöker att täcka in många olika delar av Python.
4. Vad du gör utanför kursen spelar roll. Att studera när man äter rätt, sover rätt, har harmoniska relationer och tränar regelbundet går enklare.
5. 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.
6. 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.
7. 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 kommer att bygga vidare på materialet i grundkursen så om den här biten sitter ordentligt så får du det enklare att klara senare årskurser.
8. Satsa på livslångt lärande. Efter kursen kan du bygga upp 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.

Kursboken är "Introduction to programming in Python" av Robert Sedgewick, Kevin Wayne och Robert Dondero.

Rekommenderade överkursböcker för er som redan kan programmera är:

  • Introduction To Algorithms (I.T.A.) av Cormen, Leierson, Rivest, Stein
  • Fluent Python av Luciano Ramalho

Om ni inte redan har gjort det, se till att skaffa ett konto på Kth:s GitHub: https://gits-15.sys.kth.se/

Alla slides och exempel från föreläsningar finns på: https://gits-15.sys.kth.se/dicander/gruprog_lecture_notes