Techniki Programowania

Zajęcia do końca epidemii COVID-19 w trybie on-line

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://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)

Zasady oceniania:
ocena na podstawie aktywności na ćwiczeniach i projektów zaliczeniowych


Wykład 1 2021-03-10 9:15—11:00 zoom
  • rekurencja
  • zamiana na rozwiązanie iteracyjne
  • rekurancja z zapamiętywanie
  • rozwiązanie przez użycie dekoratorów

Ćwiczenia https://colab.research.google.com/drive/1VbEpNQOxde6Hm9XI8uvCFUBh5iQlaYcj
Polecam: Lex Fridman, rozmowa z Guido van Rossumem (twórcą Pythona)

Wykład 2 2021-03-17 9:15—11:00 zoom
  • rekurencja vs iteracja
  • programowanie dynamiczne
  • znajdowanie najdłuższego rosnącego podciągu
  • algorytm Smitha-Watermana

Ćwiczenia https://colab.research.google.com/drive/1VbEpNQOxde6Hm9XI8uvCFUBh5iQlaYcj
Polecam #1: https://www.youtube.com/watch?v=belS2Ek4-ow
Polecam #2: https://www.youtube.com/watch?v=KN2TTiGpDvM

Wykład 3 2021-03-24 9:15—11:00 zoom
  • programowanie dynamiczne, cd
  • algorytm Smitha-Watermana, cd
  • przewidywanie struktury drugorzędowej RNA
Wykład 4 2021-03-31 9:15—11:00 zoom
Wykład 5 2021-04-07 9:15—11:00 zoom
Wykład 6 2021-04-14 9:15—11:00 zoom
Wykład 7 2021-04-21 9:15—11:00 zoom
  • szybkie potęgowania (x^N używając log2N mnożeń)
  • schemat Hornera (efektywne obliczanie wartości wielomianu)
  • ciekawostka: mnożenie liczb zespolonych
Wykład 8 2021-04-28 9:15—11:00 zoom
  • algorytm Strassena i Coopersmitha-Winograda (mnożenie macierzy szybsze niż N3)
  • rozkład Choleskiego macierzy
  • szybkie (N3) obliczanie wyznacznika
Wykład 9 2021-05-05 15:15—16:00 zoom
  • Dyskretna transformata Fouriera — złożoność N2
  • algorytm mergesort
  • algorytm Szybkiej Transformaty Fouriera (FFT) — złożoność N log2N
Wykład 10 2021-05-19 15:15—16:00 zoom
  • iteratory i generatory
  • instrukcja yield
  • wyrażenia generatorowe
Wykład 11 2021-05-26 15:15—16:00 zoom
  • obsługa wyjątków
  • instrukcje try i except
  • przyklady
Wykład 12 2021-06-02 15:15—16:00 zoom
  • Python jako język refleksyjny — instrukcje eval i exec
  • Programy piszące "programy" — sprowadzanie do problemów SAT
  • biblioteki pycosat i pysat
Projekty zaliczeniowe
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License