Kursserie
Grunnleggende Java
Introduksjon til Java-programmering: Grunnlag, betingelser, metoder, løkker, arrayer og OOP.

Didaktisk konsept
Kursserien strukturerte utviklingen av kompetanser fra grunnleggende språk-elementer til objektorientert modellering i Java. Utviklingen følger en forståelig rekkefølge fra input/output og variabler gjennom betingelser og kontrollstrukturer til metoder, arrayer og OOP. Modulene er designet slik at sentrale konsepter innføres trinn for trinn og sikres i relaterte oppgaver. Gjennom hele serien etableres sammenhengen mellom konsepter (f.eks. datatyper, kontrollflyt, strukturering) og deres anvendelse i små programmer metodisk og konsistent.
For lærere resulterer dette i en tydelig, selvstendig undervisningssekvens med gjennomsiktige kompetanseutviklinger og modulære anvendelsesmuligheter. Serien støtter pålitelig planlegging av lekser, da læringenheten, fokuspunktene og tidskrav per modul er eksplisitt angitt.
Utvikling av kompetanse
- Bygge trygge grunnlag for variabler, datatyper, input/output, og enkle beregninger og strenger.
- Utvikle kompetanse innen beslutningslogikk med sammenligningsoperatorer, logiske operatorer, if-else-kjeder og switch-case.
- Bruke kontrollstrukturer (for, while, do-while) inkludert kombinasjoner av løkker og betingelser for algoritmiske oppgaver.
- Strukturere programmer gjennom metoder (parametere, returnverdier) samt ren opdeling i forståelige underoppgaver.
- Modellering med arrayer/2D-arrayer og innføring av OOP (klasser, objekter, konstruktører, arv, overskridelse) for systematisk programutvikling.
Struktur av serien
Java-programmering grunnleggende
Start med Java: Hei verden & første programmer!
Dette modulene etablerer grunnlaget for serien: første programmer, konsollet utskrift og sikker håndtering av variabler og brukerinput. I tillegg introduseres grunnleggende byggesteiner for kodekvalitet (kommentarer) samt enkle aritmetiske og strengoperasjoner for å knytte tidlige suksesser sammen med systematisk oppmerksomhet.
Betingede uttrykk
Lær Java-betingelser og operatorer.
Byggende på variabler og input/output, blir beslutningsstrukturer systematisk utviklet: sammenlignings- og logiske operatorer, if-else-logikk, samt switch-case. Oppgavene strekker seg fra enkle oppgaver (f.eks. måneder) til valideringstester (f.eks. skuddår, passord), som gjør at kontrollflyt og feiltilfeller blir metodisk tilgjengelige.
Løkker og kontrollstrukturer
Beregning av Fibonacciføljen i Java: Arrayer & Lær om løkker.
Denne seksjonen utvider kontrollflyt med iterasjon: for-, while- og do-while-løkker introduseres trinn for trinn og sikres gjennom prosjekter. Gjennom oppgaver som tallgåte, tabeller, minimum/maximum og Fibonacciføljen fremmer man algoritmisk tenkning og øver spesielt kombinasjonen av løkker med betingelser.
Arbeid med metoder
Lær om Java-metoder, deres opprettelse, kalling og returnert verdi.
Serien fører her spesielt til strukturering av større programmer: metoder med parametre, void mot returnverdi, samt gjenbrukbare beregnings- og formateringsfunksjoner. Prosjekter som primtallsprøving eller faktorial kobler sammen metoder med løkker og betingelser og styrker evnen til å organisere løsninger i klare underoppgaver.
Arrayer
Forståelse og bruk av Java-arrayer: struktur, deklarasjon, manipulasjon.
I denne modulen introduseres og brukes datastrukturer for flere verdier til evaluering: iterasjon over arrayer, omvending, grenseutskrifter, samt statistiske evalueringer. Med 2D-arrayer og ArrayLists utforskes systematisk ulike organisasjonsformer av data i typiske undervisningssituasjoner (f.eks. karakterer, måleverdier).
Introduksjon til OOP
Lær om Java-klasser og arv.
Den siste modulen overfører de tidligere etablerte grunnleggende kunnskapene til objektorientert modellering: klasser, objekter, konstruktører og arbeid med flere instanser. Arv, metodeoverskridelse og evaluering (for eksempel ved bruk av instanceof og statistikk) utgjør en tydelig fremdrift mot gjenbrukbare og utvidelige programmeringsdesign.
For private kunder finnes det også et tilsvarende kursbud for Java-grunnleggende og objektorientert programmering: Kurs i Java-grunnleggende og objektorientert programmering .
Innhold på et hengende vis
Grunnleggende Java-programmering
| Innhold | Fokus | Varighet |
|---|---|---|
| Introduksjon: Hei verden i Java | Introduksjon til Java med utskrift av "Hei, verden!" | 10 min |
| Introduksjon til variabler i Java | Bruk av int, double, String og boolean; Scanner for brukerinput | 15 min |
| Introduksjon til Java: Utskrift av navn og alder | Bruk av variabler; lesing og utskrift av brukerinput | 20 min |
| Introduksjon til kommentarer og kode dokumentasjon i Java | Enkel- og flerlinjekommentarer; lesbarhet og dokumentasjon | 10 minutter |
| Enkle beregninger med brukerinput | Bruk av input; utføring av beregninger; utskrift av resultat | 15 min |
| Enkel Java-kalkulator: addisjon og subtraksjon | Addisjon og subtraksjon; variabler, metoder og interaksjon i dybde | 15 min |
| Beregn fødselsår | Utputt av alder og beregnet år med brukerinput | 15 min |
| Introduksjon til data type konvertering i Java | Automatisk og eksplisitt typekonvertering; int/double/String; divisjon sammenligning | 10 min |
| Arbeid med konstanter i Java | final, bruk og syntaks; øvelser på Pi, år, rabatt, moms | 10 min |
| Java grunnleggende: arbeid med strenger | Metoder for strenger (length, toUpperCase, substring); øvelser på navn og tegn | 10 min |
Betingede uttrykk i Java
| Innhald | Fokus | Varighet |
|---|---|---|
| Introduksjon til if-else-betingelser i Java | Betingede uttrykk; største av tre tall; beslutningslogikk | 15 minutter |
| Forstå og anvende sammenligningsoperatorer i Java | Sammenligningsoperatører (==, !=, <, >) forklare og anvende | 15 minutter |
| Bruk av logiske operatorer i Java | Logiske operatører (&&, ||, !) for komplekse betingelser; intervallsjekking | 15 minutter |
| Konvertere tall til månedsnavn med switch-case | Bruke switch-case; konvertere tall til månedsnavn; feilhåndtering | 15 minutter |
| Graderingssystem med tekstutskrift | Innlegging av karakterer; visning av karaktertekster; if-else eller switch-case; validering | 15 minutter |
| Alterspesifikke meldinger i Java | Betingelser for aldersspesifikke utskrifter (f.eks. beskyttelses- og pensjonsadvarsler) | 15 minutter |
| Sjekk om skuddår med modulo | Implementering av skuddårsregler med modulo og logiske operatører | 15 minutter |
| Temperaturvisning med advarselsnivåer | Vurdering av temperatur; innbygde if-else og logiske operatører; advarselstekst | 15 minutter |
| Enkel passordkontroll | Passordlengde og spesialtegn med kombinerte betingelser | 15 minutter |
| Kjøp med rabattregler | Bestemmelse av rabatter med if-else; kombinasjon av betingelser; beregning av endelig beløp | 20 minutter |
| Aldersgrense for filmer | Spørsmål om alder; innbygde betingelser; FSK-klasse for filmer som utskrift | 15 minutter |
| Prøvingsvurdering med prædikat | Innlegging av merknad; tekstmerknad og prædikat tilordnet via innbygde if-else-betingelser | 20 minutter |
| Interpretasjon av trafikkmerker med switch-case | switch-case for tekstvalg; trafikkmerker tolkes som tall | 20 minutter |
Løkker og kontrollstrukturer
| Innhold | Fokus | Varighet |
|---|---|---|
| Bruke for-løkker i Java | Introduksjon til for-løkker; f.eks. skrive tall fra 1 til 10 | 15 minutter |
| Introduksjon til while-løkker i Java | while-løkker; forskjeller mot for-løkker; sum beregning helt til input er 0 | 10 minutter |
| Sum og gjennomsnittsberegning | while-løkke; Input; Sum og gjennomsnittsberegning med avslutning | 40 minutter |
| Passordinput med gjenbruk | do-while-løkke; Passordspørsmål helt til riktig input | 30 minutter |
| Gjettelsespill med løkker | while og if; Input, sammenligning, løkkekontroll og teller | 35 minutter |
| Multiplikasjonstabell ved hjelp av løkker | Innslagte for-løkker; Multiplikasjonstabellutskrift | 40 minutter |
| Finne det minste og største tallet | Bestem Minimum og Maksimum med for-løkker og if-betingelser | 40 minutter |
| Konverterings-tabell fra Celsius til Fahrenheit | for-løkke for konvertering; Tabellutskrift | 30 min |
| Kombinere løkker og betingelser i Java | Løkker og Betingelser Kombinert; Program for å identifisere primtall | 20 min |
| Beregning av Fibonacci-sekvensen i Java | Fibonacci-sekvens med løkker og arrayer; Beregn og skriv ut de første 10 tallene | 20 min |
Arbeide med metoder
| Innhold | Fokus | Varighet |
|---|---|---|
| Metodeopprettelse og bruk i Java | Opprette, kalere, returner verdier; parametere; eksempelmetoder for multiplikasjon | 20 min |
| Metoder i Java: void mot returnverdier | void mot returnverdi forskjell; praktisk øvelse for modulær gjenbruk | 20 min |
| Gjennomsnittsberegning med metoder | Metoder med parametere og returnverdi; gjennomsnitt med double; kall i main | 15 min |
| Temperaturkonvertering med metoder | Metoder for Celsius/Fahrenheit-konvertering med returnverdi og beregning | 15 min |
| Vurdering med metoder | Metode med betingelseslogikk; gradetekst fra poeng; if-else-kjeder | 20 min |
| Formatstrenger med metoder | Strengbehandling ved hjelp av metode; utskriftsformat "Etternavn, Fornavn" | 15 minutter |
| Arealberegning av sirkel i Java | Metode for sirkelareal; utvidelse med omkrets; inputverifikasjon | 20 minutter |
| Primtallsjekk med metode og løkke | Metode for primtallsjekk; løkke, betingelse, boolsk returnverdi | 40 minutter |
| Fakultetsberegning med inputkontroll | Beregn fakultet; for-løkke og if-betingelse for inputkontroll | 35 minutter |
| Mini-kalkulator med metoder | Flere beregningsmetoder; parametere og returnverdier; kall via if-else | 30 minutter |
Arrayer
| Innhold | Fokus | Varighet |
|---|---|---|
| Arrayer: Struktur, deklarasjon og bruk | Forståelse av arrayer: Struktur, deklarasjon, initialisering; Oppgaver for bruk | 15 min |
| Beregn gjennomsnittlig karakter med arrayer i Java | 5 karakter lagret i array; Beregn gjennomsnitt | 20 min |
| Utputt verdier over en grense | Iterer gjennom array med for-løkke; Utputt verdier over grense | 25 min |
| Vend array om | Utputt array i motsatt rekkefølge ved hjelp av indekser og løkke | 25 min |
| Vurdering av temperaturmålinger | Vurdering av temperaturer: Gjennomsnitt, ekstremverdier, advarsler over 30°C | 35 min |
| Gjennomsnitt per fag med 2D-array | 2D-array for karakterer; Løkke gjennom rader/kolonner; Gjennomsnitt; Formatert utputt | 35 min |
| Bruk og administrasjon av ArrayList i Java | Opprettelse og modifisering av ArrayList; Fordeler over arrayer; Oppgave med ukedager | 30 minutter |
Introduksjon til objektorientert programmering
| Innhold | Fokus | Varighet |
|---|---|---|
| Introduksjon til klasser og objekter i Java | Definisjon av klasser med attributter og metoder; Opprettelse og bruk av objekter | 25 minutter |
| Initialiser objekter med konstruktører i Java | Konstruksjoner for initialisering; Eksempel "Bil" med merke og modell | 20 min |
| Forkjøring av kjøretøy med flere objekter | Arrayer av objekter; Bil-klasser; Utgang ved hjelp av løkker; Sammenligning; Finn den raskeste bilen | 40 min |
| Arv i Java: Innledning og praktisk anvendelse | Forståelse av arv; Klasse "Elektrisk bil" som er utledet fra "Bil"; Reusabilitet | 45 min |
| Simulering av bensinmåleren i en elektrisk bil | Elektrisk bil med ladestatus; Kjøring og lading; Advarsler; Maksimal lading; Testprogram | 40 min |
| Statistikk for kjøretøy med arv | Bil/Elektrisk bil; Array av superklasser objekter; instanceof; Statistikk og gjennomsnitt | 45 minutter |
| Metodeoverstyring i Java: Klassens spesialisering | Overstyrt metoder i underklasser; Spesialisering av klasser i Auto/Elektrisk bil-prosjekt | 45 minutter |
Den modulære strukturen støtter lærere med en tydelig fremdrift over koblete byggeblokker og tildelte lesestunder per læreområde.
En demo-tilgang kan brukes til å planlegge undervisning for å teste serien i egen kontekst.