Imperativ och objektorienterad programmering

10 hp

Kursplan, Grundnivå, 1DL220

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 saknas.

FÖLJ UPPSALA UNIVERSITET PÅ

Uppsala universitet på facebook
Uppsala universitet på Instagram
Uppsala universitet på Youtube
Uppsala universitet på Linkedin