ŘEŠENÍ LOGICKÝCH ÚLOH



Podobné dokumenty
POROVNÁNÍ NĚKTERÝCH SW PRO ZOBRAZENÍ GRAFU FUNKCE DVOU PROMĚNNÝCH

Výuka odborného předmětu z elektrotechniky na SPŠ Strojní a Elektrotechnické

Concept Cartoons a jejich interaktivní možnosti

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Jaký programovací jazyk učit jako první a jak ho učit?

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Animace ve WPF. Filip Gažák. Ing. Václav Novák, CSc. Školní rok:

Office 2007 Styles Autor: Jakub Oppelt Vedoucí práce: Ing. Václav Novák, CSc. Školní rok:

Zvyšování kvality výuky technických oborů

MODERN APPROACHES TO TEACHING PROGRAMMING. Rostislav FOJTÍK

Jiří DOSTÁL Univerzita Palackého v Olomouci, Pedagogická fakulta, KTEIV. Interaktivní tabule ve vzdělávání

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

INTERAKTIVNÍ TABULE A MATEMATICKÝ SOFTWARE GEOGEBRA PŘI VÝUCE MATEMATIKY V ANGLICKÉM JAZYCE

Dům zahraniční spolupráce

WORKSHEET 1: LINEAR EQUATION 1

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

FINANČNÍ VZDĚLÁVÁNÍ NA ZÁKLADNÍ ŠKOLE

VYUŽITÍ SOFTWARU MATHEMATICA VE VÝUCE PŘEDMĚTU MATEMATIKA V EKONOMII 1

Projekty pro výuku programování v jazyce Java

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Metodické pokyny pro práci s modulem Řešitel v tabulkovém procesoru Excel

Einsteinova hádanka. Pokud si nevíte rady, podívejte se na další stránku. Patříte mezi 2 % nejinteligentnějších lidí na světě?

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

Znalostní systém nad ontologií ve formátu Topic Maps

PaedDr. Petr Pexa, Ph.D.

Převod prostorových dat katastru nemovitostí do formátu shapefile

Počítačové kognitivní technologie ve výuce geometrie

Optimalizace pro vyhledavače a přístupnost webu

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Každý prostředek se dá efektivně využít, je-li správně uchopen a použit David Nocar

PODPORA VÝUKY MATEMATIKY E-LEARNINGOVÝMI KURZY S MULTIMEDIÁLNÍMI STUDIJNÍMI

3D model města pro internetové aplikace. Jakub Dolejší. Ing. Tomáš Dolanský, Ph.D.

Gymnázium, Brno, Slovanské nám. 7, SCHEME OF WORK Mathematics SCHEME OF WORK. cz

Trendy ve vzdělávání 2010 Sekce 1 Podpora výuky

Národní konference Scientix 3

Objektově orientované programování

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Metodický list k didaktickému materiálu

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Manažerský GIS. Martina Dohnalova 1. Smilkov 46, 2789, Heřmaničky, ČR

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

GRAFICKÉ ŘEŠENÍ ROVNIC A JEJICH SOUSTAV

KTE / ZPE Informační technologie

VY_32_INOVACE_IKTO2_0460 PCH

VYSOKÁ ŠKOLA HOTELOVÁ V PRAZE 8, SPOL. S R. O.

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.

Web based dynamic modeling by means of PHP and JavaScript part II

Použití analyzátoru paketů bezdrátových sítí Wireshark

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Analýza vzdělávacích potřeb a kompetencí učitelů 1. stupně ZŠ v Olomouckém kraji k implementaci a využívání ICT ve výuce matematiky

HODNOCENÍ INOVAČNÍCH VÝSTUPŮ NA REGIONÁLNÍ ÚROVNI

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VYUŽITÍ PROGRAMU MAPLE VE VÝUCE MATEMATIKY NA ZF JU

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

lesního porostu škůdci. Původci: Milan Novák, Miloš Prokýšek. Česká republika. Užitný vzor CZ U

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

UPLATNĚNÍ ABSOLVENTŮ EKONOMICKÝCH VYSOKÝCH ŠKOL NA TRHU PRÁCE V OBDOBÍ KRIZE LABOUR MARKET ASSERTION OF THE ECONOMIC UNIVERSITIES GRADUATES IN CRISIS

