Programmeren Les 1

Programmeren Les 1
1 / 34
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavo, vwoLeerjaar 4

In deze les zitten 34 slides, met interactieve quizzen, tekstslides en 1 video.

time-iconLesduur is: 60 min

Onderdelen in deze les

Programmeren Les 1

Slide 1 - Tekstslide

Leerdoelen

•    Je kent verschillende generaties computertalen.
•    Je weet het verschil tussen lagere en hogere programmeertalen.
•    Je weet waarvoor een compiler wordt gebruikt.
•    Je kent verschillende toepassingsgebieden van programmeertalen.
•    Je kunt van een programmeertaal aangeven waarvoor deze wordt gebruikt.

Slide 2 - Tekstslide

Het doolhof
In de jaren 80 van de vorige eeuw was er op tv een spelshow.

De speler die door het doolhof moet, ziet alleen een blauw vlak. Zijn medespeler geeft instructies. Dit wordt net zo gegeven alsof je een programma schrijft. De lijnen mogen niet aangeraakt worden. 

Slide 3 - Tekstslide

Slide 4 - Video

Ada Lovelace was de eerste vrouw die een machine-algoritme beschreef in 1843, bijna een eeuw voor de eerste echte computers er waren.
Ze kon dat alleen doen in een taal die de computer zou kunnen begrijpen. Gewoon onze eigen taal gebruiken is leuk maar de computer kan daar niets mee natuurlijk.

Slide 5 - Tekstslide

Programmeertaal
  • een serie opdrachten die op een dusdanige wijze geschreven zijn, dat de compiler het maar op 1 manier kan lezen.
  • ingewikkelde opdrachten simpel te omschrijven
  • vereenvoudiging bij veelgebruikte (complexe) opdrachten

Slide 6 - Tekstslide

programmeren op binair niveau
  • waar staat het getal in het geheugen?
  • beschikbaar maken voor de processor
  • resultaat op de juiste plek in het geheugen

Slide 7 - Tekstslide

In een programmeertaal wordt het (meestal) echter gewoon geschreven, zoals je dat vroeger op de basisschool al geleerd hebt.
Een moderne computertaal lijkt tegenwoordig meer op een natuurlijke taal zoals Nederlands, Engels of Duits, maar dat was niet altijd het geval.

Slide 8 - Tekstslide

In het begin moesten programmeurs nog daadwerkelijk een schakelaar aan of uit zetten om te programmeren.
Ondertussen hebben we zeer uitgebreide talen om hele geavanceerde software te creëren.

Slide 9 - Tekstslide

Generaties
  1. Machinetaal
  2. Assembleertaal
  3. Procedurele talen
  4. Functionele talen
  5. Probleemoplossende talen

Slide 10 - Tekstslide

1. Machine code
  • Bits & Bytes
  • Complex
  • Foutgevoelig
  • Langzaam
  • Processor afhankelijk

Slide 11 - Tekstslide

Het enige wat men kon met machinetaal waren simpele taken programmeren:
•    Optellen
•    Vergelijken
•    Herhalen
Maar ondanks dat het simpele taken zijn, kon de computer wel miljoenen van dit soort operaties per seconde uitvoeren.

Slide 12 - Tekstslide

2. Assembleertaal
  • Symbolische weergave van machinetaal
  • Elke regel 1 instructie
  • Leesbaarder
  • iets minder foutgevoelig
  • het programmeren zal sneller gaan

Slide 13 - Tekstslide

Maar programmeren in deze taal valt nog steeds niet mee en wordt eigenlijk alleen gedaan als er geen alternatieven zijn.
Een assembleer programma is net als een binair programma (machinetaal) nog steeds gebonden aan de instructieset van een specifieke processor.  

Slide 14 - Tekstslide

3. Procedurele talen
  • een ‘normale’ programmeertaal.
  • grotere mate van abstractie ten opzichte van de machinecode.
  • De opdrachten zijn vaak een soort combinatie van wiskundige expressies en korte Engelse zinnen.

Slide 15 - Tekstslide

Daarnaast worden programma’s in deze talen opgedeeld in stukjes zodat het overzichtelijker blijft en delen die vaker nodig zijn, makkelijker te hergebruiken zijn. Deze stukjes noemen we procedures (andere benamingen zijn ook wel methodes en functies).

Slide 16 - Tekstslide

Object georiënteerde talen
Deze talen maken nog steeds gebruik van procedures, maar delen een programma ook op in objecten. In plaats dat een procedure nu bereikbaar is voor het hele programma, is deze in principe alleen te gebruiken door het object waar het bij hoort. Bijna alle veelgebruikte talen zijn tegenwoordig object georiënteerd, zoals:
  • C++
  • C# (C Sharp)
  • Python
  • Java

Slide 17 - Tekstslide

