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
- Amit Saha — Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More!, link.
- Al Sweigart — Automate the Boring Stuff with Python: Practical Programming for Total Beginners, link.
- Eric Matthes — Python Crash Course: A Hands-On, Project-Based Introduction to Programming, link.
- Luciano Ramalho — Fluent Python: Clear, Concise, and Effective Programming, link.
Omówiony materiał
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.