Strona wykładu Programowanie 1 (Python) w semestrze zimowym 2024/2025

Informacje o wykładzie i zasady zaliczania
Listy zadań

Środowisko

Przydatne linki

Literatura do wykładu

  1. Amit Saha — Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More!, link.
  2. Al Sweigart — Automate the Boring Stuff with Python: Practical Programming for Total Beginners, link.
  3. Eric Matthes — Python Crash Course: A Hands-On, Project-Based Introduction to Programming, link.
  4. Luciano Ramalho — Fluent Python: Clear, Concise, and Effective Programming, link.

Omówiony materiał

  1. Języki programowania: składnia i semantyka. Wyrażenia arytmetyczne i ogólne. Nazwy i przypisania. Elementarne typy oraz konwersje obiektów. input i print. Podstawowe elementy kontroli przepływu sterowania: instrukcja warunkowa if i (uproszczona) pętla for. Slajdy. Przykłady: elementarne wyrażenia, konwersje i wejście/wyjście, pierwiastki funkcji kwadratowej, test pierwszości liczby.
  2. Elementarne różnice między int i float, pętla while. Przykłady użycia pętli, kontrola działania pętli przez break i continue. Iteracja, pojęcie obiektów iterowalnych i przykłady operacji na nich. Krotki. Formatowanie tekstu: napisy interpolowane. Slajdy. Przykłady: pętle, iterowalność, przykłady formatowania + wersja HTML.
  3. Funkcje i zasięg zmiennej, wstęp do rekurencji, funkcje jako obiekty. Slajdy. Przykłady: proste funkcje, wczytywanie liczby z przedziału, wyznaczanie wartości ciągu, test pierwszości liczby; przykłady na wizualizację zasięgu zmiennych: 1, 2, 3, 4, 5. Funkcje jako obiekty.
  4. Rekurencja, symbol Newtona i największy wspólny dzielnik. Organizacja kodu: pisanie własnych modułów. Podstawy list. Slajdy (rekurencja). Przykłady: symbol Newtona, największy wspólny dzielnik, prosty moduł, proste operacje listowe, pomiary czasu działania kodu.
  5. Liczby zespolone. Pojęcie atrybutu i metody. Listy: podstawowe operacje, schematy konstrukcji list (listy składane), [extended] slicing. Tablice (np. macierze) jako listy list. Slajdy (metody). Przykłady: różne operacje listowe, slicing, trójkąt Pascala. Bonus: transpozycja macierzy 2x2
  6. Argumenty nazwane. Biblioteka matplotlib (patrz: [A, rozdział 2]): rysowanie wykresów funkcji i krzywych parametrycznych. Przykłady: argumenty nazwane, wykresy temperatury I, wykresy temperatury II, rysowanie wykresów funkcji, wykres siły przyciągania, rysowanie krzywych parametrycznych, wykresy rzutów piłką, skale i zakresy osi. Bonus: trochę o listach.
  7. Metody typu str (patrz: [B, rozdział 6]), manipulacja napisami. Symbole ucieczki, unicode. Podstawy obsługi plików tekstowych, format csv. Wykresy punktowe. Przykłady: operacje na napisach, obsługa plików.
  8. Zbiory i słowniki (patrz: [C, rozdział 6]) i podstawy wyjątków. Slajdy. Przykłady: słowniki/zbiory (HTML), zliczanie słów, wyjątki.
  9. Pisanie własnych klas, metody specjalne i przeciążanie operatorów. Slajdy. Przykłady: kolory, wektory, konto bankowe. Bank (wstępna postać, zostanie rozwinięta). Bonus: kolejność przeszukiwania metod specjalnych.
  10. Atrybuty klasy a atrybuty instancji. Więcej przeciążania operatorów na przykładzie permutacji. Testy jednostkowe z użyciem unittest. Przykłady: atrybuty, Bank + BankAccount, testy jednostkowe.
  11. Obliczenia symboliczne w SymPy: symbole, konstrukcje wyrażeń, rozwiązywanie układów równań. Liczenie granic, pochodnych i całek. Przykłady: wyrażenia, podstawianie i solve, funkcje i stałe w SymPy, granice, pochodne, całki; całki/pochodne w Jupyter notebook.