Imperativ och objektorienterad programmering
Kursplan, Grundnivå, 1DL220
Kursen är avvecklad.
- Kod
- 1DL220
- Utbildningsnivå
- Grundnivå
- Huvudområde(n) med fördjupning
- Datavetenskap G1F, Teknik G1F
- Betygsskala
- Med beröm godkänd (5), Icke utan beröm godkänd (4), Godkänd (3), Underkänd (U)
- Fastställd av
- Teknisk-naturvetenskapliga fakultetsnämnden, 18 mars 2008
- Ansvarig institution
- Institutionen för informationsteknologi
Behörighetskrav
Programkonstruktion, Algoritmer och datastrukturer I.
Mål
För godkänt betyg ska studenten kunna
- programmera väl i minst ett objektorienterat imperativt språk (konstruera program med flera samverkande klasser, använda arv, polymorfi och felhantering med hjälp av undantag)
- programmera väl i minst ett imperativt språk som inte har speciellt stöd för objektorientering (konstruera program med dynamiska strukturer och explicit minneshantering),
- uppvisa god förståelse för de principer som ligger till grund för imperativa och objektorienterade språk och för variationer mellan språken
Studenten ska för dessa språk kunna
- redovisa en detaljerad förståelse av centrala delar av språken, till exempel genom att i detalj förklara hur program beräknar;
- designa, koda, granska, testa, felsöka och dokumentera egna program;
- beskriva -- oberoende av programkoden -- den uppgift ett program skall lösa och de förutsättningar som krävs för att det skall kunna arbeta;
- motivera varför programmet under dessa förutsättningar är korrekt, och varför körningen av ett program med upprepning faktiskt avslutas;
- beskriva de antaganden och konventioner som styr hur information är lagrad i programmets datastrukturer;
- förklara hur större programuppgifter kan lösas och resonera om olika lösningsalternativ.
Innehåll
Programstrukturer som tas upp är bland annat: procedur, funktion, array, loop, pekare, struktur, minneshantering, objekt, klass, metod, arv, polymorfi, undantag. Olika former av variabelbindning och -överföring tas upp (call-by-value, call-by-reference, call-by-name och statisk vs. dynamisk variabelbindning).
För att visa att program är korrekt används begreppen för- och eftervillkor, representationsinvariant, loopinvariant, loop- och rekursionsvariant.
Grundläggande programmeringsteknik ingår: systematisk arbetsgång för kravspecifikation, problemanalys, programdesign, kodning, kodgranskning, testning, felsökning samt dokumentation.
Programmeringsspråk som kan förekomma är exempelvis Java, C, och C++. Jämförelser med funktionella språk görs.
Examination
Kursen examineras med skriftlig tentamen (3 hp) samt muntligt och/eller skriftlig redovisning av laborationer (3 hp) och inlämningsuppgifter (4 hp). Kursbetyget baseras på tentamen och inlämningsuppgifter.
Övriga föreskrifter
Övriga föreskrifter
Kursen kan ej räknas i examen tillsammans med någon av följande kurser:
Programmeringsteknik II, NV2, MN2: 1TD720, 1TD721, 1TD722, 1TD770, 1TD772
Programmering: 1DT042
Objektorienterad programmering (med Java/C++): 1DL013, 1DL100, 1DL028, 1TD292, 1TD321, 2AD510, 2AD512
Datorer och programmering TDB3: 1TD335
Imperativ programmering: 1DL126
Programmering för språkteknologer II: 5LN446
Algoritmer och datastrukturer i objektorienterad programmering: 5LN405
Algoritmer, datastrukturer och objektorienterad programmering: 2AD239.
Av Algoritmer och datastrukturer DV1, 1TD442, kan 6 hp (av 9) tillgodoräknas tillsammans med denna kurs.
Litteraturlista
Litteraturlista saknas.