Kursplan för Programmeringsteknik II

Computer Programming II

  • 5 högskolepoäng
  • Kurskod: 1TD722
  • Utbildningsnivå: Grundnivå
  • Huvudområde(n) och successiv fördjupning: Datavetenskap G1F, Teknik G1F

    Förklaring av koder

    Koden visar kursens utbildningsnivå och fördjupning i förhållande till andra kurser inom huvudområdet och examensfordringarna för generella examina:

    Grundnivå
    G1N: har endast gymnasiala förkunskapskrav
    G1F: har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav
    G1E: innehåller särskilt utformat examensarbete för högskoleexamen
    G2F: har minst 60 hp kurs/er på grundnivå som förkunskapskrav
    G2E: har minst 60 hp kurs/er på grundnivå som förkunskapskrav, innehåller examensarbete för kandidatexamen
    GXX: kursens fördjupning kan inte klassificeras.

    Avancerad nivå
    A1N: har endast kurs/er på grundnivå som förkunskapskrav
    A1F: har kurs/er på avancerad nivå som förkunskapskrav
    A1E: innehåller examensarbete för magisterexamen
    A2E: innehåller examensarbete för masterexamen
    AXX: kursens fördjupning kan inte klassificeras.

  • Betygsskala: Underkänd (U), godkänd (3), icke utan beröm godkänd (4), med beröm godkänd (5)
  • Inrättad: 2007-03-15
  • Inrättad av: Teknisk-naturvetenskapliga fakultetsnämnden
  • Reviderad: 2020-02-10
  • Reviderad av: Teknisk-naturvetenskapliga fakultetsnämnden
  • Gäller från: vecka 28, 2020
  • Behörighet: Programmeringsteknik I eller motsvarande.
  • Ansvarig institution: Institutionen för informationsteknologi

Mål

Efter godkänd kurs ska studenten kunna:

  • använda programspråket Python med stöd av verktyg för testning, felsökning och versionshantering, både i form av att skriva egen kod och kunna förklara vad en given kod utför; 
  • redogöra för begreppen polymorfi i allmänhet och duck typing i Python och använda dessa begrepp i egen programutveckling;
  • implementera rekursiva lösningar till olika problem;
  • beskriva principen för analys av algoritmers effektivitet och utföra sådan analys av enklare algoritmer;
  • beskriva och använda de grundläggande datastrukturerna lista, hashtabell och träd samt med dessa som grund kunna implementera abstrakta datatyper som stackar, köer, generatorer och avbildningar;
  • beskriva hur felhantering med hjälp av undantag fungerar och kunna använda detta i egna program;
  • implementera program med såväl enkla sekventiella flöden som händelsedrivna flöden, inklusive enkla former av parallell bearbetning, och diskutera skillnaderna.

Innehåll


Fortsatt programmering i Python: polymorfi, duck typing, undantag. Begreppen stackar, köer, enkla grafer som listor och träd, hashtabeller, avbildningar i allmänhet med Pythons Dictionary som specialfall. Generatorer med stöd av nyckelordet yield.
Grundläggande algoritmer för lagring, sökning och sortering. Felsökning, versionshantering och testning. Analys av asymptotisk tidskomplexitet. Egenskaper hos Python som språk och programmiljö jämfört med C++. Implementerade och enklare prestandajämförelse för samma algoritm i Python och C++.
Representera kod som objekt, inklusive lambdauttryck, och använda detta för händelsedriven och parallell programmering i Python.

Undervisning

Föreläsningar, lektioner/laborationer och obligatoriska inlämningsuppgifter.

Examination

Skriftligt prov (2 hp) samt inlämningsuppgifter (3 hp). 
 
Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en enskild student examineras på annat sätt. Särskilda skäl kan t.ex. vara besked om särskilt pedagogiskt stöd från universitetets samordnare för studenter med funktionsnedsättning.

Litteratur

Uppgift om kurslitteratur saknas. Ta kontakt med ansvarig institution för mer information.