Emne - Programmering 1 - IDATT1003
Programmering 1
Om
Om emnet
Faglig innhold
Dette emnet skal dekke følgende tema:
- grunnleggende objektorientert programdesign og objektorientert programmering - begreper innen objektorientering (klasser, objekter og innkapsling)
- modellering/ design - datatyper, betingelser, valg, løkker, logiske og aritmetiske uttrykk, innlesing og utskrift
- tabeller, lister og samling
- samarbeid mellom objekter
- lambda, introduksjon til funksjonell programmering og streams i forbindelse med samlinger
- grunnleggende unntakshåndtering (exceptions)
- debugging og enhets-testing
- introduksjon til integrerte utviklingsmiljø (IDE)
Læringsutbytte
Kunnskap
Kandidaten skal:
- kunne demonstrere kunnskap innen OOP
- kunne forklare hva et program er
- har kunnskap om grunnleggende prinsipper innen objektorientert programmering som innkapsling, modularisering og samhandlende objekter
- kunne forklare hva som menes med en lagdelt arkitektur og hvorfor det er viktig i programvaredesign
- kunne forklare prinsipper for god kodedesign (kobling/ kohesjon), kodekvalitet og god kodestil
- har kunnskap om typiske disipliner i programvareutvikling (livssyklusen til et program som design, utvikling og testing) på et overordnet nivå
- kunne modellere klassediagram som består av flere klasser og kunne gjøre rede for grunnleggende diagrammer i UML (for eks, aktivitetsdiagram, klassediagram, sekvensdiagram, pakkediagrammer)
Ferdigheter
Kandidaten skal:
- kunne sette opp programmiljø for å utvikle, teste og kjøre objektorienterte programmer
- kunne benytte profesjonelle verktøy for programvareutvikling, inkludert KI-baserte verktøy, på en kritisk og reflektert måte
- kunne lage strukturert, oversiktlig og godt dokumentert programkode basert på prinsipper for god kodedesign
- kunne anvende klasser, kontrollstrukturer og samarbeid mellom objekter
- kunne anvende klasser fra biblioteker og finne fram i API-dokumentasjon
- kunne anvende grunnleggende objektorientert tankegang til å analysere og løse enklere problemer
- kunne anvende elementer fra funksjonell programmering
- kunne teste og analysere programkomponenter gjennom enhetstesting
- kunne skrive robust kode inkludert å kaste og fange unntak (enkel unntakshåndtering).
- kunne bruke et integrert utviklingsmiljø (IDE) og debugger samt verktøy for analyse av kodekvalitet
- kunne anvende enkel kildekodekontroll (teori gjennomgås i IDATT1004)
Generell kompetanse
Kandidaten skal:
- kunne forklare og gjøre bruk av sin kunnskap både innen hvert enkelt tema i faget og på tvers av temaene.
Læringsformer og aktiviteter
Undervisningsaktiviteter for hver uke:
- Undervisning med faglærer med bruk av studentaktive læringsformer som for eksempel lærerstyrte programmeringsoppgaver og samkoding (livecoding) for å løse programmeringsoppgaver.
- Veiledning på lab med læringsassistenter og veksling mellom individuell veiledning og godkjenning av programmeringsøvinger
Obligatoriske aktiviteter: Det vil bli gitt obligatoriske øvinger, hvorav 90% må være godkjent for å gå opp til eksamen.
Obligatoriske aktiviteter
- Obligatoriske øvinger
Mer om vurdering
Mappevurderingen som skal gjennomføres individuelt, danner grunnlaget for sluttkarakteren i emnet IDATT1003. Mappen består av et programmeringsprosjekt og en rapport, som leveres samlet til vurdering ved slutten av semesteret. Veiledning gis underveis gjennom diskusjoner og tilbakemeldingsøkter, som gjennomføres tre (3) ganger i løpet av prosjektperioden og fordeles over semesteret.
Ved frivillig gjentak av emnet må hele porteføljen gjennomføres på nytt neste gang emnet tilbys.
Spesielle vilkår
Krever opptak til studieprogram:
Data - Ingeniørfag (BIDATA) - enkelte retninger
Forkunnskapskrav
Krever at man er tatt opp på studiet Bachelor i ingeniørfag - data ved NTNU
Kursmateriell
Oppgis ved studiestart.
Studiepoengreduksjon
| Emnekode | Reduksjon | Fra |
|---|---|---|
| IDATA1001 | 7,5 sp | Høst 2023 |
| IDATG1001 | 7,5 sp | Høst 2023 |
| IDATT1001 | 7,5 sp | Høst 2023 |
| IDATA1003 | 7,5 sp | Høst 2023 |
| IDATG1003 | 7,5 sp | Høst 2023 |
| PROG1001 | 7,5 sp | Høst 2026 |
Fagområder
- Informatikk
- Ingeniør