E-EDUCATION NEBOLI VYUŽITÍ ICT VE ŠKOLÁCH

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Seznámení s prostředím dot.net Framework

CONTROLLING IN LOGISTICS CHAIN

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

PROGRAM MAXIMA. KORDEK, David, (CZ) PROGRAM MAXIMA

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

INTEGRACE ENVIRONMENTÁLNÍ VÝCHOVY DO VYUČOVÁNÍ MATEMATIKY NA 1. STUPNI ZŠ VÝSLEDKY ANALÝZY

Kód: Vzdělávací materiál projektu Zlepšení podmínek výuky v ZŠ Sloup. Present simple "to have, to be"

Moderní technologie (nejen) ve výuce. Vladimíra Pavlicová, Dům zahraniční spolupráce Národní konference etwinning,

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

AKTIVIZACE STUDENTŮ VE VÝUCE EXTREME COLLABORATION STUDENT-ACTIVATING TEACHING METHODS EXTREME COLLABORATION

Název školy: SOŠ NET OFFICE Orlová, spol. s r.o. Vypracoval/a: Mgr. Alena Sovová

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝSLEDKY PRVNÍHO ROKU ŘEŠENÍ PROJEKTU CAD

CZ.1.07/1.5.00/

Inovace výuky prostřednictvím šablon pro SŠ

Pokročilé programování v jazyce C pro chemiky (C3220) Pokročilá témata jazyka C++

Projekt Obrázek strana 135

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

USING VIDEO IN PRE-SET AND IN-SET TEACHER TRAINING

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Nadpis článku: Zavedení speciálního nástroje SYPOKUB do praxe

Zapouzdření. Tomáš Pitner, upravil Marek Šabo

CLIL inovativní přístup nejen k výuce cizích jazyků

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

MOŽNOSTI PROPOJENÍ VÝUKY CHEMIE A ZDRAVOTNICKÉ PRAXE

Delphi podstata, koncepce a metody MDI aplikace

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Metody automatického texturování 3D modelu měst s využitím internetových fotoalb 3D town model for internet application

ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY

PARAMETRICKÁ STUDIE VÝPOČTU KOMBINACE JEDNOKOMPONENTNÍCH ÚČINKŮ ZATÍŽENÍ

Výuka softwarového inženýrství na OAMK Oulu, Finsko Software engineering course at OAMK Oulu, Finland

Komprimace/Dekomprimace

Transkript:

ŘEŠENÍ LOGICKÝCH ÚLOH POMOCÍ POČÍTAČE Radim Remeš, Ladislav Beránek, Anna Carbová Jihočeská univerzita v Českých Budějovicích Abstrakt: Cílem příspěvku je představit jeden z možných způsobů řešení logických úloh pomocí programovacího nástroje Microsoft Visual Studio. Řešení bude demonstrováno na Einsteinově hádance, kde je třeba určit chybějící informace, které odvozujeme ze zadaných výroků. K výhodám využití tohoto nástroje patří demonstrace mezipředmětového vztahu matematiky a informatiky, tento software je vhodný i pro neprogramátory, a v neposlední řadě lze takto zpestřit výuku. Klíčová slova: Microsoft Visual Studio, výuka, logické úlohy, programování, jazyk C# Computer aided solving of logic problems Abstract: The aim of this paper is to introduce one of the possible ways how to solve logic problems using Microsoft Visual Studio programming tool. The solution is demonstrated on the Einstein s puzzle where the missing information must be identified by deriving it from the given statements. The benefits of using this tool include demonstration of integrating mathematics and information technology, this software is also suitable for non-programmers, and last but not least, can thus diversify teaching. Key words: Microsoft Visual Studio, teaching, logic problems, programming, language C# 1 Úvod V posledních deseti letech se v České republice projevuje velká snaha o propojení jednotlivých vyučovaných předmětů v průřezu celého vzdělávacího systému. Projevuje se potřeba rozvíjet schopnosti uplatnit vědomosti v praxi, řešit problémy a pracovat s informačními technologiemi [7]. Ukazuje se, že takové spojení nevede ke zpomalení žáků při osvojování si učiva, ale naopak přináší nové výzvy a možnosti uplatnění vědomostí v praxi [1]. Takový postup je ale pro vyučující hlavně vpočátečním stadiu velmi časově náročný, zejména při výběru materiálů a jejich aplikaci při výuce [2]. Právě z tohoto důvodu je nezbytné se o nabyté znalosti a zkušenosti dělit. Tento článek ukazuje využití programovacího nástroje Microsoft Visual Studio pro řešení logických úloh při výuce matematiky. Využití programovacího nástroje pomáhá studentům přehledně formulovat fakta zadané úlohy a následně provést kontrolu výsledků. 311

