II Liceum Ogólnokształcące im. Mikołaja Kopernika w Lesznie z Oddziałami Dwujęzycznymi i Międzynarodowymi ul. Prusa 33, 64-100 Leszno Jeśli nie potrafisz wytłumaczyć czegoś w prosty sposób, to znaczy, że tak naprawdę tego nie rozumiesz Praca przygotowana przez Kacpra Majewskiego i Stanisława Borowiaka pod kierunkiem Dominika Siecińskiego Góra, 13.11.2018
Autorem cytatu znajdującego się w temacie projektu jest Albert Einstein. Uważał, że dany problem zrozumiemy dopiero, gdy będziemy potrafili wytłumaczyć go w prosty sposób. Naszym zdaniem Einstein ma rację. Udowodnimy to tłumacząc odwrotną notację polską. W odwrotnej notacji polskiej wyrażenia arytmetyczne zapisujemy inaczej niż zwykle. Operator, czyli znak wykonywanej operacji, jest umieszczony po argumentach, czyli liczbach na których wykonujemy działanie. Dzięki takiemu zapisowi nie musimy korzystać z nawiasów i wyraźnie widzimy kolejność działań. W naszym algorytmie wykorzystujemy stos. Zakładamy że wpisane działanie jest poprawne. Algorytm pobiera element tablicy. Jeśli jest on argumentem, zostaje odłożony na stos, jeżeli nie, to algorytm sprawdza czy element jest operatorem. Jeśli jest to operator to pobrane zostaną dwie liczby ze stosu i zostanie wykonane na nich działanie zależne od tego jaki to operator. Wynik działania odłożony jest na stos. Koniec następuje gdy skończą się elementy tablicy. Po ostatnim działaniu w stosie zostaje jedna liczba która zostaje wyświetlona. Jest to wynik naszego działania. Strona 2/13 Rysunek nr 1 przedstawiający schemat blokowy
W podanym niżej pseudokodzie możemy zobaczyć wszystkie działania wykonywane dla poszczególnych operatorów. Wczytujemy stos i tablicę. Następnie sprawdzamy każdy kolejny element tablicy czy jest on operatorem czy argumentem. Wykonujemy odpowiednie działanie. Na końcu wyświetlamy stos. Rysunek nr 2 Przedstawia pseudokod programu Strona 3/13
Poniżej widać kody programów napisanych w podanych w wymaganiach projektu językach, mianowicie: swift, java, python, C++. Zdjęcie nr 3 Strona 4/13
Przedstawia kod w swift Zdjęcie nr 4 Przedstawia kod w java Strona 5/13
Strona 6/13 Zdjęcie nr 5 Przedstawia kod w python
Strona 7/13 Zdjęcie nr 6 Przedstawia kod w C++
Algorytm został przedstawiony na lekcji informatyki w szkole, a po zakończonym wykładzie, przeprowadzono test sprawdzający stopień zrozumienia tematu przez uczniów. Składał się on kolejno z dwóch pytań otwartych i czterech zamkniętych. Jego wyniki prezentują się następująco: Zdjęcie nr 7 Przedstawia wyniki ankiety Dzięki tabeli widzimy w jakim stopniu uczniowie zaznajomili się z tematem i na które pytania odpowiedzieli poprawnie. Widzimy również średni wynik klasy. Strona 8/13
Zdjęcie nr 8 Przedstawia uczniów na wykładzie Strona 9/13
Zdjęcie nr 9 Przedstawia uczniów szykujących się do wypełnienia ankiety Strona 10/13
Zgadzamy się w pełni z tezą naszego tematu. Jeśli nie potrafimy w pełni wytłumaczyć czegoś w prosty sposób, to znaczy że tego nie rozumiemy. Poprowadzony przez nas wykład z prezentacją o Odwróconej Notacji Polskiej potwierdza nasze zdanie na ten temat. Wytłumaczyliśmy zasadę działania tego algorytmu. Z powodu braku czasu przedstawiliśmy tylko rysunek ze schematem blokowym oraz kod algorytmu w języku Java. Ze względu na stopień trudności projektu wraz ze współprowadzącym wykładu nie potrafiliśmy w prosty sposób wytłumaczyć zasady działania algorytmu. Mimo dokładnego rozrysowania działania, klasa nie zrozumiała sposobu w jaki jest wykonywane działanie. Było to spowodowane przez to, że wybraliśmy trudniejszą formę zapisu, mimo że mogliśmy zrobić to w bardziej zrozumiały dla nowych w tym temacie sposób. Dzięki pomocy nauczyciela pokonaliśmy trudności i uczniowie obecni na wykładzie zrozumieli sposób w jaki działał algorytm. Klasa zainteresowana była prezentacją, w związku z czym uważnie nas słuchała. Wraz z kolegą popełniliśmy błąd w kolejności działań, który utrudnił wytłumaczenie całej reszty. Pokazuje to, że mimo naszych starań nie zrozumieliśmy tematu. Gdy zauważyliśmy błąd, poprawiliśmy go i sprostowaliśmy to, co było powiedziane wcześniej. Ostatecznie klasa zrozumiała temat. Wykazały to wyniki stworzonego przez nas testu. Większość uczniów odpowiedziała poprawnie na wszystkie zadania w teście. Gdy przedstawiliśmy algorytm w trudniejszej formie, uczniowie nie zrozumieli. Gdy został on pokazany w prostszej formie, wszyscy nauczyli się go w kilka minut. Potwierdza to tezę naszego tematu. Próba wytłumaczenia kodu algorytmu trudniejszym sposobem pokazała, że musimy douczyć się w kwestii naszego projektu. Na szczęście nie zajęło to długo i byliśmy w stanie kontynuować wykład. Ja i mój partner, który wykonywał tę pracę razem ze mną, mamy nadzieję, że pokazana przez nas prezentacja i wnioski z niej wyciągnięte pozwalają w pełni zgodzić się z nami, że jeżeli nie potrafimy wytłumaczyć czegoś w prosty sposób, to tak naprawdę tego nie rozumiemy. wytłumaczyć czegoś w prosty sposób, to tak naprawdę tego nie rozumiemy. Strona 11/13
Nasza propozycja kolejnego tematu to Co to jest stos i jak można go wykorzystać? Zgadzamy się na udostępnienie projektu na stronie www.code.kopernik-leszno.pl, aby kolejni uczniowie mogli skorzystać z tego materiału przy nauce programowania Strona 12/13
Źródła 1. https://pl.wikipedia.org/wiki/odwrotna_notacja_polska pobrane dnia 04.11.2018 Spis zdjęć, rysunków, tabel i wykresów 1. Rysunek przedstawiający schemat blokowy programu rysunek własny 2. Rysunek przedstawiający pseudokod programu rysunek własny 3. Zdjęcie przedstawiające pseudokod w swift zdjęcie własne 4. Zdjęcie przedstawiające pseudokod w java zdjęcie własne 5. Zdjęcie przedstawiające pseudokod w python zdjęcie własne 6. Zdjęcie przedstawiające pseudokod w C++ zdjęcie własne 7. Tabela przedstawiająca wyniki uczniów z testu opracowanie własne 8. Zdjęcie przedstawiające uczniów na wykładzie zdjęcie własne 9. Zdjęcie przedstawiające uczniów szykujących się do wypełnienia ankiety zdjęcie własne Strona 13/13