INFORMATYCZNE ROZWIĄZYWANIE PROBLEMÓW Specyfikacja zadania informatycznego nr 1 Cele projektu Opis potrzeby wykonania zadania Środek informatyczny Reprezentacja obiektu System ekspertowy Procedury Heurystyki Załączone dokumenty
Cele projektu Głównym celem projektu jest identyfikacja nieznanego obiektu za pomocą danego środka informatycznego, tj. stawianie i rozwiązywanie zadań pomocniczych i problemów informatycznych podczas wykonywania zadania, w ustalonym przez proces dydaktyczny okresie czasu. Jakie obiekty naleŝy zdefiniować, aby wykonać zadanie? Jakie są relacje pomiędzy poszczególnymi obiektami? Jakie naleŝy sformułować reguły i jak z nich korzystać? Na jakie problemy moŝna się natknąć podczas wykonywania zadania? Określić kompletny i spójny system ekspertowy rozwiązujący dane zadanie.
INSTRUKCJA ITERACYJNA POWTARZAJ Zadanie nr 1: 1 Napisz, w języku Turbo Pascal, program obliczający wartość danego wielomianu w(x) stopnia n o współczynnikach rzeczywistych a 0, a 1,...,a n dla ustalonego argumentu x.
Opis potrzeby wykonania zadania: Opierając się na zdobytej wcześniej wiedzy, w trakcie tworzenia kodu źródłowego, uczeń dla danego n, względnie duŝego, n+1 razy wczytuje dane (współczynniki liczbowe). Aby było to moŝliwe, konieczne jest równieŝ wprowadzenie n+1 róŝnych zmiennych. Jest to sytuacja niepoŝądana. Szukamy rozwiązania, które usunie niepoŝądaną sytuację. Tak jest potrzeba wykonania danego zadania
Określenie potrzeby: program wielomian; var n:integer; a0,...,an,x,w:real; begin read(n,x); write( WPISZ a0= ); read(a0); write( a1= ); read(a1); write( a2= ); read(a2); write( a3= ); read(a3);... write( an= ); read(an); w:=(...((a0*x+a1)*x+a2)*x+...+an-1)*x+an; write(w); end. Mozolny i Ŝmudny zapis. Zmniejsza on równieŝ czytelność kodu
Procedury Procedura deklarowania zmiennych; Procedura sczytywania i wypisywania danych; Procedura dodawania i mnoŝenia; Procedura iteracji.
Heurystyki Zadbać o wygląd kodu źródłowego - budowa blokowa - co zwiększy jego czytelność. Wpisać komunikaty o konieczności wpisania w danym momencie odpowiedniej danej oraz o wypisywaniu na ekran wyniku - ułatwi to pracę z programem. Korzystać ze wszystkich znanych sposobów na uproszczenie zapisu programu.
Środek informatyczny kompilacja monitorowanie ALGORYTM PROCESOR MONITOR implementacja
Algorytm Wczytaj stopień wielomianu (n) Wczytaj wartość argumentu (x) Wczytaj współczynnik a 0 Wczytaj współczynnik a 1 Wczytaj współczynnik a n Zastosuj wzór na obliczanie wartości wielomianu w(x) stopnia n dla ustalonego argumentu x Wypisz wynik
Kompilacja read(n) read(x) read(a 0 ) read(a 1 ) read(a n ) w:=( ((a 0 *x+a 1 )*x+a 2 )*x+ +a n-1 )*x+a n write (w)
Procesor Uczniowie dysponują komputerami zaopatrzonymi w procesory typu Pentium II z zainstalowanym kompilatorem programu Turbo Pascal 7.0
Monitorowanie Uczeń kontroluje poprawność wpisywanych danych oraz odczytuje otrzymane wyniki kompilacji na ekranie monitora.
Monitor Monitorem jest ekran, na którym przedstawione są wyniki kompilacji.
Implementacja W efekcie końcowym uczeń otrzymuje, wydrukowaną na ekranie monitora, wartość danego wielomianu w(x) stopnia n o współczynnikach rzeczywistych a 0, a 1,...,a n dla ustalonego argumentu x.
Reprezentacja obiektu problemy reguły IKONICZNA SYMBOLICZNA ENAKTYWNA pojęcia
Wczytaj stopień wielomianu (n) Ikoniczna Wczytaj wartość argumentu (x) Wczytaj współczynnik a 0 Wczytaj współczynnik a 1 Wczytaj współczynnik a n Zastosuj wzór na obliczanie wartości wielomianu w(x) stopnia n dla ustalonego argumentu x Wypisz wynik Przedstawienie, graficzne lub opisowe, wyobraŝenie (obraz) wykonania zadania w taki sposób, aby moŝna było napisać kod źródłowy tworzonego programu w edytorze oprogramowania Turbo Pascal 7.0, w postaci bloku tekstu, o strukturze samodzielnie tworzonej przez indywidualnych uczniów.
Problemy W trakcie tworzenia obrazu (reprezentacji ikonicznej) wykonania zadania polegającego na określeniu kodu źródłowego, uczeń napotyka trudności związane z występowaniem duŝej ilości zmiennych oraz koniecznością sczytania danych. Czynność ta jest Ŝmudna i pracochłonna. Dodatkowo stwarza duŝo moŝliwości popełnienia błędów składniowych. ZuwaŜmy, Ŝe postawiony problem jest tu zgodny z potrzebą (dydaktyczną).
Symboliczna program wielomian; var n:integer; a0,a1,...,an,x,w:real; begin write( Podaj stopień wielomianu n= ); read(n); write( Podaj wartość argumentu x= ); read(x); write( WPISZ a0= ); read(a0); write( a1= ); read(a1);... write( an= ); read(an); w:=( ((a0*x+a1)*x+a2)*x+ +an-1)*x+an; write( w=,w); end. Kod źródłowy programu zbudowany jest z szeregu liter tworzących róŝne słowa, w tym słowa kluczowe, oraz znaków interpunkcyjnych, t.j.: ;., które w języku Turbo Pascal mają bardzo duŝe znaczenie. Na ekranie pojawią się więc litery, znaki interpunkcyjne oraz cyfry, które stanowią zarówno dane, jak i będą wynikiem działania programu.
Reguły W trakcie rozwiązywania problemu, uczeń będzie stosował reguły dotyczące programowania w języku Pascal, m.in.: - preambuła; - deklaracja zmiennych i ich typów; - rozpoczęcie i zakończenie programu głównego i instrukcji złoŝonych; - sczytywanie danych; - reguły dotyczące zapisywania wyraŝeń arytmetycznych; - wypisywanie danych na ekran. Uczeń zastosuje równieŝ regułę matematyczną dotyczącą obliczania wartości wielomianu n-tego stopnia dla ustalonego argumentu x.
Enaktywna Powiązanie sprawdzania warunków z wykonaniem operacji: w trakcie wykonywania zadania, uczeń wpisuje odpowiednie znaki z klawiatury, takŝe za pomocą specjalnej kombinacji klawiszy kompiluje on kod źródłowy i sprawdza poprawność jego działania; kompilacji moŝna równieŝ dokonać za pomocą myszki (klikanie i przesuwanie). Reprezentację enaktywną moŝna takŝe otrzymać budując stosowną tablicę decyzyjną lub pisząc makro symulujące realizację zadania.
Pojęcia W trakcie wykonywania zadania uczeń poznaje pojęcie: INSTRUKCJA ITERACYJNA POWTARZAJ (repeat until)
System ekspertowy reprezentacje operacje BAZA WIEDZY SIEĆ SEMANTYCZNA RAMA realizacje
Baza wiedzy Temat lekcji: Instrukcja iteracyjna powtarzaj Uczeń juŝ wie: - jak oblicza się wartości wielomianu n-tego stopnia dla ustalonego argumentu x; - co to jest język Turbo Pascal 7.0; - jak wygląda budowa programu (kodu źródłowego); - jak deklarować zmienne; - jak wczytywać dane; - jak wypisywać dane na ekran; - jak budować podstawowe wyraŝenia arytmetyczne; - jak kompilować program; - ma podstawową umiejętność obsługi edytora tekstu. Uczeń nauczy się:
Baza wiedzy Uczeń nauczy się podstawowych informacji o budowie i sposobie wykorzystania instrukcji iteracyjnej powtarzaj : Instrukcja powtarzaj słuŝy do opisywania iteracji ze sprawdzeniem warunku na końcu. Ma ona postać: repeat instrukcja 1; instrukcja 2;... instrukcja n; until wyraŝenie; WyraŜenie powinno dawać w wyniku wartość logiczną, a kaŝda z iteracji moŝe być dowolną instrukcją prostą Ciąg dalszy
Baza wiedzy Schemat instrukcji iteracyjnej powtarzaj instrukcja czy wyraŝenie prawdziwe? tak Zakończenie instrukcji powtarzaj nie
Reprezentacje Uczeń reprezentuje posiadaną wcześniej wiedzę tworząc kod źródłowy w sposób Ŝmudny i pracochłonny. Początkowo jest posiada tyko obraz wykonania zadania i moŝe go opisać krokowo lub graficznie (reprezentacja ikoniczna). Po zapoznaniu się z nowym materiałem będzie on umiał napisać program bardziej zwięzły i czytelny (reprezentacja symboliczna), nie wykonując szeregu zbędnych operacji. Pozna takŝe jak ten program działa (reprezentacja enaktywna)
Sieć semantyczna Wprowadzając nowy temat nauczyciel stosuje pojęcia: - zmienne, dane; - wczytywanie, wypisywanie danych; - instrukcja iteracyjna; - zerowanie zmiennych; - dodawanie do zmiennej (powiększanie jej o wartość); - mnoŝenie wartości zmiennej przez liczbę.
Sieć semantyczna W czym? Za pomocą czego? JĘZYK TURBO PASCAL NAPISZ PROGRAM Co robi? OBLICZA WARTOŚĆ Czego? WIELOMIANU n-tego STOPNIA O WSPÓŁCZYNNIKACH RZECZYWISTYCH DLA USTALONEGO ARGUMENTU x SCZYTYWANYCH Jakich? Skąd? Jak? Sieć semantyczna zadania KOLEJNO
Operacje deklaracja zmiennych : i,w wyzerowanie zmiennych i oraz w deklaracja zmiennych: n, a, x Algorytm operacji wykonywanych przez ucznia sczytanie zmiennych n oraz x sczytanie zmiennej a pomnoŝenie zmiennych w przez x i powiększenie o a (w*x+a) powiększenie zmiennej i o 1 (i+1) nie Czy i >n? tak wypisanie wyniku
Rama W ramach rozwiązania tego problemu, uczeń powinien ukształtować pojęcie instrukcji iteracyjnej powtarzaj. Powinien nauczyć się stosować ją w swoich programach. Uczeń odkryje takŝe korzyści (wygodę) płynące z uŝywania tej instrukcji.
Realizacje Poprawnie napisany program ma postać: PROGRAM wielomian; CONST; i: INTEGER = 0; w: REAL = 0; var n: INTEGER; a,x: REAL; BEGIN read(n,x); REPEAT read(a); w:=w*x+a; i:=i+1; until i>n; write(w); end. Algorytm poprawnego rozwiązania nie i: integer; w: real; i:=0; w:=0 n: integer; a,x: real; read (n,x); repeat read ( a ); w: =w*x + a; i:= i + 1; until i>n; tak write (w);