Hoorcollege 1 – Introductiecollege
Computationeel denken = problemen zo formuleren dat ze door een computer kunnen
worden opgelost.
- Decomposition
- Abstraction
- Pattern recognition
- Algorithms
- Evaluation – checken of oplossing klopt
Het begrip gaat terug op werk Seymour Papert (1980)
Jeanete Wing (2006) computationeel denken in Amerikaans onderwijs (K12).
- Problem solving skills staan centraal en wordt toegepast in programmeren.
Computational thinking is the mental skills and practices for
- Designing computations that get computers to do jobs for us and,
- Explaining and interpreting the world as a complex of information processes.
(Denning & Tedre 2019)
Computationeel denken wordt gevormd door de context.
Computationeel denken is hier ontwerpen en begrijpen van ICT in relatie tot mens,
organisaties en maatschappij.
Thema: information retrieval = ontwerpen van zoektechnologie.
Deel 2 – Achtergrond Python
Vanaf 1980: de programmeertaal ABC
- Ontwikkeld op CWI in A’dam
Bedoeld als educatieve programmeertaal
- Simpel
- Interactief
- Compact
- High-level
Beperkingen van ABC
- Onmogelijk om met randapparatuur te communiceren.
- Geen grafische output
- Beperkte functionaliteit
Ontwikkelaar van ABC = Guido van Rossum
Python – verbeterde versie ABC – 1991.
- Gebaseerd op ABC, Pascal en C.
o ABC is ontwikkeld als verbetering van BASIC en Pascal.
Van Rossum doorontwikkeld tot 2018.
Ontwikkeling
- Veel nieuwe functionaliteit sinds 1991
- Fundamentele design-keuzes
, - Verschillen tussen Python 2 en Python 3
Design-keuzes
- Leesbaarheid
o Engels i.p.v. leestekens
Scripting-taal
- Meteen beginnen met taken
- Niet compileren
- Python is wel gecompileerd, maar dit is niet zichtbaar voor de gebruiker
- Design-filosofie: leesbare code en eenvoudig te gebruiken
Benadering van programmeertalen
- Declaratief – voer kennis in over het domein en laat de computer met een algemene
oplossingsstrategie de taak uitvoeren.
o Logisch – beschouwt een programma als een verzameling feiten en regels.
Je kunt de computer vragen stellen.
Focus op wat, niet op hoe.
Niet altijd handig om te programmeren.
o Functioneel - programma is verzameling wiskundige functies die gegeven een
bepaalde input altijd dezelfde output geven.
Handig voor automatische programma-analyse.
Niet altijd handig om te programmeren.
- Imperatief/Procedureel - vertel de computer stap voor stap wat het programma
moet doen. Veel code schrijven. Vaak eenvoudiger te bedenken dan bij declaratief
programmeren. Minder restrictief paradigma. Bijna alle belangrijke
programmeertalen zijn imperatief.
o Python (heeft ook elementen uit functioneel programmeren)
Python is een high-level programmeertaal.
- Ontworpen om leesbaar te zijn voor mensen.
- De code moet vertaald worden naar low-level code (assembly).
- Low-level code wordt omgezet in stroom voor de processor.
o 0 is laag voltage, 1 is hoog voltage.
- Het resultaat van de verwerking in de elektronica is een voltage.
- Dit wordt terugvertaal naar 0 en 1.
- 0 en 1 wordt terugvertaald naar het resultaat voor de gebruiker.
Grammatica – wat hoort wel/niet bij de taal. Wordt gebruikt om te vertalen naar low-level
code. Grammatica analyseert elke regel programmacode.
Python bevat regels voor het omzetten.
Elektronica
- Processor bestaat uit transistoren.
o Gemaakt van halfgeleiders zoals silicium
o Een halfgeleider wordt op 3 punten aangesloten.
o De geleiding tussen 2 punten hangt af van de stroom op het derde punt.
- Hiermee kunnen logische poorten (AND/OR) gemaakt worden.
,Hoorcollege 2 – Basis Python-syntax
Variabelen = een van belangrijkste programmeerconcepten.
naam voor bepaalde data in de code.
Computationeel denken = code is een abstractie van een probleem. Variabelen zijn daar
cruciaal voor. Als je een abstractie maakt ben je vaak bezig met een algoritme opstellen:
Algoritme = stappen om een taak uit te voeren.
- Dezelfde taak in verschillende situaties
- Abstracte taak
- Hiervoor zijn variabelen nodig
Variabelen in Python
naam – waarde
Bijv. a = 3
Beter: naam met duidelijke betekenis aantal = 3. (a heeft geen betekenis).
Geen declaraties, geen datatype. Python reserveert/verwijst naar een geheugenadres.
Niet elke naam voor een variabele is toegestaan. Variabelen bestaan uit letter, cijfers en _
Het eerste karakter moet een letter of _ zijn. Variabelen zijn hoofdlettergevoelig.
Keywords uit de taal zijn niet toegestaan als variabele naam (if, import, or etc.).
wel toegestaan maar niet handig: print, input, exit.
accenten, speciale tekens en ander alfabet mag ook (Arabisch), niet handig.
Python = imperatieve programmeertaal.
- Volgorde is essentieel voor het uitvoeren van het programma.
- Soms maakt volgorde niet uit
- Functies moeten worden uitgevoerd voordat het resultaat gebruikt kan worden.
Datatypes
- Variabelen in Python hebben een type.
- Hoef je er zelf niet bij te zetten, maar het bestaat wel.
- Type = afhankelijk van waarde van de variabele.
o String = “dit is tekst”
o Int: hele getallen
o Float: kommagetallen (2.34)
o Bool: true/false
o Etc.
Gebruik van types
- Soms zijn types belangrijk voor de gebruiker.
o Delen kan bij int en float, niet bij string en bool.
o Lengte berekenen: alleen string
o Waarheidswaarde: alleen bool.
- Andere operaties zijn verschillend gedefinieerd
o Optellen voor ints: wiskundig.
o Optellen string: achter elkaar zetten.
- Gebruiker doet dit meestal vanzelf goed.
, - Code die de lengte van een bool opvraagt komt weinig voor.
Type-conversie
- Soms handmatige conversie nodig
o Combineren van strings en ints in een variabele.
o Locatie = “lokaal” + 23 dit mag niet.
- Conversie-functies: int( ), str ( ), float ( ), bool ( ).
o Int(drieentwintig) wordt 23.
- Type opvragen met type ( )
o Print (type (1))
- Let op dat conversie niet altijd mogelijk is.
Rekenoperatoren
- Standaard operatoren (optrekken, aftrekken, vermenigvuldigen, delen).
o Modulus (%)
Wat blijft over als na delen.
o Exponent (**)
Macht.
o Floor division (//)
Delen zonder rest (rest wordt weggelaten).
- Je gebruikt operatoren in situaties waar je een getal kan gebruiken.
Getalrepresentatie
- Kommagetallen: twee mogelijkheden
o 1) Fixed point notation: vast aantal bits voor integer-deel en decimaal deel.
Eigenlijk twee losse getallen
Nadeel: geheugen voor integer-deel is beperkt terwijl decimaal deel
niet gebruikt wordt.
Het totaal aantal bits voor een getal kan tussendoor niet worden
aangepast.
o 2) Floating point: verschuivende grens tussen integer-deel en decimaal deel.
Meer bits nodig voor integer-deel: punt schuift op.
Totaal aantal bits blijft gelijk.
Ints en floats combineren wordt altijd float.
Delen wordt altijd float, ook bij twee ints.
Exponent, modulus wordt float als een van beide getallen float is, anders int.
Integer delen wordt float als een van beide getallen float is.
Precisie van floats:
- Intern: decimalen opgeslagen als breuken in veelvouden van 2.
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller roosvanvilsteren. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $3.75. You're not tied to anything after your purchase.