Emne - Anvendt programmering - TDT4114
Anvendt programmering
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