Programowanie I R

Wykład: poniedziałki 15:15–16:00, sala 1.01

Prowadzący ćwiczenia:
grupa #1 — Michał Czerepaniak, wtorki 15:15-17:00, sala 1.34
grupa #2 — Bartosz Kasza, czwartki 9:15-11:00, sala 1.34
grupa #3 — Agnieszka Makulska, poniedziałki 16:15-18:00, sala 1.30
grupa #4 — Mikołaj Marcinkowski, wtorki 15:15-17:00, sala 1.29

Polecane podręczniki (płatne):
"Effective Python" by Brett Slatkin
"Introduction to Computation and Programming Using Python" by John V. Guttag

Polecane zasoby (darmowe):
[http://www.py4e.com/lessons]
[http://openbookproject.net/thinkcs/python/english3e/]
[http://runestone.academy/runestone/books/published/thinkcspy/index.html]
[http://stackoverflow.com]

Polecane interpretery Python3 dostępne z poziomu przeglądarki:
[https://colab.research.google.com/]
[https://www.onlinegdb.com/]
[https://repl.it/languages/python3]
[https://www.w3schools.com/python/python_compiler.asp]

Polecane inne kursy:
"Introduction to Computer Science and Programming in Python", Ana Bell (MIT, OpenCourseWare)
"Introduction to Computer Science and Programming Using Python", Eric Grimson (MIT)

Zasady oceniania:
ocena = $p_1 + p_2 + p_3 + p_4$, gdzie:
$x$ $f(x)$
>=90 5
81-89 4+
72-80 4
62-71 3+
50-61 3

$p_1$ — oceny z projektów zaliczeniowych (0-35)
$p_2$ — aktywność na ćwiczeniach (0-15)
$p_3$ — ocena z kolokwium (0-25)
$p_4$ — ocena z egzaminu (0-25)

Projekty zaliczeniowe
(termin 29.05.2026)

Reaktor jądrowy (autor: Mikołaj Marcinkowski)
Wzrost kropli chmurowych przez zderzenia (autor: Agnieszka Makulska)
Ray Tracing (autor: Bartosz Kasza)
Symulacja sedymentacji sferycznych cząstek (autor: Michał Czerepaniak)
Lód (autor: Grzegorz Łach)
Klastery (autor: Grzegorz Łach)


Wykład 1 2026-02-23 15:15—16:00 sala 1.01
  • organizacja wykładu, zasady zaliczenia
  • dlaczego Python? programowanie imperatywne/obiektowe/funkcyjne/deklaratywne
  • zaczynamy! (print, if, while)
  • deklarowanie funkcji (def)

Wykład 1 [PDF]

Wykład 2 2026-03-02 15:15—16:00 sala 1.01
  • cd. while: pass, break, continue
  • sekwencyjne typy danych (napisy, listy, krotki)
  • metody klasy list: .append, .extend, .sort
  • pętla for

Wykład 2 [PDF]

Wykład 3 2026-03-09 15:15—16:00 sala 1.01
  • list comprehension
  • słowniki, dictionary comprehension
  • funkcje, argumenty opcjonalne
  • funkcje, argumenty pozycyjne i nazwane

Wykład 3 [PDF]
Polecam: https://www.youtube.com/watch?v=belS2Ek4-ow

Wykład 4 2026-03-16 15:15—16:00 sala 1.01
  • formatowanie napisów
  • operacje na plikach
  • operacja na strumieniach Linux/Unix-owych
  • dostęp do listy argumentów programu

Wykład 4 [PDF]
Polecam: https://realpython.com/python-f-strings/

Wykład 5 2026-03-23 15:15—16:00 sala 1.01
  • funkcje jako argument
  • rekurencja
  • rekurancja z zapamiętywanie
  • rozwiązanie przez użycie dekoratorów

Wykład 5 [PDF]
Polecam #1: https://www.youtube.com/watch?v=Qk0zUZW-U_M
Polecam #2: https://www.youtube.com/watch?v=25ovCm9jKfA

Wykład 6 2026-03-30 15:15—16:00 sala 1.01
  • wyrażenia lambda
  • elementy programowania funkcyjnego
  • funkcje map, reduce, zip, filter, enumerate
  • konstrukcje funkcyjne vs. list comprehension

Wykład 6 [PDF]

Wykład 7 2026-04-13 15:15—16:00 sala 1.01
  • programowanie obiektowe, klasy i objekty
  • przeładowanie operatorów __add__, __mul__, etc.
  • __init__, __str__, __repr__, __lt__, etc.

Wykład 7 [PDF]

Wykład 8 2026-04-20 15:15—16:00 sala 1.01
  • __rmul__, __div__, __truediv__
  • isinstance vs type(…)==
  • __eq__, "==" vs "is"

Wykład 8-9 [PDF]

Kolokwium 2026-04-27 12:00—13:00 sala 1.01
Wykład 9 2026-04-27 15:15—16:00 sala 1.01
  • zmienne klasy
  • metody klasy
  • dziedziczenie

Wykład 8-9 [PDF]
Przykład Klasa wielomianów

Wykład 10 2026-05-04 15:15—16:00 sala 1.01
  • zmienne klasy
  • metody klasy
  • dziedziczenie

Wykład 10 [PDF]

Wykład 11 2026-05-11 15:15—16:00 sala 1.01
  • obsługa wyjątków
  • instrukcje try i except
  • iteratory

Wykład 11 [PDF]

Wykład 12 2026-05-18 15:15—16:00 sala 1.01
  • obliczenia numeryczne, biblioteka numpy
  • składnia, przykłady użycia i porównanie wydajności
  • inne sposoby zwiększenia wydajności
Wykład 13 2026-05-25 15:15—16:00 sala 1.01
  • generatory
  • instrukcja yield
  • wyrażenia generatorowe

Wykład 14 [PDF]
Polecam: https://www.youtube.com/watch?v=D1twn9kLmYg

Wykład 14 2026-06-01 15:15—16:00 sala 1.01
  • Python jako język refleksyjny — instrukcje eval i exec
  • Programy piszące "programy" — sprowadzanie do problemów SAT
  • biblioteki pycosat i pysat

[https://colab.research.google.com/drive/1Ko6-8GZf4s4h9dcerK6IzUWuzGglQZ52?usp=sharing]

Wykład 15 2026-06-08 15:15—16:00 sala 1.01
  • Python jako język refleksyjny — instrukcje eval i exec
  • Programy piszące "programy" — sprowadzanie do problemów SAT
  • biblioteki pycosat i pysat

[https://colab.research.google.com/drive/1Ko6-8GZf4s4h9dcerK6IzUWuzGglQZ52?usp=sharing]

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License