Algoritmen en Complexiteit Programmeerparadigmas Voorbereiding Visitatie ZAP vergadering
Algoritmen en Complexiteit Programmeerparadigma’s Voorbereiding Visitatie ZAP vergadering woensdag 27/2/2008 1/11
Algoritmen en Complexiteit: Inhoud week inhoud 1 -4 Uniforme worst-case tijdscomplexiteit, toegepast op sorteeralgoritmen: big-o, big-omega lexicografisch sorteren comparison-based sorteren 5 -6 Modellen: RAM, RASP, TM en de verbanden ertussen. log vs. uniforme complexiteit 7 Subwoord - probleem 8 8 - 10 NP - time en NP - space 9 SAT is in NP - time 10 Reducties: hamiltonian path, colourability 11 11 -12 Randomized algorithms, Mincut, RP , ZPP 2/11
Werkvorm Klassiek hoorcollege met “theoretische” oefeningen Enkele opdrachten, maar zonder permanente evaluatie Materiaal: Syllabus (uitgewerkte slides) Handboeken: Aho, Hopcroft, Ullman: “The design and Analysis of Computer Algorithms” Aho, Motwani, Ullman: “Automata Theory, Languages and Computation” Examen: Open boek (syllabus) 3/11
Doelstellingen - Basiskennis over tijds-en plaatscomplexiteit: definities en hun motivatie Complexiteit van een gegeven algoritmen kunnen bepalen Redeneren over de correctheid van een algoritme Inzicht verwerven in de samenhang complexiteit - model Basiskennis complexiteitsklassen Gebruik van reducties tussen problemen Kennismaking met gerandomizeerde algoritmen en hun analyse 4/11
Volgtijdelijkheid Vereiste voorkennis: - Enige programmeerervaring, basiskennis algoritmen Eindige automaten (Talen en Automaten) Turing machines (Machines en Berekenbaarheid) Elementaire datastructuren (Gegevensstructuren) 5/11
Kerncompetenties • • KC 1: Analyse en ontwerp KC 2: Implementatie KC 3: Onderhoud KC 4: Databank KC 5: Lokaal netwerk beheer KC 6: Support en advies KC 7: Communicatievaardigheden • • • KCD 1: Formeel denken +++ KCD 2: Wetenschappelijk verwerken van data KCD 3: Opvolgen technologische ontwikkelingen KCD 4: Eigen maken nieuwe technieken + KCD 5: Autonoom en creatief functioneren + KCD 6: Wetenschappelijke basis +++ ++ + 6/11
Programmeerparadigmas: Inhoud week 1 2 -6 6 - 12 inhoud theorie Inleiding: de 4 belangrijkste paradigma’s, overzicht. Theorie achter het functioneel programmeren ( - calculus): syntax, beta-reductie, alpha-congruentie combinatoren, rekenen in - calculus, lijststructuren reductiestrategieën, normal order types, implementatie Logisch programmeren in PROLOG: de taal, syntax en semantiek unificatie, implementatie Practica: functioneel programmeren in Haskell programmeren in PROLOG 7/11
Werkvorm Theorie: hoorcollege met “theoretische” oefeningen over - calculus Practica: programmeeropdrachten Haskell - Prolog gedeeltelijk permanente evaluatie Materiaal: Syllabus (uitgewerkte slides) Handboeken: Simon Thompson, “Haskell, the Craft of Functional Programming” Adam Brooks Webber, “Modern Programming Languages: a Practical Introduction” Examen: Open boek (syllabus) + programmeeropdrachten 8/11
Doelstellingen - Basiskennis - calculus: geschiedenis en motivatie, werking verband met echte functionele talen - Programmeren in Haskell - Programmeren In PROLOG - Noties van de implementatie van beide 9/11
Volgtijdelijkheid Vereiste voorkennis: - Enige programmeerervaring, basiskennis algoritmen Basiskennis logica: wff, kwantoren, predicaten Enkele noties van berekenbaarheid Elementaire datastructuren Verband met andere vakken; zoals databases, AI? 10/11
Kerncompetenties • • KC 1: Analyse en ontwerp KC 2: Implementatie KC 3: Onderhoud KC 4: Databank KC 5: Lokaal netwerk beheer KC 6: Support en advies KC 7: Communicatievaardigheden • • • KCD 1: Formeel denken ++ KCD 2: Wetenschappelijk verwerken van data KCD 3: Opvolgen technologische ontwikkelingen KCD 4: Eigen maken nieuwe technieken ++ KCD 5: Autonoom en creatief functioneren KCD 6: Wetenschappelijke basis ++ ++ + (? ) 11/11
- Slides: 11