Emnet er tilknyttet følgende studieprogram

Undervisningsspråk

Norsk eller engelsk

Anbefalte forkunnskaper

ING100-G Programmering og IKT-sikkerhet eller tilsvarende.

Innhold

Grunnleggende emne i C++ og Python. Emnet er praktisk/ferdighets-orientert og inkluderer obligatoriske øvinger og et programmeringsprosjekt. De viktigste språklige mekanismer dekkes, slik som datatyper, const og constexpr, deklarasjon av variabler og initialisering, minneallokering, operatorer, funksjoner, typekonvertering, kontrollflyt og kontrollstrukturer, egendefinerte datatyper ved bruk av klasser, arv, bruk av templates og exceptions. Både prosedyre- og objektorientert programmering er dekket. UML benyttes for å modellere oppførsel og struktur for objektorientert programvare. Anvendelse av distribuert versjonskontroll er en integrert del av programmeringsprosjektet. Moderne integrert utviklingsmiljø (IDE) benyttes for å skrive, bygge og feilsøke programvare. Python-delen dekker grunnleggende språklige mekanismer, virtuelle kjøremiljø, pakkehåndteringsverktøy og bruk av maskinlæringsrammeverk for enkle maskinlærings-oppgaver, inkludert trening og prediksjon.

Læringsutbytte

Etter fullført emne skal studenten

  • inneha grunnleggende kunnskaper i C++ og Python

  • forstå prosedyre- og objektorienterte programmeringsparadigmer

  • forstå og kunne anvende prosesser, tråder, synkronisering og kommunikasjon i flerprosess- og flertrådet programvare

  • kunne skrive, bygge og feilsøke C++-programvare ved bruk av moderne utviklingsverktøy

  • kunne lese, forstå og forklare oppførselen til C++- og Python-programmer

  • kunne finne og anvende programmeringsspråk-spesifikk dokumentasjon og standardbibliotek

  • kunne anvende tredjepartsbibliotek i C++ og Python.

  • kunne lese og ta frem grunnleggende programvaremodeller i språket UML

  • kunne skrive gjenbrukbar og vedlikeholdbar programkode

  • ha ferdigheter i bruk av moderne distribuert og skalerbar versjonskontroll for kildekode

  • forstå og kunne forklare viktigheten av versjonskontroll i en programvareutviklingsprosess

  • forstå hvordan programmer kan inneholde/anvende komponenter skrevet i ulike programmeringsspråk ved hjelp av ABI

  • kjenne til, forstå og kunne implementere et utvalgt sett av viktige algoritmer og datastrukturer

  • kjenne til begrepene syklomatisk kompleksitet og Big O-notasjon

  • forstå hva designmønstre (design patterns) er, og kunne identifisere kjente designmønstre.

  • kunne utføre grunnleggende maskinlæringsoppgaver i Python

Vilkår for å gå opp til eksamen

Obligatoriske oppgaver. Utfyllende informasjon vil bli gitt i Canvas ved starten av semesteret.

Undervisnings- og læringsformer

Forelesninger, øvinger og laboratoriearbeid. Anslått arbeidsbelastning for gjennomsnittsstudenten er 27 timer per studiepoeng.

Studentevaluering

Emneansvarlig i samråd med studenttillitsvalgt fastsetter evalueringsform og om emnene skal ha midtveis- eller sluttevaluering, jf. kvalitetssystemet kapittel 4.1. Informasjon om evalueringsform for emnet publiseres i Canvas.

Eksamen

Individuell skriftlig eksamen, 3 timer (80%). Prosjekt (20%). Gradert karakter.

Sist hentet fra Felles Studentsystem (FS) 30. juni 2024 02:51:02