Videregående programmering
About the course
Kan tas som enkeltemne.
- Big O-notasjon og algoritmeanalyse
- Klassiske datastrukturer: lister, stakk, kø
- Prioritetskø og heap
- Binære søketrær og balansering
- Hashing, map og dictionary
- Grafer: uvektede og vektede
- Søke- og sorteringsalgoritmer
- Dynamisk programmering
- Divide and conquer
- Backtracking og grådige algoritmer
- Rekursjon og memoization
- Avansert objektorientert modellering
- Decorators, context-klasser og closures
- Iteratorer og design patterns
- Integrasjon med C-kode
- Binærfiler og serialisering
- JSON og CSV
- Regulære uttrykk
- Versjonshåndtering
- Avansert enhetstesting
- Programbiblioteker
- Ansvarlig bruk av KI i programutvikling
Se for øvrig læringsutbytte
Admission reguirements
Generell studiekompetanse og Matematikk R1+R2 og Fysikk 1.
Søkere som kan dokumentere ett av følgende kvalifiserer også for opptak:
- generell studiekompetanse og bestått realfagkurs, eller
- bestått 1-årig forkurs for ingeniørutdanning, eller
- 2-årig teknisk fagskole etter rammeplan fastsatt av departementet 1998/99 og tidligere studieordninger
*For å få opptak til enkeltemner på grunnlag av Y-veien, må søkeren oppfylle opptakskriteriene for Y-vei til studieprogrammet som emnet inngår i. I tillegg må søkeren oppfylle eventuelle forkunnskapskrav som er spesifisert for det konkrete emnet de søker opptak til. Det gis begrenset studierett til det spesifikke emnet - på samme måte som realkompetansesøkere.
Søknadskode: 9391
Objective of the course
Kunnskaper og forståelse
Etter fullført emne skal kandidaten:
- ha kunnskap om Big O-notasjon og kunne utføre grunnleggende algoritmeanalyse
- kjenne til klassiske datastrukturer som lister, stakk, kø, prioritetskø/heap, binære søketrær og balanserte trær, samt hashing, map og dictionary
- kjenne til uvektede og vektede grafer og sentrale algoritmer knyttet til disse
- ha kunnskap om klassiske søke- og sorteringsalgoritmer
- kjenne til strategier for algoritmedesign: dynamisk programmering, divide and conquer, backtracking og grådige algoritmer
- forstå prinsippene for rekursjon, og sett på klassiske områder hvor rekursjon med fordel kan foretrekkes foran iterasjon
- ha kjennskap til avanserte modelleringsmekanismer innenfor objektorientert programmering
- kjenne til muligheter og begrensninger ved bruk av kunstig intelligens i programutvikling
Ferdigheter
Etter fullført emne skal kandidaten kunne:
- skrive objektorientert programkode med klasser, metoder, innkapsling, arv og polymorfi
- implementere klassiske datastrukturer og algoritmene som hører til dem
- skrive rekursive funksjoner
- skrive og anvende mekanismer som decorators, context-klasser og closures
- integrere ekstern C-kode i Python
- lese og skrive binærfiler, JSON- og CSV-strukturer, og anvende serialisering
- bruke regulære uttrykk (regex)
- bruke et versjonshåndteringssystem
- skrive avanserte enhetstester
- bruke og lage programbiblioteker
- implementere iteratorer og andre klassiske design patterns
- bruke KI-verktøy som støtte i programutvikling på en kritisk og ansvarlig måte
Generell kompetanse
Etter fullført emne skal kandidaten:
- kunne planlegge og gjennomføre programmeringsprosjekter, alene og i gruppe
- ha tilegnet seg avanserte programmeringskunnskaper utover et innføringsnivå
- ha god oversikt over klassiske temaer innen algoritmer og datastrukturer
- kunne anvende algoritmisk tenkning til å løse komplekse problemer effektivt
Forkunnskapskrav
Recommended prerequisites
DTE-2510 Grunnleggende programmering, DTE-2605 Programmering 1, ITE1900 Programmering 1
Teaching methods
Forelesninger gjennomføres primært digitalt via verktøy som Teams, samt som pre-produserte opptak, og er tilgjengelige for alle studentkategorier. Det er mulighet for dialog via chat underveis, og forelesninger tas opp og kan ses i ettertid. Lærerassisterte timer på campus tilbys i forbindelse med frivillige og obligatoriske øvinger. Studentene forventes å forberede seg til forelesning ved å ha gjennomgått anbefalt eller utdelt materiale på forhånd.
Studentenes ferdigheter fremmes gjennom:
- strukturert undervisningsopplegg
- frivillige øvingsoppgaver
- e-tester
- obligatoriske øvingsoppgaver
- oppgavepresentasjoner
- ansvarlig bruk av KI
Language of instruction and examination
Norsk og engelskSchedule
Timeplanene ferdigstilles og publiseres normalt i god tid før semesterstart, ofte noen uker i forkant. Dette gir studentene mulighet til å organisere studiene sine og forberede seg på kommende aktiviteter.
Det anbefales å sjekke timeplanen jevnlig, da det kan forekomme endringer.
Eksamen
| Skriftlig skoleeksamen | Varighet: 3 Timer |
Karakterregel: A–E, stryk F |
Følgende arbeidskrav må være gjennomført og godkjent før man kan framstille seg til eksamen
| Obligatoriske øvinger | Karakterregel: Godkjent – ikke godkjent |
| Presentasjon av 2 oppgaver | Karakterregel: Godkjent – ikke godkjent |
Alt du trenger å vite om før, under og etter eksamen, oppmelding, fravær klage og vitnemål: UiTs samleside om eksamen
More info about the coursework requirements
Arbeidskrav:
1. 4 obligatoriske oppgaver som poengsettes. Kandidaten må ha mer enn 66% score av totalt mulig oppnådde poeng for å få godkjent dette arbeidskravet.
2. Presentasjon av 2 oppgaver for studentassistent eller lærere i løpet av kurset. Aktuelle oppgaver vil bli opplyst om i løpet av kurset. Presentasjon kan være i nettmøte eller levert som video.