KARTA KURSU Nazwa Nazwa w j. ang. Matematyka obliczeniowa Computational Mathematics Kod Punktacja ECTS* 2 Koordynator Dr Zbigniew Leśniak Zespół dydaktyczny: 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 Kursy 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. Wstęp do logiki i teorii mnogości, Algebra liniowa 1 i 2, Algebra abstrakcyjna, Analiza matematyczna 1, 2 i 3. Efekty kształcenia Wiedza W01 zna zasady modelowania matematycznego, metody konstruowania, zapisywania i implementacji algorytmów oraz ich analizy w aspekcie poprawności semantycznej i złożoności obliczeniowej. W02 zna sposoby badania uwarunkowania problemu numerycznego i stabilności numerycznej a posteriori (poprawności numerycznej) algorytmu rozwiązującego problem numeryczny W03 zna możliwości wybranych programów do obliczeń numerycznych i symbolicznych oraz środowisk programistycznych. K_W03 K_W08 K_W09 Umiejętności 1
U01 potrafi badać poprawność semantyczną i wyznaczać złożoność obliczeniową prostszych algorytmów numerycznych U02 wykorzystuje twierdzenia i metody rachunku różniczkowego funkcji jednej i wielu zm. w problemach optymalizacyjnych, poszukiwaniu ekstremów oraz badanii przebiegu zmienności funkcji, precyzyjne i ścisłe uzasadnia poprawność rozumowań U03 potrafi wykorzystywać narzędzia i metody numeryczne do rozwiązywania wybranych zagadnień rachunku różniczkowego i całkowego U04 potrafi analizować algorytmy w aspekcie stabilności numerycznej a posteriori i wiarygodności otrzymywanych wyników uwzględniając wskaźnik uwarunkowania problemu. U05 potrafi rozpoznawać i specyfikować problemy algorytmiczne U06 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++ U07 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 U08 potrafi korzystać z pakietów matematycznych w zakresie zasadniczych funkcji tych pakietów U09 potrafi 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 K_U10 K_U12 K_U15 K_U16 K_U25 K_U26 K_U27 K_U28 K_U29 Kompetencje społeczne 2
E learning Gry dydaktyczne Ćwiczenia w szkole Zajęcia terenowe Praca laboratoryjna Projekt indywidualny Projekt grupowy Udział w dyskusji Referat Praca pisemna (kolokwium, kartkówka) Egzamin ustny Egzamin pisemny Inne K01 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ć zespołowo; rozumie konieczność systematycznej pracy nad projektami, które mają długofalowy charakter K03 potrafi samodzielnie wyszukiwać informacje w literaturze, także w językach obcych K_K01 K_K03 K_K06 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 W01 x x W02 x x W03 x U01 x x x x U02 x x U03 x x U04 x x x U05 x x x U06 x x x U07 x x U08 x x U09 x x x 3
K01 x x K02 x x K03 x x 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) 1. Problem algorytmiczny i jego specyfikacja, model matematyczny problemu. 2. Analiza algorytmów w aspekcie poprawności semantycznej i złożoności obliczeniowej, prostota a efektywność algorytmów. 3. Podstawowe abstrakcyjne struktury danych i ich implementacja. 4. Implementacja algorytmów w językach programowania wysokiego poziomu: C#, C++. 5. Środowiska programistyczne: Microsoft Visual Studio. 6. Arytmetyka zmiennopozycyjna, błędy bezwzględne i względne. 7. Arytmetyka przedziałowa. 8. Uwarunkowanie problemu numerycznego wskaźnik uwarunkowania. 9. Własności algorytmów numerycznych stabilność numeryczna a posteriori (poprawność numeryczna). 10. Realizacja algorytmów numerycznych w arkuszu kalkulacyjnym Excel, edytor języka Visual Basic dla Aplikacji. 11. Wykorzystanie programu do obliczeń numerycznych na przykładzie programu Scilab, porównanie pakietów Scilab i Matlab. 12. Wykorzystanie komputerowych systemów obliczeń symbolicznych (systemów algebry komputerowej CAS) na przykładzie programów Maxima i GAP. Wykaz literatury podstawowej 1. A. Aho, J. Hopcroft, J. Ullman, Projektowanie i analiza algorytmów, Helion, Gliwice 2003. 2. D. Kincaid, W. Cheney, Analiza numeryczna, WNT, Warszawa 2006. 3. 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. T. Cormen, Ch. Leiserson, R. Rivest, C. Stein, Wprowadzenie do algorytmów, WNT, Warszawa 2007. 3. S. Dasgupta, Ch. Papadimitriou, U. Vazirani, Algorytmy, PWN, Warszawa 2010. 4
4. S. Harris, J. Ross, Algorytmy. Od Podstaw, Helion, Gliwice 2006. 5. J. Matulewski, Visual C# 2008, Projektowanie aplikacji, ++, Helion, Gliwice 2008. 6. R. Moore, R.B. Kearfott, M.J. Cloud, Introduction to interval analysis, SIAM, Philadelphia 2009. 7. 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. 8. R. Neapolitan, K. Naimipour, Podstawy algorytmów z przykładami w C++, Helion, Gliwice 2004. 9. M. L. Overton, Numerical Computing with IEEE Floating Point Arithmetic, Cambridge University Press, Cambridge 2001. 10. M. Sysło, Algorytmy, WSiP, Warszawa 2000. 11. M. Weisfeld, Myślenie obiektowe w programowaniu, Helion, Gliwice 2010. 12. E. Willett, S. Cummings, ABC Visual Basic dla Aplikacji w Office XP, Helion, Gliwice 2002. 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ącym 15 Ilość godzin pracy studenta bez kontaktu z prowadzącymi Lektura w ramach przygotowania do zajęć, rozwiązywanie zadań domowych 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) Przygotowanie do egzaminu 15 15 Ogółem bilans czasu pracy 90 Ilość punktów ECTS w zależności od przyjętego przelicznika 2 5