Algorytmika i programowanie w języku Python
Informacje ogólne
Kod przedmiotu: | 1000-I1AiPPython |
Kod Erasmus / ISCED: |
(brak danych)
/
(0613) Tworzenie i analiza oprogramowania i aplikacji
|
Nazwa przedmiotu: | Algorytmika i programowanie w języku Python |
Jednostka: | Wydział Matematyki i Informatyki |
Grupy: | |
Strona przedmiotu: | https://plas.mat.umk.pl |
Punkty ECTS i inne: |
3.00
|
Język prowadzenia: | polski |
Wymagania wstępne: | Znajomość zagadnień z podstaw algorytmiki i języka programowania C++ realizowanych na przedmiocie Podstawy programowania. Praca z komputerem w zakresie podstawowym: umiejętność pracy z prostym edytorem tekstowym, uruchamianie aplikacji, korzystanie z serwisów www. Znajomość matematyki szkolnej na poziomie podstawowym. |
Rodzaj przedmiotu: | przedmiot szczegółowy (atrybut wycofany) |
Całkowity nakład pracy studenta: | Godziny realizowane z udziałem nauczycieli – 30 godzin laboratorium; Czas potrzebny na pracę indywidualną studenta - 60 godzin, w tym - 30 godzin - czytanie literatury, zapoznanie się z materiałami dydaktycznymi umieszczonymi na platformie e-learningowej, rozwiązywanie zadań, - 15 godzin – przygotowanie do laboratorium - 15 godzin – powtórzenie materiału z laboratorium RAZEM: 90 godzin (3 punkty ECTS) |
Efekty uczenia się - wiedza: | W1: ma uporządkowaną wiedzę ogólną w zakresie podstawowych algorytmów, ich złożoności i zastosowań; zna podstawowe metody projektowania algorytmów i przykłady algorytmów wykorzystujących te metody, zna podstawowe struktury danych i wykonywane na nich operacje – K_W03, K_W06 W2: zna przynajmniej jeden język programowania wyższego rzędu w zakresie podstawowym; zna zasady programowania strukturalnego i proceduralnego; zna podstawowe zasady programowania obiektowego, zna przynajmniej dwa narzędzia pracy z kodem źródłowym - K_W04 |
Efekty uczenia się - umiejętności: | U1: samodzielnie projektuje/modyfikuje algorytmy w celu rozwiązania problemu; potrafi podać specyfikacje algorytmu i zademonstrować jego działanie; implementuje algorytmy i dobiera odpowiednie struktury danych; analizuje wpływ struktur danych na złożoność programów - K_U17 U2: potrafi pisać, uruchamiać i testować programy w wybranym środowisku programistycznym; umie czytać ze zrozumieniem programy zapisane w wybranym języku programowania; potrafi pracować z obiektami i projektować programy zorientowane obiektowo; potrafi wykorzystać bibliotekę standardową i złożone struktury danych; potrafi budować hierarchiczną strukturę programu - K_U14, K_U17 U3: potrafi zaprojektować algorytm rozwiązujący konkretny problem z danej dziedziny; potrafi pisać kod odporny na błędy - K_U05 U4: potrafi samodzielnie wyszukiwać informacje w literaturze, także w językach obcych - K_U21, KU23 |
Efekty uczenia się - kompetencje społeczne: | K1: zna ograniczenia własnej wiedzy i rozumie potrzebę dalszego kształcenia z wykorzystaniem różnych źródeł informacji, krytycznie ocenia informacje dostępne w Internecie - K_K04, K_K03 K2: sumienność i dokładność: jest nastawiony na jak najlepsze wykonanie zadania; dba o szczegół; jest systematyczny - K_K02 (K_K02). |
Metody dydaktyczne: | Laboratoria są połączeniem metody informacyjno-problemowej z praktyczną realizacją algorytmów w postaci programów w języku Python. Takie podejście ma na celu poznanie języka programowania w wyniku rozwiązywania problemów teoretycznych i pozwala na rozwijanie myślenia komputacyjnego. |
Metody dydaktyczne eksponujące: | - drama |
Metody dydaktyczne podające: | - opis |
Metody dydaktyczne poszukujące: | - ćwiczeniowa |
Skrócony opis: |
Przedmiot kontynuuje wprowadzenie w świat algorytmiki i programowania rozpoczęte na przedmiocie Podstawy programowania, doskonali myślenie algorytmiczne i logiczne wnioskowanie. Głównym celem jest przygotowanie do rozwiązywania problemów i programowania podstawowych algorytmów, struktur danych w języku programowania Python. W trakcie omawianiu kolejnych algorytmów wprowadzane są potrzebne do ich implementacji elementy języka programowania Python z uwzględnieniem różnorodnych technik i metod. |
Pełny opis: |
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. . |
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 |
Metody i 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 |
Zajęcia w cyklu "Semestr letni 2022/23" (zakończony)
Okres: | 2023-02-20 - 2023-09-30 |
Przejdź do planu
PN LAB
LAB
LAB
WT LAB
LAB
LAB
ŚR LAB
CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin, 16 miejsc
|
|
Koordynatorzy: | Anna Kwiatkowska | |
Prowadzący grup: | Marta Burzańska, Witold Kraśkiewicz, Damian Kurpiewski, Anna Kwiatkowska, Piotr Wiśniewski, Katarzyna Zając | |
Strona przedmiotu: | https://plas.mat.umk.pl | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Zaliczenie na ocenę
Laboratorium - Zaliczenie na ocenę |
|
Skrócony opis: |
Jak w podstawowej informacji o przedmiocie. |
|
Pełny opis: |
Jak w podstawowej informacji o przedmiocie. |
|
Literatura: |
Jak w podstawowej informacji o przedmiocie. |
|
Uwagi: |
Jak w podstawowej informacji o przedmiocie. |
Zajęcia w cyklu "Semestr letni 2023/24" (zakończony)
Okres: | 2024-02-20 - 2024-09-30 |
Przejdź do planu
PN LAB
LAB
LAB
LAB
LAB
LAB
LAB
WT LAB
ŚR CZ LAB
PT |
Typ zajęć: |
Laboratorium, 30 godzin, 16 miejsc
|
|
Koordynatorzy: | Anna Kwiatkowska | |
Prowadzący grup: | Marta Burzańska, Witold Kraśkiewicz, Damian Kurpiewski, Anna Kwiatkowska, Andrzej Mróz | |
Strona przedmiotu: | https://plas.mat.umk.pl | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Zaliczenie na ocenę
Laboratorium - Zaliczenie na ocenę |
|
Skrócony opis: |
Jak w podstawowej informacji o przedmiocie. |
|
Pełny opis: |
Jak w podstawowej informacji o przedmiocie. |
|
Literatura: |
Jak w podstawowej informacji o przedmiocie. |
|
Uwagi: |
Jak w podstawowej informacji o przedmiocie. |
Zajęcia w cyklu "Semestr letni 2024/25" (w trakcie)
Okres: | 2025-02-24 - 2025-09-20 |
Przejdź do planu
PN LAB
LAB
LAB
WT LAB
ŚR LAB
LAB
LAB
CZ LAB
PT |
Typ zajęć: |
Laboratorium, 30 godzin, 16 miejsc
|
|
Koordynatorzy: | Anna Kwiatkowska | |
Prowadzący grup: | Marta Burzańska, Witold Kraśkiewicz, Damian Kurpiewski, Anna Kwiatkowska, Andrzej Mróz | |
Strona przedmiotu: | https://plas.mat.umk.pl | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Zaliczenie na ocenę
Laboratorium - Zaliczenie na ocenę |
|
Skrócony opis: |
Jak w podstawowej informacji o przedmiocie. |
|
Pełny opis: |
Jak w podstawowej informacji o przedmiocie. |
|
Literatura: |
Jak w podstawowej informacji o przedmiocie. |
|
Uwagi: |
Jak w podstawowej informacji o przedmiocie. |
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.