Functionele talen
  • de code niet meer specifiek voor een bepaalde processor.
  • De programmeur schrijft stap-voor-stap instructies, die gezamenlijk een programma vormen.
 

Slide 18 - Tekstslide

Deze instructies worden procedures genoemd. Maar zoals wij weten, kan een computer eigenlijk alleen maar machinecode lezen dus moest er een vertaler ontwikkeld worden die de instructies om kan zetten naar bits. Zo’n vertaler heet een compiler.

Slide 19 - Tekstslide

De programma’s in een programmeertaal vanaf de derde generatie kunnen op elke machine uitgevoerd worden. Wat voor processor er ook in zit. Alleen is de compiler wel machine-afhankelijk want die vertaalt de code naar machine code en zoals we gezien hebben hierboven, kan die per type processor anders zijn.

Slide 20 - Tekstslide

  • De instructies worden steeds duidelijker en krachtiger.
  • Hierdoor kan je hetzelfde bereiken met minder code.
  • gericht op een probleem.

Slide 21 - Tekstslide

Dus de programmeur is niet bezig met een programma te schrijven die een probleem oplost maar meer gebruikt hij deze taal om het doel te bereiken van het programma. De computer kan dan zelf bepalen welke reeks instructies daarvoor nodig is.

Slide 22 - Tekstslide

Wanneer we een programma schrijven met een algemeen toepasbare applicatietaal, krijgen we een onoverzichtelijk groot en log programma. De software weet niet van te voren wat er moet gebeurd dus gebruikt het zoveel mogelijk extra instructies en slaat dat op.
Weet je als programmeur al het doel dat het programma moet bereiken dan kan je daar gerichter op coderen waardoor het al een kleiner en overzichtelijk programma wordt.

Slide 23 - Tekstslide

Er zijn veel vierde generatie hulpmiddelen waardoor je als programmeur snel een toepassing of bepaald gedeelte van die toepassing kan ontwikkelen.

Slide 24 - Tekstslide

Denk bijvoorbeeld aan een schermgenerator zoals in de vorige slide. Dit is een screenshot van Visual Basic for Applications.

Met behulp van zo’n schermgenerator kan je op eenvoudige wijze de lay-out van een computerprogramma ontwerpen.

Er zijn ook rapportgeneratoren waarmee je snel vanuit de database een overzicht kan halen.

Slide 25 - Tekstslide

Je kan ook een programma ontwikkelen die puur een database bevraagt.
Een van dit soort talen is SQL. Hier gaan we in het examenjaar uitgebreid verder mee.

Slide 26 - Tekstslide

Probleemoplossende talen
Tot nu toe hebben we eigenlijk altijd een algoritme geschreven als programmeur. Een algoritme is zoals je weet ook een lijst met instructies, net als een programma die instructies bevat voor de computer om te volgen.
In deze generatie schrijft de programmeur juist geen algoritme maar beschrijft het probleem zelf, met een aantal bijbehorende beperkingen.

Slide 27 - Tekstslide

Internet of Things en kunstmatige intelligentie zijn twee voorbeelden van gebieden waar deze taal voor gebruikt worden.
In deze taal leert het algoritme zichzelf programmeren, denk bijvoorbeeld aan kunstmatige intelligentie etc.

Slide 28 - Tekstslide

Een voorbeeld van een 5GL taal is Prolog. Hierin programmeer je feiten en regels (facts and rules).
Feiten zijn de gegevens die al bekend zijn in het programma en de regels beschrijven hoe je bepaalde conclusies kan trekken uit deze feiten.

Slide 29 - Tekstslide

De eerste twee coderegels zijn de feiten in dit stukje Prolog code. De overige drie coderegels geven aan wanneer iemand een opa is van een ander. Alles wat achter % staat is commentaar en wordt dus genegeerd door het programma.
Dus als je nu de vraag zou stellen of Hendrik de vader van Daan is, weet je dat het antwoord true is.


Slide 30 - Tekstslide

Slide 31 - Tekstslide

Leerdoelen
Je kent verschillende generaties computertalen.
Je weet het verschil tussen lagere en hogere programmeertalen.
Je weet waarvoor een compiler wordt gebruikt.
Je kent verschillende toepassingsgebieden van programmeertalen.
Je kunt van een programmeertaal aangeven waarvoor deze wordt gebruikt.

Slide 32 - Tekstslide


Na deze les, 
wil ik...
de uitleg nog 1 keer horen
meer voorbeelden krijgen
meer oefeningen maken
de leerstof thuis nog even bekijken
overgaan naar nieuwe leerstof
nog meer te weten komen over de leerstof
niet meer te weten komen over de leerstof

Slide 33 - Poll


Hoe vond je 
deze les?
😒🙁😐🙂😃

Slide 34 - Poll