2 Einsteinova hádanka Velmi oblíbenou a známou logickou úlohou je Einsteinova hádanka. Autorství je někdy přisuzováno mladému Albertu Einsteinovi [8], jindy matematiku Charlesovi Lutwidgi Dodgsonovi [4]. 2.1 Zadání hádanky Existují různé národní varianty zadání, v češtině je úloha popsána následovně [3]: Je 5 domů v 5 rozdílných barvách. V každém domě žije osoba rozdílné národnosti. Těchto 5 obyvatel pije svůj nápoj, kouří svoje cigarety a chová zvířata. Nikdo nepije to, co ostatní, nekouří, co ostatní a nechová to, co ostatní. Zadání je doplněné o následující tipy: 1. Angličan žije v červeném domě. 2. Švéd chová psy. 3. Dán pije čaj. 4. Zelený dům je hned nalevo od bílého. 5. Obyvatel zeleného domu pije kávu. 6. Ten, co kouří Pall Mall, chová ptáky. 7. Obyvatel žlutého domu kouří Dunhill. 8. Ten, co žije ve středním domě, pije mléko. 9. Nor žije v prvním domě. 10. Ten, co kouří Blend, žije vedle toho, co chová kočky. 11. Ten, co chová koně, žije vedle toho, co kouří Dunhill. 12. Ten, co kouří Blue Master, pije pivo. 13. Němec kouří Prince. 14. Nor žije vedle modrého domu. 15. Ten, co kouří Blend, má souseda, který pije vodu. Otázka zní: Kdo chová ryby? 312

2.2 Způsoby řešení Einsteinovy hádanky Výše uvedená logická úloha lze řešit různými způsoby. Někteří ji vyřeší zpaměti, další si vypomohou tužkou a papírem, jiní použijí k vyřešení počítač a vhodný programovací jazyk pro řešení úloh podobného typu, nejčastěji Prolog. Dosud méně častým způsobem řešení je využití programovacího jazyka C#. Abychom si programování zpříjemnili a také trochu zjednodušili, využijeme knihovnu pro matematické programování a optimalizaci Microsoft Solver Foundation. Tuto knihovnu použijeme společně s vývojovým prostředím Microsoft Visual C#. Jak vývojové prostředí Microsoft Visual C#, tak i knihovna Microsoft Solver Foundation, jsou v edici express volně dostupné, lze je stáhnout přímo ze stránek společnosti Microsoft [5, 6]. 3 Řešení v jazyku C# 3.1 Vývojářské modely Microsoft Solver Foundation nabízí v prostředí Microsoft Visual Studio tři vyvojářské modely pro možné postupy řešení: Solver Foundation Services, Solver Foundation Solvers a Optimization Modeling Language. Vývojářský model Solver Foundation Services (SFS) je vhodný pro začínající vývojáře, nebot požadovaný řešitel je vybírán automaticky, nebo pro případy, kdy je pro řešený model úlohy potřeba využít více různých řešitelů. Zatímco vývojářský model SFS nabízí určitou úroveň abstrakce od konkrétního způsobu řešení, vývojářský model Solver Foundation Solvers již přistupuje ke konkrétním řešitelům (např. řešitel pro lineární programování, kvadratické programování, celočíselné programování nebo řešitel pro kvazinewtonovské metody) a je vhodnější pro pokročilejší vývojáře. Optimization Modeling Language (OML) je algebraický modelovací jazyk, vyvinutý speciálně pro modelování a řešení úloh. Modelování pomocí jazyka OML nabízí oddělení zdrojového kódu programu od popisu řešeného modelu. Jednak tímto dochází k zpřehlednění celého programu, ale také lze kdykoliv později snadno upravovat a modifikovat řešený model úlohy, nebot tento může být popsán pomocí OML v samostatném souboru. 3.2 Solver Foundation Services Pro demonstraci řešení zadané úlohy jsme vybrali vývojářský model Solver Foundation Services. Vlastní tvorba modelu sestává ze tří fází: rozhodnutí (decision; ve zdrojovém kódu příkaz Model.AddDecision(Decision)) omezení (constraint; ve zdrojovém kódu příkaz Model.AddConstraint(Constraint)) cíl (goal; ve zdrojovém kódu příkaz Model.AddGoal(Maximize) nebo Model.AddGoal( Minimize)) 313

