Kursplanering – Objektorienterad programmering

Kursplanering – Objektorienterad programmering
Fakta
Ämne
Poäng
Kurskod
Klass
Programmering
40 Yh-poäng
YSYS-OOP
Systemutvecklare.NET 1
Syfte och
koppling till
yrkesrollen
Syftet är att få en stabil grund inom objektorienterad programmering. Nästan
alla program som utvecklas idag skapas med hjälp av ett objektorienterat
programspråk.
Innehåll
Objektorienterad programmering kan användas för nästan all typ av
programmering och därför är denna kurs en bra grund för efterkommande
kurser på utbildningen. Denna kurs behandlar objektorienterad programmering
i C# och objektorienterad design för Windowsapplikationer.
Mål
Efter genomgången kurs skall den studerande kunna:
 Redogöra för objektorienterad programmeringsteknik
 Redogöra för principer och begrepp inom objektorienterad
programmering, såsom polymorfism, typkontroll, typomvandling,
klasser, arv, pekare, referenser samt klass- och funktionsmallar
 Planera för och konstruera objektorienterade program
 Planera för och konstruera grafiska användargränssnitt
 Dokumentera arbetet enligt de riktlinjer som lärts ut i kursen
 Redogöra för kravställningar som en del av programutvecklingen och
kravställningens relation till andra delar av utvecklingsprocessen, t.ex.
analys, design och test
 Utifrån en given kravspecifikation, kunna utveckla robust,
flexibel och lättförstådd kod
 Beskriva olika faktorer och tekniker som påverkar ett programs
robusthet och flexibilitet
 Redogöra för på vilka olika sätt objektorienterad programmering
underlättar återanvändning av programvara
 Använda viktiga principer för objektorienterad analys och
design
 Använda designmönster och kunna referera till dessa designmönster när
studenten diskuterar en design
 Uttrycka kod i UML och kunna översätta UML-diagram till kod
 Kritiskt och systematiskt utvärdera olika förslag på programdesign enligt
fastställda kriterier
 Redogöra för en designs för- och nackdelar och då referera till
