Modul · Detalj

Caesar-sifre i Python

Denne modulen introduserer grunnleggende konsepter innen kryptering og karakterbehandling i Python. Den kobler algoritmisk tenkning med implementering av matematiske operasjoner i en funksjonell struktur.

Tid 35 minutter
Format Kompakt
Språk Python 3
Oppgaver 1
Forhåndsvisning: Caesar-sifre (A–Z) i Python

Introduksjon (Originalt utdrag)

Du programmerer en funksjon caesar_encrypt(text, key), som krypterer tekst til sifret. Bare store bokstaver A–Z blir skiftet med key posisjoner i syklisk rekkefølge (etter Z går det tilbake til A). Alle andre tegn (for eksempel mellomrom, prikker, kommaer, tall) forblir uendret.

Didaktisk klassifisering

Subjektiv målsetting

Modulen introser grunnleggende funksjonalitet for enkel kryptering og kobler dette til sentrale programmeringskonsepter. I sin kerne er implementasjonen av en Caesar-kode, der tegn blir systematisk transformert. Kartleggingen av tegn til tall ved bruk av ord() og chr() brukes, og en sirkulær forskyvning realiseres gjennom modulo-aritmetikk. Læringa strukturerer algoritmen som en funksjon og anvender den på tegnsekvenser. Denne koblingen mellom matematisk modell (tallområde 0-25) og konkrete implementering er eksplisitt etablert.

Kompetanseutvikling

Didaktisk verdi ved undervisning

Løsningsstrøm i undervisningsenheten

1

Krypter med Caesar: funksjon ferdig

I denne steget implementeres den sentrale funksjonen for Caesar-kryptering. Bare store bokstaver transformeres, mens alle andre tegn blir beholdt uendret. Oppgaven fokuserer på korrekt implementering av sirkulær forskyvning og strukturert behandling av tekst tegn for tegn.

  • Didaktisk fokus: Forbindelse mellom tegnbehandling og modulo-aritmetikk
  • Vanlig utfordring: Korrekt implementering av sirkulær forskyvning og fall-through

Oppgavebeskrivelse (utdrag)

1. Implementer funksjonen til å kryptere store bokstaver A–Z
2. La alle andre tegn være uendret
3. Implementer korrekt sirkulær forskyvning med modulo 26
4. Verifiser resultatene ved hjelp av testfall

Eksempel (utdrag)

1
2
3
4
5
6
base = ord('A')
for ch in text:
    if 'A' <= ch <= 'Z':
        pos = ord(ch) - base
        new_pos = (pos + key) % 26
        result += chr(base + new_pos)

Dette fragmentet illustrerer den sentrale transformasjonen av tegn gjennom numeriske representasjoner og modulo-aritmetikk.

Tips for undervisningspraksis

Denne modulen kobler algoritmisk kryptering med systematisk tegnbehandling, og skaper en tydelig grunnlag for sporbare implementeringer.

Den klare strukturen i oppgaven støtter målrettet implementering og gjør det enklere å organisere og sikre resultatene i klassen.

Forespør demo-tilgang og test modulen i din egen kurskontekst.