Akademin för teknik och miljö KURSPLAN Faculty of Engineering and Sustainable Development Objektorienterad design, programmering och algoritmer 15 hp Object-Oriented Design, Programming and Algorithms 15 credits Fastställd av Akademin för teknik och miljö Version Beslutad den 2012-03-21 2012-11-07 Fördjupning G1F Utbildningsnivå Grundnivå Kurskod DVG301 Högskolepoäng 15 hp Huvudområde Ej definierat Ämnesgrupp Datateknik Utbildningsområde Tekniska området 100% Mål Gäller fr.o.m. 2012-03-21 2013-01-21 Efter avslutad kurs ska studenten kunna 1. ingående redogöra för de teoretiska begreppen inom objektorientering och algoritmer och abstrakta datatyper samt begreppens tillämpning i olika programmeringssituationer med ett objektorienterat programmeringsspråk 2. designa robusta objektorienterade lösningsmodeller för ett givet problem genom att modellera olika aspekter av problemet med hjälp av statiska och dynamiska UML-diagram 3. utifrån en vald design skapa goda objektorienterade program med grafiska användargränssnitt, och där programmens interna representation tydligt avspeglar problemdomänen 4. analysera, förklara, välja och använda några vedertagna designmönster 5. använda abstrakta datatyper och algoritmer som ingår i befintliga programbibliotek och definiera enkla generiska abstrakta datatyper med hjälp av typparametrisering 6. genomföra grundläggande algoritmanalys och beskriva tidskomplexitet och tillämpningsområden för de vanligaste algoritmerna och datastrukturerna 7. tillämpa och integrera ovanstående kunskaper genom att på ett självständigt sätt genomföra en programmeringsuppgift 8. kommunicera, diskutera och kritiskt granska andras såväl som sina egna designval och programmeringstekniska lösningar, och presentera egna slutsatser i seminarieform. Sida 1 av 3 Högskolan i Gävle accepterar inte fusk i någon form. Plagiat är en form av fusk, som innebär att du imiterar eller kopierar någon annans arbete, till exempel en text, en bild eller en tabell, och framställer materialet som ditt eget. Högskolan använder antiplagiatsystem för att förebygga och upptäcka fusk i samband med skriftliga inlämningsuppgifter. Kursens innehåll Kursen ger praktiska och teoretiska kunskaper om objektorienteringens grundläggande principer samt algoritmer och datastrukturer, och utgör en god grund för fortsatta studier inom datavetenskap. Teoretiska begrepp inom objektorientering - abstraktion, klass, subklass, konstruktor, interface, arv, arvshierarkier, inkapsling, informationsdöljning, modularisering, överlagring, överskuggning, polymorfi, dynamisk bindning, delegering Fördjupning i UML - klassdiagram med statiska relationer, interaktionsdiagram Designmönster - singleton, adapter, iterator, strategy, factory method, bridge, observer, model/view/controller Programmering av grafiska användargränssnitt - komponenter, behållare (containers), hantering av layout, trådade grafiska gränssnitt Händelsestyrd programmering - lyssnarobjekt, listener, adapter, event, inre klass, anonym klass Undantagshantering - exceptions, runtime exceptions Koppling till databaser - avbildning mellan relationsdata och objekt via Data Access Objects som döljer frågespråket SQL Algoritmer och abstrakta datatyper - språkstöd för implementation av abstrakta datatyper: dynamisk minneshantering, referenser, typparametrisering - rekursion - generiska algoritmer och generiska standardbibliotek - användning och implementation av listor, stackar och köer - användning av prioritetsköer, träd, tabeller och grafer - algoritmer för sökning och sortering - introduktion till algoritmanalys och Ordo-notation - praktiska undersökningar av tidskomplexitet Ett antal inlämningsuppgifter och ett avslutande utvecklingsprojekt har avsikten att ge goda praktiska färdigheter. Undervisning Undervisningen bedrivs i lektionsform och utgörs av föreläsningar, praktiska övningar, projekthandledning och redovisningsseminarier. Förkunskaper Minst 15 hp inom området Datavetenskap, varav en grundläggande programmeringskurs (minst 7,5 hp) och en introduktionskurs till databaser skall ingå. Rekommenderade kurser är Datorer och programvaruutveckling och Introduktion till GIS-systemering och databaser. Grundläggande kunskaper i Java förväntas. Examinationsform Skriftlig tentamen, inlämningsuppgifter och utvecklingsprojekt. Moment 0010 Skriftlig tentamen Objektorienterad design och programmering 3 hp, Betyg: AF 0020 Inlämningsuppgifter Objektorienterad design och prog. 3 hp, Betyg: UV 0030 Skriftlig tentamen: Algoritmer och datastrukturer 3 hp, Betyg: AF 0040 Inlämningsuppgifter: Algoritmer och datastrukturer 3 hp, Betyg: UV 0050 Utvecklingsprojekt 3 hp, Betyg: AF Sida 2 av 3 Högskolan i Gävle accepterar inte fusk i någon form. Plagiat är en form av fusk, som innebär att du imiterar eller kopierar någon annans arbete, till exempel en text, en bild eller en tabell, och framställer materialet som ditt eget. Högskolan använder antiplagiatsystem för att förebygga och upptäcka fusk i samband med skriftliga inlämningsuppgifter. Betyg A, B, C, D, E, Fx, F Begränsningar Betygskriterier meddelas av examinator eller kursansvarig i samband med kursstart. Projektet kan endast examineras en gång per läsår. Kursen kan ej ingå i examen tillsammans med någon av följande kurser: Java Application B, Objektorienterad programmering 1, Objektorienterad programmering B, Objektorienterad programmering II B eller Algoritmer och datastrukturer I. Kursen är huvudsakligen avsedd för studenter på IT/GIS-programmet. Övriga föreskrifter Saknas Hållbar utveckling Inslag av hållbar utveckling är inte relevant för kursen. Kurslitteratur Holm, Per (Senaste upplagan). Objektorienterad programmering och Java. Studentlitteratur. Weiss, Mark A. (senaste upplagan). Data Structures & Problem Solving in Java. Pearson Education. Webbreferenser och utdelat material. Referenslitteratur Bilting, Ulf (senaste upplagan). Designmönster för programmerare. Studentlitteratur. Booch, Grady; Maksimchuk, Robert A.; Engel, Michael W. (senaste upplagan). ObjectOriented Analysis and Design with Applications. Addison-Wesley. Valfri litteratur om Java, t.ex. The Java Tutorials från Oracle (http://docs.oracle.com/javase/tutorial/) Sida 3 av 3 Högskolan i Gävle accepterar inte fusk i någon form. Plagiat är en form av fusk, som innebär att du imiterar eller kopierar någon annans arbete, till exempel en text, en bild eller en tabell, och framställer materialet som ditt eget. Högskolan använder antiplagiatsystem för att förebygga och upptäcka fusk i samband med skriftliga inlämningsuppgifter.