20TD02U_ForAlle_Blooms_Side1_BlandetDrops - itnett/FTD02N GitHub Wiki

+++markdown

🎓 Helhetlig Forståelse av Programmeringskonsepter og Læringsutbytte på Masternivå

Denne redegjørelsen tar sikte på å gi en grundig og helhetlig forståelse av sentrale programmeringskonsepter, samt demonstrere hvordan disse kan anvendes, analyseres, evalueres og videreutvikles i tråd med Blooms taksonomi. Ved å kombinere teoretisk innsikt med praktiske eksempler og refleksjoner, vil vi vise et læringsutbytte på masternivå innenfor de definerte områdene.

📜 1. Programstrukturer: Grunnmuren i All Kode

Programstrukturer er de grunnleggende byggesteinene i all kode. De definerer hvordan instruksjoner utføres og hvordan programmet flyter fra én handling til den neste. På et masternivå forventes det at man ikke bare kan huske og forstå disse strukturene, men også anvende, analysere, evaluere og skape med dem.

🔄 Sekvens:

Den enkleste strukturen, hvor instruksjoner utføres i rekkefølge.

🔄 Valg (Seleksjon):

Brukes til å ta beslutninger i koden, typisk med if, else if, og else-setninger. Dette gir programmet muligheten til å utføre ulike handlinger basert på gitte betingelser.

🔄 Gjentakelse (Iterasjon):

Gjentar en blokk med kode flere ganger, enten et bestemt antall ganger (for-løkker) eller så lenge en betingelse er oppfylt (while-løkker).

🎨 Illustrasjon - Valg (Seleksjon):

Se skriptet her

🗂 2. Datastrukturer: Organisering av Informasjon

Datastrukturer er måten vi organiserer og lagrer data på i et program. På masternivå forventes det en dyp forståelse av ulike datastrukturer, deres egenskaper og hvordan de kan brukes effektivt i ulike situasjoner.

📚 Arrayer/Lister:

En ordnet samling av elementer, hvor hvert element kan nås via en indeks.

📚 Lenkede lister:

En sekvens av noder, hvor hver node inneholder data og en peker til neste node.

📚 Stakker og køer:

Spesialiserte datastrukturer som følger LIFO (Last In, First Out) og FIFO (First In, First Out) prinsipper.

📚 Trær og grafer:

Hierarkiske og nettverksbaserte datastrukturer som brukes til å representere relasjoner mellom data.

📚 Hashtabeller:

Bruker hash-funksjoner for å lagre og hente data raskt basert på en nøkkel.

🎨 Illustrasjon - Lenket Liste:

Se skriptet her

📦 3. Bibliotek: Gjenbruk av Kode

Biblioteker er samlinger av ferdiglaget kode som kan gjenbrukes i egne programmer. Dette sparer tid og krefter, og lar utviklere fokusere på kjernelogikken i applikasjonen.

🎨 Illustrasjon - Bruk av requests-Biblioteket:

Se skriptet her

🔧 4. Funksjoner og Metoder: Modularisering og Gjenbruk

Funksjoner og metoder er essensielle verktøy for å organisere kode, gjøre den mer lesbar og gjenbrukbar.

🎨 Illustrasjon - Funksjon med Parametere og Returverdi:

Se skriptet her

🏗 5. Objektorientert Programmering (OOP): Modellering av den Virkelige Verden

OOP er et kraftig paradigme som lar oss modellere programmer som samlinger av objekter som samhandler med hverandre.

🎨 Illustrasjon - Arv og Polymorfisme:

Se skriptet her

🐞 6. Debugging, Testing og Unntaksbehandling: Sikre Robust Kode

Debugging, testing og unntakshåndtering er kritiske ferdigheter for å sikre at kode fungerer som forventet og er robust mot feil.

🎨 Illustrasjon - Unntakshåndtering:

Se skriptet her

🔌 7. API-er: Kommunikasjon mellom Systemer

API-er (Application Programming Interfaces) er grensesnitt som lar ulike programmer kommunisere med hverandre.

🎨 Illustrasjon - Bruk av en REST API:

Se skriptet her

🖥 8. GUI: Brukervennlige Grensesnitt

GUI-er (Graphical User Interfaces) er visuelle grensesnitt som lar brukere interagere med et program ved hjelp av grafiske elementer som knapper, menyer og vinduer.

🎨 Illustrasjon - Enkelt GUI med Tkinter:

Se skriptet her

📝 9. UML: Modellering og Design

UML (Unified Modeling Language) er et visuelt språk for å modellere og designe programvare.

🎨 Illustrasjon - Klassediagram:

+-----------------+      +-----------------+
|     Person      |      |      Student     |
+-----------------+      +-----------------+
| - navn: String  |      | - studentnummer: int|
| - alder: int    |      +-----------------+
+-----------------+
| + snakk()       |
+-----------------+

📂 10. Filbehandling: Lagring og Henting av Data

Filbehandling er en viktig del av mange applikasjoner, da det lar oss lagre og hente data permanent.

🎨 Illustrasjon - Lese fra en Tekstfil:

Se skriptet her

🔒 11. Datasikkerhet: Beskyttelse av Informasjon

Datas

ikkerhet er avgjørende for å beskytte sensitive data mot uautorisert tilgang, endring eller ødeleggelse.

🎨 Illustrasjon - Sikker Lagring av Passord:

Se skriptet her

📡 12. Kommunikasjon mellom Programgrensesnitt: Integrasjon og Datautveksling

I dagens sammenkoblede verden er det sjelden at applikasjoner opererer i isolasjon. De trenger å kommunisere med hverandre, utveksle data og utnytte tjenester fra eksterne systemer. Dette gjøres gjennom API-er (Application Programming Interfaces).

🎨 Illustrasjon - REST API-kall med Python Requests:

Se skriptet her

🏆 Læringsutbytte

🎓 Kunnskap:

Kandidaten demonstrerer en dyp og helhetlig forståelse av grunnleggende programmeringskonsepter og verktøy.

🔧 Ferdigheter:

Kandidaten kan ikke bare skrive kode, men også lese, tolke, vedlikeholde og forbedre eksisterende kode.

🌍 Generell Kompetanse:

Kandidaten demonstrerer en evne til å kontinuerlig lære og utvikle seg innen programmering.

🎯 Konklusjon

Gjennom denne redegjørelsen har vi demonstrert en helhetlig forståelse av programmeringskonsepter og læringsutbytte på masternivå. Vi har vist hvordan man kan anvende, analysere, evaluere og skape innenfor ulike områder av programmering, og hvordan disse ferdighetene bidrar til å utvikle kompetente og ansvarlige programvareutviklere. +++