Algorytmika i programowanie w języku Python 1000-I1AiPPython
Podczas laboratoriów omawiane są i implementowane algorytmy będące uzupełnieniem zagadnień poruszanych na przedmiocie Podstawy programowania, analizowane są również problemy, w których mają one zastosowanie. Przy rozwiązywaniu problemów wprowadzane są potrzebne do implementacji elementy języka Python z uwzględnieniem złożoności obliczeniowej i efektywności. W opisie poniżej podano kolejne tematy zajęć wraz z rozważanymi podczas nich algorytmami i problemami. Kolokwium I powinno obejmować tematy 1)-7), kolokwium II – tematu 8)-12).
1) Oprogramowanie dla języka Python, tryb interaktywny, edycja, uruchamianie i testowanie programów. Reprezentacja liczb i tekstów w języku Python, konwersja typów.
2) Wprowadzenie do języka programowania Python, syntaktyka i semantyka instrukcji, struktura programu, zmienne, instrukcje (podstawienia, warunkowa i iteracji), korzystanie z funkcji dodatkowych bibliotek programistycznych – algorytmy dotyczące badania różnorodnych własności liczb i tekstów (podzielność, pierwszość, sito Eratostenesa, palindromy).
3) Funkcje, przekazywanie parametrów, krotki, biblioteka funkcji użytkownika generowanie liczb o zdanych własnościach, systemy liczbowe.
4) Listy - właściwości oraz operacje, jakie można przeprowadzać na tego typu strukturach (zastosowanie algorytmów wyszukiwania i porządkowania.
5) Pobieranie danych i przechowywanie wyników algorytmów w plikach (dane i wyniki liczbowe oraz tekstowe, występowanie wzorca w tekście).
6) Myślenie rekurencyjne. Zapis rekurencji w języku Python.
7) Słowniki, zbiory – właściwości oraz operacje, jakie można przeprowadzać na tego typu strukturach, reprezentacja rzymska liczb, reprezentacje grafów.
8) Optymalizacja algorytmów w praktyce .
9) Struktury dynamiczne w języku Python: stos, kolejka, lista ich zastosowanie w rozwiązywanych problemach.
10) Obiektowość języka Python - obiekty, klasy, przeciążanie operatorów.
11) Grafika. Ilustracja algorytmów geometrycznych, fraktale, moduł matplotlib
12) Podstawy uczenie maszynowego - przykładowy projekt dla uczenia maszynowego.
.
W cyklu 2022/23L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2023/24L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2024/25L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2025/26L:
Jak w podstawowej informacji o przedmiocie. |
Całkowity nakład pracy studenta
Efekty uczenia się - wiedza
Efekty uczenia się - umiejętności
Efekty uczenia się - kompetencje społeczne
Metody dydaktyczne
Metody dydaktyczne eksponujące
- drama
- symulacyjna (gier symulacyjnych)
Metody dydaktyczne podające
- pogadanka
- wykład problemowy
Metody dydaktyczne poszukujące
- klasyczna metoda problemowa
- laboratoryjna
- projektu
- ćwiczeniowa
Rodzaj przedmiotu
Wymagania wstępne
Koordynatorzy przedmiotu
Kryteria oceniania
Na ocenę końcową składają się oceny za:
1. dwa kolokwia 2*30 punktów
2. pięć zadań domowych 5*5 punktów
3. referat 15 punktów
3. rozwiązywanie zadań z laboratoriów i testowanie ich efektywności 10 punktów
Weryfikacja efektów W1, W2, U1, U2, U3, U4, K1, K2
Aby otrzymać zaliczenie za każdą ze składowych oceny trzeba zdobyć co najmniej 50% punktów. Dopuszczalne są tylko dwie nieobecności nieusprawiedliwione w semestrze.
Oceny końcowe w przeliczeniu na %:
90-100 - bdb
80-89 +db
70-79 db
60-69 +dst
50-59 dst
Praktyki zawodowe
Nie dotyczy
Literatura
Literatura podstawowa:
[1] M. Sysło, Algorytmy, WSiP, Warszawa
[2] M. Sysło, Piramidy, szyszki i inne konstrukcje algorytmiczne, Helion,
[3] L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych, WNT, Warszawa
[4] M. Dawson, Python dla każdego. Podstawy programowania, Helion
[5] M. Gągolewski, M. Bartoszuk, A. Cena, Przetwarzanie i analiza danych w języku Python
Literatura uzupełniająca:
[6] D. Harel, Rzecz o istocie informatyki: Algorytmika, WNT, Warszawa.
[7] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Wprowadzenie do algorytmów, WNT, Warszawa.
[8] E. Matthes, Python - instrukcje dla programisty, Helion 2016
Materiały dostępne on-line:
[9] Oficjalna dokumentacja Pythona, http://docs.python.org
[10] Wykłady UW, http://wazniak.mimuw.edu.pl/
[11] Notatki i materiały wykładowcy dostępne na platformie elektronicznego wspomagania zajęć moodle
W cyklu 2022/23L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2023/24L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2024/25L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2025/26L:
Jak w podstawowej informacji o przedmiocie. |
Uwagi
W cyklu 2022/23L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2023/24L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2024/25L:
Jak w podstawowej informacji o przedmiocie. |
W cyklu 2025/26L:
Jak w podstawowej informacji o przedmiocie. |
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: