KARTA KURSU Nazwa Nazwa w j. ang. Matematyka obliczeniowa Computational Mathematics Kod Punktacja ECTS* 2 Koordynator prof. dr hab. Marek Ptak Zespół dydaktyczny dr Zbigniew Leśniak dr Magdalena Piszczek Opis kursu (cele kształcenia) Poznanie podstawowych zasad konstruowania i analizy algorytmów, ze szczególnym uwzględnieniem ich własności numerycznych, praktycznych aspektów ich implementacji oraz wpływu wyboru algorytmu na dokładność otrzymanych wyników. Zaznajomienie z wybranymi pakietami oprogramowania do obliczeń numerycznych i symbolicznych. Warunki wstępne Wiedza Umiejętności Podstawowa znajomość logiki, rachunku zbiorów, algebry i analizy matematycznej. Działania na zbiorach, rachunek macierzowy, operacje w grupie permutacji i pierścieniu wielomianów, obliczanie granic, pochodnych i całek. Kursy Wstęp do logiki i teorii mnogości, Algebra liniowa 1 i 2, Algebra abstrakcyjna, Analiza matematyczna 1, 2 i 3. 1
Efekty kształcenia Wiedza Efekt kształcenia dla kursu W01 Zdobycie i pogłębienie wiedzy o zasadach modelowania matematycznego, metodach konstruowania, zapisywania i implementacji algorytmów oraz ich analizy w aspekcie poprawności semantycznej i złożoności obliczeniowej. W02 Poznanie sposobu badania uwarunkowania problemu numerycznego i stabilności numerycznej a posteriori (poprawności numerycznej) algorytmu rozwiązującego problem numeryczny. W03 Poznanie możliwości wybranych programów do obliczeń numerycznych i symbolicznych oraz środowisk programistycznych. Odniesienie do efektów kierunkowych K_W03, K_W08 K_W08 K_W09, K_W08 Efekt kształcenia dla kursu Odniesienie do efektów kierunkowych Umiejętności U01 Student potrafi rozpoznawać i specyfikować problemy algorytmiczne oraz konstruować modele matematyczne pozwalające doprowadzić proces rozwiązywania problemu do rozwiązań problemów znanych lub prostych i efektywnych własnych rozwiązań algorytmicznych. U02 Potrafi konstruować algorytmy i zapisywać je w pseudojęzyku, projektować schematy blokowe algorytmów i diagramy klas (również z wykorzystaniem programu MS Visio) oraz zapisywać algorytmy w językach programowania wysokiego poziomu: C#, C++ lub Java. U03 Potrafi kompilować, uruchamiać i testować napisane programy w środowiskach programistycznych: Microsoft Visual Studio lub NetBeans IDE, a także w edytorze języka Visual Basic dla Aplikacji wchodzącym w skład arkusza kalkulacyjnego Excel. U04 Potrafi badać poprawność semantyczną i wyznaczać złożoność obliczeniową prostszych algorytmów numerycznych oraz analizować je w aspekcie stabilności numerycznej a posteriori i wiarygodności otrzymywanych wyników uwzględniając wskaźnik uwarunkowania problemu. U05 Potrafi korzystać z pakietów matematycznych Scilab i Maxima (oraz GAP) w zakresie zasadniczych funkcji tych pakietów. K_U25, K_U29 K_U26 K_U27 K_U10, K_U16 K_U12, K_U15, K_U28 2
Kompetencje społeczne Efekt kształcenia dla kursu K01 Student jest otwarty na złożoność problemów, z którymi może się spotkać oraz stara się je rozwiązywać i obiektywnie oceniać otrzymane wyniki w oparciu o poznane metody i szukanie wskazówek w literaturze. K02 Potrafi pracować w zespole w zakresie opracowywania projektów rozwiązywania problemów. Odniesienie do efektów kierunkowych K_K01, K_K06 K_K03 Organizacja Forma zajęć Wykład (W) Ćwiczenia w grupach A K L S P E Liczba godzin 15 15 15 Opis metod prowadzenia zajęć Wykład częściowo z wykorzystaniem środków multimedialnych i pokazem działania poszczególnych programów komputerowych. Ćwiczenia z zadaniami rozwiązywanymi na tablicy oraz z użyciem komputera w pracowni komputerowej. Konsultacje. Formy sprawdzania efektów kształcenia E learning Gry dydaktyczne Ćwiczenia w szkole Zajęcia terenowe Praca laboratoryjna Projekt indywidualny Projekt grupowy Udział w dyskusji Referat Praca pisemna (esej) Egzamin ustny Egzamin pisemny Inne W01 x x x W02 x x x W03 x x x x U01 x x x U02 x x x x x U03 x x x x U04 x x x U05 x x x K01 x x x x K02 x x x 3
Kryteria oceny Zaliczenie ćwiczeń audytoryjnych w oparciu o aktywne uczestnictwo w zajęciach oraz ocenę z pracy pisemnej. Zaliczenie ćwiczeń laboratoryjnych na podstawie wykonania projektu: algorytmu numerycznego oraz implementacji skonstruowanego algorytmu w wybranym języku programowania. Uwagi Treści merytoryczne (wykaz tematów) Problem algorytmiczny i jego specyfikacja, model matematyczny problemu. Algorytmy - własności, sposoby zapisu i klasyfikacja algorytmów. Metody konstruowania algorytmów. Przykłady algorytmów klasycznych. Analiza algorytmów w aspekcie poprawności semantycznej i złożoności obliczeniowej, prostota a efektywność algorytmów. Podstawowe abstrakcyjne struktury danych i ich implementacja. Implementacja algorytmów w językach programowania wysokiego poziomu: C#, C++, Java. Środowiska programistyczne: Microsoft Visual Studio, NetBeans IDE. Arytmetyka zmiennopozycyjna, błędy bezwzględne i względne. Arytmetyka przedziałowa. Uwarunkowanie problemu numerycznego wskaźnik uwarunkowania. Własności algorytmów numerycznych stabilność numeryczna a posteriori (poprawność numeryczna). Realizacja algorytmów numerycznych w arkuszu kalkulacyjnym Excel, edytor języka Visual Basic dla Aplikacji. Wykorzystanie programu do obliczeń numerycznych na przykładzie programu Scilab, porównanie pakietów Scilab i Matlab. Wykorzystanie komputerowych systemów obliczeń symbolicznych (systemów algebry komputerowej CAS) na przykładzie programów Maxima i GAP. 4
Wykaz literatury podstawowej 1. A. Aho, J. Hopcroft, J. Ullman, Projektowanie i analiza algorytmów, Helion, Gliwice 2003. 2. A. Brozi, Scilab w przykładach, Nakom, Poznań 2007. 3. D. Kincaid, W. Cheney, Analiza numeryczna, WNT, Warszawa 2006. 4. E. Krok, Z. Stempnakowski, Podstawy algorytmów, Schematy blokowe, Difin, Warszawa 2008. Wykaz literatury uzupełniającej 1. A. Aho, J. Hopcroft, J. Ullman, Algorytmy i struktury danych, Helion, Gliwice 2003. 2. L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, WNT, Warszawa 2006. 3. T. Cormen, Ch. Leiserson, R. Rivest, C. Stein, Wprowadzenie do algorytmów, WNT, Warszawa 2007. 4. S. Dasgupta, Ch. Papadimitriou, U. Vazirani, Algorytmy, PWN, Warszawa 2010. 5. D. Harel, Rzecz o istocie informatyki. Algorytmika, WNT, Warszawa 2001. 6. S. Harris, J. Ross, Algorytmy. Od Podstaw, Helion, Gliwice 2006. 7. A. Kamińska, B. Pińczyk, Ćwiczenia z Matlab - przykłady i zadania, Mikom, Warszawa 2002. 8. J. Matulewski, Visual C# 2008, Projektowanie aplikacji, ++, Helion, Gliwice 2008. 9. R. Moore, R.B. Kearfott, M.J. Cloud, Introduction to interval analysis, SIAM, Philadelphia 2009. 10. J.-M. Muller, N. Brisebarre, F. De Dinechin, C.-P. Jeannerod, L. Vincent, G. Melquiond, N. Revol, D. Stehlé, S. Torres, Handbook of Floating-Point Arithmetic, Birkhäuser, Boston 2010. 11. R. Neapolitan, K. Naimipour, Podstawy algorytmów z przykładami w C++, Helion, Gliwice 2004. 12. M. L. Overton, Numerical Computing with IEEE Floating Point Arithmetic, Cambridge University Press, Cambridge 2001. 13. W. Regel, Przykłady i ćwiczenia w programie Simulink, Mikom, Warszawa 2004. 14. A. Snarska, Ćwiczenia z makropoleceń w Excelu, Mikom, Warszawa 2000. 15. M. Sysło, Algorytmy, WSiP, Warszawa 2000. 16. M. Weisfeld, Myślenie obiektowe w programowaniu, Helion, Gliwice 2010. 17. E. Willett, S. Cummings, ABC Visual Basic dla Aplikacji w Office XP, Helion, Gliwice 2002. 18. N. Wirth, Algorytmy+struktury danych=programy, WNT, Warszawa 2002. 19. P. Wróblewski, Algorytmy, struktury danych i techniki programowania, Helion, Gliwice 2003. 5
Bilans godzinowy zgodny z CNPS (Całkowity Nakład Pracy Studenta) Ilość godzin w kontakcie z prowadzącymi Wykład 15 Konwersatorium (ćwiczenia, laboratorium itd.) 30 Pozostałe godziny kontaktu studenta z prowadzącymi wykład i ćwiczenia Lektura w ramach przygotowania do zajęć 10 10 Ilość godzin pracy studenta bez kontaktu z prowadzącymi Przygotowanie krótkiej pracy pisemnej lub referatu po zapoznaniu się z niezbędną literaturą przedmiotu Przygotowanie projektu lub prezentacji na podany temat (praca w grupie) 10 15 Ogółem bilans czasu pracy 90 Ilość punktów ECTS w zależności od przyjętego przelicznika 3 6