vedertagna termer
Lärare och
kursansvarig
Mahmud Al Hakim
mahmud@dynamicos.se
076-1659879
Sida 1 av 8
Obligatorisk
Litteratur
Titel
Skarp programmering
med C#
Författare
Jan Skansholm
Kommentar
Upplaga: 1
Utgivningsår: 2008
Sidantal: 570.
Kompletterande material
till boken finns här:
http://www.cse.chalmers.s
e/~skanshol/skarp/
Den obligatoriska litteraturen ingår i examinerande moment.
Titel
Referenslitteratur
Författare
Område som
fördjupningen
behandlar
Visual C# resources
http://goo.gl/rtBGia
Allt
C# Svenska Spellista
http://goo.gl/w4ztlc
Videor som behandlar
grunderna inom C#
C# Tutorials
http://goo.gl/ZEaJod
Bra exempel och
övningar
Csharpskolan.se
www.csharpskolan.se
Div. C# artiklar
Referenslitteraturen ger dig en möjlighet att fördjupa dig inom ämnets olika
områden. Du kan även använda referenslitteraturen för att skapa större
utmaningar i dina studier. Denna litteratur ingår inte i examinerande moment.
Schema
Datum
Tid
Moment
26/8
09.00-16.00
Förmiddag (9.00–12.00)
Introduktion till kursen och
genomgång av kursplanering
Introduktion till
Programmering .NET C# och
Visual Studio
Kompilering och exekvering
av C#-program
Litteraturhänvisning
Att läsa: Sid. 140
Eftermiddag (13.00–16.00)
Variabler
Selektioner (if-satsen)
Dialogrutor
Inlämningsuppgift 1 delas ut.
(redovisas senast 9-10/9)
27/8
09.00-16.00
Förmiddag (9.00–12.00)
Laboration 1 - Grupp 1
Eftermiddag (13.00–16.00)
Laboration 1 - Grupp 2
Sida 2 av 8
Arbeta med övn.
1-6 sid. 57
8/9
9/9
10/9
09.00-16.00
09.00-16.00
09.00-16.00
Förmiddag (9.00–12.00)
Repetitioner (while-satsen
och for-satsen)
Nästlade repetitioner
Introduktion till grafiska
program
Att läsa: sid. 4157
Eftermiddag (13.00–16.00)
Övningar
Övning 10-11
sid. 58
Förmiddag (9.00–12.00)
Klasser och objekt
Introduktion till
objektorientering
Introduktion till UML
Klassdiagram
Klassdeklarationer
Mer om variabler
Lokala variabler,
instansvariabler
Datatyper (enkla typer)
Operatorer
Intro till Statiska variabler
(klassvariabler)
Tilldelning och
typomvandling
Metoder
Att läsa: sid. 5991
Eftermiddag (13.00–16.00)
Laboration 2 - Grupp 1
Inlämningsuppgift 1
redovisas.
Arbeta med övn.
7-11 sid. 57-58
och övn. 1-9
sid.115-116
Förmiddag (9.00–12.00)
Standardklassen String
Konstruktorer
Överlagrade metoder
Standardklassen Random
Struct-typer
Egenskaper (properties)
Objektinitierare och
anonyma typer
Att läsa: sid. 92115
Inlämningsuppgift 2
Delas ut.
(redovisas senast
23-24/9)
Eftermiddag (13.00–16.00)
Laboration 2 - Grupp 2
Inlämningsuppgift 1
redovisas.
Sida 3 av 8
Arbeta med övn.
7-11 sid. 57-58
och övn. 1-9
sid.115-116
22/9
09.00-16.00
Förmiddag (9.00–12.00)
Mer om klasser och typer
Namnrymder
Inkapsling och synlighet
Statiska variabler
Konstanter
Att läsa:
sid.117-134
Eftermiddag (13.00-16.00)
Självstudier
23/9
09.00-16.00
Förmiddag (9.00–12.00)
Standardklassen Math
Parameteröverföring
Referensen this
Tilläggsmetoder
Uppräkningstyper
Att läsa:
sid. 134-148
Eftermiddag (13.00–16.00)
Laboration 3 - Grupp 1
Arbeta med övn.
1-10
sid. 149-150
Inlämningsuppgift 2
redovisas.
24/9
09.00-16.00
Förmiddag (9.00–12.00)
Objektorienterad
programutveckling
Objektorienterad Analys,
design och programmering
Algoritmer
Relationer
Att läsa: sid. 151172
Inlämningsuppgift 3 delas ut
(redovisas senast 7-8/10 )
Eftermiddag (13.00–16.00)
Laboration 3 - Grupp 2
Inlämningsuppgift 2
redovisas
Arbeta med övn.
1-10 sid. 149150
6/10
13.00-16.00
Eftermiddag (13.00–16.00)
Fält (array)
Sökning och sortering
Att läsa: sid. 173196
7/10
09.00-16.00
Förmiddag (9.00–12.00)
Listor
Flerdimensionella fält
Delegater
Att läsa: sid.196218
Eftermiddag (13.00–16.00)
Laboration 4 - Grupp 1
Arbeta med övn.
1-11 sid. 218220
Inlämningsuppgift 3
redovisas
Sida 4 av 8
8/10
09.00-16.00
Förmiddag (9.00–12.00)
Läsning och skrivning
Nationella inställningar
Redigering av text
Avkodning av data
Felkontroll
Textfiler
Datum och tider
Att läsa: sid. 221238
Inlämningsuppgift 4 delas ut
(redovisas senast 21-22/10 )
Eftermiddag (13.00–16.00)
Laboration 4 - Grupp 2
Arbeta med övn.
1-11 sid. 218220
Inlämningsuppgift 3
redovisas
20/10
09.00-16.00
Förmiddag (9.00–12.00)
Arv
Subklasser
Virtuella metoder
Dynamisk bindning
Objektsamlingar
Abstrakta klasser
Att läsa: sid. 239260
Eftermiddag (13.00-16.00)
Självstudier
21/10
22/10
09.00-16.00
09.00-16.00
Förmiddag (9.00–12.00)
Gränssnitt (Interface)
Jämförbara objekt
Ett objektorienterat exempel
Att läsa: sid. 261280
Eftermiddag (13.00–16.00)
Laboration 5 - Grupp 1
Inlämningsuppgift 4
redovisas
Arbeta med övn.
1-8 sid. 281-282
Förmiddag (9.00–12.00)
Exceptionella händelser
Try-catch
Att läsa: sid. 283294
Inlämningsuppgift 5 delas ut
(redovisas senast 4-5/11 )
Eftermiddag (13.00–16.00)
Laboration 5 - Grupp 2
Inlämningsuppgift 4
redovisas
Sida 5 av 8
Arbeta med övn.
1-8 sid. 281-282
3/11
09.00-16.00
Förmiddag (9.00–12.00)
Grafiska användargränssnitt
del 1
Att läsa: sid. 295324
Eftermiddag (13.00–16.00)
Övningar
5/11
09.00-16.00
Förmiddag (9.00–12.00)
Grafiska användargränssnitt
del 2
Att läsa: sid. 325346
Inlämningsuppgift 6 delas ut
(redovisas senast 18-19/11 )
17/11
09.00-16.00
Eftermiddag (13.00–16.00)
Laboration 6 - Grupp 1
Inlämningsuppgift 5
redovisas
Arbeta med övn.
1-7 sid. 376-378
Förmiddag (9.00–12.00)
Grafiska användargränssnitt
del 3
Att läsa: sid. 346376
Eftermiddag (13.00–16.00)
Gästföreläsning Systemutvecklingsprocessen,
olika roller i ett projekt och
vilka egenskaper som krävs
för att vara konsult.
Övningar
18/11
09.00-16.00
Förmiddag (9.00–12.00)
Konstruktion av egna
grafiska komponenter
Att läsa: sid. 379400
del 1
19/11
09.00-16.00
Eftermiddag (13.00–16.00)
Laboration 7 - Grupp 1
Inlämningsuppgift 6
redovisas
Arbeta med övn.
1-7 sid. 413-414
Förmiddag (9.00–12.00)
Konstruktion av egna
grafiska komponenter
del 2
Att läsa: sid. 400413
Inlämningsuppgift 7 (VGUppgift) delas ut
Obligatorisk om du satsar på
betyget VG
OBS! Du måste lämna in alla
uppgifter för att få VG i
kursen.
(redovisas senast 2-3/12 )
Sida 6 av 8
28/11
fredag
1/12
09.00-16.00
09.00-16.00
Eftermiddag (13.00–16.00)
Laboration 7 - Grupp 1
Inlämningsuppgift 6
redovisas
Arbeta med övn.
1-7 sid. 413-414
Förmiddag (9.00–12.00)
Mer om användargränssnitt
Att läsa: sid.
415-455
Eftermiddag (13.00–16.00)
Övningar
Arbeta med övn.
1-6 sid. 455-456
Förmiddag (9.00–12.00)
Generiska konstruktioner
och containerklasser
Att läsa: sid. 483513
Eftermiddag (13.00–16.00)
Extra redovisningstillfälle
Att läsa: sid. 457482
Strömmar och filer
(egen läsning/överkurs)
2/12
3/12
10/12
Examination
och betygssättning
09.00-16.00
09.00-16.00
09.00-12.00
Förmiddag (9.00–12.00)
do-satsen
switch-satsen
Villkorsoperatorn
goto-satsen
Att läsa. sid. 515524
Eftermiddag (13.00–16.00)
Laboration 8 - Grupp 1
Inlämningsuppgift 7
redovisas
Arbeta med övn.
1-9 sid. 549-550
Förmiddag (9.00–12.00)
Rekursion
Trådar
Att läsa. sid. 533549
Eftermiddag (13.00–16.00)
Laboration 8 - Grupp 2
Inlämningsuppgift 7
redovisas
Arbeta med övn.
1-9 sid. 549-550
Skriftligt prov
I denna kurs kommer betyget i huvudsak sättas utifrån följande underlag:
 Kursen examineras genom totalt 7 inlämningsuppgifter inkl. en VGUppgift samt ett slutprov på plats.
 Inlämningsuppgifterna delas ut varannan vecka och behandlar centrala
