ID1218 Tillämpad programmering 7,5 hp

Applied Programming

OBS!

Detta är en nedlagd kurs.

I modern mjukvaruutveckling används en mängd olika
programmerings-modeller, -koncept, -språk, och -miljöer. Förmågan att välja mellan dessa aspekter är avgörande för om en programmerare kan hantera programmeringsuppgifter från näringslivet på ett effektivt och framgånsrikt vis.
Mål
Kursens allmänna mål är att förmedla den nödvändiga kunskap inom programmerings-modeller, -koncept, -språk, och -miljöer som behövs i modern mjukvarukonstruktion. Några få exempel på
applikationsområden är att skapa webb-baserade, inbäddade, eller distribuerade system.

  • Utbildningsnivå

    Grundnivå
  • Huvudområde

    Teknik
  • Betygsskala

    A, B, C, D, E, FX, F

Sista planerade examination: VT16.

Det finns inget planerat kurstillfälle.

Lärandemål

Kursens allmänna mål är att förmedla den nödvändiga kunskapen inom programmerings-modeller, -koncept, -språk, och -miljöer som behövs i modern mjukvarukonstruktion. Några få exempel på applikationsområden är att skapa webb-baserade, inbäddade, eller distribuerade system.

Efter fullgjord kurs skall teknologen:

  • känna till grundläggande egenskaper och centrala koncept inom vanligt förekommande programmeringsmodeller (objekt-orienterad, imperativ, funktionell, och parallell programmering) samt känna till vanliga programmeringsspråk som implementerar dessa modeller.
  • analysera programmeringsuppgifter och identifiera aspekter som gör dem lämpade för de ovan nämnda programmeringsmodellerna.
  • kunna tillämpa objekt-orienterade koncept från Java i C++: klasser, arv, objekt-baserad polymorfism, samt undantag.
  • förstå och kunna tillämpa koncept från C++ som implementerar programmerings modeller för objekt-orienterad och imperativ programmering: parameter-överföring, pekare och referenser, explicit minneshantering, överlagring, parametrisk polymorfism via mallar (templates).
  • kunna konfigurera, kompilera, samt använda sig av mjukvarubiliotek skrivna i C++.
  • kunna designa, strukturera, debugga, testa, samt profilera mellanstora program skrivna i C++.
  • kunna tillämpa grundläggande funktionella programmeringstekniker i Erlang: rekursion, "pattern matching", listhantering.
  • förstå och kunna identifiera "safety" och "liveness" egenskaper hos parallella program.
  • kunna tillämpa "mutual exclusion", "message ordering", och "concurrency adaptor" som vanligt förekommande mönster för synkronisering i parallella program.
  • kunna strukturera parallella applikationer i form av kommunicerande och samarbetande parallella komponenter.

Kursens huvudsakliga innehåll

- Programmeringsmodeller och -språk: imperativ programmering, objekt-orienterad programmering, funktionell programmering, parallell programmering. Introduktion till centrala egenskaper, fördelar, samt typiska applikationsområden.

- Programmering i C++: i jämförelse till Java. Centrala skillnader. Relation till C. Grunder: datatyper, kontrollstrukturer, objekt, klasser, arv, objekt-baserad polymorfism. Avancerat: parameter-överföring, referenser, pekare och explicit minneshantering, parametrisk polymorfism via mallar (templates).

- Parallellprogrammering: paradigm (delade datastrukturer kontra meddelandesändning), tekniker, och koncept ("safety", "liveness",  "concurrency control", tjänster).

- Funktionell- och parallell-programmering i Erlang: rekursion, listhantering, "pattern matching", meddelandesänding, "safety", ("mutual exclusion"), "liveness" ("concurrency adaptor", "message ordering").

- Pragmatiska aspekter: utvecklings-verktyg och -miljöer, att testa, debugga, och profilera.

Behörighet

Grundläggande behörighet samt Matematik D, Fysik B och Kemi A

Rekommenderade förkunskaper

ID1004, ID1005

Litteratur

Mark Allen Weiss, C++ for Java Programmers, Prentice Hall, 2004.

Concurrent Programming in Erlang, Prentice Hall, 2001 (elektronisk version).

Examination

  • LAB1 - Laborationer, 3,0, betygsskala: P, F
  • TEN1 - Tentamen, 4,5, betygsskala: A, B, C, D, E, FX, F

Krav för slutbetyg

Godkänd tentamen (TEN1; 4.5 hp)samt
godkända laborationsuppgifter (LAB1;  3 hp).

Ges av

ICT/Programvaruteknik och Datorsystem

Examinator

Johan Montelius <johanmon@kth.se>

Versionsinformation

Kursplan gäller från och med HT2008.
Examinationsinformation gäller från och med HT2007.