Designmönster, 6 hp

Design Patterns, 6 credits

TDDB84

Kursen är nedlagd.

Huvudområde

Informationsteknologi Datateknik Datavetenskap

Utbildningsnivå

Avancerad nivå

Kurstyp

Programkurs

Examinator

Ola Leifler

Studierektor eller motsvarande

Ahmed Rezine

Undervisningstid

Preliminär schemalagd tid: 40 h
Rekommenderad självstudietid: 120 h

Tillgänglig för utbytesstudenter

Ja
VOF = Valbar / Obligatorisk / Frivillig
Kursen ges för Termin Period Block Språk Ort/Campus VOF
6CDDD Civilingenjör i datateknik 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CDDD Civilingenjör i datateknik (International Software Engineering) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CDDD Civilingenjör i datateknik (Programmering och algoritmer) 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CDDD Civilingenjör i datateknik (Programmering och algoritmer) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CDDD Civilingenjör i datateknik (Storskalig mjukvaruutveckling) 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CDDD Civilingenjör i datateknik (Systemteknologi) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CDDD Civilingenjör i datateknik (Säkra system) 7 (HT 2017) 1 4 Engelska Linköping, Valla O
6CDDD Civilingenjör i datateknik (Säkra system) 9 (HT 2017) 1 4 Engelska Linköping, Valla O
6CIII Civilingenjör i industriell ekonomi 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, franska 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, franska (Masterprofil Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla O
6CIEI Civilingenjör i industriell ekonomi - internationell, franska (Teknisk inriktning Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, japanska 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, japanska (Masterprofil Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla O
6CIEI Civilingenjör i industriell ekonomi - internationell, japanska (Teknisk inriktning Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, kinesiska 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, kinesiska (Masterprofil Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla O
6CIEI Civilingenjör i industriell ekonomi - internationell, kinesiska (Teknisk inriktning Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, spanska 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, spanska (Masterprofil Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla O
6CIEI Civilingenjör i industriell ekonomi - internationell, spanska (Teknisk inriktning Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, tyska 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIEI Civilingenjör i industriell ekonomi - internationell, tyska (Masterprofil Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla O
6CIEI Civilingenjör i industriell ekonomi - internationell, tyska (Teknisk inriktning Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CIII Civilingenjör i industriell ekonomi (Masterprofil Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla O
6CIII Civilingenjör i industriell ekonomi (Teknisk inriktning Datateknik) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CITE Civilingenjör i informationsteknologi 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CITE Civilingenjör i informationsteknologi (International Software Engineering) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CITE Civilingenjör i informationsteknologi (Programmering och algoritmer) 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CITE Civilingenjör i informationsteknologi (Programmering och algoritmer) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CITE Civilingenjör i informationsteknologi (Storskalig mjukvaruutveckling) 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CITE Civilingenjör i informationsteknologi (Systemteknologi) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CITE Civilingenjör i informationsteknologi (Säkra system) 7 (HT 2017) 1 4 Engelska Linköping, Valla O
6CMEN Civilingenjör i medieteknik 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CMJU Civilingenjör i mjukvaruteknik 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CMJU Civilingenjör i mjukvaruteknik (International Software Engineering) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CMJU Civilingenjör i mjukvaruteknik (Programmering och algoritmer) 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CMJU Civilingenjör i mjukvaruteknik (Programmering och algoritmer) 9 (HT 2017) 1 4 Engelska Linköping, Valla V
6CMJU Civilingenjör i mjukvaruteknik (Storskalig mjukvaruutveckling) 7 (HT 2017) 1 4 Engelska Linköping, Valla V
6CMJU Civilingenjör i mjukvaruteknik (Säkra system) 7 (HT 2017) 1 4 Engelska Linköping, Valla O
6MICS Computer Science, masterprogram 3 (HT 2017) 1 4 Engelska Linköping, Valla V
6MDAV Datavetenskap, masterprogram 1 (HT 2017) 1 4 Engelska Linköping, Valla O
6MDAV Datavetenskap, masterprogram 3 (HT 2017) 1 4 Engelska Linköping, Valla V
6IDAT Högskoleingenjör i datateknik (Programvara) 5 (HT 2017) 1 4 Engelska Linköping, Valla V

Huvudområde

Informationsteknologi, Datateknik, Datavetenskap

Utbildningsnivå

Avancerad nivå

Fördjupningsnivå

A1X

Kursen ges för

  • Datavetenskap, masterprogram
  • Högskoleingenjör i datateknik
  • Civilingenjör i datateknik
  • Civilingenjör i informationsteknologi
  • Civilingenjör i medieteknik
  • Civilingenjör i mjukvaruteknik
  • Civilingenjör i industriell ekonomi - internationell
  • Civilingenjör i industriell ekonomi
  • Computer Science, masterprogram

Förkunskapskrav

OBS! Tillträdeskrav för icke programstudenter omfattar vanligen också tillträdeskrav för programmet och ev. tröskelkrav för progression inom programmet, eller motsvarande.

Rekommenderade förkunskaper

Vara väl förtrogen med programmering i minst ett objektorientierade programspråk. Ha använt avancerade algoritmer och datastrukturer. Vara förtrogen med modellering av objektorienterade system med hjälp av UML Vara förtrogen med att läsa forskningspapper om programvarukonstruktion. Kunna förstå övergripande struktur och organisation i större program. Kunna söka information om nya ämnesområden självständigt och kritiskt.

Lärandemål

Efter kursen ska studenten kunna:

  • identifiera och förklara designprinciper och -mönster i befintlig programkod.
  • tillämpa designprinciper och -mönster i arbete med befintlig programkod.
  • beskriva syfte med och konsekvenser av designmönster i programkod.
  • kritiskt utvärdera designprinciper och -mönster i relation till önskvärda egenskaper hos program,
  • analysera designprincipers och designmönsters relation till förutsättningar i programspråk eller tillämpningsdomäner.

 

Kursinnehåll

Designmönsters historia. Designmönster. Refactoring. Testbarhet, domänspecifika språk, dependency injection, SOLID.

Undervisnings- och arbetsformer

Studenterna behandlar föreläsningsmaterial på nätet och studerar kurslitteraturen som förberedelse för seminarier i grupp, där frågor kring kurslitteraturen behandlas. Studenterna utför en serie laborationsövningar i grupper. I laborationerna övas analys av programvarukomponenter med avseende på de designprinciper och -mönster de utgör exempel på, samt relationen mellan designprinciper och möjligheterna att modifiera och utöka program.

Examination

LAB1Laborationer3 hpU, 3, 4, 5
UPG1Skriftlig rapport3 hpU, 3, 4, 5

Betygsskala

Alternativ graderad skala, LiU, U, 3, 4, 5

Övrig information

Påbyggnadskurser 

komponentbaserade system, affärssystem

Kursen bedrivs på ett sådant sätt att både mäns och kvinnors erfarenhet och kunskaper synliggörs och utvecklas.

Planering och genomförande av kurs skall utgå från kursplanens formuleringar. Den kursvärdering som ingår i kursen skall därför genomföras med kursplanen som utgångspunkt. 

Institution

Institutionen för datavetenskap

Studierektor eller motsvarande

Ahmed Rezine

Examinator

Ola Leifler

Kurshemsida och andra länkar

http://www.ida.liu.se/~TDDB84

Undervisningstid

Preliminär schemalagd tid: 40 h
Rekommenderad självstudietid: 120 h

Kurslitteratur

Kompletterande litteratur

Böcker

  • Freeman & Freeman, Head First Design Patterns
  • Gamma, Helm, et.al., (1995) Design Patterns: Elements of Object-Oriented Software Addison Wesley

Övrigt

  • Utvalda artiklar om programvarudesign och designmönster.

Kod Benämning Omfattning Betygsskala
LAB1 Laborationer 3 hp U, 3, 4, 5
UPG1 Skriftlig rapport 3 hp U, 3, 4, 5

Kursplan

För varje kurs finns en kursplan. I kursplanen anges kursens mål och innehåll samt de särskilda förkunskaper som erfordras för att den studerande skall kunna tillgodogöra sig undervisningen.

Schemaläggning

Schemaläggning av kurser görs efter, för kursen, beslutad blockindelning. För kurser med mindre än fem deltagare, och flertalet projektkurser läggs inget centralt schema.

Avbrott på kurs

Enligt rektors beslut om regler för registrering, avregistrering samt resultatrapportering (Dnr LiU-2015-01241) skall avbrott i studier registreras i Ladok. Alla studenter som inte deltar i kurs man registrerat sig på är alltså skyldiga att anmäla avbrottet så att kursregistreringen kan 
tas bort. Avanmälan från kurs görs via webbformulär, www.lith.liu.se/for-studenter/kurskomplettering?l=sv. 

Inställd kurs

Kurser med få deltagare ( < 10) kan ställas in eller organiseras på annat sätt än vad som är angivet i kursplanen. Om kurs skall ställas in eller avvikelse från kursplanen skall ske prövas och beslutas detta av programnämnden. 

Föreskrifter rörande examination och examinator 

Se särskilt beslut i regelsamlingen: http://styrdokument.liu.se/Regelsamling/VisaBeslut/622678 

Examination

Tentamen

Skriftlig och muntlig tentamen ges minst tre gånger årligen; en gång omedelbart efter kursens slut, en gång i augustiperioden samt vanligtvis i en av omtentamensperioderna. Annan placering beslutas av programnämnden.

Principer för tentamensschemat för kurser som följer läsperioderna:

  • kurser som ges Vt1 förstagångstenteras i mars och omtenteras i juni och i augusti
  • kurser som ges Vt2 förstagångstenteras i maj och omtenteras i augusti och i oktober
  • kurser som ges Ht1 förstagångstenteras i oktober och omtenteras i januari och augusti
  • kurser som ges Ht2 förstagångstenteras i januari och omtenteras i påsk och i augusti 

Tentamensschemat utgår från blockindelningen men avvikelser kan förekomma främst för kurser som samläses/samtenteras av flera program.

  • För kurser som av programnämnden beslutats vara vartannatårskurser ges tentamina 3 gånger endast under det år kursen ges.
  • För kurser som flyttas eller ställs in så att de ej ges under något eller några år ges tentamina 3 gånger under det närmast följande året med tentamenstillfällen motsvarande dem som gällde före flyttningen av kursen.
  • Har undervisningen upphört i en kurs ges under det närmast följande året tre tentamina samtidigt som tentamen ges i eventuell ersättningskurs, alternativt i samband med andra omtentamina. Dessutom ges tentamen ytterligare en gång under det därpå följande året om inte programnämnden föreskriver annat.
  • Om en kurs ges i flera perioder under året (för program eller vid skilda tillfällen för olika program) beslutar programnämnden/programnämnderna gemensamt om placeringen av och antalet omtentamina. 

Anmälan till tentamen

För deltagande i tentamina krävs att den studerande gjort förhandsanmälan i Studentportalen under anmälningsperioden, dvs tidigast 30 dagar och senast 10 dagar före tentamensdagen. Anvisad sal meddelas fyra dagar före tentamensdagen via e-post. Studerande, som inte förhandsanmält sitt deltagande riskerar att avvisas om plats inte finns inom ramen för tillgängliga skrivningsplatser.

Teckenförklaring till tentaanmälningssystemet:
  ** markerar att tentan ges för näst sista gången
  * markerar att tentan ges för sista gången 

Ordningsföreskrifter för studerande vid tentamensskrivningar

Se särskilt beslut i regelsamlingen: http://styrdokument.liu.se/Regelsamling/VisaBeslut/622682

Plussning

Vid Tekniska högskolan vid LiU har studerande rätt att genomgå förnyat prov för högre betyg på skriftliga tentamina samt datortentamina, dvs samtliga provmoment med kod TEN och DAT. På övriga examinationsmoment ges inte möjlighet till plussning, om inget annat anges i kursplan.

Andra examinationsformer

För regler för omprov vid andra examinationsformer än skriftliga tentamina hänvisas till LiU-föreskrifterna för examination och examinator, http://styrdokument.liu.se/Regelsamling/VisaBeslut/622678. 

Försök till vilseledande

Vid grundad misstanke om att en student försökt vilseleda vid examination eller när en studieprestation ska bedömas ska enligt Högskoleförordningens 10 kapitel examinator anmäla det vidare till universitetets disciplinnämnd. Möjliga konsekvenser för den studerande är en avstängning från studierna eller en varning. För mer information se www.liu.se/disciplinnamnden.

Betyg

Företrädesvis skall betygen underkänd (U), godkänd (3), icke utan beröm godkänd (4) och med beröm godkänd (5) användas. Kurser som styrs av tekniska fakultetsstyrelsen fastställt tentamensschema skall därvid särskilt beaktas.

  1. Kurser med skriftlig tentamen skall ge betygen (U, 3, 4, 5).
  2. Kurser med stor del tillämpningsinriktade moment såsom laborationer, projekt eller grupparbeten får ges betygen underkänd (U) eller godkänd (G).

Examinationsmoment

  1. Skriftlig tentamen (TEN) skall ge betyg (U, 3, 4, 5).
  2. Examensarbete samt självständigt arbete ger betyg underkänd (U) eller godkänd (G).
  3. Examinationsmoment som kan ge betygen underkänd (U) eller godkänd (G) är laboration (LAB), projekt (PRA), kontrollskrivning (KTR), muntlig tentamen (MUN), datortentamen (DAT), uppgift (UPG).
  4. Övriga examinationsmoment där examinationen uppfylls framför allt genom aktiv närvaro som annat (ANN), basgrupp (BAS) eller moment (MOM) ger betygen underkänd (U) eller godkänd (G).

Rapportering av den studerandes examinationsresultat sker på respektive institution.

Regler

Universitetet är en statlig myndighet vars verksamhet regleras av lagar och förordningar, exempelvis Högskolelagen och Högskoleförordningen. Förutom lagar och förordningar styrs verksamheten av ett antal styrdokument. I Linköpings universitets egna regelverk samlas gällande beslut av regelkaraktär som fattats av universitetsstyrelse, rektor samt fakultets- och områdesstyrelser. 

LiU:s regelsamling angående utbildning på grund- och avancerad nivå nås på http://styrdokument.liu.se/Regelsamling/Innehall/Utbildning_pa_grund-_och_avancerad_niva. 

Kompletterande litteratur

Böcker

Freeman & Freeman, Head First Design Patterns
Gamma, Helm, et.al., (1995) Design Patterns: Elements of Object-Oriented Software Addison Wesley

Övrigt

Utvalda artiklar om programvarudesign och designmönster.

I = Introducera, U = Undervisa, A = Använda
I U A Moduler Kommentar
1. ÄMNESKUNSKAPER
1.1 Kunskaper i grundläggande (motsvarande G1X) matematiska och naturvetenskapliga ämnen

                            
1.2 Kunskaper i grundläggande (motsvarande G1X) teknikvetenskapliga ämnen
X
LAB1
UPG1
Programmeringsmetodik och objektorienterad programmering
1.3 Fördjupade kunskaper (motsvarande G2X), metoder och verktyg inom något/några teknik- och naturvetenskapliga ämnen
X
UPG1
Designmönster och -principer inom programvarudesign
1.4 Väsentligt fördjupade kunskaper (motsvarande A1X), metoder och verktyg inom något/några teknik- och naturvetenskapliga ämnen

                            
1.5 Insikt i aktuellt forsknings- och utvecklingsarbete

                            
2. INDIVIDUELLA OCH YRKESMÄSSIGA FÄRDIGHETER OCH FÖRHÅLLNINGSSÄTT
2.1 Analytiskt tänkande och problemlösning
X
LAB1
Fatta bättre beslut genom kritiskt tänkande och kreativ problemlösning
2.2 Experimenterande och undersökande arbetssätt samt kunskapsbildning
X
UPG1
Empirisk prövning av påståenden om designmönster
2.3 Systemtänkande
X
LAB1
Systematiskt analysera problem
2.4 Förhållningssätt, tänkande och lärande
X
LAB1
Hantering av större programvaruprojekt och kodförståelse
2.5 Etik, likabehandling och ansvarstagande
X
LAB1
Utveckling av programvara från systemarkitektens perspektiv
3. FÖRMÅGA ATT ARBETA I GRUPP OCH ATT KOMMUNICERA
3.1 Arbete i grupp
X
LAB1
Laborationer i grupper om sex studenter
3.2 Kommunikation
X
LAB1
Skriftlig och muntlig examination av laborationsuppgifter vid seminarier
3.3 Kommunikation på främmande språk
X
LAB1
UPG1
Engelska som språk genomgående i kursen
4. PLANERING, UTVECKLING, REALISERING OCH DRIFT AV TEKNISKA PRODUKTER OCH SYSTEM MED HÄNSYN TILL AFFÄRSMÄSSIGA OCH SAMHÄLLELIGA BEHOV OCH KRAV
4.1 Samhälleliga villkor, inklusive ekonomiskt, socialt och ekologiskt hållbar utveckling
X
Mjukvarans kvalitet och användbarhet
4.2 Företags- och affärsmässiga villkor
X
Kostnader för mjukvaruutveckling
4.3 Att identifiera behov samt strukturera och planera utveckling av produkter och system
X
LAB1

                            
4.4 Att konstruera produkter och system
X
LAB1
Objektorienterad programutvecklingsmetodik
4.5 Att realisera produkter och system
X
LAB1
Debuggning, testning, verifiering av mjukvara
4.6 Att ta i drift och använda produkter och system
X
Relationen mellan kund och systemutvecklare, underhållningsbarhet
5. PLANERING, GENOMFÖRANDE OCH PRESENTATION AV FORSKNINGS- ELLER UTVECKLINGSPROJEKT MED HÄNSYN TILL VETENSKAPLIGA OCH SAMHÄLLELIGA BEHOV OCH KRAV
5.1 Samhälleliga villkor, inklusive ekonomiskt, socialt och ekologiskt hållbar utveckling för kunskapsutveckling

                            
5.2 Ekonomiska villkor för kunskapsutveckling

                            
5.3 Att identifiera behov samt strukturera och planera forsknings- eller utvecklingsprojekt
X
UPG1
Empirisk undersökning eller litteraturstudie
5.4 Att genomföra forsknings- eller utvecklingsprojekt
X
Empirisk undersökning eller litteraturstudie
5.5 Att redovisa och utvärdera forsknings- eller utvecklingsprojekt
X
Empirisk undersökning eller litteraturstudie

Denna flik innehåller det material som är publikt i Lisam. Den information som publiceras här är inte juridiskt bindande, sådant material hittar du under övriga flikar på denna sida.

Det finns inga filer att visa.