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 Efekt kształcenia dla kursu Wiedza W01 rozumie budowę teorii matematycznych, zna narzędzia matematyczne przydatne do opisu i analizy prostych modeli matematycznych w innych dziedzinach nauk W02 zna podstawy technik obliczeniowych i programowania, wspomagających pracę matematyka i rozumie ich ograniczenia W03 zna na poziomie podstawowym co najmniej jeden pakiet oprogramowania, służący do obliczeń symbolicznych K_W03 K_W08 K_W09 1
Efekt kształcenia dla kursu Umiejętności U01 posługuje się w różnych kontekstach pojęciem zbieżności i granicy; potrafi na prostym i średnim poziomie trudności obliczać granice ciągów i funkcji, badać zbieżność bezwzględną i warunkową szeregów 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, w tym także problemów związanych z zastosowaniami tego rachunku U04 posługuje się pojęciami: przestrzeni liniowej, wektora, bazy przestrzeni liniowej, przekształcenia liniowego, macierzy U05 rozpoznaje problemy, w tym zagadnienia praktyczne, które można rozwiązać algorytmicznie; potrafi dokonać specyfikacji takich problemów U06 umie ułożyć i analizować algorytm zgodny ze specyfikacją i zapisać go w wybranym języku programowania U07 potrafi skompilować, uruchomić i testować napisany samodzielnie program komputerowy U08 umie wykorzystywać programy komputerowe w zakresie analizy danych U09 umie formułować i rozwiązywać problemy przy użyciu narzędzi matematyki dyskretnej (np. kombinatoryka, indukcja matematyczna) K_U10 K_U12 K_U15 K_U16 K_U25 K_U26 K_U27 K_U28 K_U29 Kompetencje społeczne Efekt kształcenia dla kursu 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 zna ograniczenia własnej wiedzy i rozumie potrzebę jej uzupełniania, w szczególności potrzebę samokształcenia 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 10 10 10 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. 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. 4
3. S. Dasgupta, Ch. Papadimitriou, U. Vazirani, Algorytmy, PWN, Warszawa 2010. 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 10 Konwersatorium (ćwiczenia, laboratorium itd.) 20 Pozostałe godziny kontaktu studenta z prowadzącym 10 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 10 10 Ogółem bilans czasu pracy 60 Ilość punktów ECTS w zależności od przyjętego przelicznika 2 5