Bouwen: verschil tussen versies
(17 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 4: | Regel 4: | ||
* elementaire bouwstenen (componenten) | * elementaire bouwstenen (componenten) | ||
* manieren om bouwstenen samen te voegen (compositie) | * manieren om bouwstenen samen te voegen (compositie) | ||
** combinatie (Cartesisch product) | ** combinatie (opeenvolging, Cartesisch product) | ||
** herhaling | ** herhaling | ||
** keuze | ** keuze | ||
Regel 10: | Regel 10: | ||
** je kunt deze eigen bouwstenen gebruiken als elementaire bouwstenen | ** je kunt deze eigen bouwstenen gebruiken als elementaire bouwstenen | ||
== Opdrachten == | |||
Op een hoger niveau heb je vaak met andere soorten bouwstenen te maken. Je hebt dan ook een andere vorm van compositie nodig. | |||
Binnen een programmeertaal hebben we vaak met twee niveaus van aggregatie te maken: de normale bouwstenen van de taal, en modules of libraries. De regels voor het samenstellen van een programma met de bijbehorende libraries verloopt heel anders dan het samenstellen van de componenten (functies, objecten, classes, enz) in de taal. | |||
== Voorbeeld: bouwstenen in Javascript == | |||
=== Opdrachten === | |||
* elementaire opdrachten | * elementaire opdrachten | ||
* samenstellen: | * samenstellen: | ||
** opeenvolging | ** opeenvolging (semicolon) | ||
** herhaling | ** herhaling (for, while) | ||
** keuze | ** keuze (if else, case) | ||
* groeperen, naamgeving, abstractie: procedures ( | * groeperen, naamgeving, abstractie: procedures (function) | ||
== Expressies == | === Expressies === | ||
* | * elementaire waarden, variabelen, functie-aanroep | ||
* samenstellen: | |||
** operatoren | |||
** keuze (if) | |||
** herhaling (map, reduce) | |||
* groeperen, naamgeving, abstractie: functie (function) | |||
== Data == | === Data === | ||
* elementaire waarden (Number, Boolean, String, Undefined) | * elementaire waarden (Number, Boolean, String, Undefined) | ||
* samenstellen: | * samenstellen: | ||
** combinatie (Object) | ** combinatie (Object, als Cartesisch product) | ||
** herhaling (Array) | ** herhaling (Array) | ||
** keuze (impliciet: door dynamische typering van variabelen) | ** keuze (impliciet: door dynamische typering van variabelen) | ||
Regel 35: | Regel 45: | ||
Modules, als hoger niveau van combinatie (aggregatie), zou je hier ook onder kunnen rekenen. | Modules, als hoger niveau van combinatie (aggregatie), zou je hier ook onder kunnen rekenen. | ||
=== Verband tussen data en de verwerking daarvan === | |||
De manier waarop data samengesteld is, bepaalt de manier waarop deze data verwerkt wordt. Een herhaling in data, in de vorm van een Array, verwerk je met een herhaling in een expressie (map, reduce), of een herhaling in een opdracht (for, foreach). | |||
== Bouwen in hardware (P.M.) == | |||
== HTML en CSS (P.M.) == | |||
In HTML en CSS heb je maar beperkte mogelijkheden om te bouwen. In het bijzonder heb je geen mogelijkheden voor abstractie: je kunt niet je eigen componenten maken. | |||
: Hier lijkt verandering in te komen: in HTML5 wordt gewerkt aan voorstellen voor het maken van eigen elementen, die je op dezelfde manier kunt gebruiken als de ingebouwde elementen. | |||
== Bouwen op het niveau van het web == | |||
In het web kun je een toepassing maken op basis van toepassingen van anderen. Je kunt bijvoorbeeld in je toepassing de kaarten van Google gebruiken (Google Maps), en de postcode-gegevens van postcode.nl. | |||
Het resultaat is een netwerk van toepassingen en combinaties daarvan. | |||
[[Category: Concepten]] | |||
[[Category: Werkwijzen]] |
Huidige versie van 30 nov 2014 om 10:20
Bouwen en bouwstenen
In de Informatica "bouwen" we systemen: hardware, software, programma's, datastructuren. Bij dit bouwen hebben we te maken met:
- elementaire bouwstenen (componenten)
- manieren om bouwstenen samen te voegen (compositie)
- combinatie (opeenvolging, Cartesisch product)
- herhaling
- keuze
- groeperen van bouwstenen, naamgeving, abstractie (interface) - maken van eigen bouwstenen (componenten)
- je kunt deze eigen bouwstenen gebruiken als elementaire bouwstenen
Op een hoger niveau heb je vaak met andere soorten bouwstenen te maken. Je hebt dan ook een andere vorm van compositie nodig.
Binnen een programmeertaal hebben we vaak met twee niveaus van aggregatie te maken: de normale bouwstenen van de taal, en modules of libraries. De regels voor het samenstellen van een programma met de bijbehorende libraries verloopt heel anders dan het samenstellen van de componenten (functies, objecten, classes, enz) in de taal.
Voorbeeld: bouwstenen in Javascript
Opdrachten
- elementaire opdrachten
- samenstellen:
- opeenvolging (semicolon)
- herhaling (for, while)
- keuze (if else, case)
- groeperen, naamgeving, abstractie: procedures (function)
Expressies
- elementaire waarden, variabelen, functie-aanroep
- samenstellen:
- operatoren
- keuze (if)
- herhaling (map, reduce)
- groeperen, naamgeving, abstractie: functie (function)
Data
- elementaire waarden (Number, Boolean, String, Undefined)
- samenstellen:
- combinatie (Object, als Cartesisch product)
- herhaling (Array)
- keuze (impliciet: door dynamische typering van variabelen)
- groeperen, naamgeving, abstractie: speciale manier van gebruik van Object
Modules, als hoger niveau van combinatie (aggregatie), zou je hier ook onder kunnen rekenen.
Verband tussen data en de verwerking daarvan
De manier waarop data samengesteld is, bepaalt de manier waarop deze data verwerkt wordt. Een herhaling in data, in de vorm van een Array, verwerk je met een herhaling in een expressie (map, reduce), of een herhaling in een opdracht (for, foreach).
Bouwen in hardware (P.M.)
HTML en CSS (P.M.)
In HTML en CSS heb je maar beperkte mogelijkheden om te bouwen. In het bijzonder heb je geen mogelijkheden voor abstractie: je kunt niet je eigen componenten maken.
- Hier lijkt verandering in te komen: in HTML5 wordt gewerkt aan voorstellen voor het maken van eigen elementen, die je op dezelfde manier kunt gebruiken als de ingebouwde elementen.
Bouwen op het niveau van het web
In het web kun je een toepassing maken op basis van toepassingen van anderen. Je kunt bijvoorbeeld in je toepassing de kaarten van Google gebruiken (Google Maps), en de postcode-gegevens van postcode.nl.
Het resultaat is een netwerk van toepassingen en combinaties daarvan.