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:
- 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.
- 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.
- 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!
- 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.
- 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.
- 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
- Dictaat:
Dit is verkrijgbaar tijdens de colleges en ook (in
PDF-formaat)
via deze webpagina.
Advies: tijdens het college is het gratis te verkrijgen, dat is goedkoper
dan het zelf te printen; je hebt dan meteen
de "juiste" versie.
- Boek:
L. Ammeraal, Basiscursus C++, derde herziene uitgave,
Academic Service. Kosten: circa 15 euro.
Hieruit: Hoofdstuk 1, Hoofdstuk 2 (NIET: p. 23 en de eerste helft van 2.6
(de switch-instructie dus weer wel)),
Hoofdstuk 4 (NIET: 4.3, 4.5 - 4.8) en
Hoofdstuk 5 (alleen 5.1).
De rest van het boek, waaronder Hoofdstuk 3,
dient als naslagwerk; het is nuttig hiervan
bepaalde gedeeltes eens door te lezen.
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