Sök i kursutbudet

Använda sökfunktionen för att hitta i Chalmers utbildningsutbud, både vad gäller kurser och program. När det finns en kurshemsida visas en hus-symbol som leder till denna sida.
Sök program och utbildningsplaner


Institutionernas kurser för doktorander

Kursplan för

Läsår
TDA550 - Objektorienterad programvaruutveckling, fortsättningskurs  
Object-oriented programming, advanced course
 
Kursplanen fastställd 2016-02-15 av programansvarig (eller motsvarande)
Ägare: TKIEK
7,5 Högskolepoäng
Betygskala: TH - Fem, Fyra, Tre, Underkänd
Utbildningsnivå: Grundnivå
Huvudområde: Informationsteknik
Institution: 37 - DATA- OCH INFORMATIONSTEKNIK


Undervisningsspråk: Svenska
Sökbar för utbytesstudenter: Nej

Kursmoment   Poängfördelning   Tentamensdatum
Lp1 Lp2 Lp3 Lp4 Sommarkurs Ej Lp
0104 Tentamen 4,5hp Betygskala: TH   4,5hp   18 Jan 2019 em M   24 Apr 2019 fm SB_M   21 Aug 2019 fm J
0204 Laboration 3,0hp Betygskala: UG   3,0hp    

I program

TKIEK INDUSTRIELL EKONOMI, CIVILINGENJÖR - Informationsteknik, Årskurs 2 (obligatorisk)
TKTFY TEKNISK FYSIK, CIVILINGENJÖR, Årskurs 3 (valbar)
TKTEM TEKNISK MATEMATIK, CIVILINGENJÖR, Årskurs 3 (obligatoriskt valbar)

Examinator:

Uno Holmer

Ersätter

TDA375   Grundläggande objektorienterad programvaruutveckling


  Gå till kurshemsida

 

Behörighet:

För kurser på grundnivå inom Chalmers utbildningsprogram gäller samma behörighetskrav som till de(t) program där kursen ingår i programplanen.

Kursspecifika förkunskaper

Denna kurs är en direkt fortsättning på kurserna TIN212 Programmeringsteknik eller TDA143 Programmerade system, vilka, eller en motsvarande kurs, utgör förkunskapskrav.

Syfte

Kursen ska ge fördjupade kunskaper om objektorienterad programmering. Efter genomgången kurs skall studenten känna till mer sofistikerade koncept och tekniker som är speciellt användbara för att utveckla större programvaruapplikationer. Kursen skall utveckla studentens förmåga att utifrån genomgången teori värdera olika programmerings- och designmässiga kvalitéer, t ex med avseende på utbyggbarhet, testbarhet, återanvändbarhet och underhåll.


Kursen skall även träna upp kompetenserna problemlösning, modellering samt ingenjörsmässighet (kompetenserna beskrivs närmare i programplanen).

Lärandemål (efter fullgjord kurs ska studenten kunna)

* Beskriva principerna för objektorienterad programmering, använda dem i programmeringsfasen och förklara hur de kan realiseras i ett specifikt objektorienterat programspråk.
* Använda UML's klassdiagram för att på ett överskådligt sätt planera och dokumentera eget programmeringsarbete.
* Resonera om och utvärdera olika egenskaper för program, bedöma dess fördelar och nackdelar med avseende på olika utvecklingsmål - t ex underhåll, återanvändning och robusthet - och därpå göra lämpliga val.
* Tillämpa ett antal vanligt förekommande designprinciper och designmönster för att åstadkomma en design som underlättar underhåll och återanvändning.
* Implementera generiska programenheter.
* Använda och beskriva hur ett applikationsramverk kan vara uppbyggt.
* Beskriva olika kriterier och principer för god programdesign.
* Redogöra för innebörden av synkronisering och trådsäkerhet samt kunna implementera trådsäkra objekt.
* Utforma och implementera objektorienterade lösningar för medelstor programvara, samt att avlusa och testa implementeringen.
* Använda centrala delar i en integrerad utvecklingsmiljö för design, implementering och omstrukturering av program.

Innehåll

* Fördjupning av begreppen implementationsarv, specifikationsarv, abstrakta klasser, polymorfism, dynamisk bindning, inkapsling och information hiding. Introduktion till UML.
* Några fundamentala designprinciper, såsom Dependency Inversion Principle, Open-Closed Principle, Liskov Substitution Principle, Single Responsibility Principle, Separation of concern Principle, Law of Demeter och Interface Segregation Principle.
* Generiska programenheter.
* Kanonisk form för klasser ¿ equals(), hashCode(), clone(), toString() och serialisering.
* Kontraktbaserad design ¿ förvillkor, eftervillkor, klassinvarianter och assertions.
* Muterbara och icke-muterbara objekt. Representationsexponering.
* Inre klasser och anonyma klasser.
* Undantagshantering.
* Några vanliga designmönster, såsom Singleton, Factory Method, Template Method, Strategy, Decorator, Adapter, Iterator, Observer, State, Façade och MVC.
* Refactoring.
* Java's Collection-ramverk och dess uppbyggnad .
* Java's I/O-ramverk och dess uppbyggnad.
* Trådar och trådsäkerhet - race conditions, deadlock, kritiska regioner och synkronisering.

Organisation

Undervisningen består av föreläsningar, övningar och laborationer samt handledning i samband med dessa.

Litteratur

Information om aktuell litteratur ges innan kursstart på kursens hemsida.

Examination inklusive obligatoriska moment

Sker i form av godkänd skriftlig tentamen samt godkända laborationer.
Baserat på tentamensresultatet ges slutbetyg i skalan U, 3, 4 eller 5.


Publicerad: to 02 sep 2010. Ändrad: må 16 jul 2018