Tekmovanje ACM v znanju računalništva
Seznam koristne literature
za tekmovanje v znanju računalništva
Spodnji seznam je nastal pretežno leta 2004 in temelji predvsem na tem, kar se je dalo takrat dobiti po slovenskih knjižnicah.
Uporabno kot priročnik ali resen učbenik o algoritmih in podatkovnih strukturah:
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest:
Introduction to algorithms, McGraw-Hill (~1000 strani)
Obsežen, kvaliteten učbenik (z lahko berljivo psevdokodo).
- Robert Sedgewick:
Algorithms in C (C++, Java), MIT Press / Addison-Wesley (~700 strani)
- Thomas W. Parsons:
Introduction to algorithms in pascal, John Wiley & Sons (440 strani)
Prijazen uvod v algoritme (v pascalu).
- Richard Neapolitan, Kumarss Naimipour: Foundations of algorithms using C++ pseudocode, Jones and Bartlett, 1998 (523 strani)
Lahko berljiv uvod v algoritme in podatkovne strukture.
- Niklaus Wirth: Računalniško programiranje, 1. del, LJ, DMFA 1979. 2. del, LJ, DMFA 1983. Prev. Boštjan Vilfan. (278 + 348 strani)
Pascalska psevdokoda.
- Igor Kononenko:
Načrtovanje podatkovnih struktur in algoritmov, LJ, FRI 1996, 1999. (326 strani)
Poudarek na podatkovnih strukturah (pascalska psevdokoda).
- Igor Kononenko, Marko Robnik Šikonja:
Algoritmi in podatkovne strukture I, LJ, FRI 2003. (275 strani)
- Jernej Kozak:
Podatkovne strukture in algoritmi, LJ, DMFA 1984, 1997. (388 strani)
- Boštjan Vilfan:
Osnovni algoritmi, LJ, FRI 1998, 2002. (236 strani)
- S. S. Skiena, M. A. Revilla: Programming
Challenges. Springer, 2003.
Knjiga vsebuje kratke opise raznih algoritmov in pristopov k snovanju problemov, poleg tega pa še precej nalog z arhiva na Univerzi v Valladolidu. - Steven Halim: Competiive Programming 3. 2013.
- Antti Laaksonen: Competitive Programmer's Handbook. 2017.
- A. Shen: Algorithms and Programming — Problems and Solutions. Birkhäuser, 1997.
- Donald E. Knuth: The Art of Computer Programming. 3 vols., Addison-Wesley, 1997–8.
- Z. Michalewicz, D. B. Fogel: How to Solve It: Modern Heuristics. Springer, 2004.
- Drago Bajc in Tomaž Pisanski: Najnujnejše o grafih. LJ, DMFA 1985.
- R. J. Wilson, J. J. Watkins: Uvod v teorijo grafov. LJ, DMFA 1997.
Poljuden uvod v teorijo grafov, primeren tudi za srednješolce.
Knjige tipa "uvod v programiranje"
Za začetnike sta predvsem priporočljivi prvi knjigi s sledečega spiska, saj imata obsežen uvod v to, kaj programiranje sploh je, kaj so algoritmi, kako se rešuje naloge in zelo sistematično obdelavo programskega jezika pascal. Nekatera poglavja (predvsem uvodna) so sicer že nekoliko zastarela, vendar sta knjigi še vedno dobra osnova za bodoče programerje. Za osnovno znanje s področja algoritmov in podatkovnih struktur pa je primerna kakšna knjiga z vrha zgornjega spiska.
- Ivan Bratko, Vladislav Rajkovič:
Računalništvo s programskim jezikom pascal, LJ, DZS 1989. (289 strani)
Pregleden uvod v programiranje (od 8. poglavja naprej!).
- Bojan Mohar, Egon Zakrajšek:
Uvod v programiranje, DMFA, LJ 1982. (168 strani)
Sistematičen uvod v programiranje s pascalom.
- Ljubomir Kostrevc: Uvod v programiranje v programskem okolju Delphi, LJ, Pasadena 2000. (406 strani)
Precejšen poudarek na grafičnem uporabniškem vmesniku; knjiga primerna kot nadgradnja ene izmed zgornjih knjig o pascalu.
- Matija Lokar:
Prvi koraki v programski jezik C, LJ, DMFA 2000. (~160 strani)
Kratek, razumljiv uvod v C.
- Žiga Turk:
Programski jezik C, LJ, ZOTKS 1987 (205 strani)
- Brian W. Kernighan, Dennis M. Ritchie:
Programski jezik C, LJ, FER 1991. Prev. Leon Mlakar. (240 strani)
- Franc Bratkovič:
Uvod v C, LJ, FER 1994. (162 strani)
- Richard P. Halpern: C for yourself: Learning C using experiments, Oxford University Press, 1997 (224 strani)
Prijazen uvod v C z veliko primeri in "eksperimenti" tipa "poskusi sam".
- Viljem Žumer, Janez Brest:
Strukturirano programiranje v C++, MB, FERI, 2001. (213 strani)
- Viljem Žumer, Janez Brest:
Uvod v programiranje in programski jezik C++, MB FERI 2002. (146 strani)
- B. W. Kernighan, R. Pike: The Practice of Programming.
- A. Engel: Exploring Mathematics with Your Computer. AMS, 1997.
- F. Glassborrow: C++ od začetka. LJ, Pasadena, 2007. (415 strani)
Knjige o konkretnih programskih jezikih
- D. Gookin: C for Dummies.
- S. R. Davies: C++ for Dummies.
- Bjarne Stroustrup: The C++ Programming Language. 3. izd., Addison-Wesley, 1997.
- S. B. Lippman et al.: C++ Primer. Addison-Wesley, 2005.
- Uroš Mesojedec, Borut Fabjan: Java 2, temelji programiranja. LJ, Pasadena, 2004.
- N. M. Josuttis: The C++ Standard Library. Addison-Wesley, 1999.
- B. W. Kernighan, D. M. Ritchie: The C Programming Language. Prentice Hall, 1998.
- Cay S. Horstmann: Mastering C++: an introduction to C++ and object-oriented programming for C and Pascal programmers. Wiley, 1995. Predvsem za tiste, ki že znajo programirati v C-ju in bi radi spoznali C++, tako da ne razlaga osnov programiranja, ampak preide takoj k C++.
Vaje
Prvih nekaj knjig s spiska vsebuje naloge s področja algoritmov in podatkovnih struktur in so po težavnosti večinoma podobne nalogam v prvi in drugi skupini na tekmovanju, ostale pa so namenjene utrjevanju znanja programskih jezikov.
- Vladimir Batagelj et al.:
Enajsta šola računalništva, LJ, DMFA 1988. (396 strani)
Zbirka nalog s prvih enajstih republiških tekmovanj. Vse naloge so rešene v pascalu in dobro razložene. Dobro uvodno poglavje o reševanju problemov.
- Maja Azarov Domajnko, Marko Kastelic:
Algoritmi in programski jeziki: zbirka rešenih nalog za 1. letnik srednjih šol, Ljubljana, Tehniška založba Slovenije, 1997, 1999, 2001, 2002.
- Tea Lončarič:
Algoritmi in programski jeziki: zbirka rešenih nalog za 2. letnik srednjih šol, Ljubljana, Tehniška založba Slovenije, 1997, 1999, 2002.
- Jernej Kozak, Matija Lokar:
Naloge iz računalništva, LJ, DMFA 1988. (231 strani)
Tudi teoretične naloge. - Miro Gradišar: Programiranje v pascalu: zbirka vaj, LJ, DMFA in Kranj: Visoka šola za organizacijo dela, 1983. (80 strani)
- Martin Juvan, Matjaž Zaveršnik: Vaje iz programiranja: C, C++ in Mathematica, LJ, Študentska založba, 2000. (117 strani)
- Martin Juvan, Matija Lokar:
121 nalog iz Pascala, LJ, DMFA 1992. (126 strani)
- Martin Juvan, Matjaž Zaveršnik:
C naj bo: zbirka rešenih nalog, LJ, DMFA 1999. (249 strani)
- Iztok Fajfar:
Praktično programiranje v jeziku C, LJ, FE 1998. (70 strani)
- Ian Parberry, William Gasarch: Problems on Algorithms, 2004.
Zbirka bolj teoretičnih nalog. - Ahmed Shamsul Arefin: Art of Programming Contest.
- Antti Laaksonen: Competitive Programmer's Handbook.
Priporočamo tudi našo elektronsko zbirko rešenih nalog s srednješolskih računalniških tekmovanj v letih 1988–2004.
Glej tudi: spisek potencialno zanimivih spletnih strani.