Nulpunkter og toppunkt i Python
I forløbet skal eleverne forstå, anvende og skrive koden bag et Python-program, som kan beregne nulpunkterne og toppunktet for en andengradsfunktion. I erhvervsfaglige sammenhænge anvendes nulpunkts- og toppunktsberegninger til at finde det afsætningsinterval, som giver overskud, samt til at optimere overskuddet.
Informationer
Fag
Matematik
Omfang
Ca. 1 klokketime
Afprøvning
Pilotversion er afprøvet på et EUX matematik B hold
Formål og mål
Formålet med forløbet er, at eleverne:
får en erkendelse af, at lommeregnere og mere bredt it-produkter anvender algoritmer (kode) til at udføre matematiske beregninger, udføre handlinger osv.
Læringsmålene er, at eleverne:
bliver i stand til at udføre nulpunkts- og toppunktsberegninger i et færdigt Python-program.
bliver i stand til forstå, ændre og skrive kode i Python, herunder specielt implementere den matematiske metode bag nulpunkts- og toppunktsberegninger i Python.
Forudsætninger
Forløbet kræver ingen særlige it-færdigheder, men kendskab til grundlæggende programmering fra et informatikfag vil være en fordel. Eleverne skal have kendskab til og kunne anvende formler til beregning af nulpunkter og toppunkter for en andengradsfunktion.
Aktiviteter og arbejdsform
Forløbet anvender en use-modify-create-tilgang, hvor eleven først bruger det færdige Python-program til at beregne nulpunkter og toppunktet, men ikke kigger i koden. Derefter skal eleven kigge i kode, ændre i den og skrive helt ny kode.
Genopfrisk metoden bag nulpunkts- og toppunktsberegning
Genopfrisk metoden bag nulpunkts- og toppunktsberegning og udlever/henvis til de matematiske formler for diskriminanten, nulpunkter og toppunktet.
Eksperimenter med det færdige Python program
Udlever Python-programfilen og lad eleverne eksperimentere med programmets funktionaliteter ved at regne nogle standardopgaver.
Introducer det valgte programmeringsmiljø
Introducer det valgte programmeringsmiljø, f.eks. online miljøet Online Python Interpreter eller Online Python.
Lad eleverne arbejde trinvist med programstumper
Lad eleverne arbejde trinvis med programstumperne under Materiale. Eleverne skal selv skrive den røde kode. Du kan udlevere stumperne løbende, når eleverne er klar til det.
Gør det klart for eleverne, at de skal teste og fejlrette, og følg op
Lad eleverne teste og tilrette deres program - både undervejs og til sidst.
Italesæt at det vigtigt, at de løbende tester og fejlretter deres program.
Følg op på, om eleverne tester og fejlretter. Du kan lade elever teste løsninger op mod GeoGebra-appletten under Materialer. Du kan også inddele eleverne i grupper, som tester hinandens færdige programmer.
Materialer
Programstumper til Python-program
Nedenfor kan du finde en række programstumper, som trinvist bygger programmet op. Eleverne skal selv skrive den røde kode.
Programstump 1 (brugerprompt og input)
import math
print('Hvad er a?')
a = float(input())
print('Hvad er b?')
b = float(input())
print('Hvad er c?')
c = float(input())
d = pow(b,2)-4*a*c
print('Diskriminanten d er:')
print(d)
Programstump 2 (betingelse og beregning af nulpunkter)
import math
print('Hvad er a?')
a = float(input())
print('Hvad er b?')
b = float(input())
print('Hvad er c?')
c = float(input())
d = pow(b,2)-4*a*c
print('Diskriminanten d er:')
print(d)
if d<0:
print('Diskriminanten d er negativ og der er ingen nulpunkter.')
if d==0:
x1=-b/(2*a)
print('Diskriminanten er nul og der er ét nulpunkt:')
print(x1)
if d>0:
x1=(-b-math.sqrt(d))/(2*a)
x2=(-b+math.sqrt(d))/(2*a)
print('Diskriminanten er positiv og der er to nulpunkter:')
print(x1)
print(x2)
Programstump 3 (beregning af toppunkt)
import math
print('Hvad er a?')
a = float(input())
print('Hvad er b?')
b = float(input())
print('Hvad er c?')
c = float(input())
d = pow(b,2)-4*a*c
print('Diskriminanten d er:')
print(d)
if d<0:
print('Diskriminanten d er negativ og der er ingen nulpunkter.')
if d==0:
x1=-b/(2*a)
print('Diskriminanten er nul og der er ét nulpunkt:')
print(x1)
if d>0:
x1=(-b-math.sqrt(d))/(2*a)
x2=(-b+math.sqrt(d))/(2*a)
print('Diskriminanten er positiv og der er to nulpunkter:')
print(x1)
print(x2)
x = -b/(2*a);
y = -d/(4*a);
print('Toppunktet er:')
print(x)
print(y)
Det færdige program
import math
print('Hvad er a?')
a = float(input())
print('Hvad er b?')
b = float(input())
print('Hvad er c?')
c = float(input())
d = pow(b,2)-4*a*c
print('Diskriminanten d er:')
print(d)
if d<0:
print('Diskriminanten d er negativ og der er ingen nulpunkter.')
if d==0:
x1=-b/(2*a)
print('Diskriminanten er nul og der er ét nulpunkt:')
print(x1)
if d>0:
x1=(-b-math.sqrt(d))/(2*a)
x2=(-b+math.sqrt(d))/(2*a)
print('Diskriminanten er positiv og der er to nulpunkter:')
print(x1)
print(x2)
x = -b/(2*a)
y = -d/(4*a)
print('Toppunktet er:')
print(x)
print(y)
Det færdige Python-program til Windows
Du og dine elever kan hente det færdige Python-program som en selvstændig programfil (.exe) og kører den på en Windows-PC.
GeoGebra-applet til test
Nedenfor kan du finde en GeoGebra-applet, som eleverne kan bruge til at teste deres python-program med.
Evaluering
Du kan overveje, om eleverne skal aflevere deres endelig program til vurdering eller om de skal afprøve hinandens programmer, f.eks. gruppevist, give feedback og tilrette.
Erfaringer fra afprøvning
En tidligere pilotversion af forløbet er afprøvet et EUX matematik B hold på Aarhus Business College. Eleverne havde forinden afviklingen af forløbet arbejdet en smule med Python i Informatik.
Undervisningsobservationer viser, at flere elever er i stand til at forstå, anvende og skrive kode i Python. Use-modify-create-tilgangen virker til at støtte eleverne i deres læringsproces.