Göm menyn

TDIU04 Programmering i C++, standardbibliotek

Examination

Kursen har två examinationsmoment, LAB1 och DAT1. Kursbetyget bestäms av betyget på DAT1.

LAB1 (2 hp)

LAB1 utgörs av laborationer som behandlar de delar av C++ standardbibliotek, m.m., som ingår i kursen. LAB1 betygssätts U eller G i LADOK.

Det finns en deadline för varje laborationsuppgift. Att denna hålls är ett grundkrav för möjligheten att erhålla bonuspoäng vid tentamen. Syftet med detta är främst att uppmuntra till att laborerandet ska ligga i fas med föreläsningar och lektioner och att du ska vara väl förberedd till tentamen. Om du på grund av sjukdom eller annat giltig förfall blir förhindrad att hålla en deadline ska laborationsassistenten meddelas snarast ("sjukanmälan" e.dyl.) och normalt i så god tid som möjligt innan deadline.

I Webreg markeras och betygssätts laborationerna enligt följande:

•  Laboration som lämnas in senast vid deadline och är godkänd får betyg GB.

•  Laboration som lämnas in senast vid deadline och behöver kompletteras, markeras KB. Om godkänd komplettering lämnas in inom 8 kalenderdagar efter att komplettering begärts (datum för assistentens e-postmeddelande gäller) erhåller laborationen betyg GB. Om inte den första kompletteringen är godkänd' eller deadlinen för komplettering inte hålls, ändras markeringen till K och betyg G erhålls då laborationen är godkänd, oavsett antal kompletteringar.

•  Laboration som lämnas in efter deadline får betyg GE om godkänd. Behövs komplettering markeras den KE och när laborationen blir godkänd erhålls betyg GE, oavsett antal kompletteringar.

Man kan få 1 bonuspoäng som kan tillgodoräknas vid de tre närmast följande tentamina efter att kursen avslutats. Därefter är bonuspoängen förverkad. En enda bonuspoäng kan låta lite men det skiljer bara 3 poäng mellan betygsstegen, så denna poäng vara betydelsefull. Bonuspoängen kan tillgodoräknas för att höja en 3:a till en 4:a eller en 4:a till en 5:a, men inte för att erhålla betyg 3 på en annars underkänd tentamen. För att erhålla bonuspoängen krävs följande:

•  Deadline för redovisning ska hållas för samtliga laborationer.

•  Minst fyra av laborationerna 2—6 måste ha betyg GB. Högst två av laborationerna får alltså ha betyg G och en av dessa måste i så fall vara laboration 1. Ingen laboration får ha betyg GE.

•  Laboration 1—5 ska vara godkända i Webreg senast den dag läsperiod Vt2 startar, men flertalet måste vara godkända tidigare för att kravet på fyra GB för bonuspoäng ska uppfyllas.

•  Laboration 6 ska vara godkänd i Webreg senast måndag i den andra veckan av Vt2 men eventuellt tidigare om betyg GB behövs för att uppfylla kravet på fyra GB för bonuspoäng (beror på om och när KB-komplettering begärts).

Laborationer som lämnas in först efter att läsperiod Vt2 startat (kursen betraktas som avslutad) kan kan komma att rättas först i samband med omtentamen. Kompletteringar som kommer in efter att Vt2 startat riskerar att hamna i samma situation. Assistenten ska i sådana fall direkt ge besked om när rättning kan förväntas ske.

Tänk på!

Lösningarna till laborationsuppgifterna i C++ ska vara program som konstruerats och kodats av laborationsgruppens medlemmar i jämbördigt samarbete och utan någon inblandning av andra. Allmäna diskussioner kring programmering och C++ kan man föra med vem som helst, konkreta diskussioner kring konstruktioner och problem i direkt samband med laborationsuppgifterna ska enbart föras inom labgruppen och med lärarna.

Alla former av kopiering av texter, programkod, etc., betraktas som fusk och ska normalt rapporteras till disciplinnämnden. Där vill ingen av oss hamna.

DAT1 (2 hp)