Výpis 1 zobrazuje kostru celého programu v jazyku C#, na řádku s komentářem vlastní řešení bude dále doplněna definice řešeného modelu. Výpis 1: Kostra programu pomocí modelu SFS. using System; using Microsoft.SolverFoundation.Services; namespace einsteinspuzzle { class Puzzle { public void Solve() { // vlastní řešení class Program { static void Main(string[] args) { Puzzle puzzle = new Puzzle(); puzzle.solve(); Tvorba objektu navrhovaného modelu je provedena vytvořením instance třídy Model v rámci kontextu řešitelů vývojářského modelu SFS SolverContext. Současně je vytvořen objekt person jako podmodel objektu hlavního modelu. Vše je zobrazeno na výpisu 2. Výpis 2: Tvorba objektu modelu. SolverContext context = SolverContext.GetContext(); Model rootmodel = context.createmodel(); Model person = rootmodel.createsubmodel("person"); 3.2.1 Rozhodnutí Nyní musíme vytvořit domény a rozhodnutí. Domény budou definovat konkrétní barvy, jazyky, zvířata, cigarety a nápoje. Dohromady tato pětice tvoří rozhodnutí, z kterých se budou výsledná řešení hledat. Výpis 3 ukazuje tvorbu všech domén a rozhodnutí. Výpis 3: Tvorba domén a rozhodnutí. Domain colors = Domain.Enum("modrá", "zelená", "bílá", "červená", "žlutá"); Decision color = new Decision(colors, "Color"); person.adddecision(color); Domain languages = Domain.Enum("Angličan", "Nor", "Dán", "Švéd", "Němec"); Decision language = new Decision(languages, "Language"); person.adddecision(language); Domain animals = Domain.Enum("koně", "psi", "ptáci", "kočky", "ryby"); Decision animal = new Decision(animals, "Animal"); person.adddecision(animal); 314

