course-details-portlet

AIS1002 - Objektorientert programmering og algoritmer

Om emnet

Det tilbys ikke lenger undervisning i emnet.

Vurderingsordning

Vurderingsordning: Muntlig eksamen
Karakter: Bokstavkarakterer

Vurdering Vekting Varighet Delkarakter Hjelpemidler
Muntlig eksamen 100/100

Faglig innhold

Emnet er organisert i to hovedtema: objektorientert programmering og algoritmer og datastrukturer.

Innen objektorientert programmering vil følgende tema gjennomgås:

  • Grunnleggende objektorientert programdesign og objektorientert programmering
  • Grunnleggende begreper innen objektorientering (klasser, klassehierarki, objekter og innkapsling)
  • Introduksjon til modellering og design
  • Samarbeid mellom objekter
  • Introduksjon til integrerte utviklingsmiljø (IDE), debugging, enhetstesting og versjonskontroll

Innen algoritmer og datastrukturer vil følgende tema gjennomgås:

  • Grunnleggende teknikker og algoritmer (f.eks. rekursjon, sortering, søking, hashing, grafalgoritmer, andre velkjente algoritmer)
  • Grunnleggende datastrukturer (et utvalg av følgende: tabeller/array, lister, kø, stakk, trær, grafer)
  • Introduksjon til kompleksitetsteori (O-notasjon, tids- og plassforbruk)

Merk at emnets tema ikke nødvendigvis undervises sekvensielt, men kan gjerne være flettet sammen.

Hvor inngående hvert tema studeres kan variere fra år til år. Andre tema kan også bli presentert. Mer informasjon om pensum blir tilgjengeliggjort ved starten av semesteret.

Læringsutbytte

Kunnskap

  • Kandidaten kan forklare enkle prinsipper innen objektorientert programmering som innkapsling, modularisering og samhandlende objekter.
  • Kandidaten kan formulere prinsipper for god kodedesign (kobling/kohesjon), lagdelt arkitektur, kodekvalitet og god kodestil og hvorfor det er viktig i programvaredesign.
  • Kandidaten kan forklare typiske disipliner i programvareutvikling (livssyklusen til et program) på et overordnet nivå.
  • Kandidaten kan modellere klassediagram som består av flere klasser med aggregering og komposisjon gitt en problemstilling.
  • Kandidaten kan identifisere og sammenlikne grunnleggende algoritmer for bl.a. sortering, søking og grafhåndtering.
  • Kandidaten kan beskrive og forklare ulike grunnleggende datastrukturer (f.eks. arrayer/tabeller, lenkede lister, køer, stakker, trær og grafer).
  • Kandidaten kan forklare konseptet rekursiv tankegang/metode ved problemløsning og programmering.
  • Kandidaten kan på overordnet nivå klassifisere og sammenligne enkle algoritmers kompleksitet.

Ferdigheter

  • Kandidaten kan anvende grunnleggende objektorientert tankegang til å analysere og løse enklere problemer.
  • Kandidaten kan sette opp enkle programmiljø for å utvikle, teste og kjøre objektorienterte programmer.
  • Kandidaten kan lage strukturert, oversiktlig og godt dokumentert programkode basert på prinsipper for god kodedesign.
  • Kandidaten kan anvende klasser (også fra biblioteker), kontrollstrukturer og samarbeid mellom objekter, samt finne fram i API-dokumentasjon.
  • Kandidaten kan benytte et integrert utviklingsmiljø (IDE), debugger, enhetstester og versjonskontroll.
  • Kandidaten kan benytte grunnleggende algoritmer for å løse praktiske programmeringsproblemer effektivt.
  • Kandidaten har noe erfaring med avanserte datastrukturer, med særlig vekt på trær og grafer.

Generell kompetanse

  • Kandidaten kan benytte algoritmisk tenkning ("computational thinking") og kybernetisk systemtekning til å løse ingeniørfaglige problemer og bryte større ingeniørfaglige problemer ned i mindre delproblemer som kan løses hver for seg og settes sammen til overordnede systemer.
  • Kandidaten kan drøfte etiske aspekter ved anvendelse av algoritmer for automatiserte beslutninger.

Læringsformer og aktiviteter

Emnet benytter hovedsaklig en blanding av forelesninger, øvingstimer og praktisk rettet laboratoriearbeid/prosjektarbeid som læringsformer. Det benyttes en konstruktivistisk tilnærming til læring, med stort fokus på problemløsing og praktisk anvendelse av teori.

Mer om vurdering

Endelig karakter settes basert på en helhetlig vurdering av mappen. Mappen består av arbeid som utføres og dokumenteres gjennom digitale innleveringer gjennom semesteret. Både individuelt arbeid og gruppearbeid kan forekomme. Arbeidet er utformet for å bidra til at studentene oppnår de ønskede læringsmål i emnet, og det gis tilbakemeldinger underveis. Ved utsatt eksamen gjennomføres muntlig prøve.

Spesielle vilkår

Forkunnskapskrav

Emnet har ikke forkunnskapskrav.

Det er et krav at innrullerte studenter er tatt opp på teknologistudiet som emnet er tilknyttet.

Kursmateriell

Oppdatert pensumoversikt gjøres tilgjengelig innen oppstart av semesteret og vil typisk også inneholde engelskspråklig materiale.

Studiepoengreduksjon

Emnekode Reduksjon Fra Til
IDATA1001 6.5 HØST 2021
IDATA2302 3.5 HØST 2021
AIS1003 7.5 HØST 2023
Flere sider om emnet

Ingen

Fakta om emnet

Versjon: 1
Studiepoeng:  10.0 SP
Studienivå: Grunnleggende emner, nivå I

Undervisning

Undervisningsspråk: Norsk

Sted: Ålesund

Fagområde(r)
  • Datateknikk og informasjonsvitenskap
  • Program/system-utvikling
  • Ingeniør
Kontaktinformasjon

Eksamensinfo

Vurderingsordning: Muntlig eksamen

Termin Statuskode Vurdering Vekting Hjelpemidler Dato Tid Eksamens- system Rom *
Vår ORD Muntlig eksamen (1) 100/100

03.06.2024 - 04.06.2024

Rom Bygning Antall kandidater
  • * Skriftlig eksamen plasseres på rom 3 dager før eksamensdato. Hvis mer enn ett rom er oppgitt, finner du ditt rom på Studentweb.
  • 1) Siste gangs eksamen. Faglærer orienterer om eksamen via Blackboard.
Eksamensinfo

For mer info om oppmelding til og gjennomføring av eksamen, se "Innsida - Eksamen"

Mer om eksamen ved NTNU