DAT1 examineras genom en datortentamen, vilken innebär programmering i C++ med, framför allt, användning av C++ standardbibliotek. Tentamen omfattar normalt fyra programmeringsuppgifter som ska lösas vid dator. Tentamenstiden är 5 timmar. Tentamen genomförs i princip som en vanlig papperstenta, även dellösningar kan lämnas in, rättning sker i efterhand. DAT1 ges första gången i tentamensperiod Vt1 och sedan i omtentamensperioderna efter Vt2 och i augusti. DAT1 betygssätts U, 3, 4, 5, vilket bestäms av hur många poäng man erhållit totalt. Väl genomförda laborationer kan ge bonuspoäng vid tentamen.

Tentamen ska vara ett prov på färdigheter i problemlösning med användning av standardbibliotekskomponenter, speciellt containrar, iteratorer, algoritmer och funktionsobjekt samt associerade stödkomponenter (t.ex. pair). Du ska kunna konstruera egna funktionsobjektsklasser (struct, class) och kunna göra om en sådan klass till en klassmall (template). Du ska kunna överlagra och använda operatorerna << och >> för skrivning respektive läsning. Du ska kunna definiera och använda uppräkningstyper (enum). Kursrelaterade saker som ingår i förkunskaper är att kunna använda strängar (std::string) och strömmar, inklusive filströmmar (ifstream, ofstream—) och strängströmmar (istringstream, ostringstream).

Aktuella tentamenstillfällen och anmälningsperioder (Studentportalen).

Exempel på tidigare tentor

2015-03-20: Uppgifter — Lösningsförslag

2014-08-27: Uppgifter — Lösningsförslag

2014-06-12: Uppgifter — Lösningsförslag

Datortentamen

Datortentamen genomförs på IDAs Linux-system. Arbetsmiljön består av GNU GCC (g++), gccfilter, texteditorerna emacs, gedit och vim samt cplusplus.com Reference (öppnas i webbläsare). Föjlande g++-alias är definierade för att underlätta kompilering och länkning:

   g++11: g++ -std=c++11
   w++11: g++ -std=c++11 -pedantic -Wall -Wextra
   e++11: g++ -std=c++11 -pedantic -Wall -Wextra -Werror (varningar ses som fel)

Använd w++11 vid utveckling av program. Varningar kan peka på allvarliga fel i koden och bör alltid elimineras. Ett körbart program bör kunna erhållas vid kompilering med e++11, dvs programmet ska kompilera utan några varningar alls. Diagnosmeddelanden kan filtreras med gccfilter, som körs som ett separat kommando:

   gccfiler g++-alias filer

Allmäna anvisningar för IDAs datortentasystem finns här.

Du bör ha god vana vid att använda någon av de tillgängliga texteditorerna (se ovan), kompilatorn GNU/GCC g++ samt grundläggande hantering av filer i Linux-miljön.

Du bör ha god vana vid att tolka felmeddelanden och varningar från kompilatorn och länkaren och kunna särskilja meddelanden från kompilatorn och länkaren.

Det är viktigt att vara väl förtrogen med hjälpmedlen (se nedan) och deras innehåll, de ska enbart vara ett stöd för att kunna ta reda på detaljer.

Hjälpmedel

En bok om C++ får tas med till tentamen. Följande gäller:
   — kommentarer/noteringar som direkt rör text och exempel på sidan i fråga får finnas i sidmarginalen
   — rättelser till felaktigheter får finnas
   — egna sidflikar för att enkelt kunna hitta t.ex. de olika kapitlen är tillåtna
   — inga extra ark eller lappar, lösa eller fastsatta, får finnas
   — tomma sidor, in- och utsidorna av pärmarna, försättsblad, etc., får inte innehålla kommentarer, speciellt inte programkod

•  C++ Standardbibliotek: Översikt containrar, iteratorer, algoritmer, funktionsobjekt (PDF) kommer att finnas bland givna filer.

•  cplusplus.com Reference kan läsas i en webbläsare (Chromium).

•  Inloggningsinstruktioner och praktiska tips utlånas under tentamen.

•  En svensk—* ordbok.

•  Kladdpapper (delas ut) och penna.

Inga andra hjälpmedel är tillåtna!


Sidansvarig: Tommy Olsson
Senast uppdaterad: 2015-03-20