Start to program – Wat is programmeren?

print

Inhoud


Inleiding

Waarom zou ik in godsnaam leren programmeren?

 

Overtuigd, gemotiveerd? Lees dan verder en zet uw eerste stappen in Start to program.


Wat is een algoritme?

Elke dag moet u meerdere taken uitvoeren, meerdere problemen oplossen:

  • Hoe komt u het snelst op uw werk?
  • Hoe zet u de televisie op de gewenste zender?
  • Hoe stuurt u een sms’je?

U staat bij het uitvoeren van deze taken wellicht niet meer stil. U hebt ze al zo vaak uitgevoerd, ze zijn als het ware voorgeprogrammeerd in uw systeem.

Als u een complexere taak wilt uitvoeren, een nieuw probleem wilt oplossen, zult u dit wellicht eerst grondig overdenken (analyseren). U stelt u wellicht de volgende vragen:

  • Wat wilt u bereiken, welk probleem wilt u oplossen? Bijvoorbeeld, u wilt tijdig op uw nieuw werk geraken.
  • Wat is de beginsituatie? Welke gegevens hebt u om mee te beginnen? Bijvoorbeeld, u kent de locatie van uw woonplaats, vanwaar u wilt vertrekken, en de locatie van uw nieuw werk. U beschikt over een eigen wagen.
  • Welke stappen moet u zetten om vanuit de beginsituatie het gewenste doel te bereiken? Bijvoorbeeld, de route uitstippelen van bij u thuis tot aan uw nieuw werk. U maakt hiervoor gebruik van tools zoals Google Maps.
  • U zult wellicht de stappen uittesten en waar nodig corrigeren. Bijvoorbeeld, de uitgestippelde route van bij u thuis tot aan uw nieuw werk al eens afleggen voor uw eerste werkdag.

Uiteindelijk zult u ook deze taak, zonder veel nadenken, uitvoeren en zal ze als het ware voorgeprogrammeerd worden in uw systeem.

Om taken uit te voeren, problemen op te lossen, moet u een oplossingsmethode vinden die in alle mogelijke gevallen een juist resultaat oplevert. Een dergelijke oplossingsmethode noemt men een algoritme. Een algoritme is een voorschrift opgebouwd uit een eindig aantal stappen/instructies. Deze instructies moeten aangeven hoe vanuit een bepaalde beginsituatie een vooropgesteld doel kan bereikt worden.

Een algoritme is een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd doel leidt.

Algoritmes staan op zich los van een computerprogramma. Laat ons nog eens een voorbeeld uit het dagdagelijkse leven nemen. U hebt, voor uw kinderen of wie weet voor uzelf, een legoset gekocht.

  • Wat wilt u bereiken, wat wilt u oplossen?
    U wilt de gekochte legoset bouwen.
  • Wat is de beginsituatie? Welke gegevens hebt u om mee te beginnen?
    De meegeleverde legoblokjes.
  • Welke stappen moet u zetten om vanuit de beginsituatie het gewenste doel te bereiken?
    Deze vindt u in de meegeleverde handleiding.
  • U zult wellicht de stappen uittesten en waar nodig corrigeren.
    U test of de gebouwde lego set wel degelijk “werkt”.

Wat is in het bovenstaande voorbeeld het algoritme?

Wel… de handleiding! De handleiding bevat een eindige reeks instructies die vanuit een gegeven beginsituatie naar een beoogd doel leidt. U had geen computer nodig maar u hebt toch een algoritme uitgevoerd (u zou eventueel kunnen stellen dat uzelf de rol van computer op u genomen heeft door het algoritme uit te voeren).

 

An algorithm is a plan, a set of logical step-by-step instructions designed to solve a problem.


Wat is programmeren?

Een algoritme moet nauwkeurig beschreven zijn en moet op een exacte manier aangeven hoe een taak moet worden uitgevoerd, een probleem moet worden opgelost. Als het algoritme geschreven is in een taal die de computer begrijpt, en uitgevoerd wordt op een computer (of bij uitbreiding andere apparaten zoals smartphones, tablets,…), dan spreken we van een computerprogramma. Een computerprogramma is een opeenvolging van instructies met als doel een specifieke taak met een computer uit te voeren.

Programmeren is het schrijven van een computerprogramma, een concrete reeks instructies die een computer uitvoert.

Programmeren wordt in het algemeen niet direct in machinetaal gedaan, maar in een programmeertaal. De programmacode die wordt geschreven heet broncode. Broncode dient niet enkel geschreven te worden maar moet ook getest, gedebugd (fouten opsporen en oplossen) en onderhouden worden. Dit is de taak van een programmeur.

Een programmeur ontwerpt, schrijft, test, debugt en onderhoudt de broncode van een computerprogramma in een gekozen programmeertaal.

Voorbeeld: omrekening van graden Celsius naar Fahrenheit

U moet de omrekening maken van graden Celsius naar graden Fahrenheit.

Wat wilt u bereiken, oplossen?

  • Graden Celsius omzetten naar graden Fahrenheit

Wat is de beginsituatie, wat is er gegeven?

  • Graden Celsius
  • De omrekenformule: F = (C * 1,8) + 32