Domain cigarettes = Domain.Enum("Blue Master", "Prince", "Pall Mall", "Blend", "Dunhill"); Decision cigarette = new Decision(cigarettes, "Cigarette"); person.adddecision(cigarette); Domain beverages = Domain.Enum("čaj", "mléko", "voda", "pivo", "káva"); Decision beverage = new Decision(beverages, "Beverage"); person.adddecision(beverage); 3.2.2 Omezení Implementace tipů ze zadání se aplikuje vytvořením omezení. Tímto nastavíme omezení vyplývajicí z tipů 1 až 7, kromě tipu 4, který bude nastaven později, a dále pak tipy 12 a 13. Realizace je zobrazena na výpisu 4. Výpis 4: Nastavení omezení dle tipů 1 až 3, 5 až 7, 12 a 13. person.addconstraints("constraints", Model.Implies(language == "Angličan", color == "červená"), // 1 Model.Implies(language == "Švéd", animal == "psi"), // 2 Model.Implies(language == "Dán", beverage == "čaj"), // 3 Model.Implies(color == "zelená", beverage == "káva"), // 5 Model.Implies(cigarette == "Pall Mall", animal == "ptáci"), // 6 Model.Implies(color == "žlutá", cigarette == "Dunhill"), // 7 Model.Implies(cigarette == "Blue Master", beverage == "pivo"), // 12 Model.Implies(language == "Němec", cigarette == "Prince")); // 13 Nyní je potřeba vytvořit objekty představující jednotlivé osoby prostřednictvím instancování submodelu objektu person. Pro snadnější nastavení dalších omezení budou jednotlivé objekty realizovány jako pole (výpis 5). Výpis 5: Vytvoření jednotlivých osob jako instance objektu person. SubmodelInstance[] persons = new SubmodelInstance[5]; for (int i = 0; i < 5; i++) persons[i] = person.createinstance("person" + i); Dalším omezením, které je nutné nastavit, bude zajištění, že každá osoba nepije to, co pijí ostatní, nekouří, co kouří ostatní a nechová zvíře, které chová někdo z ostatních. Současně jsme uplatnili tipy 8 a 9, částečně také tip 4 (zelený dům nemůže být posledním vpravo). Vše vidíme na výpisu 6. 315

Výpis 6: Omezení zabraňující duplicitě pro jednotlivé osoby. rootmodel.addconstraints("constraints", Model.AllDifferent(persons[0][language], persons[1][language], persons[2][language], persons[3][language], persons[4][language]), Model.AllDifferent(persons[0][color], persons[1][color], persons[2][color], persons[3][color], persons[4][color]), Model.AllDifferent(persons[0][cigarette], persons[1][cigarette], persons[2][cigarette], persons[3][cigarette], persons[4][cigarette]), Model.AllDifferent(persons[0][animal], persons[1][animal], persons[2][animal], persons[3][animal], persons[4][animal]), Model.AllDifferent(persons[0][beverage], persons[1][beverage], persons[2][beverage], persons[3][beverage], persons[4][beverage]), persons[0][language] == "Nor", // 9 persons[2][beverage] == "mléko", // 8 persons[4][color]!= "zelená" // 4* ); Nakonec doplníme tip 4 jako poslední omezení. Protože může být zeleným domem kterýkoliv z prvních čtyř, musíme doplnit všechna čtyři omezení, jak zobrazuje výpis 7. Výpis 7: Nastavení omezení pro zelený dům nalevo od bílého (tip 4). for (int i = 0; i < 4; i++) // 4 rootmodel.addconstraint("zelenábílá" + i, Model.Implies(persons[i][color] == "zelená" persons[i + 1][color] == "bílá")); 3.2.3 Cíl a řešení Posledním krokem by bylo nastavení cíle (goal), hledají se tak např. maxima či minima, což v naší úloze nemá smysl. Na závěr stačí doplnit kód pro zahájení řešení a sledování výsledků pomocí reportů, jak je zobrazeno na výpisu 8. Výpis 8: Zahájení výpočtu a sledování řešení. Solution solution = context.solve( new ConstraintProgrammingDirective()); Report report = null; while (solution.quality!= SolverQuality.Infeasible) { report = solution.getreport(); Console.WriteLine(report); solution.getnext(); Po spuštění programu se zobrazí výsledná zpráva o výpočtu společně s nalezeným řešením (výpis 9). 316

Výpis 9: Zpráva s výsledkem řešení. ===Solver Foundation Service Report=== Date: 2.11.2011 19:23:23 Version: Microsoft Solver Foundation 3.0.1.10599 Enterprise Edition Model Name: DefaultModel Capabilities Applied: CP Solve Time (ms): 51 Total Time (ms): 171 Solve Completion Status: Feasible Solver Selected: Microsoft.SolverFoundation.Solvers.ConstraintSystem Directives: CSP(TimeLimit = -1, MaximumGoalCount = -1, Arithmetic = Default, Algorithm = Default, VariableSelection = Default, ValueSelection = Default, MoveSelection = Default, RestartEnabled = False, PrecisionDecimals = 2) Algorithm: TreeSearch Variable Selection: DomainOverWeightedDegree Value Selection: ForwardOrder Move Selection: Any Backtrack Count: 2 ===Solution Details=== Goals: Decisions: person0.language: Nor person0.color: žlutá person0.animal: kočky person0.cigarette: Dunhill person0.beverage: voda person1.language: Dán person1.color: modrá person1.animal: koně person1.cigarette: Blend person1.beverage: čaj person2.language: Angličan person2.color: červená person2.animal: ptáci person2.cigarette: Pall Mall person2.beverage: mléko person3.language: Němec person3.color: zelená person3.animal: ryby person3.cigarette: Prince person3.beverage: káva person4.language: Švéd person4.color: bílá person4.animal: psi person4.cigarette: Blue Master person4.beverage: pivo 317

4 Závěr Snadno již můžeme odpovědět na otázku zadanou v úloze, počítač nám nalezl řešení, ryby chová Němec. Článek ukázal využití programovacího nástroje Microsoft Visual C# s knihovnou Microsoft Solver Foundation pro řešení logických úloh. Řešení podobných typů úloh pomocí programovacího nástroje je vhodné pro demonstraci alternativního postupu, který je pro studenty zajímavým rozšířením standardní výuky. Literatura [1] BALANSKAT, Anja, BLAMIRE, Roger, KEFALLA, Stella. EUROPEAN SCHOOL- NET. The ICT Impact Report: A review of studies of ICT impact on schools in Europe [online]. Brusel: EUN Partnership AISBL, 2006 [cit. 2011-11-24]. Dostupné z WWW: <http://insight.eun.org/shared/data/pdf/impact_study.pdf>. [2] BINTEROVÁ, Helena. Vyučování matematice z pohledu dnešní doby. Metodický portál: Články [online]. 11. 11. 2005, [cit. 2011-11-24]. ISSN 1802-4785. Dostupné z WWW: <http://clanky.rvp.cz/clanek/c/z/393/vyucovani-matematice-z- POHLEDU-DNESNI-DOBY.html>. [3] HUSAR, Petr. Einsteinova hádanka. E-Matematika.cz: nesnesitelně snadná matematika [online]. 2007 [cit. 2011-11-24]. Dostupné z WWW: <http://www.e-matematika.cz/ hadanky/03-einsteinova-hadanka.php>. [4] LITTLE, James, GEBRUERS, Cormac, BRIDGE, Derek, FREUDER, Eugene. Capturing Constraint Programming Experience: A Case-Based Approach. In: FRISCH, A. M. International Workshop on Reformulating Constraint Satisfaction Problems, Workshop Programme of the 8th International Conference on Principles and Practice of Constraint Programming. Cork, Ireland: University College, 2002. Dostupné z WWW: <http://www.cs.ucc.ie/~dgb/papers/little-et-al-2002.pdf>. [5] Microsoft. DevLabs : TC Labs: Solver Foundation [online]. Redmond, WA : 2011 [cit. 2011-11-24]. MSDN. Dostupné z WWW: <http://msdn.microsoft.com/enus/devlabs/hh145003>. [6] Microsoft. Microsoft Visual Studio: Microsoft Visual C# 2010 Express [online]. Redmond, WA : 2011 [cit. 2011-11-24]. Dostupné z WWW: <http://go.microsoft.com/?linkid=9709939>. [7] MINISTERSTVO ŠKOLSTVÍ, MLÁDEŽE A TĚLOVÝCHOVY. Národní program rozvoje vzdělávání v České republice: Bílá kniha [online]. 1. vyd. Praha: Ústav pro informace ve vzdělávání, 2001, 98 s. [cit. 2011-11-24]. ISBN 80-211-0372-8. Dostupné z WWW: <http://www.msmt.cz/files/pdf/bilakniha.pdf>. [8] STANGROOM, Jeremy. Einstein s Riddle: Riddles, Paradoxes, and Conundrums to Stretch Your Mind. First Edition. Bloomsbury USA, 2009, 144 s. ISBN 978-1596916654. 318

Mgr. Radim Remeš Jihočeská univerzita v Českých Budějovicích, Ekonomická fakulta, Katedra aplikované matematiky a informatiky Studentská 13, 370 05, České Budějovice inrem@ef.jcu.cz Ing. Ladislav Beránek, CSc., MBA. Jihočeská univerzita v Českých Budějovicích, Ekonomická fakulta, Katedra aplikované matematiky a informatiky Studentská 13, 370 05, České Budějovice beranek@ef.jcu.cz Mgr. Anna Carbová Jihočeská univerzita v Českých Budějovicích, Pedagogická fakulta, Katedra anglistiky Jeronýmova 10 371 15 České Budějovice carbova@pf.jcu.cz 319