Oris teme
Splošno
- Trenutna tema
Naloge in izpiti
Regularni izrazi
- osnovni vzorci
.,\d,\w,\D,\W,[a-z],[^a-z], … - kvantifikatorji
*,+,{m, n},? - mejnika
^in$ - skupine in sklici na skupine
\1,\2, … - uporaba regularnih izrazov v urejevalniku Visual Studio Code
- uporaba regularnih izrazov v Pythonu
- ustreznost regularnih izrazov za analizo HTML
- Interaktivni uvod v regularne izraze
Stran za interaktivno raziskovanje regularnih izrazov
- Podobno kot RegExr, samo da je malo manj prijazen, vendar omogoča vnašanje regularnih izrazov v Pythonovem zapisu
Podobno kot Debuggex
- Zbirka križank, v katerih so gesla regularni izrazi
Dokumentacija Pythonove standardne knjižnice
reza delo z regularnimi izraziDomača stran Pythonove knjižnice
bs4za analizo HTML datotek
- osnovni vzorci
Zajem podatkov
- zajem spletnih strani s knjižnico
requests - JSON in CSV datoteke
- normalizacija podatkov
Domača stran knjižnice
requests, namenjene delu s HTTP poizvedbami v PythonuDokumentacija Pythonove standardne knjižnice
jsonza delo z JSON datotekamiDokumentacija Pythonove standardne knjižnice
csvza delo s CSV datotekami
- zajem spletnih strani s knjižnico
Knjižnica Pandas
- osnovne poizvedbe
- združevanje podatkov
- grafični prikaz
- stikanje razpredelnic
Domača stran knjižnice
pandas, namenjene analizi podatkov v PythonuKratek pregled možnosti, ki jih ponuja knjižnica
pandas- Plonkec za najpogosteje uporabljana orodja v knjižnici Pandas
Naivni Bayesov klasifikator
- transformacije razpredelnic
- vektorizacija
- naivni Bayesov klasifikator
Uvod v OCaml
- definicije vrednosti
- preverjanje tipov
- osnovni vgrajeni tipi
- funkcije
- vzorci
- rekurzija
- nabori in seznami
- parametrični polimorfizem
- primerjava tipov v OCamlu in Pythonu
- Zelo podroben učbenik za OCaml
- Plonkci za programski jezik ter najpogosteje uporabljane knjižnice
Funkcije
- primerjava imperativnih in funkcijskih jezikov
- standardna knjižnica
- funkcije višjega reda
- anonimne funkcije
- delna aplikacija funkcij in curryirane funkcije
- curryiranje
- repni klici in repna rekurzija
- Zbirka 99 nalog za učenje OCamla
Definicije tipov
- okrajšave za tipe
- parametrični tipi
- zapisi
- vsote
- uporaba tipov za omejitev smiselnih stanj programa
- rekurzivni tipi
- znane vsote:
bool,nat,optioninlist
- Video posnetek predavanja o uporabi OCamla v praksi
Učinki in čistost
- stranski učinki
- vgrajeni stranski učinki v OCamlu
- čiste funkcije
- strukturna indukcija po seznamih
- strukturna indukcija po drevesih
Iskalna drevesa
- časovna zahtevnost
- iskalna drevesa
- implementacija iskalnih dreves v OCamlu
- uravnotežena iskalna drevesa
- AVL drevesa
- pomoč tipov pri čiščenju kode
- Vizualizacija operacij na iskalnih in AVL drevesih
Spremenljive podatkovne strukture
- reference
- razlika med spremenljivimi in nespremenljivimi podatkovnimi strukturami
- spremenljivi zapisi
- tabele
- primerjava seznamov in tabel
- predstavitev Pythonovih in OCamlovih podatkovnih struktur v pomnilniku
- zanki
forinwhile - algoritmi na mestu in izven mesta
- Fisher-Yatesov algoritem za premešanje tabele
- urejanje z mehurčki, urejanjem in vstavljanjem
- Razlaga in vizualizacija Fisher-Yatesovega algoritma za premešanje
- Razlaga, kako se nam lahko hitro zgodi, da seznam premešamo na napačen način
Deli in vladaj
- hitro potenciranje
- urejanje z zlivanjem
- reševanje enačbe $T(n) = O(n) + 2 T(n / 2)$
- hitro urejanje
- hitro urejanje na mestu
- časovna zahtevnost urejanja s primerjavo je $\Omega(n \log n)$
- algoritmi za urejanje brez primerjave
- Vizualizacije najbolj znanih algoritmov za urejanje
Dinamično programiranje
- lastnost optimalne podstrukture
- kombinatorično preštevanje
- Levenshteinova razdalja
- krčenje slik po minimalnem šivu
Članek o krčenju slik z dinamičnim programiranjem
Memoizacija v Pythonu
- Levenshteinova razdalja
- memoizacija
- memoizacija kot funkcija višjega reda
cacheinlru_cache- dekoratorji
Memoizacija v OCamlu
- memoizacija običajnih funkcij
- memoizacija rekurzivnih funkcij ter odvite definicije
- memoizacija medsebojno rekurzivnih funkcij