Wymagane oprogramowanie
Sugerowana literatura
R:
- Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016
- Wickham H., Advanced R, Chapman & Hall/CRC, 2014
- Wickham H., Grolemund G., R for Data Science, O'Reilly, 2017
- Eddelbuettel, D., Seamless R and C++ integration with RCpp, Springer, 2013
- Chambers J.M., Programming with Data, Springer, 1998 (The Green Book)
- Venables W.N., Ripley B.D., S Programming, Springer, 2000
- Abelson H., Sussman J., Sussman G.J., Struktura i interpretacja programów komputerowych, WNT, Warszawa, 2002
Python:
- Gągolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python, Wydawnictwo Naukowe PWN, Warszawa, 2016
- Lutz M., Learning Python, O'Reilly Media, 2013
- VanderPlas J., Python Data Science Handbook: Essential Tools for Working with Data, O'Reilly, 2016
- McKinney W., Python for Data Analysis. Data Wrangling with Pandas, NumPy, and IPython, O'Reilly Media, 2012
- Richert W., Coelho L.P., Building Machine Learning Systems with Python, Packt Publishing, 2013
- Bressert E., SciPy and NumPy, O'Reilly Media, 2012
Tydzień 1. (2018-02-20)
Wykład
- Klasyfikacja typów danych w
R
- Podstawowe typy atomowe: Wektory i
NULL
- Operacje na wektorach atomowych: operatory arytmetyczne, logiczne i relacyjne
Laboratoria
- Organizacja pracy w RStudio
- Język Markdown
- Tworzenie raportów przy użyciu pakietu
knitr
- Skrypty w plikach .R
Zwracamy uwagę na funkcję source()
.
Możemy wywoływać ją w plikach .R
i dokumentach knitra.
Zachęcamy do pracy w stylu: każde „duże zadanie”
(np. praca domowa) – osobne projekt w RStudio.
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Uwaga: należy „obserwować” (Watch) ww. repozytorium, gdyż
inaczej nie będą Państwo otrzymywać wiadomości e-mail nt. aktualizacji,
ogłoszeń itp. (sekcja Issues)

- Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 – rozdz. 1,2,13
- Dokumentacja RStudio (szczególnie warty przeczytania
jest punkt skróty klawiszowe)
- Markdown intro
- Markdown basics @ GitHub
- RMarkdown basics @ RStudio
- RMarkdown output formats @ RStudio
- Pandoc
- knitr chunk options
Tydzień 2. (2018-02-27)
Wykład
- Operacje na wektorach atomowych: zwektoryzowane funkcje matematyczne,
filtrowanie danych, agregacja danych itp.
Laboratoria
- Rozwiązywanie zadań z zestawu nr 1 (operacje na wektorach atomowych) – cz. 1
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 – rozdz. 3, 4
Tydzień 3. (2018-03-06)
Wykład
- Listy
- Funkcje
- Atrybuty obiektów
Laboratoria
- Rozwiązywanie zadań z zestawu nr 1 (operacje na wektorach atomowych) – cz. 2
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 – rozdz. 5, 6
Tydzień 4. (2018-03-13)
Wykład
- Atrybuty specjalne, podstawy programowania obiektowego w stylu S3
- Macierze
- Czynniki (ang. factors)
- Ramki danych
i inne typy złożone.
Laboratoria
- Rozwiązywanie zadań z zestawu nr 2 (operacje na macierzach i ramkach danych) – cz. 1
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 – rozdz. 7
Tydzień 5. (2018-03-20)
Wykład
- Wyrażenia warunkowe, pętle, obsługa wyjątków
- Przetwarzanie napisów
Laboratoria
- Rozwiązywanie zadań z zestawu nr 2 (operacje na macierzach i ramkach danych) – cz. 2
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 – rozdz. 8,9
dplyr
,
tidyr
i inne pakiety z rodziny tidyverse;
por. też Wickham H., Grolemund G., R for Data Science, O'Reilly, 2017
sqldf
,
RSQLite
data.table
- Jak widzimy, w R można robić te same rzeczy niestety na kilka różnych sposobów.
Opanowanie „bazowych” operacji jest bardzo ważne, bo dzięki nim jesteśmy przygotowani
na obróbkę ramek danych w każdy możliwy sposób. Przy użyciu np. bardzo popularnego pakietu
dplyr
(który poznajemy w ramach pracy domowej) możemy wygodniej realizować wiele „codziennych” operacji,
jednak (jak sam autor przyznaje) nie wszystkie. W każdym razie pakiet ten „wypada” znać, bo będą się nimi
zapewne posługiwali pracujący w naszych zespołach analitycy-nie-informatycy.
Termin oddawania pracy domowej nr 1: 2018-03-23.
Tydzień 6. (2018-03-27)
Wykład
- Wyrażenia regularne – krótki acz wyczerpujący kurs
- Obiekty reprezentujące datę i czas oraz operacje na nich
Laboratoria
- Rozwiązywanie zadań z zestawu nr 2 (operacje na macierzach i ramkach danych) – cz. 3
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 – rozdz. 10,11
- regular-expressions.info
- Regular Expressions – ICU User Guide
Tydzień 7. (2018-04-10)
Wykład
- Środowiska
- Środowiskowy model obliczeń
- Rcpp – szybkie wprowadzenie dla zaawansowanych programistów C++
Laboratoria
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Programowanie w języku R, Wydawnictwo Naukowe PWN, wyd. 2, Warszawa, 2016 – rozdz. 17,18,20
- Wickham H., Advanced R, Chapman & Hall/CRC, 2014
- Abelson H., Sussman J., Sussman G.J., Struktura i interpretacja programów komputerowych, WNT, Warszawa, 2002
- rcpp.org
- Niestety (a może stety?) nie mamy czasu na omówienie technik programowania „obiektopodobnego” innego niż
S3
.
Zainteresowani mogą sobie jednak poczytać więcej nt.
klas S4
,
refClasses
i
R6
(zob. też rozdz. 19 mojej książki).
Dwa ostatnie oparte są na poznanych podczas dzisiejszego wykładu środowiskach.
Termin oddawania pracy domowej nr 2: 2018-04-13.
Tydzień 8. (2018-04-17)
Wykład
- R – Niestandardowa ewaluacja
- Python – wprowadzenie
- Typy skalarne
- Typy sekwencyjne i iterowalne
Laboratoria
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python,
Wydawnictwo Naukowe PWN, Warszawa, 2016 – rozdz. 2,3,4
- Built-in Types – Python3 Documentation
- Data Structures – Python3 Tutorial
Tydzień 9. (2018-04-24)
Wykład
- Typy sekwencyjne i iterowalne – cd.
- Słowniki i zbiory
- Instrukcje sterujące
- Obsługa wyjątków
- Funkcje
Laboratoria
- Jupyter – podstawy obsługi
- Wprowadzenie do składni języka Python
- Uruchamianie własnych skryptów i importowanie modułów
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python,
Wydawnictwo Naukowe PWN, Warszawa, 2016 – rozdz. 5,6
- Modules – Python3 Tutorial
- More Control Flow – Python3 Tutorial
Termin oddawania pracy domowej nr 3: 2018-05-04.
Tydzień 10. (2018-05-08)
Wykład
Laboratoria
- Rozwiązywanie zadań z zestawu nr 4 (czysty bazowy Python: skalary, listy, słowniki)
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python,
Wydawnictwo Naukowe PWN, Warszawa, 2016 – rozdz. 7
- NumPy – strona domowa
- NumPy – dokumentacja
Tydzień 12. (2018-05-22)
Wykład
Laboratoria
- Rozwiązywanie zadań z zestawu nr 5 (numpy)
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Gągolewski M., Bartoszuk M., Cena A., Przetwarzanie i analiza danych w języku Python,
Wydawnictwo Naukowe PWN, Warszawa, 2016 – rozdz. 8
- pandas – strona domowa
Termin oddawania pracy domowej nr 4: 2018-05-25.
Tydzień 14. (2018-06-05)
Wykład
- Theano i TensorFlow cz. 1
Laboratoria
- Praca domowa nr 4 – prezentacje cz. 1 (grupy dwuosobowe)
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
- Theano
- TensorFlow
- zob. też. PyTorch
Tydzień 15. (2018-06-12)
Wykład
- Theano i TensorFlow cz. 2
Laboratoria
- Praca domowa nr 4 – prezentacje cz. 2 (grupy dwuosobowe)
Materiały pomocnicze
- Kody z wykładu i lab oraz zestawy zadań znajdują się na GitHubie
Termin oddawania pracy domowej nr 5: 2018-06-15.