Help! De help helpt niet...
Vind je in de online documentatie niet meteen wat je zoekt? Wil je wat meer achtergrondinformatie, zonder je daarvoor suf te staren op het - inmiddels dansende - scherm?
Wil je op je gemak vector / list / queue / set met elkaar vergelijken zonder je scherm in steeds kleiner wordende schermpjes op te delen? Dan verwijzen we je graag naar een
fantastische uitvinding... de boekdrukkunst.
Ziehier enkele werken die een C++-programmeur én algoritme-gebruiker (beginnend tot gevorderd) van pas kunnen komen, met enkele (persoonlijke) commentaren bij. Stap gerust de bib binnen, steek je licht op bij de betere boekhandel, spreek onderling af wie wat wel 's wil uitlenen (in ruil voor), en vooral... geniet van net dát beetje uitleg waar je op zat te wachten.
C++ en STL
De eerste twee werken zijn standaardwerken voor elke C++-programmeur. Heb je liever iets lichters om mee te beginnen, kijk dan verder in de lijst.
Laat je ook niet ontmoedigen door het grote aantal C++-boeken op de markt (en in deze lijst): ééntje op je werktafel hebben staan, volstaat ruimschoots om al een heel stuk wijzer te worden!
The C++ Programming Language, 3d ed, Stroustrup, Addison Wesley Longman, ISBN 0-201-88954-4
- Sterk punt:
Hét naslagwerk voor C++, van de hand van de ontwikkelaar van C++.
- Zwak punt:
Niet echt geschikt als introductie (beetje té volledig).
C++ Primer, Lippman & Lajoie, Addison Wesley, ISBN 0-201-82470-1
- Sterk punt:
Zeer degelijk naslagwerk, iets lichter op de hand (enkel in figuurlijke zin) dan Stroustrups werk.
Zeer uitgebreide bespreking van STL en generische algoritmes (inclusief alfabetische lijst achteraan in het boek).
Voorts alles wat je nog moet weten over C++ (templates, operator overloading, con-/destructor,...).
- Algemeen:
Zowel naslagwerk als tekstboek.
C++ from the beginning, Jan Skansholm, Addison Wesley, ISBN 0-201-72168-6
- Sterke punten:
Doorheen het boek tabellen die de mogelijkheden van de STL standaard klassen (string, vector, list, deque) in een duidelijk overzicht bundelen.
Achteraan het boek een overzicht van alle standaard algoritmes in C++, met telkens een beschrijving van het gebruik en een voorbeeld.
- Zwak punt:
Vooral in de voorbeeldcode vind je wel 's inconsequenties of typfouten (die een aandachtige lezer er echter zó uithaalt).
- Algemeen:
Rustige vormgeving die het lezen aangenaam maakt, voorbeelden niet te lang uitgesponnen, nadruk op vlotte uitleg. Goed als leerboek en naslagwerk (vooral om STL-mogelijkheden op te zoeken).
Core C++, A Software Engineering Approach, Victor Shtern, Prentice Hall PTR, ISBN 0-13-085729-7
- Algemeen:
Focust op object georiënteerde aanpak: veel informatie (constructor, destructor, initialiser list, overloading, overerving, virtuele functies, templates,...). Zelfs korte uitleg over UML. Echter geen STL.
C++ for Java Programmers, Mark Allen Weiss, Pearson Prentice Hall, ISBN 0-13-191163-5
- Sterk punt:
Dun boekje dat focust op verschillen tussen Java en C++.
- Zwak punt:
STL wordt behandeld in hfdst 10, maar (gezien beknoptheid van het boek) moet je hier niet zoeken naar opsomming van de verschillende mogelijkheden van STL standaardklassen en generische algoritmes.
- Algemeen:
Grasduin hierin als je het fijne wil weten van / problemen hebt met pointers, copyconstructor, destructo, default constructors, memoryleak, to copy or not to copy,... of als je Java blijft mixen met C++.
Problem solving with C++, the object of programming, 4th ed, W. Savitch, Addison Wesley, ISBN 0-321-11347-0
- Sterke punten:
Begint bij het begin.
Programmeertips en valkuilen duidelijk aangegeven.
Na elk hoofdstuk samenvatting, oefeningen (met oplossingen) en programmeerprojecten.
- Zwak punt:
STL niet behandeld (enkel string en vector).
- Algemeen:
Goed als eerste kennismaking met een C++-tekstboek; overloop de programmeertips om snel veel bij te leren.
C++ An introduction to computing (3d ed), Joel Adams & Larry Nyhoff, Prentice Hall, ISBN 0-13-091426-6
- Sterke punten:
Zeer veel voorbeelden en oefeningen.
Achteraan in het boek volledig, zeer bondig overzicht van de STL-klassen string en list (echter geen vector, set, map,...) en enkele bibliotheken (o.a. climits, cmath, cstdlib,...; merk op: allen oude C-bibs).
Veel herhalingen, samenvattingen na elk hoofdstuk, korte "kwisjes".
- Zwak punt:
Minder te gebruiken als naslagwerk, vrij "druk" boek.
Kleine waarschuwing...
... wij staan niet in voor de gebruikte huisstijl in de diverse werken. Wees kritisch!
Algoritmen
Algorithms in C++, 3d ed, R. Sedgewick, ISBN ...
Part 1-4: behandelt groot deel van leerstof 3e jaar (gegevensstructuren, sorteer- en zoekalgoritmes)
Part 5: grafen en graafalgoritmes
- Sterke punten:
Zeer rijk geïllusteerd, zodat je op natuurlijke wijze een 'gevoel' krijgt voor de werking van sorteer-, zoek- en graafalgoritmes.
Veel kleine voorbeelden in de kantlijn zodat je stap voor stap de recursieve / iteratieve werking van een algoritme kan volgen.
- Opgelet!
Het is niet omdat er tekeningen bij staan, dat je - wat betreft algoritmes - plots zonder slag of stoot het licht zal zien. De detailuitwerkingen (die hier, net zoals in de cursussen van 3e en 4e jaar makkelijk enkele bladzijden tekst vragen), dienen nog altijd doorwrocht te worden vóór je op enig fundamenteel en blijvend inzicht mag hopen. Of je je voor deze studie op de cursus, een boek als dit, of op het oorspronkelijke wetenschappelijke artikel baseert, maakt niet veel uit (hoewel.... artikels zijn dikwijls een harde noot om kraken, en heel wat minder didactisch aangepakt dan voornoemde 2 bronnen). Wees ook voorzichtig met informatie op het web: is het betrouwbaar? Volledig? Wie heeft het op het web gezet?
Deze lijst is niet af...
We kijken uit naar jullie commentaar op één van bovenstaande (of andere!) werken. Dit kan gaan van "saai / te simpel / onleesbaar" tot "eindelijk het licht gezien". Veel plezier ermee!