Wat is het algoritme, wat is de reeks instructies die vanuit een gegeven beginsituatie naar het beoogde doel leidt?

  1. Haal het gegeven aantal graden Celsius op.
  2. Bereken met de omrekenformule het aantal graden Fahrenheit.
  3. Geef het berekende aantal graden Fahrenheit weer.

Indien u deze instructies wilt laten uitvoeren door de computer zal u dit moeten programmeren in een door u gekozen, geschikte programmeertaal.


Fasen in het ontstaan van een computerprogramma

1. De probleemdefinitie

  • Definieer, omschrijf de taak, het probleem.
  • Bepaal de doelstellingen van het computerprogramma. Bepaal wat er, en wat er niet, moet geprogrammeerd worden.
  • Wat is de beginsituatie, welke gegevens zijn er reeds beschikbaar?
  • Welke informatie moet het computerprogramma uiteindelijk leveren?
  • Welke gegevens zijn nodig om de doelstellingen te bereiken?

2. De probleemanalyse (het algoritme opstellen)

  • Analyseer de wegen die naar de oplossing leiden en kies de beste oplossingsmethode. Doe dit door middel van computationeel denken.
  • Bepaal via welke bewerkingen/berekeningen het programma uit de aanwezige beginsituatie de vereiste doelstellingen bereikt.
  • Bepaal welke problemen er zich kunnen voordoen en hoe deze opgevangen dienen te worden.
  • Analyseer de gegevens die eventueel in de databank moeten komen (data-analyse).
  • Het te programmeren algoritme wordt schematisch weergegeven. Gekende technieken zijn stroomschema’s (flow charts), programmastructuurdiagrammen (Nassi-Schneiderman of PSD-diagrammen),…

3. Het schrijven van het computerprogramma

  • De analyse, het schema, wordt vertaald, geprogrammeerd,in de specifieke programmeertaal.
  • De databank, de nodige invoer- en uitvoerschermen worden ontworpen, de afdrukken worden gegenereerd, …

4. Het testen van het computerprogramma

  • Het testen op syntactische fouten, fouten tegen de syntax/schrijfwijze van de programmeertaal, gebeurt tijdens het programmeren zelf.
  • In deze fase dient vooral getest op logische fouten en op alle mogelijke uitzonderingen die het programma in problemen zouden kunnen brengen.

5. Het documenteren van het programma

  • Ook hier geldt dat tijdens het schrijven van het programma reeds de nodige commentaar aan de programmeercode moet worden toegevoegd.
  • In deze fase wordt een documentatiemap samengesteld die vooral tot nut heeft het programma later gemakkelijk te kunnen aanpassen. Deze map bevat o.a. de probleemdefinitie, de probleemanalyse, de schema’s en eventueel de broncode.
  • Er dient, waarschijnlijk, een gebruikershandleiding geschreven te worden.

Deze 5 fasen zijn een vereenvoudigde benadering. Voor een meer uitgebreide benadering verwijs ik u bijvoorbeeld naar Systeemontwikkeling volgens SDM (watervalmethode), Systeemontwikkeling volgens DSDM of Agile Software Development (Scrum). De bespreking van deze uitgebreidere technieken valt echter buiten de doelstellingen van deze cursus.


Kenmerken van een goed programma

Ongeacht de programmeeromgeving of de programmeertaal die gebruikt werd dient een goed programma aan een aantal eisen te voldoen. De belangrijkste zijn:

  • Efficiënt/Performant: hoe minder het programma het systeem belast (processortijd, geheugen, opslagruimte, bandbreedte,…) hoe beter.
  • Betrouwbaar: de algoritmen die de computer gebruikt moeten kloppen, bugs (programmeerfouten of beperkingen) moeten vermeden worden en incorrecte invoer van gegevens dienen vermeden of opgevangen te worden.
  • Robuust: hoe anticipeert het programma op mogelijke problemen die niet ontstaan zijn door het programma zelf maar wel door externe factoren als bv. gebrek aan geheugen, het uitvallen van de internetverbinding, corrupte data,…?
  • Gebruiksvriendelijk: de ergonomie van het programma moet het de gebruiker mogelijk maken om op een snelle, correcte maar ook aangename manier met het programma te werken.
  • Overzetbaar: de waaier aan hardware en besturingssystemen waarop het programma kan draaien dient bij voorkeur zo ruim mogelijk te zijn.
  • Onderhoud: het gemak waarmee een programma kan aangepast worden of overgezet naar nieuwe toekomstige omgevingen.

Hoor het eens van iemand anders

En voor wie toch nog wat extra motivatie nodig heeft…

 

 


Behandelde Basiscompetenties uit de module ICT Programmeren – Start to program

  • IC BC228 – kent de verschillende principes en onderdelen op basis waarvan een programma kan opgebouwd worden
  • IC BC023 – kan ICT aanwenden om problemen op te lossen

Algorithm

Word used by programmers when…

they do not want to explain what they did.

Geef een reactie

  • Abonneer je op deze website d.m.v. e-mail

    Voer je e-mailadres in om je in te schrijven op deze website en e-mailmeldingen te ontvangen van nieuwe berichten.