visa förståelse för basal notation inom mängdteori, såsom ekvivalens, kardinalitet, uppräknelighet och oändliga mängder,
kunna karaktärisera funktioner, injektiva/surjektiva/bijektiva funktioner, partial- och totalordningar och deras egenskaper,
förstå basala bevistekniker såsom induktion,
vara bekant med boolesk algebra och första ordningens logik,
förstå fundamentala strukturer som träd och grafer.
Färdighet och förmåga
kunna använda notationen för mängder, relationer, funktioner och ordningar för att definiera strukturer och diskutera deras egenskaper,
kunna använda induktion för att bevisa egenskaper hos oändliga mängder av objekt,
kunna manipulera, transformera och förenkla booleska uttryck enligt den booleska algebrans lagar,
kunna arbeta med träd och grafer och konstruera bevis för deras egenskaper,
kunna implementera enkla algoritmer och test för egenskaper hos diskreta strukturer,
be able to use divisibility rules, the Euclidean algorithm, and modular arithmetic.
Värderingsförmåga och förhållningssätt
kunna använda mängder, grafer och träd för att representera aspekter av verkliga problem,
visa förmåga att ta fram en lämplig bevisstrategi för ett givet problem.
Kursinnehåll
Mängder, mängdekvivalenser, oändliga mängder, uppräkningsbarhet, funktioner, egenskaper hos funktioner (injektiva, surjectiva och bijektiva funktioner), relationer, ordningar (totala och partiella), transitivitet, (anti-) symmetri, reflexion, ekvivalensrelationer och klasser, boolesk algebra, predikatlogik, bevis, induktion, talteori, grafer, träd.
Förutsättningar
EDAA20 Programmering och databaser eller EDAA45 Programmering, grundkurs eller EDAA50 Programmeringsteknik eller EDAA55 Programmeringsteknik eller EDAA65 Programmering eller EDAA70 Inledande programmering med Python eller EDAB05 Programmering, grundkurs