Inleiding programmeren in C++, voor startende ondernemers in de ICT

In het najaar van 2002 is de cursus Inleiding Programmeren in C++ gegeven, speciaal bestemd voor deelnemers aan de opleiding voor startende ondernemers in de ICT aan de Universiteit Leiden. Docent was Rudy van Vliet. Hij is te vinden op kamer 150 van het gebouw van Wiskunde en Informatica, bereikbaar onder telefoonnummer (071) 527 7050, of per email rvvliet@liacs.nl. Voor deze cursus was geen voorkennis vereist.
Roostering: dinsdagmiddagen, van 14.00 tot 17.00 uur. Data: 24 september, 1, 8, 15 en 29 oktober, 5 november 2002. In de herfstvakantie (22 oktober) was er dus geen college. Plaats: gebouw van Wiskunde en Informatica, Niels Bohrweg 1, Leiden; van 14.00 (precies) tot 15.45 uur college in zaal 409 (eerste etage van het rechter gedeelte van het gebouw); van 16.00 tot 17.00 uur werkcollege in de naastgelegen computerzaal 411.
Er was geen tentamen bij dit vak. De actieve deelname van de cursisten werd getest middels een programmeeropdracht.

Voor meer over C++: zie het eerstejaars college Programmeermethoden uit de studie Informatica.

Inhoud

Het doel van het vak is het leren omgaan met een computersysteem (Windows met Visual C++), en meer in het bijzonder het leren programmeren in de programmeertaal C++.
Allereerst worden de beginselen van C++ uitgelegd, en kunnen kleinere programma's geschreven worden. Vervolgens worden ook grotere programma's gefabriceerd; hierbij worden uiteraard functies gebruikt. Ook komen bijvoorbeeld sorteeralgoritmen aan de orde (als de tijd het toelaat). De nadruk ligt op het schrijven van goed gedocumenteerde en gestructureerde software.

Opzet van de colleges:

  1. dinsdag 24 september 2002
    Introductie apparatuur, compiler (Visual C++);
    integers, floats, rekenkundige operaties, if, for, while, do, aan de hand van enkele voorbeeld programma's, integers.cpp en integers2.cpp (integers), floats.cpp (floats), kwadraatlussen.cpp (lussen).
    Werkcollege: in computerzaal onder begeleiding oefenen met Visual C++.
    Na afloop kan hopelijk iedereen zelf een klein eigen C++-programma op de computer maken en compileren, bijvoorbeeld een programma dat een paar getallen vraagt en bij elkaar optelt.
    Opgaven: `hello world', 2, 3 en 5 uit het dictaat + een extra opgave.
    Voor de volgende keer moet je het dictaat tot en met paragraaf 3.2 en (globaal) hoofdstuk 1 en 2 van het boek doorlezen.
  2. dinsdag 1 oktober 2002
    Boolese operaties en variabelen; overeenkomsten en verschillen tussen for-, while- en do-lussen aan de hand van een voorbeeld programma lussen2.cpp. Voor uitleg bij de for-lus, zie hier.
    Werkcollege: in computerzaal onder begeleiding werken aan extra opgave.
    Opgaven: de bovengenoemde extra opgave; lukt dat niet, probeer dan eerst een andere extra opgave; vervolgens opgaven 6, 7, 8, 11 uit het dictaat.
    Voor de volgende keer hoef je niets extra's te lezen. Probeer wel om datgene wat je al had moeten lezen, te begrijpen.
  3. dinsdag 8 oktober 2002
    Switch, functies, waardeparameters, referentieparameters, aan de hand van voorbeeld programma's veelif.cpp en switch.cpp (switch), kwadraatfunctie.cpp en functies.cpp (functies), wissel.cpp en voor de liefhebber alias.cpp (waarde- en referentieparameters).
    Uitdelen eerste programmeeropdracht.
    Werkcollege: in computerzaal onder begeleiding werken aan: opgave 10 + eerste programmeeropdracht.
    Voor de volgende keer moet je paragraaf 3.3 uit het dictaat, paragraaf 4.1 en 4.4 uit het boek, en globaal paragrafen 4.2, 4.3 en 4.5 uit het boek gelezen hebben. Verder moet je de volgende keer de eerste programmeeropdracht (deels?) inleveren.
    Geschikte opgaven uit het dictaat zijn verder: 9, 16, 17(a)-(c), 18, 19. In de laatste vier opgaven wordt gesproken over `globale variabelen'. Dit zijn variabelen die niet binnen een functie zijn gedeclareerd (zelfs niet binnen de `main'), maar bijvoorbeeld direct na `using namespace std;'. Zulke variabelen zijn in principe in het hele programma, in iedere functie te gebruiken (en te wijzigen).
    Natuurlijk kun je ook nog kijken naar de opgaven die bij de vorige week stonden!
  4. dinsdag 15 oktober 2002
    Nadere bespreking van definitie en aanroep van functies, aan de hand van opgave 10 uit het dictaat en de eerste programmeeropdracht (een functie `Schrikkeljaar').
    Werkcollege: daadwerkelijke implementatie van de besproken functies.
    Voor de volgende keer moet je de eerste programmeeropdracht helemaal maken. U leest het goed: de hele opdracht.
    Verder is het zinvol om nog eens te kijken naar de opgaven die bij de vorige week stonden, over lussen (opgave 9) en over functies (de andere opgaven).
    Om te oefenen met functies, kun je ook kijken naar de volgende extra opgave.
  5. dinsdag 29 oktober 2002
    Het type `char', de relatie met het type `int', binaire representatie van waardes, het type `double' en globale variabelen, aan de hand van de ASCII-tabel (alle karakters op een rijtje) en voorbeeldprogramma's karwaardes.cpp en zetomkar.cpp (relatie tussen de types `char' en `int'), tweemachten.cpp (eindige binaire representatie van gehele getallen) en typvar.cpp (alle types bij elkaar).
    Hierbij kun je bestuderen: paragraaf 2.2 uit het boek tot en met blz. 22 (over de types) en paragraaf 1.4 uit het boek tot en met blz. 11 (over binaire representatie).
    Werkcollege: opgave 16 uit het dictaat.
  6. dinsdag 5 november 2002
    Arrays, aan de hand van een voorbeeldprogramma lifo.cpp.
    Hierbij kun je bestuderen: paragraaf 5.1 uit het boek.
    Werkcollege: in computerzaal onder begeleiding werken aan de eerste (en enige) programmeeropdracht.
De genoemde opgaven komen uit het dictaat, en kunnen in de week aansluitend op het college in eigen tijd gemaakt worden. Van veel opgaven staan de uitwerkingen achter in het dictaat.

Materiaal

Practicum

Bij het vak moeten programmeropgaven worden gemaakt. Er zijn enkele kleinere; deze worden tijdens de werkcolleges gemaakt. Aanwezigheid bij de zes werkcolleges is verplicht! Tevens moet er een grotere opdracht worden gemaakt, in te leveren op 29 oktober: Hiervoor moet veelal in de eigen tijd gewerkt worden! Deze opdracht mag individueel of in tweetallen (maar niet in drie- of meertallen ...) gemaakt worden.
Nu het college ten einde is en iedereen de eerste programmeeropdracht ongeveer af heeft, is het wellicht aardig om de implementatie van de docent te zien: hoeoudbentu.cpp.

Met dank aan Walter Kosters.
Rudy van Vliet, voor al uw knip en plakwerk.
Vragen en/of opmerkingen kunnen worden gestuurd naar: rvvliet@liacs.nl.

Laatste wijziging: 7 november 2002 - http://www.liacs.nl/home/rvvliet/progsoil.html