DLACZEGO NIE POWINNIŚMY KSZTAŁCIĆ KOLEJNYCH SEKRETAREK? Algorytmika jest dla każdego! Przemysław Szydzik Redaktor publikacji informatycznych Wydawnictwo Szkolne PWN przemyslaw.szydzik@pwn.pl
Co mówi Google?
http://europa.eu/rapid/press-release_STAT-12-47_en.htm
Wieże Hanoi // problem Przenieś wszystkie krążki (z zachowaniem ich układu) ze słupka A na słupek C, wykorzystując słupek pomocniczy B. Zasady: za jednym razem możesz przenieść tylko jeden krążek na dowolny krążek możesz położyć tylko krążek od niego mniejszy
Wieże Hanoi - rozwiązanie POWTARZAJ: przenieś najmniejszy z możliwych do przeniesienia krążków na kolejny słupek, zgodnie z ruchem wskazówek zegara jeśli jest taka możliwość, wykonaj możliwe przeniesienie krążkiem, który nie jest najmniejszy DO MOMENTU, GDY: wszystkie krążki znajdą się na jednym słupku.
Zamiana wartości zmiennych Jaki jest pierwszy pomysł ucznia na zamianę wartości zmiennych x i y? x=y; y=x; Taka odpowiedź wydaje się naturalna, bo przecież właśnie taki (w dużym skrócie) cel chcemy osiągnąć.
Zamiana wartości zmiennych Jak wyjaśnić uczniowi, że takie działania nie dadzą poprawnego efektu? Poprosić, aby myślał jak komputer!
Zamiana wartości zmiennych Sprawdzenie dla dowolnych liczb, na przykład: x=5 i y=7. W ten sposób obie zmienne przechowują tę samą wartość. Nie o to nam jednak chodziło! Kod Efekt x=5; y=7; Przypisanie zmiennej x wartości 5, a zmiennej y wartości 7. x=y; Zmienna x przechowuje wartość 7. y=x; Zmienna y przechowuje wartość zmiennej x, czyli 7.
Zamiana wartości zmiennych –rozwiązania Wprowadzenie pomocniczej zmiennej: bufor=x; x=y; y=bufor; Manewrowanie dodawaniem: x=x+y; y=x-y; x=x-y;
Programowanie od małego w CoderDojo Misja: Świat potrzebuje hakerów! http://coderdojo.org.pl/
Gra w Nimn // problem Ze zbioru n-kamieni gracze 1 i 2, począwszy od gracza 1, zabierają na przemian jeden lub dwa kamienie. Przegrywa ten, który zabiera ostatni kamień.
Gra w Nim5 wygrał g1 wygrał g2 wygrał g2 wygrał g2 wygrał g1 wygrał g1 3 g2 g1 wygrał g2 1 g1 g1 1 wygrał g2 5 2 g2 wygrał g1 g1 3 4 g2 1 g2 wygrał g1 g1 2 wygrał g2
Gra w Nim5 W grze z pięcioma kamieniami zawsze może wygrać gracz, który rozpoczyna – musi jednak rozpocząć od jednego kamienia.
Gra w Nim5 wygrał g1 wygrał g2 wygrał g2 wygrał g2 wygrał g1 wygrał g1 3 g2 g1 wygrał g2 1 g1 g1 1 wygrał g2 5 2 g2 wygrał g1 g1 3 4 g2 1 g2 wygrał g1 g1 2 wygrał g2
A jeśli gracz 1 się pomyli i w pierwszym ruchu weźmie Gra w Nim5 A jeśli gracz 1 się pomyli i w pierwszym ruchu weźmie 2 kamienie?
Gra w Nim5 Gracz 1 przegra, jeśli gracz drugi weźmie 2 kamienie. wygrał g1 2 g1 wygrał g2 3 g2 1 g1 wygrał g2 5 g1 Gracz 1 przegra, jeśli gracz drugi weźmie 2 kamienie.
Ratowanie życia – algorytm resuscytacji Kluczowe pytanie: Jaki jest warunek zakończenia algorytmu? źródło: Podstawowe zabiegi resuscytacyjne u osób dorosłych oraz zastosowanie automatycznych defibrylatorów zewnętrznych (AED) Rudolph W. Koster, Michael A. Baubin, Leo L. Bossaert, Antonio Caballero, Pascal Cassan, Maaret Castrén, Cristina Granja, Anthony J. Handley, Koenraad G. Monsieurs, Gavin D. Perkins, Violetta Raffay, Claudio Sandron
Godzina Programowania (9-15.12.2013)
Pierwsze kroki z programowaniu Kodowanie z Angry Bird: http://learn.code.org/hoc/1 Goole Blockly: http://skroc.pl/360e2
Patriota w dobie iPadów Koduj dla Polski to inicjatywa Fundacji ePaństwo, której celem jest promocja "kodowania", "programowania" i "bycia developerem" jako nowoczesnych form patriotyzmu. http://epf.org.pl/kodujdlapolski/
Patriota w dobie iPadów ADOPT-A-HYDRANT Aplikacja, w oparciu o mapę miasta, umożliwia obywatelom Bostonu zgłoszenie lokalnym władzom zasypanych śniegiem hydrantów przeciwpożarowych. CIVIC INSIGHTS Aplikacja oferuje mieszkańcom najświeższe informacje o statusie zniszczonej nieruchomości w danym mieście. DiscoverBPS Aplikacja łączy opinie, kryteria, dane szkoły oraz zaawansowane narzędzia by pomóc rodzicom wybrać szkołę dla swojego dziecka. http://epf.org.pl/kodujdlapolski/
Sortowanie zbiorów liczbowych //problem Dany jest zbiór liczb naturalnych. Ustaw elementy tego zbioru w porządku niemalejącym.
Sortowanie bąbelkowe – rozwiązanie www.youtube.com/watch?v=lyZQPjUT5B4
Sortowanie przez kopcowanie – alternatywne rozwiązanie Kopiec – drzewo binarne, w którym wartość przechowywana w dowolnym węźle jest nie mniejsza niż wartość w węzłach potomków. Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – schemat postępowania Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – implementacja int Lewy(int rodzic) { return (2*rodzic); } int Prawy(int rodzic) { return (2*rodzic + 1); } Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Sortowanie przez kopcowanie – implementacja void WykonajKopiec(int x) { int pmax, l, r; l= Lewy(x); r= Prawy(x); if (l <= rozmiar && t[l] > t[x]) pmax= l; else pmax= x; if (r <= rozmiar && t[r] > t[pmax]) pmax= r; if(pmax != x) { Zamien(x, pmax); WykonajKopiec(pmax); }
Sortowanie przez kopcowanie – praca z uczniem Co zrobić z uczniami, którym trudno będzie napisać program?
Sortowanie przez kopcowanie – praca z uczniem Model pracy: pokaz z wykorzystaniem modelu samodzielna, wielokrotna analiza algorytmu samodzielne zastosowanie kolejnych kroków algorytmu sprawdzenie rozwiązania
Sortowanie przez kopcowanie – praca z uczniem Sprawdzenie Zastosowanie Pokaz i analiza Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Algorytmika z uczniem słabszym Wieże Hanoi Fraktale Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Algorytmika z uczniem słabszym Przynależność punktu do obszaru Źródło: Informatyka nie tylko dla uczniów. Zakres rozszerzony, Wydawnictwo Szkolne PWN
Kursy programowania online http://www.codecademy.com/ http://www.learnstreet.com http://tryruby.org/ https://www.codeschool.com/ https://dash.generalassemb.ly/
if(nr_slajdu == ostatni) print ”Dziękuję za uwagę!”; Ostatni slajd if(nr_slajdu == ostatni) print ”Dziękuję za uwagę!”;