Emne - Anvendt programmering - TDT4114
Anvendt programmering
Vurdering og obligatoriske aktiviteter kan bli endret frem til 20. september.
Om
Om emnet
Faglig innhold
Emnet gir en oversikt over sentrale programmeringskonsepter, som lamdauttrykk, samlinger og mengdebyggere, samt en innføring i objektorientert programmering.
Det dekker viktige aspekter ved datalagring og feilhåndtering, inkludert filbehandling og unntakshåndtering.
Videre introduseres deltakerne for dataanalyse, visualisering og grunnleggende maskinlæring. Det benyttes populære Python-pakker som NumPy, Matplotlib, SciPy og Pandas. Innen prediktiv analyse lærer deltakerne å forberede data og anvende lineære regresjonsmodeller ved hjelp av scikit-learn.
Emnet legger opp til prosjektarbeid hvor deltakerne kan fordype seg i anvendelser som er relevante for eget fagområde.
Det legges også vekt på enhetstesting og versjonshåndtering med Git. Programmeringsomgivelsene som brukes er Visual Studio Code og Jupyter Notebook.
Læringsutbytte
Kunnskaper
- K1: Grunnleggende konsepter i objektorientert programmering
- K2: Filbehandling og feilhåndtering i Python, inkludert hvordan man leser fra og skriver til filer, og hvordan man håndterer unntak.
- K3: Dataanalyse og visualisering, inkludert bruk av bibliotekene NumPy, Matplotlib, SciPy og Pandas.
- K4: Lineær regresjon og andre prediktive modelleringsteknikker, inkludert hvordan man forbereder data for modellering, hvordan man trener og validerer en modell, og hvordan man tolker modellens resultater.
- K5: Bruk av utviklingsmiljøer som Visual Studio Code, Jupyter Notebook, og versjonshåndtering med git.
- K6: Enhetstesting i Python, inkludert hvordan man skriver og kjører tester ved hjelp av unittest-rammeverket.
- K7: Kan forklare noen vanlige måter å bruke KI på innen programmering
Kompetanse:
- F1: Forstå og anvende programmeringskonsepter som lambda-uttrykk, samlinger, iteratorer og list comprehensions.
- F2: Forstå prinsippene for objektorientert programmering.
- F3: Kunne håndtere datalagring og feil, inkludert filbehandling, persistent lagring av informasjon og unntakshåndtering.
- F4: Forstå og anvende grunnleggende prinsipper for dataanalyse og visualisering ved bruk av modulene NumPy, Matplotlib, SciPy og Pandas.
- F5: Kunne forberede data og anvende lineære regresjonsmodeller for prediktiv analyse ved hjelp av scikit-learn.
- F6: Forstå og anvende enhetstesting og versjonshåndtering med git.
- F7: Kunne bruke programmeringsmiljøer som Visual Studio Code og/eller Jupyter Notebook effektivt.
- F8: Kan skrive kode dels ved å skrive selv og dels ved å bruke KI.
Generell kompetanse:
- G1: Kan reflektere over hvordan programmering, og dataanalyse kan anvendes i eget fagområde.
- G2: Kan samarbeide effektivt i utviklingsprosjekter, inkludert bruk av versjonskontroll og enhetstesting for å sikre kvalitet på programkode.
- G3: Har forståelse for viktigheten av dokumentasjon, testing og vedlikehold i utvikling av programvare.
- G4: Kan reflektere over hva som er hensiktsmessig og mindre hensiktsmessig bruk av KI som et hjelpeverktøy for læring.
Læringsformer og aktiviteter
- Koding på lab: Deltakerne kan delta i koding på lab der de får praktisk erfaring med programmering i Python.
- Dataanalyseoppgaver: Deltakerne kan jobbe med øvingsoppgaver som involverer datainnsamling, rengjøring, analyse og visualisering. Dette vil gi dem praktisk erfaring med bibliotekene NumPy, Matplotlib og Pandas.
- Prediktiv Modellering: Deltakerne kan jobbe med oppgaver som krever bruk av lineær regresjon og andre prediktive modelleringsteknikker for å analysere og tolke data.
- Enhetstesting: Deltakerne kan skrive og kjøre tester for å verifisere at koden deres fungerer som forventet.
- Versjonshåndtering: Deltakerne kan bruke git for å versjonere koden sin, noe som vil gi dem erfaring med viktig praksis innen programvareutvikling.
Obligatoriske aktiviteter
- Obligatoriske øvinger
Mer om vurdering
I emnet er det innført flere obligatoriske aktiviteter som støtter læringsmålene og gir studentene mulighet til å anvende teori i praksis. Disse må være godkjent for å få vurdert mappen. Dette inkluderer deltakelse og arbeid i utvalgte øvinger knyttet til sentrale milepæler i emnet. Nærmere informasjon om hvilke aktiviteter dette gjelder, gis ved semesterstart.
Mappevurdering som gjennomføres i mindre grupper gir grunnlag for bestått/ikke-bestått i emnet. I mappen inngår et programmeringsprosjekt og et enkelt individuelt refleksjonsnotat over egenlæring. Prosjekt og refleksjonsnotat leveres samlet i slutten av semesteret.
Det gis tilbakemeldinger i løpet av semesteret på innholdet i mappen.
Alle studenter i gruppen får normalt samme karakter basert på gruppebesvarelsen. I særskilte tilfeller hvor en student ikke har bidratt tilstrekkelig, kan studenten gis en individuell karakterer basert på dokumentert manglende innsats og/eller arbeidsmengde.
Ved frivillig gjentak, stryk eller gyldig fravær, må hele mappen tas på nytt i semester med undervisning.
Spesielle vilkår
Anbefalte forkunnskaper
Kunnskaper tilsvarende TDT4109, TDT4110, TDT4111 (Informasjonsteknologi, grunnkurs)
Kursmateriell
Oppgis ved semesterstart.
Studiepoengreduksjon
| Emnekode | Reduksjon | Fra |
|---|---|---|
| TDT4100 | 3,7 sp | Høst 2024 |
| TDT4102 | 3,7 sp | Høst 2024 |
| DCST1007 | 3,7 sp | Høst 2024 |
| INFT1006 | 3,7 sp | Høst 2024 |
| IT6203 | 3,7 sp | Høst 2026 |
| IT6204 | 2,5 sp | Høst 2026 |
Fagområder
- Teknologiske fag