EPN-V2

DAVE3605 Efficient C/C++ Coding Techniques Course description

Course name in Norwegian
Effektiv kode med C og C++
Weight
10.0 ECTS
Year of study
2017/2018
Course history
  • Introduction

    Studentene skal tilegne seg kunnskap og innsikt i utvikling av ressurseffektive programmer, hovedsakelig ved bruk av C++. Emnet vil være et nyttig fundament for studenter som ønsker å skrive ressurskrevende og komplekse programmer, slik som spill, simuleringer og visualisering, eller programmer som skal kjøre i ressursfattige miljøer slik som routere, IP-kameraer og mobile enheter. Bygger på emnene Programmering og Programutvikling.

  • Required preliminary courses

    Ingen ut over opptakskrav

  • Learning outcomes

    Etter å ha gjennomført dette emnet har studenten følgende læringsutbytte, definert som kunnskap, ferdigheter og generell kompetanse.

    Kunnskap

    Studenten kan:

    • gjøre rede for de viktigste egenskapene ved C og C++
    • forklare forskjellen på statisk, dynamisk og automatisk allokering av minne
    • forklare forskjellen på pekere, referanser og iteratorer
    • forklare hva generisk programmering er
    • gjøre rede for hva designmønstre er og gi eksempler på slike
    • forklare forskjellen på dynamisk og statisk linking

    Ferdigheter

    Studenten:

    • anvender C og C++ i egne prosjekter
    • lager egne strukter, klasser og operatorer
    • bruker designmønstre, generisk programmering og andre abstraksjoner effektivt
    • produserer et ferdig program i C++, med automatisert installasjonsprosedyre

    Generell kompetanse

    Studenten:

    • har generell forståelse for utvikling av ressurseffektive programmer
    • kjenner til teknikker for effektivisering av programmer på høyere og lavere abstraksjonsnivå
  • Teaching and learning methods

    Forelesninger og praktisk arbeid på lab. Prosjektarbeid i par eller grupper (2-5 studenter).

  • Course requirements

    Følgende arbeidskrav er obligatorisk og må være godkjent for å fremstille seg til eksamen:

    • 2 individuelle oppgaver
  • Assessment

    Eksamensform: Mappevurdering med følgende mappekrav:

    • to individuelle oppgaver
    • ett gruppeprosjekt

    I mappevurdering gis en helhetlig vurdering med én karakter.

    Eksamensresultat kan påklages.

    Ved ny og utsatt eksamen kan en annen eksamensform også bli benyttet eller en ny oppgave med en ny frist gis. Hvis muntlig eksamen benyttes kan denne ikke påklages.

  • Permitted exam materials and equipment

    Studentene skal utvikle ferdigheter i å løse, på en selvstendig og systematisk måte, et praktisk orientert og omfattende prosjekt, basert på en oppdragsgivers krav. Studentene skal demonstrere at de kan omsette sine kunnskaper til praktiske løsninger. De skal kunne bruke grunnreglene for brukerkvalitet i analyse, design, implementering, i grensesnitt og dokumentasjon. De skal kunne produsere tilfredsstillende dokumentasjon for dataprogrammer og datasystemer både når det gjelder produkt, drift og bruk med tilpasning til de ulike mottakerne av denne dokumentasjonen, og de skal kunne beskrive sin egen arbeidsprosess hensiktsmessig etter gitte standarder.

  • Grading scale

    Studenter må være registrert i 3. studieår og ha bestått minimum 100 studiepoeng fra 1. og 2. studieår per 1. oktober, før bacheloroppgaven kan tas.

  • Examiners

    Etter å ha gjennomført dette emnet har studenten følgende læringsutbytte, definert som kunnskap, ferdigheter og generell kompetanse. Studenten kan:

    Kunnskap:

    • forklare hvordan prosjekter drives og hvordan fremdrift sikres
    • gjøre rede for de ulike stegene i et utviklingsprosjekt og deres viktighet
    • gjøre rede for oppbyggingen av sluttdokumentasjon
    • forklare den valgte tekniske arkitektur og diskutere fordeler og ulemper med den
    • lage prosjekt- og arbeidsplaner
    • sette opp utviklings- og test miljøer
    • utvikle og teste store dataprogrammer i grupper
    • installere produksjonsversjon av systemet
    • sette opp sluttdokumentasjon for prosjektet inneholdende både prosess-, produkt og brukerdokumentasjon
    • samarbeide om et større dataprosjekt som ender i et sluttprodukt inneholdende både dataprogrammer og dokumentasjon

    Ferdigheter:

    • lage prosjekt- og arbeidsplaner
    • sette opp utviklings- og test miljøer
    • utvikle og teste store dataprogrammer i grupper
    • installere produksjonsversjon av systemet
    • sette opp sluttdokumentasjon for prosjektet inneholdende både prosess-, produkt og brukerdokumentasjon

    Generell kompetanse:

    • samarbeide om et større dataprosjekt som ender i et sluttprodukt inneholdende både dataprogrammer og dokumentasjon