moment under de aktuella avsnitten.
Det räcker att redovisa uppgift 1-6 om man enbart satsar på betyget G.
 Alla inlämningsuppgifter måste vara inlämnade innan onsdag den 3
december 2014 kl. 16.00
Sida 7 av 8
Allt som den studerande presterar under kurstiden kommer att vägas in vid
betygssättningen. Det gäller till exempel prov, inlämningsuppgifter och de
kunskaper, färdigheter samt den förståelse som uppvisas under lektionstid.
Betygskriterierna för Godkänd respektive Väl godkänd är:
Godkänd
 Den studerande redogör för objektorienterad
programmeringsteknik
 Den studerande redogör för principer och begrepp inom
objektorienterad programmering, såsom polymorfism, typkontroll,
typomvandling, klasser, arv, pekare, referenser samt klass- och
funktionsmallar
 Den studerande planerar för och konstruerar objektorienterade
program
 Den studerande planerar för och konstruerar grafiska
användargränssnitt
 Den studerande dokumenterar arbetet enligt de riktlinjer som
lärts ut i kursen
 Den studerande skriver kommentarer till varje algoritm
 Den studerande redogör för kravställningar som en del av
programutvecklingen och kravställningens relation till andra delar av
utvecklingsprocessen, t.ex. analys, design och test
 Den studerande utvecklar robust, flexibel och lättförstådd kod
utifrån en given kravspecifikation
 utveckla robust, flexibel och lättförstådd kod beskriver olika
faktorer och tekniker som påverkar ett programs robusthet och
flexibilitet
 Den studerande redogöra för på vilka olika sätt objektorienterad
programmering underlättar återanvändning av programvara
 Den studerande använder viktiga principer för objektorienterad
analys och design
 Den studerande använder designmönster och kan referera till dessa
designmönster när studenten diskuterar en design
 Den studerande uttrycker kod i UML och kan översätta UML-diagram till
kod
 Den studerande utvärderar kritiskt och systematiskt olika förslag på
programdesign enligt fastställda kriterier
 Den studerande redogör för en designs för- och nackdelar och
kan referera till vedertagna termer
Väl godkänd
 Den studerande planerar för och konstruerar självständigt och
med säkerhet objektorienterade program med hjälp av C#
 Den studerande visar förmåga att självständigt kunna
implementera en objektorienterad design med hjälp av C#
Sida 8 av 8