Ligningsløseren er et færdigprogrammeret Java-program, der løser ligninger som de ser ud på folkeskole- og gymnasialt niveau.
Formålet med dette forløb er at præsentere alle de faglige mål (bortset fra porgrammering) fra starten, så eleverne kender dem og kan referere til dem.
Derfor er dette et naturligt forløb at introducere faget med.
Den foreslåede litteratur kan gennemgås med henblik på at klæde eleverne på med et fagligt begrebsapparat. Hvis man foretrækker det, kan man udelade litteraturen for at holde undervisningen på et introducerende niveau.
De fire delførløb er tilrettelagt, så man med fordel kan gennemgå dem i den opskrevede rækkefølge.
Omfanget af dette forløb er ca. 6 timer. Man kan overveje at lade eleverne læse introduktionsbeskrivelsen til første lektion.
Bemærk under innovationsdelen henvises til leksikonnet, hvor der er en definition af begrebet innovation. Der tales her om innovation som proces og her er et eksempel KIE-modellen (se materialelisten).
For de interessserede er den bagvedliggende parser i programmet er ret enkel. Syntaktisk korrekte udtryk beskrives ved følgende EBNF grammatik:
<Expression> ::= <Term> { ("+" | "-") <Term> }
<Term> ::= <Factor> { ("*" | "/" | <Empty(se nedenfor)> <Factor> }
// <Empty> kun tilladt hvis den efterfølgende <Factor> starter med "x" eller "("
// Det er for at tillade "underforstået *" som i f.eks. 2(x+3) og 2xx (==2*x*x)
<Factor> ::= <Number> |
"x" [ "^" <Number> ] |
"-" <Factor> |
"(" <Expression> ")" [ "^" <Number> ]Binære operatorer parses venstre-associativt, så f.eks. 1*x*3 parses som (1*x)*3, og 1/x*4 som (1/x)*4.