Viri in povezave
Primarna literatura
1) Ena najpomembnejših knjig (tudi na večini tujih fakultet) za spoznavanje algoritmov in podatkovnih struktur je
- Introduction to Algorithms, Thomas H. Cormen, Charles Leiserson, Ron Rivest, and Cliff Stein, The MIT Press, 2001.
Knjiga je izjemno lepo berljiva, vseeno pa vsebuje tudi resne algoritme. Gotovo jo najdete tudi v knjižnici FRI. Knjigo pogosto poimenujemo po začetnicah avtorjev "CLRS," v slovenščin pa tudi "Kormen". Torej v CLRS boste našli večino snovi s predmeta:
- uvod v algoritme in probleme,
- pravilnost, analiza zahtevnosti, asimptotična notacija, rekurenčne enačbe, mojstrov izrek,
- urejanja (insertion sort, heap sort, quicksort, couting sort, radix sort, bucket sort),
- požrešne algoritme,
- dinamično programiranje,
- podatkove strukture (povezani seznami, grafi),
- in še mnogo drugega.
2) Dokaj nova in preko spleta dostopna v obliki PDF je tudi
- Algorithms, S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani.
Mogoče je še malce lažje berljiva kot CLRS, vendar vsebuje manj snovi, vseeno v njej najdete kar nekaj področij, ki jih pokrijemo pri predmetu. Dokler ni bila izdana, je bila dostopna preko spleta, še vedno jo najdete tukaj.
3) Veliko algoritmičnih tem najdete tudi v slovenščini v učbeniku
- Osnovni algoritmi, Boštjan Vilfan, Založba FE in FRI, Ljubljana 2002.
ki je dostopen tudi preko spleta tukaj.
4) V okviru FRI in ostalih pa nastaja tudi slovenski prevod knjige
- Open Data Structures v slovenščini
Kot pove že naslov, vsebuje predvsem podatkovne strukture. Vse strukture so implementirane v Javi.
V slovenščini
Knjig v slovenščini ni veliko. Poleg tega so nekatere žal že malce zastarele glede načina podajanja snovi in oblike. Vseeno pa so algoritmi, predstavljeni v njih, še vedno aktualni in relevantni.
- Programiranje in algoritmi, Igor Kononenko in sodelavci, Založba FE in FRI, 2008
- Osnove algoritmov in podatkovnih struktur II, Igor Kononenko, Marko Robnik Šikonja, Založba FE in FRI, 2004
- Osnovni algoritmi, Boštjan Vilfan, Založba FE in FRI, Ljubljana, 2002
-
Podatkovne strukture in algoritmi, Jernej Kozak, 2. natis, Ljubljana, DMFA, 1997
- Aproksimacijski algoritmi, Borut Robič, Založba FRI, Ljubljana, 2. izdaja, 2009
- Open Data Structures v slovenščini (nastajajoči prevod)
- Blog Jurija Miheliča (trenutno ni dostopen, občasno algoritmične teme)
- Vadnica za APS1-VS (vaje iz APS1)
V angleščini
Angleških knjig o algoritmih je na tone. Spodaj je naštet le majhen vzorec.
- Introduction to Algorithms, Thomas H. Cormen, Charles Leiserson, Ron Rivest, and Cliff Stein, The MIT Press, 2001.
- Algorithms, S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani, 2006.
- Introduction to Design and Analysis of Algorithms, Anany Levitin, Pearson / Addison-Wesley, 2007.
- The Design and Analysis of Computer Algorithms, Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, Addison-Wesley, 1974.
- The Art of Computer Programming – serija knjig, Donald E. Knuth, Addison-Wesley, 1997.
- Data Structures and Algorithms with Object-Oriented Design Patterns in Java, Bruno R. Preiss.
- Algorithms Illuminated - serija knjig, Tim Roughgarden
- Algorithms Unlocked, Thomas H. Cormen
Video predavanja
Spodaj je naštetih nekaj predavanj zelo znanih algoritmikov. V splošnem pa so ta predavanja precej zgoščena in nabita s snovjo. Splača se jih mestoma zaustaviti in na papir ponoviti, kar je bilo povedano. Če se prebijete skozi predavanja kateregakoli sklopa spodaj, se vsekakor oglasite pri meni.
- Introduction to Algorithms, MIT. Predavatelja sta Thomas H. Cormen (soavtor knjige CLRS) in Erik Demaine, dva izjemna algoritmika
- Coursera: Algorithms: Design and Analysis (part 1, part 2), Standford. Predavatelj je Tim Roughgarden, ki ima serijo zelo dobrih predavanj. Še več precej naprednih tečajev najdete na njegovi spletni strani
- Sklop algoritmičnih tečajev na Courseri, predavatelj Tim Roughgarden
- Coursera: Algorithms (part 1, part 2), predavatelj Robert Sedgewick
- Coursera: Analysis of Algorithms, predavatelj Robert Sedgewick
Ogled MOOC tečajev na Coursery, Udacity, edX je navadno zastojn (plačati je treba le, če želite opravljati izpit oz. za potrdilo). Vsekakor pa je področje algoritmov zelo dobro pokrito, veliko video materiala najdete lahko kar sami (youtube ipd.).
Razvojna okolja
Spodaj je par naprednejših razvojnih okolij. Vsekakor pa za APS1 ne potrebujete nič posebnega: navaden programerski urejevalnik bo odličen. Boljše okolje se splača namestiti le zaradi razhroščevalnika.
- DrJava - interaktivno učno okolje za Javo
- IntelliJ IDEA - okolje za razvoj programov Javi
- JCreator - okolje za razvoj programov v Javi
- NetBeans - orodje za razvoj programov v Javi
- Eclipse - orodje za razvoj programov v Javi