Emne - Mobile Programming - PROG2007
Mobile Programming
Om
Om emnet
Faglig innhold
Vil du designe og bygge apper folk faktisk bruker? I dette emnet designer du for små skjermer, kobler deg på sensorer, håndterer ustabile nettverk og lager grensesnitt som føles umiddelbare. Du lærer å holde data trygge, respektfulle og offline-klare, å teste det som betyr noe, og å rulle ut oppdateringer uten å ødelegge for brukerne. Forvent praktiske labber, korte tilbakemeldingssløyfer og en porteføljeklar app som viser at du kan gjøre ideer om til pålitelig, batterivennlig mobilprogramvare. Vi behandler KI og kodegenerering som kraftverktøy: du lærer å spesifisere presist, verifisere resultater med tester og profilering, og bruke KI-verktøy for å nå mer ambisiøse funksjoner—uten å ofre personvern, sikkerhet eller din egen forståelse.
Emnet Mobile Programming utvikler praktisk kompetanse i native mobilapputvikling på tvers av plattformer. Studentene lærer å designe tilgjengelige grensesnitt for ulike formfaktorer, modellere tilstand og navigasjon, og implementere robuste dataflyter som fungerer både på og uten nett. Kjerneemner omfatter interaksjonsdesign for berøring og bevegelse, sensorintegrasjon, energibevisst ytelse, personvernsbevarende datahåndtering og sikre praksiser for tillatelser. Emnet vektlegger pålitelighet gjennom enhets-, UI- og egenskapsbasert testing; observerbarhet og profilering for responsivitet og batteribruk; samt praksiser for kontinuerlig leveranse. Etiske hensyn—inkludert brukersamtykke, tilgjengelighet og ansvarlig analyse—er integrert gjennom hele kurset. Ved slutt kan studentene begrunne arkitekturvalg, måle og forbedre brukeropplevd ytelse, og levere vedlikeholdbar mobilprogramvare under reelle rammebetingelser. Emnet integrerer KI-assistert utvikling og kodegenerering i en verifikasjons-først arbeidsflyt. Studentene lærer å formulere presise spesifikasjoner, avgrense verktøy, og revidere utdata ved hjelp av tester, statisk analyse og profilering. Det legges vekt på personvern, sikkerhet, lisensiering/opprinnelse og reproduserbarhet (prompter som artefakter, deterministiske bygg, CI). Brukt riktig muliggjør disse verktøyene mer ambisiøs rekkevidde, samtidig som ansvarlighet og ingeniørmessig kvalitet beholdes.
Læringsutbytte
Merk: R Husk, U Forstå, A Anvende, An Analysere, E Vurdere, C Skape.
Kunnskap
- Forklar de arkitektoniske lagene i mobilapper og beskriv kjernekomponenter og deres ansvar. (U)
- Karakteriser plattform- og enhetsbegrensninger (ytelse, energi, lagring, tillatelser) og analyser konsekvensene for designvalg. (U,An)
- Forklar nettverksmodeller for mobil (online, offline-first, synkronisering/konfliktmønstre) og implikasjoner for datahåndtering. (U)
- Beskriv sensorkapasiteter og begrensninger, og forklar sikkerhets-/personvernmodeller for tilgang og bruk av data. (U)
- Oppsummer krav til universell utforming og inkluderende design for små skjermer. (U)
- Drøft etiske og samfunnsmessige konsekvenser av mobil programvare (samtykke, sporing, mørke mønstre, persuasiv design). (U,E)
Ferdigheter
- Design adaptive, tilgjengelige grensesnitt for ulike formfaktorer og interaksjonsmåter (berøring, bevegelse, tale) og begrunn sentrale valg. (A,E)
- Modellér og implementer tilstand, navigasjon og robuste dataflyter som virker både online og offline, inkludert analyse av synk- og konfliktavveiinger. (A,An)
- Integrer sensorer og bakgrunnsoppgaver sikkert; håndhev trygge praksiser for tillatelser og dataminimering. (A,E)
- Mål og optimaliser respons, oppstartstid, minne, nettverksbruk og batteripåvirkning med profilering/telemetri; prioriter tiltak basert på evidens. (An,E)
- Implementer enhets-, UI- og egenskapsbaserte tester; sett opp CI/CD og gjennomfør trinnvise utrullinger med kriterier for tilbakerulling. (A,An)
- Diagnostiser produksjonsfeil via logger/metrikk/krasjrapporter og formuler korrigerende endringer. (An,E)
- Bruk KI/kodegenerering i en verifikasjons-først arbeidsflyt: spesifiser krav presist, revider utdata med tester/statisk analyse/profilering, og dokumenter opprinnelse og begrensninger. (A,E)
- Kommuniser gjennom kodegjennomganger og tekniske notater, gi og innarbeid handlingsrettede tilbakemeldinger. (A,E)
Generell kompetanse
- Evaluer arkitekturalternativer under reelle rammebetingelser (latens, personvern, energi, brukbarhet) og forsvarvalgt tilnærming med evidens. (An,E)
- Samarbeid effektivt i et mobilutviklingsteam: planlegg iterasjoner, håndter backlog/versjoner og legg til rette for fagfellevurdering. (A,E)
- Vurder konsekvenser for personvern, sikkerhet, tilgjengelighet og bærekraft av design- og analysevalg; utarbeidtiltak/avbøtende strategier. (E)
- Skap en vedlikeholdbar, porteføljeklar mobilapplikasjon og reflekter over læringspunkter. (C,E)
Læringsformer og aktiviteter
Vi bruker en blended learning-tilnærming der vi kombinerer tradisjonelle forelesninger, veiledninger og lab-/gruppeøvelser med nettforelesninger og digitale læringsressurser.
Tilleggsinformasjon om emnet:
- Nettressurser og MOOC/flipped classroom støttet læring brukes i dette emnet.
- Prosjektarbeid: Studenten får en oversikt over mobilutviklingsprosessen på tvers av ulike enheter, men velger Android for fordypning. Det er en fordel om studenten har tilgang til en personlig Android-enhet for testing på faktisk enhet.
Obligatoriske aktiviteter
- Obligatorisk oppgave
Mer om vurdering
Slutteksamen (skole, 3 timer, 100 %)
- Format: Skriftlig, digital, på campus.
- Hjelpemidler: Ingen.
- Karakter: Bokstavkarakter A-F.
- Kontinuasjon: Kontinuasjonseksamen i august.
Obligatorisk arbeidskrav (må være godkjent for eksamensadgang)
- Omfang: Én obligatorisk oppgave.
- Gyldighet: Gjelder i 2 år fra godkjenningsdato.
- Kontinuasjon: Ingen kontinuasjon for arbeidskravet.
Spesielle vilkår
Krever opptak til studieprogram:
Data - Ingeniørfag (BIDATA) - enkelte retninger
Digital infrastruktur og cybersikkerhet (BDIGSEC)
Programmering (BPROG)
Anbefalte forkunnskaper
Se engelsk versjon
Forkunnskapskrav
- PROG1001 Fundamental Programming or equivalent
- Java programming
Kursmateriell
Nettressurser, veiledninger og dokumentasjon for iOS og Android.
Fagområder
- Informatikk