Wprowadzenie do zasad programowania strukturalnego i algorytmiki -
dziedziny zajmującej się konstrukcją i analizą algorytmów.
Zaznajomienie studentów z podstawowymi algorytmami informatycznymi -
specyfikacja problemu, algorytm rozwiązujący i jego zgodność ze
specyfikacją. Zapoznanie ich z wybranymi metodami programowania
(programowanie funkcjonalne i obiektowe). Przedstawienie sposobów
reprezentowania algorytmów i komputerowych demonstracji ich działania
oraz możliwości samodzielnego i zespołowego rozwiązywania typowych
problemów za pomocą komputera.
- Sytuacja problemowa (zadanie algorytmiczne), specyfika problemu i
algorytm jego rozwiązywania.
- Zalgorytmizowana rzeczywistość - przegląd typowych algorytmów z
różnych dziedzin. Klasyczne algorytmy informatyczne.
- Sposoby zapisywania i reprezentowania algorytmów: listy kroków,
metody graficzne (schematy blokowe), pseudokody.
- Wykorzystanie programów edukacyjnych do demonstracji metod
projektowania i działania algorytmów.
- Metody i zasady programowania. Podstawowe idee programowania
strukturalnego, modularnego i obiektowego.
- Typowe elementy języka programowania:
- Standardowe typy danych,
- Wyrażenia,
- Instrukcje warunkowe i iteracyjne,
- Procedury i funkcje,
- Tablice jedno- i dwuwymiarowe,
- Zbiory, rekordy,
- Pliki danych i pliki tekstowe.
- Wykorzystanie struktur danych w różnych zastosowaniach informatycznych i matematycznych.
- Podstawowe algorytmy obliczeń matematycznych (algorytmy numeryczne): działania na wielomianach, znajdowanie miejsc zerowych funkcji. Kryteria oceny algorytmów numerycznych: błędy zaokrągleń, stabilność.
- Kryteria oceny poprawności i jakości (efektywności) rozwiązań (algorytmów), porównywanie efektywności różnych rozwiązań tego samego problemu na przykładzie problemu sortowania.
- Testowanie i weryfikacja programu.
- Dokumentowanie programu.
Ćwiczenia odbywają się w pracowni komputerowej. Studenci opanowują
zdolność samodzielnego tworzenia algorytmów i zapisywania ich w języku
programowania. Podstawą zaliczenia jest rozwiązanie indywidualnego
zadania poprzez opracowanie algorytmu (np. w formie schematu blokowego)
oraz jego implementację komputerową.
- N. Wirth, Wstęp do programowania systematycznego, WNT, Warszawa
1978.
- G. M. Weinberg, Myślenie systemowe, WNT, Warszawa 1979.
- Strużińska-Walczak, K. Walczak, Nauka programowania dla
początkujących. Turbo Pascal, Wydawnictwo Walczak & Walczak, Warszawa
1993.
- Strużińska-Walczak, K. Walczak, Nauka programowania dla ... już
nie całkiem początkujących, Wydawnictwo Walczak & Walczak, Warszawa
1996.
- Strużińska-Walczak, K. Walczak, Nauka programowania wizualno -
obiektowego, Wydawnictwo Walczak & Walczak, Warszawa 1996.
- W. Porębski, Wstęp do programowanie w języku Pascal, Komputerowa
oficyna wydawnicza "Help", Warszawa 1992.
- Z. Suraj, T. Rumak, Algorytmiczne rozwiązywanie zadań i problemów
- wstęp do programowania w języku Pascal, Wydawnictwo oświatowe FOSZE,
Rzeszów 1995.
- V. Aho, J. E. Hopcroft, J. D. Ullman, Projektowanie i analiza
algorytmów komputerowych, PWN, Warszawa 1983.
- L. Banachowski, A. Kreczmar, Elementy analizy algorytmów, WNT,
Warszawa 1982.
- D. Harel, Rzecz o istocie informatyki. Algorytmika, WNT,
Warszawa 1992.
- S. Kowalski, A. W. Mostowski, Teoria automatów i lingwistyka
matematyczna, PWN, Warszawa 1979.
- Marciniak, Podstawy systemu i języka Turbo Pascal, PWN, Warszawa
1989.
- M. M. Sysło, Algorytmy, WSiP, Warszawa 1997.
- P. Drożdżewicz, Programowanie dla Windows, Wydawnictwo Lynex -
SFT, Warszawa 1992.
- P. Wróblewski, Algorytmy, struktury danych i techniki
programowania, Helion 1996.
- J. Bentley, Perełki oprogramowania, WNT, Warszawa 2001.
Instytut Matematyki Akademii
Pedagogicznej w Krakowie,
1.10.2005