Dobry algorytm jest jak "ostry nóż" - robi dokÅ‚adnie to, co ma robić, z najmniejszym wysiÅ‚kiem. Używanie zÅ‚ego algorytmu, to jak "krajanie steku korkociÄ…giem". Rezultat może nie być ani efektywny, ani "apetyczny" . T. Cormen, Ch. E. Leiserson, R. L. Rivest
Wstęp
Nauczanie algorytmiczne to rodzaj nauczania, skłaniający ucznia do postępowania zgodnego z algorytmem, czyli sposobem postępowania, gwarantującym osiągnięcie celu. Nauczanie algorytmiczne może być realizowane na poziomie nauczania tradycyjnego, gdy nauczyciel podaje uczniom gotowy...
Sytuacje problemowe w nauczaniu algorytmiki z natury rzeczy majÄ… zÅ‚ożony charakter i wymagajÄ… umiejÄ™tnego wyróżnienia podproblemów, czyli wykorzystania metody zstÄ™pujÄ…cej, prowadzÄ…cej w konsekwencji do wyodrÄ™bnienia problemów czÄ…stkowych, których rozwiÄ…zanie nie nastrÄ™cza wiÄ™kszych kÅ‚opotów. Takie rozwiÄ…zywanie problemów uczy myÅ›lenia w kategoriach strukturalnych lub proceduralnych i przygotowuje do implementacji algorytmów w wybranych jÄ™zykach programowania. Dlatego zasadnÄ… wydaje siÄ™ korelacja nauczania algorytmiki z programowaniem - najpierw strukturalnym, a później zorientowanym obiektowo. Autorzy w swoim podrÄ™czniku Algorytmy i struktury danych przyjÄ™li zaÅ‚ożenie, że studenci podczas wykÅ‚adów i ćwiczeÅ„ projektowych w przedmiocie "Algorytmy i struktury danych" bÄ™dÄ… nabywać wiedzÄ™ i umiejÄ™tnoÅ›ci praktyczne z obszaru projektowania i analizy algorytmów, których implementacja bÄ™dzie zasadniczym wÄ…tkiem zajęć laboratoryjnych w pracowniach komputerowych w ramach przedmiotu "Programowanie strukturalne". W procesie dydaktycznym gÅ‚ówny nacisk należy poÅ‚ożyć na ksztaÅ‚cenie umiejÄ™tnoÅ›ci myÅ›lenia w kategoriach algorytmicznych przy rozwiÄ…zywaniu problemów o różnym poziomie zÅ‚ożonoÅ›ci. ZdajÄ…c sobie sprawÄ™ z różnego poziomu wiedzy informatycznej studentów rozpoczynajÄ…cych studia, szczególnie w zakresie algorytmiki, proponujemy platformÄ™ do wizualizacji algorytmów w formie portalu edukacyjnego, umożliwiajÄ…cÄ… na drodze samoksztaÅ‚cenia, zrozumienie procesu przetwarzania danych wedÅ‚ug gotowych, klasycznych algorytmów, na podstawie danych wejÅ›ciowych wprowadzanych każdorazowo przez użytkownika. Dopiero peÅ‚ne zrozumienie specyfikacji problemu i przebiegu obliczeÅ„ wedÅ‚ug klasycznych, modelowych rozwiÄ…zaÅ„, tworzy warunki do przyszÅ‚ej twórczej dziaÅ‚alnoÅ›ci studentów, rozwiÄ…zujÄ…cych różnorodne zadania z wykorzystaniem Å›rodków, narzÄ™dzi i metod informatyki.
Algorytmiki w edukacji szkolnej
Miejsce algorytmiki w edukacji szkolnej trafnie ujmuje Maciej M. SysÅ‚o, twierdzÄ…c, że tym, co ma pozostawać po nauce o algorytmach, powinny być nie same przepisy postÄ™powania, ani opisy ogólnych technik rozwiÄ…zywania, ale pewne, trudne do okreÅ›lenia jednym sÅ‚owem, połączenie: ogólnej strategii rozwiÄ…zywania problemów z przekonujÄ…cym i rzeczywistym przykÅ‚adem jej użycia, a to wszystko okraszone smakiem sukcesu z wÅ‚asnego osiÄ…gniÄ™cia zwyciÄ™stwa nad problemem; i to wszystko ma stanowić przygotowanie do twórczego dziaÅ‚ania w obliczu pojawiajÄ…cych siÄ™ problemów.
Algorytmy w jawnej postaci pojawiajÄ… siÄ™ w podstawie programowej dla gimnazjum i obejmujÄ… takie treÅ›ci, jak: rozwiÄ…zywanie problemów w postaci algorytmicznej, algorytmy wokóÅ‚ nas, przykÅ‚ady algorytmów rozwiÄ…zywania problemów praktycznych i szkolnych, Å›cisÅ‚e formuÅ‚owanie sytuacji problemowych, opisywanie algorytmów w jÄ™zyku potocznym, z apisywanie algorytmów w postaci procedur, które może wykonać komputer, przykÅ‚ady algorytmów rekurencyjnych, rozwiÄ…zywanie umiarkowanie zÅ‚ożonych zadaÅ„ metodÄ… zstÄ™pujÄ…cÄ… oraz przykÅ‚ady testowania i oceny algorytmów. UczeÅ„ gimnazjum poznaje kolejne, nastÄ™pujÄ…ce po sobie etapy rozwiÄ…zywania zadaÅ„ i problemów: sformuÅ‚owanie zadania, okreÅ›lenie danych wejÅ›ciowych, okreÅ›lenie celu, czyli wyniku, poszukiwanie metody rozwiÄ…zania, czyli algorytmu, przedstawienie algorytmu w postaci opisu sÅ‚ownego, listy kroków, schematu blokowego lub jednego z jÄ™zyków programowania, analiza poprawnoÅ›ci rozwiÄ…zania oraz testowanie rozwiÄ…zania dla różnych danych z ocenÄ… efektywnoÅ›ci przyjÄ™tej metody.
Dla wiÄ™kszoÅ›ci uczniów może to być jedyny kontakt z algorytmikÄ… przed rozpoczÄ™ciem studiów, albowiem problematyka algorytmów i struktur danych pojawia siÄ™ wedÅ‚ug obowiÄ…zujÄ…cej podstawy programowej jedynie w liceum ogólnoksztaÅ‚cÄ…cym, w przedmiocie "Informatyka", stanowiÄ…cym rozszerzenie prowadzonego we wszystkich typach szkóÅ‚ ponadgimnazjalnych wydzielonego przedmiotu "Technologia informacyjna". UżyliÅ›my terminu "może być" zamiast "jest", albowiem przychylamy siÄ™ do opinii Z. Ledóchowskiego, że w gimnazjum ma miejsce okrajanie treÅ›ci zwiÄ…zanych z algorytmami.
W ramach informatyki w liceum ogólnoksztaÅ‚cÄ…cym wprowadza siÄ™ zagadnienia bardziej zaawansowane, jak na przykÅ‚ad: metodyczna analiza i modelowanie umiarkowanie zÅ‚ożonych problemów i procesów z różnych dziedzin, wybrane techniki projektowania algorytmów i struktur danych, programowanie strukturalne, zstÄ™pujÄ…ce, abstrakcja danych, metoda kolejnych uÅ›ciÅ›leÅ„ oraz e lementy analizy algorytmów. Wprowadza siÄ™ indywidualnÄ… i zespoÅ‚owÄ… realizacja projektów programistycznych w wybranym jÄ™zyku wysokiego poziomu.
M.M. SysÅ‚o precyzuje nastÄ™pujÄ…ce wskazania metodyczne, dotyczÄ…ce nauczania algorytmów na lekcjach informatyki w gimnazjum i liceum:
* algorytm powinien pojawiać siÄ™ jako takie rozwiÄ…zanie problemu, które ma podstawowe cechy "algorytmu informatycznego", a wiÄ™c jego docelowa postać może być przekazana komputerowi do wykonania;
* przynajmniej kilka przykÅ‚adów algorytmów powinno być wykonanych na lekcjach za pomocÄ… komputera;
* powinno znaleźć siÄ™ również miejsce na przedstawienie algorytmów w innej postaci komputerowej, niż tylko zapisanych w jÄ™zyku programowania, na przykÅ‚ad jako realizacji w arkuszu kalkulacyjnym;
* wynika stÄ…d również jaka powinna być rola nauki programowania w szkole - ma to być nauka jÄ™zyka komunikacji czÅ‚owieka z komputerem, sÅ‚użącej przedstawianiu komputerowi algorytmów do wykonania.
Takie usytuowanie algorytmiki w edukacji szkolnej sprawia, że tylko nieliczna grupa osób rozpoczynajÄ…cych studia posiada podstawowe kompetencje, jak na przykÅ‚ad: umiejÄ™tność formuÅ‚owania sytuacji problemowej, jej modelowania i rozwiÄ…zywania z użyciem metod informatycznych, czy o ceniania poprawnoÅ›ci i efektywnoÅ›ci rozwiÄ…zaÅ„, włącznie z ich testowaniem.
Zachodzi wobec tego potrzeba stworzenia warunków do Å‚atwego wyrównania poziomu wiedzy studentów w obszarze rozumienia przebiegu obliczeÅ„ wedÅ‚ug zadanych algorytmów, i to najlepiej w warunkach samoksztaÅ‚cenia. Tylko dokÅ‚adne zrozumienie dziaÅ‚ania standardowych algorytmów obliczeÅ„ w typowych sytuacjach problemowych, stworzy przestrzenie do przyszÅ‚ej dziaÅ‚alnoÅ›ci twórczej w tej dziedzinie, wspomaganej na przykÅ‚ad interesujÄ…cym graficznym edytorem do szybkiego tworzenia schematów blokowych z generatorem tekstów programów w wybranym jÄ™zyku programowania.
Platforma wizualizacji algorytmów
Autorzy opracowali i wykonali platformÄ™ wizualizacji algorytmów o nazwie "Algorithm Visualization Platform" (AVP), w postaci portalu do wizualizacji algorytmów, dostÄ™pnego w Internecie pod adresem: www.pwsz.pila.pl/~avp (rysunek nr 1 i nr 2) . P latforma AVP przeznaczona do wizualizacji przebiegu obliczeÅ„ wedÅ‚ug zadanych algorytmów z możliwoÅ›ciÄ… Å›ledzenia poszczególnych kroków wykonywania algorytmów, adresowana jest gÅ‚ównie do nauczycieli informatyki, uczniów liceów ogólnoksztaÅ‚cÄ…cych, w których prowadzi siÄ™ wydzielony przedmiot "Informatyka", kandydatów na studia informatyczne, studentów realizujÄ…cych przedmioty obejmujÄ…ce algorytmy i struktury danych oraz programowanie komputerów, a także do wszystkich pozostaÅ‚ych osób zainteresowanych tÄ… problematykÄ…. SzczególnÄ… zaletÄ… platformy w aspekcie dydaktycznym jest to, że wizualizacja tworzona jest w oparciu o dane wprowadzone przez użytkownika bezpoÅ›rednio z klawiatury lub poprzez ich wczytanie z pliku. Takie rozwiÄ…zanie umożliwia zrozumienie dziaÅ‚ania danego algorytmu, poprzez wielokrotnÄ… obserwacjÄ™ jego zachowaÅ„ dla różnych danych wejÅ›ciowych, wprowadzanych przez użytkownika w czasie zajęć laboratoryjnych w pracowni komputerowej lub w ramach samoksztaÅ‚cenia.
Powyższe uwagi odnoszÄ… siÄ™ do wspóÅ‚pracy z platformÄ… na poziomie zwykÅ‚ego użytkownika, korzystajÄ…cego z narzÄ™dzi oferowanych przez internetowy Portal AVP. Szczególnie ważnÄ… cechÄ… platformy jest możliwość jej ewolucji, poprzez dołączanie do bazy danych algorytmów, zaimplementowanych przez uprawnionego użytkownika, z poziomu Portalu AVP w jÄ™zyku JavaR, który w ostatnich latach systematycznie zyskuje na popularnoÅ›ci. Program dostÄ™pny za poÅ›rednictwem portalu znajduje siÄ™ w postaci pliku JAR ( Java Archive).
{mosimage}
Rysunek nr 1. Platforma Wizualizacji Algorytmów cz.. A.
{mosimage}
Rysunek nr 2. Platforma Wizualizacji Algorytmów cz. B.
Do uruchomienia aplikacji wymagana jest Maszyna Wirtualna Javy w wersji 1.4. lub wyższej. Platforma dostarcza użytkownikom Å›rodowisko, uÅ‚atwiajÄ…ce przygotowanie wÅ‚asnych wizualizacji, co pozwala mieć nadziejÄ™ na jej rozwój w dÅ‚uższej perspektywie czasu.
Okno aplikacji skÅ‚ada siÄ™ z nastÄ™pujÄ…cych czterech obszarów:
* Pasek narzÄ™dzi (rysunek nr 3) - zawiera ikony: wyboru algorytmu, zamykania algorytmu, zarzÄ…dzania oknem algorytmu oraz przyciski wyboru trybu wyÅ›wietlania panelu diagramów.
{mosimage}
Rysunek nr 3. Pasek narzÄ™dzi Platformy Wizualizacji Algorytmów.
* Panel wizualizacji - sÅ‚uży do prezentacji poszczególnych faz wykonania algorytmu, opisu operacji wykonywanych w trakcie realizacji algorytmu a także wizualizacji struktur danych.
* Panel diagramów - sÅ‚uży do wyÅ›wietlania diagramów, list kroków lub innych informacji wspierajÄ…cych proces wizualizacji.
* Pasek kontroli wizualizacji (rysunek nr 4) - pasek umożliwiający kontrolowanie przebiegu procesu wizualizacji, uruchomianie pokazu automatycznego, nawigacje krokowa, przeniesienie do dowolnego slajdu prezentacji.
{mosimage}
Rysunek nr 4. Pasek kontroli wizualizacji Platformy Wizualizacji Algorytmów.
Aby wybrać algorytm do wizualizacji z listy dostÄ™pnych algorytmów wystarczy wybrać ikonÄ™ Choose algorithm z paska narzÄ™dzi lub z menu File i wskazać dany algorytm.
{mosimage}
Rysunek nr 5. Lista dostÄ™pnych algorytmów Platformy Wizualizacji Algorytmów.
Po wybraniu algorytmu i wczytaniu danych nastÄ™puje symulacja, która nie jest widoczna dla użytkownika. Po wykonaniu obliczeÅ„ dla wprowadzonych danych wejÅ›ciowych, można rozpocząć oglÄ…danie prezentacji, przedstawiajÄ…cej poszczególne kroki wykonania algorytmu, przy czym możliwe jest uruchomienie prezentacji ciÄ…gÅ‚ej lub krokowej. Można także w każdej chwili odwoÅ‚ać siÄ™ do konkretnego slajdu.
Użytkownik w panelu diagramów obserwuje, który blok algorytmu jest w danej chwili realizowany. Programowo taki blok zostaje obrysowany liniÄ… ciÄ…głą (na rysunku poniżej taki blok wypeÅ‚niono szarym tÅ‚em). W panelu wizualizacji natomiast widoczny jest aktualny stan przetwarzania danych (na rysunku poniżej jest to jeden z kroków algorytmu sortowania Quick Sort, porzÄ…dkujÄ…cego wprowadzony przez użytkownika ciÄ…g liczb). W Å›rodkowej części panelu wizualizacji drukowane sÄ… zapisy aktualnie realizowanego bloku algorytmu, a poniżej aktualne wartoÅ›ci zmiennych. Prezentacja koÅ„czy siÄ™ wydrukowaniem statystyki symulacji, obejmujÄ…cej: liczbÄ™ wykonanych operacji elementarnych, liczbÄ™ wykonanych porównaÅ„ i liczbÄ™ zastosowanych przestawieÅ„.
{mosimage}
Rysunek nr 6. Panel diagramów Platformy Wizualizacji Algorytmów.
{mosimage}
Rysunek nr 7. Algorytmy sortowania Platformy Wizualizacji Algorytmów.
SortujÄ…c taki sam ciÄ…g wejÅ›ciowy z wykorzystaniem innych wymienionych dalej algorytmów sortowania użytkownik może przeprowadzić analizÄ™ porównawczÄ… efektywnoÅ›ci poszczególnych algorytmów.
Wybrane algorytmy sortowania
Na portalu AVP poza algorytmem Quick Sort umieszczono kilka innych algorytmów sortowania, opisanych w pracy Algorytmy i struktury danych, w tym miÄ™dzy innymi:
Algorytm BubleSort (rysunek nr 8).
{mosimage}
Rysunek nr 8. Algorytm BubleSort Platformy Wizualizacji Algorytmów.
Algorytm CountingSort (rysunek nr 9);
{mosimage}
Rysunek nr 9. Algorytm CountingSort Platformy Wizualizacji Algorytmów.
Algorytm InsertionSort (rysunek nr 10).
{mosimage}
Rysunek nr 10. Algorytm InsertionSort Platformy Wizualizacji Algorytmów.
Rozbudowa platformy wizualizacyjnej
Platforma AVP zostaÅ‚a stworzona przy użyciu jÄ™zyka Java R w wersji 1.4. Aby dodać algorytm należy stworzyć klasÄ™ implementujÄ…ca interfejs AlgorithmInterface. Stworzenie klasy implementujÄ…cej dany interfejs wymusza implementacje metod zadeklarowanych przez twórcÄ™ interfejsu. Deklaracja AlgorithmInterface jest nastÄ™pujÄ…ca:
* public interface AlgorithmInterface;
* public int GetQuantsMax();
* public void getData();
* public void runAlgorithm();
* public void paintQuantum(int quantum,Graphics2D g2D);
* public void paintDiagram(int quantum,Graphics2D g2D);
* public abstract void presentationSize().
Sterowanie programu odwoÅ‚uje siÄ™ do poszczególnych metod klasy algorytmu w fazie tworzenia algorytmu i symulacji w sposób pokazany poglÄ…dowo na rysunku nr 11.
{mosimage}
Rysunek nr 11. Sterowanie programem Platformy Wizualizacji Algorytmów.
Metoda getData() sÅ‚uży do pozyskania danych wejÅ›ciowych dla algorytmu. Platforma AVP udostÄ™pnia standardowe okienko wejÅ›ciowe. Zaleca siÄ™ korzystanie ze zdefiniowanych okien w celu zachowania spójnoÅ›ci bazy algorytmów. W przypadku, gdy algorytm wymaga specyficznych danych wejÅ›ciowych, możliwe jest stworzenie wÅ‚asnych okien, jako klas wewnÄ™trznych algorytmu. Preferowane jest jednak używanie okien zdefiniowanych.
Metoda runAlgorithm() odpowiedzialna jest za wykonanie algorytmu i zapisanie wszystkich przeprowadzonych operacji, tworzÄ…c historiÄ™ symulacji. Organizacja zapisu historycznych zdarzeÅ„ nie jest narzucona przez system i może być zrealizowana w dowolny, wygodny dla twórcy sposób.
Dodatkowo metoda GetQuantsMax() zwraca jako wynik liczbÄ™ plansz (slajdów), które zostaÅ‚y zeskÅ‚adowane w trakcie dziaÅ‚ania symulacji. Po przeprowadzeniu symulacji sterowanie zostaje przekazane użytkownikowi. Proces wyrysowania danych na żądanie wyÅ›wietlenia danego kwantu przebiega nastÄ™pujÄ…co: Na przykÅ‚ad, jeÅ›li użytkownik zażąda wyÅ›wietlenia 15 kwantu, do odrysowania panelu wizualizacji zostanie wywoÅ‚ana metoda paintQuantum(15,...) , natomiast do odrysowania panelu diagramów paintDiagram(15,...) . Drugim parametrem formalnym jest kontekst graficzny w postaci obiektu Graphics2D danego panelu .
Metoda presentationSize() dostosowuje obszar panelu wizualizacji, do rozmiaru aktualnie wyświetlanego slajdu. Podobnie działają metody: paintQuantum i paintDiagram . Ich zadaniem jest narysowanie informacji dla kwantu (operacji), przekazanej jako parametr formalny int quantum (rysunek nr 12).
{mosimage}
Rysunek nr 12. Rysowanie danych na Platformie Wizualizacji Algorytmów.
Platforma AVP posiada klasy, ułatwiające tworzenie wizualizacji, jak na przykład klasa ArrayVis1D , służąca do rysowania tablicy jednowymiarowej na ekranie. Wszystkie dostępne klasy pomocnicze znajdują się w pakiecie pl.avp.algsupport . Tworzone algorytmy powinny należeć do pakietu pl.avp.algimplement lub do nowego pakietu będącego jego rozwinięciem. Na przykład wszystkie zaimplementowane algorytmy sortowania należą do pakietu pl.avp.algimplement.sort .
Po stworzeniu algorytmu, zgodnie z powyższymi zasadami, można dołączyć klasÄ™ do programu. Po dołączeniu klasy do wybranego pakietu, należy dodać wpis do dwóch klas. Pierwsza to AlgsAvailable pakietu pl.avp.algimplement. Należy zdefiniować nowÄ… stałą znakowÄ… z nazwÄ… stworzonego algorytmu oraz dołączyć stałą do tablicy AlgsAvailableList. Dodatkowo w klasie AlgorithmsCreator w metodzie createAlg(String name) należy doÅ‚ożyć warunek wyboru stworzonego algorytmu wedÅ‚ug poniższej reguÅ‚y: if (name.equals(AlgsAvailable.MOJ_ALGORYTM)) {mainFrame.setAlgorithm(new MojAlgorytm(mainFrame));}.
Dodanie algorytmu powoduje umieszczenie jego źródeÅ‚ wraz z opisem w zasobach portalu. Algorytm przed dodaniem do aplikacji wizualizacyjnej jest weryfikowany przez administratorów. Do tego czasu pozostaje on dostÄ™pny tylko dla zalogowanych użytkowników w postaci plików źródÅ‚owych jÄ™zyka Java R.
Portal AVP we wspomaganiu procesu nauczania-uczenia siÄ™ algorytmów i struktur danych
Realizacja nauczania algorytmiki przy wsparciu platformy wizualizacyjnej generuje implikacje do dotychczasowej metodyki nauczania tej dziedziny nauki, obejmujÄ…ce zarówno studentów jak i nauczycieli akademickich, którzy bÄ™dÄ… aktywnie wspóÅ‚uczestniczyć w tym interaktywnym dialogu poprzez sieć Internet. RolÄ… nauczycieli bÄ™dzie zachÄ™cać studentów lepiej przygotowanych w obszarze programowania obiektowego, bardziej twórczych i nastawionych proinnowacyjnie, do implementacji i umieszczania na portalu AVP kolejnych algorytmów. Permanentne rozszerzanie oferty portalu AVP umożliwi nie tylko delegowanie do tego Å›rodowiska studentów w ramach samoksztaÅ‚cenia, ale także wykorzystanie wybranych algorytmów do demonstracji ich dziaÅ‚ania w ramach wykÅ‚adu lub ćwiczeÅ„ z algorytmiki. Samodzielna praca studentów w ramach oferty portalu może przyczynić siÄ™ do wzrostu efektywnoÅ›ci procesu samoksztaÅ‚cenia, które w warunkach spoÅ‚eczeÅ„stwa ponowoczesnego, wedÅ‚ug K. Wenty coraz częściej wiąże siÄ™ z samoksztaÅ‚ceniem i samouctwem, także samouctwem komputerowym (samouctwo informatyczne) i informacyjnym (samouctwo informacyjne).
Wdrożenie portalu AVP do procesu dydaktycznego stanowi maÅ‚y krok na drodze od uczelni tradycyjnej do uczelni globalnej poprzez uczelniÄ™ postindustrialnÄ…, stosujÄ…cej elementy ksztaÅ‚cenia na odlegÅ‚ość z wykorzystaniem nowych technologii, z zachowaniem jednak neoklasycznej idei ksztaÅ‚cenia tradycyjnego. Mamy, bowiem do czynienia z edukacjÄ… w Å›rodowisku aktywnym i wspóÅ‚pracujÄ…cym, w którym studenci uczÄ… siÄ™ przez odkrywanie i wzajemne interakcje, a dziaÅ‚ajÄ…c interaktywnie z aplikacjÄ… realizujÄ… zasadÄ™ J. Deweya uczenia siÄ™ przez dziaÅ‚anie. Tak rozumiany tradycyjny model ksztaÅ‚cenia S. Juszczyk nazywa modelem bezpoÅ›redniego ksztaÅ‚cenia synchronicznego, w ramach, którego nauczyciel jest w stanie skÅ‚onić studentów do uczenia siÄ™ nowych koncepcji przy wykorzystaniu wielokierunkowych interakcji, ilustrujÄ…c i łączÄ…c nowe pomysÅ‚y przykÅ‚adami i koncepcjami, które sÄ… zwykle znane im z wÅ‚asnego doÅ›wiadczenia.
Zastosowanie platformy wizualizacyjnej AVP w dydaktyce algorytmiki speÅ‚nia wszystkie cztery funkcje komputera jako medium dydaktycznego:informacyjnÄ… (portal zawiera treÅ›ci programowe, wsparte schematami blokowymi, a dotyczÄ…ce charakterystyki poszczególnych algorytmów, specyfikacji rozwiÄ…zywanych problemów oraz dyskusjÄ™ poprawnoÅ›ci, zÅ‚ożonoÅ›ci obliczeniowej, itp.), ćwiczeniowÄ… (student ćwiczy krok po kroku realizacjÄ™ przetwarzania danych wedÅ‚ug wybranego algorytmu), kontrolnÄ… (student wykonuje testowanie algorytmu "na papierze", a nastÄ™pnie powtarza testowanie z wykorzystaniem platformy AVP i porównuje uzyskane wyniki, sprawdzajÄ…c swój aktualny poziom wiedzy i kompetencji) oraz organizujÄ…cÄ… (student doskonali swój warsztat w zakresie organizacji procesu przetwarzania danych). Ponadto nauczanie z wykorzystaniem portalu AVP speÅ‚nia szereg innych funkcji, wymienianych przez B. Siemienieckiego, a w szczególnoÅ›ci funkcjÄ™ wizualizacji materiaÅ‚u nauczania (student Å›ledzi krok po kroku proces obliczeÅ„, aktualnie realizowany blok algorytmu jest podÅ›wietlany, a czÄ…stkowe wyniki przetwarzania w obszarze tego bloku sÄ… drukowane na ekranie).
Portal AVP jest narzÄ™dziem, pozwalajÄ…cym w praktyce stosować model konstruktywistyczny w procesie nauczania i samouctwa studentów, realizowany w systemie edukacji asynchronicznej z wykorzystaniem sieci Internet i metod zarówno interaktywnych jak i nieinteraktywnych, przy zaÅ‚ożeniu, że koncepcja i konstrukcja metod nauczania i samouctwa studentów w trybie on-line polega na przesuniÄ™ciu z przekazywania informacji biernych uczÄ…cym siÄ™, siedzÄ…cym przed monitorami komputerów, do skÅ‚onienia ich do aktywnego przejÄ™cia części Å›rodowiska ksztaÅ‚cenia. KsztaÅ‚cenie i samouctwo z wykorzystaniem portalu AVP jest dobrÄ… egzemplifikacjÄ… metody indywidualizacji ksztaÅ‚cenia, skutecznej dydaktycznie, albowiem AVP stanowi swoiste Å›rodowisko uczenia siÄ™, w którym zachodzi przemieszczenie Å›rodka ciężkoÅ›ci z nauczania w tym samym czasie grupy studentów (wykÅ‚ad, ćwiczenia, laboratorium komputerowe), do uczenia siÄ™ przez jednego studenta, co przekÅ‚ada siÄ™ na tworzenie Å›rodowiska kognitywnego uczestnictwa w procesie dydaktycznym poÅ›redniej formy ksztaÅ‚cenia tradycyjnego z ksztaÅ‚ceniem na odlegÅ‚ość, na poziomie każdego z trzech modeli edukacyjnych:
* Model konsultacyjny (indywidualny proces samoksztaÅ‚cenia jest wspierany poprzez wymianÄ™ poglÄ…dów w czasie planowanych ćwiczeÅ„ projektowych z algorytmów i struktur danych).
* Model korespondencyjny (stosowany w ograniczonym zakresie poprzez kontakt z zespołem administrującym portalem AVP).
* Model wspierajÄ…cy samoksztaÅ‚cenie (proces samoksztaÅ‚cenia jest kontrolowany przez studentów, mogÄ…cych decydować o czasie i tempie poznawania i badania algorytmów oraz oceniać swoje aktualne kwalifikacje).
Kształcenie z wykorzystaniem portalu AVP, rozpatrywane w kontekście nauczania na odległość, można, zatem zakwalifikować jako kształcenie bezpośrednie, polegające na przerabianiu materiału dydaktycznego przez studenta, bez bieżącego kontaktu z nauczycielem w czasie rzeczywistym. Kształcenie może być wspierane przez asynchroniczny kontakt z nauczycielem - administratorem portalu AVP, ale tylko przez pocztę elektroniczną.
Konkluzje
Może nie zabrzmi to nazbyt optymistycznie, ale musimy mieć peÅ‚nÄ… Å›wiadomość, że algorytmy i programy powstajÄ…ce na ich podstawie nie zawsze bÄ™dÄ… wykonywać dokÅ‚adnie to, co zaÅ‚ożyliÅ›my w specyfikacji rozwiÄ…zywanego problemu. RzeczÄ… ludzkÄ… przecież jest błądzić, ale . nieludzkÄ… jest trwać w błędzie! Dlatego zachÄ™camy do pogłębionej analizy algorytmów w aspekcie ich poprawnoÅ›ci, skoÅ„czonoÅ›ci i efektywnoÅ›ci. Dotyczy to zarówno algorytmów dostÄ™pnych na platformie AVP jak i tych, opracowywanych przez studentów. Analiza taka daje szansÄ™ na wyeliminowanie w projektowanych algorytmach błędów logicznych, semantycznych i skÅ‚adniowych.
UmiejÄ™tne wykorzystanie platformy AVP umożliwi wzmocnienie dydaktyczne przekazywanych treÅ›ci ksztaÅ‚cenia, w tym przede wszystkim przygotuje uczniów i studentów do metodycznej analizy i modelowania zÅ‚ożonych problemów i procesów z różnych dziedzin. Testowanie na platformie AVP algorytmów klasycznych, przybliży wybrane techniki projektowania algorytmów i struktur danych, co uÅ‚atwi studiowanie programowania strukturalnego i zorientowanego obiektowo). Platforma AVP może także być wykorzystana w procesie indywidualnej i zespoÅ‚owej realizacji projektów programistycznych w wybranym jÄ™zyku wysokiego poziomu. Wykorzystanie platformy w czasie zajęć praktycznych w pracowni komputerowej oraz w procesie samoksztaÅ‚cenia, pozwoli użytkownikowi nabyć bÄ…dź doskonalić miÄ™dzy innymi takie umiejÄ™tność oceniania poprawnoÅ›ci i efektywnoÅ›ci rozwiÄ…zaÅ„.
Proponowane treÅ›ci ksztaÅ‚cenia oraz możliwe do nabycia umiejÄ™tnoÅ›ci w peÅ‚ni odpowiadajÄ… zapisom podstawy programowej przedmiotu "Informatyka" w zakresie rozszerzonym, realizowanego w liceum ogólnoksztaÅ‚cÄ…cym, oraz ramowym programom ksztaÅ‚cenia w zakresie algorytmiki, struktur danych i programowania, w uczelniach wyższych. Różnica w wykorzystaniu platformy na poziomie liceum ogólnoksztaÅ‚cÄ…cego i wyższej uczelni polega jedynie na wyborze umieszczonych w bazie danych algorytmów, o poziomie zÅ‚ożonoÅ›ci adekwatnym do etapu edukacyjnego.
Bolesław Ochodek
Mirosław Ochodek
Literatura:
* T. Cormen, Ch.E. Leiserson, R. L. Rivest: Wprowadzenie do algorytmów. Warszawa 2001
* T.W. Nowacki, K. Korabiowska-Nowacka, B. Baraniak: Nowy słownik pedagogiki pracy. Warszawa 1999, s. 145
* B. Ochodek, M. Ochodek: Algorytmy i struktury danych. Piła 2003
* M.M. SysÅ‚o: Algorytmy. OdÅ›wieżone spojrzenie. W: M.M. SysÅ‚o (red.): Informatyka i technologia informacyjna w szkole. Wybór artykuÅ‚ów z materiaÅ‚ów Konferencji "Informatyka w szkole". WrocÅ‚aw 2004, s. 82
* E. Gurbiel, G. Hardt-Olejniczak, E. Kołczyk, H. Krupicka, M.M. Sysło: Informatyka. Podręcznik dla uczniagimnazjum. Warszawa 2000
* Z. Ledóchowski: Matura z informatyki - dalsze zmagania. MateriaÅ‚y XX Konferencji Informatyka w szkole. WrocÅ‚aw 2004, s. 251
* M.M. Sysło: Algorytmy, algorytmika,algorytmiczne myślenie. Materiały XVII Konferencji Informatyka w szkole. Mielec 2001, s. 118
* J. Sztechman: Generowanie programu na podstawie schematu blokowego. Materiały XX Konferencji Informatyka w szkole, op. cit., s. 77
* B. Ochodek, M. Ochodek: Dydaktyczna platforma wizualizacyjna algorytmów. MateriaÅ‚y XX Konferencji Informatyka w Szkole, op. cit.
* B. Ochodek, M. Ochodek: Algorytmy i struktury danych. Piła 2003
* K. Wenta: Samouctwo informatyczne studentów. W: B. Ochodek (red.): Internet w życiu studenta - lepsze wyniki, lepsza praca, lepsze perspektywy. PiÅ‚a 2003, s. 7
* O. Peters: Distanceeducationin a postindustrial society. W: O. Keegan (red.): O. Petters on distance education. The industrialization of teaching and learning. Londyn-Nowy Jork 1994
* S. Juszczyk: Edukacja na odlegÅ‚ość. Kodyfikacja pojęć, reguÅ‚ i procesów . ToruÅ„ 2002
* K. Brelińska: Komputer w praktyce dydaktycznej. W: W. Strykowski (red.): Kształcenie, wychowanie i opieka w obliczu przemian. Poznań 1990
* B. Siemieniecki: Komputery i hipermedia w procesie edukacji dorosłych. Toruń 1999
* S. Juszczyk; Edukacja na odlegÅ‚ość. Kodyfikacja pojęć, reguÅ‚ i procesów. ToruÅ„ 2002
* B. Boczukowa: Edukacja na odległość. "Edukacja i Dialog" 2000, nr 6, s. 54-57
Please wait...