Informatica. Deel II & III: les 5. Von Neumann, basis- & slimme algoritmen. Jan Lemeire Informatica deel II & III februari mei 2015
|
|
- Mathilda Michiels
- 5 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Informatica Deel II & III: les 5 Von Neumann, basis- & slimme algoritmen Jan Lemeire Informatica deel II & III februari mei 2015 Parallel Systems: Introduction
2 Institute for Advanced Studies, New Jersey, USA
3 Hoofdstuk 4: Computerarchitectuur Jan Lemeire Pag. 3 / 61
4 De ivoren toren van IAS Institute for Advanced Studies (IAS) Voor de grote denkers/wetenschappers, maar niet ingenieurs Op de schoot bij Einstein (op de foto met Gödel, Bekend logicus) Informatica II: les 4 Jan Lemeire Pag. 4 / 61
5 John Von Neumann wilt een computer bouwen beter dan de ENIAC John Von Neumann Dit is echter tegen de statuten van het IAS, waar je enkel betaald wordt om te denken, niet om experimenten uit te voeren of iets te bouwen. Mede Informatica door II: zijn les 4 warme persoonlijkheid en populariteit mocht hij er toch aan beginnen in één van de kelders. Jan Lemeire Pag. 5 / 61
6 Programmeren = draadjes versteken, oftewel de hardware veranderen Informatica II: les 4 Jan Lemeire Pag. 6 / 61
7 Von Neumann verbetert: 1. Stored-program computer Een programma beschrijft wat de machine moet doen Programma ook opslaan in het geheugen (de software) Is ook input van de computer en data 2. Een architectuur voor de logische opdeling van de centrale verwerkingseenheid: de "Central Processing Unit" of CPU. De CPU is het hart van de computer. 3. De instructies van het programma worden één voor één uitgevoerd Informatica II: les 4 Jan Lemeire Pag. 7 / 61
8 Waarmaken van Leibniz s droom (9) Artificiële intelligentie (8) Communicatie & internet (7) Operating system (6) Computatietheorie & Software (5) Efficiënt productieproces (4) Hardware architectuur Electronica: (2) relais -schakeling, (3)geheugen (1) Digitaal & binair (0) Het idee Informatica deel III: technologie, historiek en economische aspecten
9 De Von Neumann-architectuur Jan Lemeire Pag. 9 / 61
10 Programma = sequentie van instructies Elke processorcyclus: uitvoeren van 1 instructie Inwendig aangegeven door kloksignaal Klokfrekwentie bepaalt aantal instructies/second (bvb 4GHz) Interne verloop voltages kloksignaal Informatica II: les 4 Jan Lemeire Pag. 10 / 61
11 Von Neumann-elementen Input Interface: binnenkomende gegevens Voorbeelden: toetsenbord, muis, barcodelezer, internet, Sensoren laten toe fysische grootheden binnen het meetbereik van computers te brengen Vbn: camera s, fotocellen, bewegingssensoren (cf Ipad, WII),... Interrupt ( java-event) vertelt control unit dat er input is Output Interface: uitgaande gegevens Voorbeelden: scherm, printer, internet, kassa, Actuatoren geven aan computers de mogelijkheid rechtstreeks hun fysische omgeving te beïnvloeden Vbn: motoren, elketromagneten, verwarmingselementen,... Informatica II: les 4 Jan Lemeire Pag. 11 / 61
12 Von Neumann-elementen Data Memory: geheugencellen voor binaire getallen. Elke cel van 1 byte (8 bits) krijgt een adres. Program Memory: opslag van programma. In de praktijk: deel van datageheugen Vroeger: ponskaarten, Toegang tot datageheugen: tot elk vakje, gegevens onmiddellijk beschikbaar Geheugen is een soort van schoolbord (scratchpad) waar de tussenresultaten van de berekeningen worden bijgehouden Voor bewerking wordt data uitgelezen en na bewerking geof overschreven Informatica II: les 4 Jan Lemeire Pag. 12 / 61
13 Data- en programmageheugen In veel computers vindt men maar één enkel geheugen: het programma- en het gegevensgeheugen zijn fysisch samengesmolten. Beide gaan immers om het bijhouden van bytes, een programma is ook een collectie bytes. Deze samensmelting laat toe om met éénzelfde type van computer zowel grote programma's met maar weinig gegevens, als kleine programma's met veel gegevens te verwerken. Vanzelfsprekend blijven beide geheugens logisch gescheiden: de ene wordt enkel gebruikt voor data, de andere enkel voor het opslaan van het programma. Er wordt voor gezorgd dat er geen data in het programmagedeelte geschreven kan worden en omgekeerd. Dit zou namelijk de bestaande inhoud (verkeerdelijk) overschrijven. Informatica II: les 4 Jan Lemeire Pag. 13 / 61
14 Von Neumann-elementen Arithmetic and Logical Unit (ALU) voert bewerkingen uit Op data van het geheugen Schrijft resultaten (ook data) terug naar het geheugen De ALU is het apparaat dat instaat voor de feitelijke verwerking van de informatie. Het is in staat rekenkundige bewerkingen uit te voeren, getallen te vergelijken, enz. De ALU krijgt de operanden (de te bewerken gegevens) uit het Informatica II: les 4 gegevensgeheugen en plaatst de resultaten van de bewerkingen er terug in. Jan Lemeire Pag. 14 / 61
15 Von Neumann-elementen Control unit houdt bij waar we zitten in het programma (Program Counter) for/while/methodes zorgen ervoor dat een deel van je programma meermaals uitgevoerd kan worden (iteraties) If maakt het mogelijk dat een deel niet uitgevoerd wordt De stuureenheid leest één voor één instructies uit het programmageheugen, decodeert ze en zendt de nodige stuursignalen naar de verschillende onderdelen van de computer om de uitvoering van de instructies te verzekeren. Zo wordt de operatie samen met de adressen van de operanden en het resultaat aan de ALU doorgegeven. De ALU leest de data uit het geheugen (adhv de opgegeven adressen), voert de berekening uit en schrijft Informatica II: les 4 het resultaat terug in het geheugen. Jan Lemeire Pag. 15 / 61
16 Voorbeeld: de machten van x Volgend programma wordt in het instructiegeheugen geladen. De Program Counter wordt op 23 gezet, de eerste lijn van het programma. De computer start met het uitvoeren van het programma en voert elke klok-tick 1 instructie uit. Elke variabele krijgt een plaats (adres) in het datageheugen. Jan Lemeire Pag. 16 / 61
17 Stap 1: laden van programma Jan Lemeire Pag. 17 / 61
18 Stap 2: lees toetsenbord 23 Jan Lemeire Pag. 18 / 61
19 Stap 3: initaliseer variabele Jan Lemeire Pag. 19 / 61
20 Stap 4: initaliseer variabele t Jan Lemeire Pag. 20 / 61
21 Stap 5: schrijf waarde Jan Lemeire Pag. 21 / 61
22 Stap 6: bereken product Jan Lemeire Pag. 22 / 61
23 Stap 7: verhoog teller Jan Lemeire Pag. 23 / 61
24 Stap 8: check condities Jan Lemeire Pag. 24 / 61
25 Herhaal stappen tot eindconditie Geheugen m = 7 ; t = 1 m = 49 ; t = 2 m = 343 ; t = 3 m = 2401 ; t = 4 m = ; t = 5 Op scherm Jan Lemeire Pag. 25 / 61
26 Vandaag 1. Von Neumann-architectuur 2. Newton s algoritme 3. Interfaces en abstracte klasses 4. Basisalgoritmen 5. Slimme algoritmen 6. Het Project
27 Basisalgoritmen Hoofdstuk 4
28 p Recursive Halving Informatica II: les 5 Jan Lemeire Pag. 28 / 61
29 Nulpunten zoeken: Newton s algoritme p. 59 (x 0, y 0 ): eerste gok y 0?y y 1 a x r x 1?x x 0 Informatica II: les 5 Jan Lemeire Pag. 30 / 61
30 Afgeleide van functie kennen interface Functie { /** geeft functiewaarde in opgegeven punt */ double f(double x); } interface FunctieMetAfgeleide extends Functie { /** geeft waarde van de afgeleide in opgegeven punt */ double afgeleide(double x); } Informatica II: les 5 Jan Lemeire Pag. 31 / 61
31 static int nbriteraties=0; public static double vindnulpuntmetnewton(functiemetafgeleide functie, int eerstegok){ final int MAX_ITERATIES = 150; final double PRECISIE = 0.001; double nulpunt = eerstegok; double fx = functie.f(nulpunt); nbriteraties=0; while (Math.abs(fx) > PRECISIE && nbriteraties < MAX_ITERATIES){ double dfx = functie.afgeleide(nulpunt); if (dfx == 0) throw new RuntimeException("Nulpunt met Newton: Afgeleide in "+nulpunt+" is nul waardoor Newton faalt."); System.out.println("["+nbrIteraties+"] Current = "+nulpunt+" fx="+fx+" dfx="+dfx+" => new = "+(nulpunt - fx/dfx)); nulpunt = nulpunt - fx/dfx; fx = functie.f(nulpunt); nbriteraties++; } if (nbriteraties >= MAX_ITERATIES) throw new RuntimeException("Nulpunt met Newton: convergeert niet, te veel iteraties, beste punt tot nu toe heeft waarde "+functie.f(nulpunt)+"!"); System.out.println("Newton nulpunt = "+nulpunt+" met fx="+fx); return nulpunt; } Informatica II: les 5 Jan Lemeire Pag. 32 / 61
32 p. 61 Mogelijke problemen Geen of trage convergentie Gradiënt geeft niet noodzakelijk de juiste richting aan Crash Afgeleide die nul is Informatica II: les 5 Jan Lemeire Pag. 33 / 61
33 Niet in cursus InterfaceOefening1 Informatica II: les 5 Jan Lemeire Pag. 34 / 61
34 Abstracte klasses en Interfaces p. 4 zijn abstract
35 KlasseOefening3 (package p. 28 testoefeningen): 1. Teken klassehiërarchie. 2. Welke overerving is niet mogelijk? 3. Duidt aan welke de concrete klassen zijn en welke de abstracte. Is er een abstracte klasse die een interface zou kunnen zijn? 4. Welke objecten kan ik dus niet aanmaken? 5. Bij het aanmaken van de objecten, duidt de constructors aan die opgeroepen worden. Per object kunnen dit meerdere constructors zijn! 6. Voor welke klasses mag je de default constructor oproepen? 7. Welke klasse heeft een foute constructor: roept geen geldige constructor van zijn superklasse op? 8. Welke implementatie wordt uitgevoerd bij het oproepen van de methoden f, g, en j? 9. Welke methodes moet ik zeker implementeren als ik een concrete klasse met superklasse K3 en interface K2 wil maken? Informatica II: les 5 Jan Lemeire Pag. 36 / 61
36 abstract class K1 { int a; K1(int a){ this.a=a; } void f(){ } abstract void j(); } interface class K2 { void g(); } abstract class K3 extends K1 { K3(int a){ super(a); } void f(){ } } class K4 extends K3 implements K2 { int x; K4(int x){ this.x = x; } public void g(){ } } class K5 extends K1 implements K2 { Informatica II: les 5 void j(){ } public static void main(string[] args) { K1 o1 = new K1(); K2 o2 = new K2(); K3 o3 = new K3(7); K4 o4 = new K4(); K5 o5 = new K5(); o4.f(); o4.g(); o5.j(); } Jan Lemeire Pag. 37 / 61
37 Basisalgoritmen vervolg Hoofdstuk 4
38 p. 62 Discrete simulaties $$$$$$$$$$ Informatica II: les 5 Jan Lemeire Pag. 39 / 61
39 Uitbreiden Alle fysische dingen: MovingObject klasse Informatica II: les 5 Jan Lemeire Pag. 40 / 61
40 p. 63 Regressie of curve fitting functie fout distance = angle angle angle distance = angle angle distance = angle 267 distance = angle distance = angle Je berekent welke vergelijking het best past ( fit ) op de data Informatica II: les 5 Jan Lemeire Pag. 41 / 61
41 NP-complete problemen
42 NP-compleet: traveling p. 64 salesman problem Meest efficiënte volgorde om alle steden af te lopen? 15! = mogelijke volgorden Informatica II: les 5 Jan Lemeire Pag. 43 / 61
43 NP-compleet Klasse van problemen Voor optimale oplossing: je moet alle mogelijkheden afgaan Er bestaan geen shortcuts! Informatica II: les 5 Jan Lemeire Pag. 44 / 61
44 Een goede oplossing Maar niet te bewijzen dat optimaal zie Informatica II: les 5 Jan Lemeire Pag. 45 / 61
45 Project
46 Projectonderwerp Voldoende programmatorische complexiteit Klassen & objecten Spelelement wordt meestal gekozen Mag: Creativiteit! Artificiële Intelligentie (A.I.): slim algoritme Hoofdstuk 5 Groepjes van 2-3 Informatica II: les 5 Jan Lemeire Pag. 47 / 61
47 Project: doelstellingen Programmeren Programmatorische complexiteit, gestructureerd programmeren Projectwerk, teamwork Creativiteit, ingenieuziteit Plezier Ontwikkelen probleemoplossende vaardigheden Informatica II: les 5 Jan Lemeire Pag. 48 / 61
48 Project: uitvoering Voor paasvakantie: keuze groep & onderwerp oefeningen o.a. GUI vrije sessies om aan project te werken Paasvakantie start keuze groep & onderwerp tussentijdse verdediging deadline projectverdediging Verplicht!! Informatica II: les 5 Jan Lemeire Pag. 49 / 61
49 Evaluatie Programmatorische complexiteit Correctheid Logische opdeling van code in klassen Gestructureerd programmeren 1 regel: geen redundantie 'Properheid' van code: Gebruik van zinvolle namen voor variabelen en functies Logische structuur van code documenteer vooral niet-triviale dingen Creativiteit Mondelinge verdediging Bonus voor excellentie, als het af is Informatica II: les 5 - Constantes - Functies/methodes - Parameterizatie Jan Lemeire Pag. 50 / 61
50 Laatste tips Ingenieur = efficiëntie Anderzijds: excellentie vergt net dat tikkeltje extra Probleemoplossende vaardigheden (debuggen) Als je probleem niet kan oplossen: VRAAG Blijf er niet bij zitten!! Referenties en gebruikte code opgeven! Anders: plagiaat Informatica II: les 5 Jan Lemeire Pag. 51 / 61
51 Slimme algoritmen Hoofdstuk 5
52 Beslissingsalgoritme Doel bereiken Aantal acties ter beschikking Actiesequentie bedenken om doel te bereiken Informatica II: les 5 Jan Lemeire Pag. 53 / 61
53 p. 66 Indeling volgens oplossingsmethode Type 1: De oplossing kan berekend worden met een formule (analytisch). Type 2: Je kunt de oplossing gericht zoeken of construeren (rechttoe-rechtaan). Type 3: Je gaat alle mogelijke actiesequenties af om een oplossing te vinden. Type 4: Door slimme keuzes (heuristieken) te maken, kan je verschillende actiesequenties uitsluiten. Type 5: Je leert al doende welke de juiste keuzes zijn. Informatica II: les 5 Jan Lemeire Pag. 54 / 61
54 Type 1: analytisch 1. Je kan oplossing berekenen met formule Analytisch Voorbeeld: nulpunten van kwadratische vergelijking Informatica II: les 5 Jan Lemeire Pag. 55 / 61
55 Type 2: gerichte constructie Je kan oplossing gericht zoeken met quasi-zekerheid om te arriveren Voorbeelden: nulpunt van een functie zoeken met benaderingsalgoritme priemgetallen met zeef van Erathosteness Berekening grootst-gemene deler Informatica II: les 5 Jan Lemeire Pag. 56 / 61
56 p. 67 De schuifpuzzel? Staat van puzzel: posities van stukjes Mogelijke acties: LEFT, UP, RIGHT, DOWN Niet alle 4 steeds mogelijk Informatica II: les 5 Jan Lemeire Pag. 57 / 61
57 Type 3: Alle mogelijkheden afgaan Je weet niet in welke richting de oplossing ligt. Voor sommige problemen is men er vrijwel zeker van dat je alle mogelijkheden af moet lopen (NP-complete problemen, zie later) Je genereert alle mogelijke sequenties van akties en kijkt welke tot een oplossing of tot de beste oplossing leidt. het scannen van de volledige zoekruimte is nodig... Informatica II: les 5 Jan Lemeire Pag. 58 / 61
58 Zoekruimte = zoekboom Initial UP LEFT UP LEFT DOWN UP LEFT RIGHT LEFT DOWN... DOWN LEFT RIGHT Informatica II: les 5 Jan Lemeire Pag. 59 / 61
59 p. 68 Doorploeteren zoekboom = Brute-force search 2 mogelijkheden: depth-first : a-b-e-j-k-c-f-g-l-m-n-d-h-o-p-i-q = backtracking breadth-first: a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q Informatica II: les 5 Jan Lemeire Pag. 60 / 61
60 Sudoku met backtracking Niet in cursus Informatica II: les 5 Jan Lemeire Pag. 61 / 61
Informatica. Deel II & III: les 5. Basis- & slimme algoritmen. Jan Lemeire Informatica deel II & III februari mei Parallel Systems: Introduction
Informatica Deel II & III: les 5 Basis- & slimme algoritmen Jan Lemeire Informatica deel II & III februari mei 2016 Parallel Systems: Introduction Oefening Iets met een functie public class IetsMetFunctie
Nadere informatieInformatica 2e semester
Informatica Les 5 Basis- & slimme algoritmen Jan Lemeire Informatica 2 e semester februari mei 2017 Vandaag 1. Iets met functie 2. Interfaces en abstracte klasses 3. Newton s algoritme 4. Oefening op interfaces
Nadere informatieInformatica 2e semester
Informatica Les 6 Basis- & slimme algoritmen Jan Lemeire Informatica 2 e semester februari mei 2019 Vandaag 1. Iets met functie 2. Interfaces en abstracte klasses 3. Newton s algoritme 4. Oefening op interfaces
Nadere informatieInformatica 2e semester
Informatica Les 6 Basis- & slimme algoritmen Jan Lemeire Informatica 2 e semester februari mei 2018 Vandaag 1. Iets met functie 2. Interfaces en abstracte klasses 3. Newton s algoritme 4. Oefening op interfaces
Nadere informatieInformatica. Deel II: les 4. geheugen abstractie - GUI Von Neumann. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction
Informatica Deel II: les 4 geheugen abstractie - GUI Von Neumann Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Waarmaken van Leibniz s droom (10) Artificiële intelligentie
Nadere informatieInformatica. 2 e semester: les 7. computerarchitectuur chips lineaire datastructuren. Jan Lemeire Informatica 2 e semester februari mei 2016
Informatica 2 e semester: les 7 computerarchitectuur chips lineaire datastructuren Jan Lemeire Informatica 2 e semester februari mei 2016 Parallel Systems: Introduction Vandaag 1. Deel III/4: computerarchitectuur
Nadere informatieHoofdstuk 2. De Von Neumann-architectuur
Input Interface Output Interface Informatica Deel III Hoofdstuk 2 De Von Neumann-architectuur 2.1. Organisatie. De overgrote meerderheid der digitale computers zijn georganiseerd zoals weergegeven in fig.
Nadere informatieInformatica 2e semester
Informatica 2 e semester: les 7 computerarchitectuur chips lineaire datastructuren Jan Lemeire Informatica 2 e semester februari mei 2017 Vandaag 1. Deel III/4: computerarchitectuur 2. Stapel (hfst 3)
Nadere informatieInformatica 2e semester
Informatica 2 e semester: les 5 computerarchitectuur chips lineaire datastructuren Jan Lemeire Informatica 2 e semester februari mei 2019 Vandaag 1. Array-algoritmen vervolg (hfst 2) 2. Stapel (hfst 3)
Nadere informatieInformatica. les 6. Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen
Informatica les 6 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica deel II & III februari mei 2015 1 Is er een machine die even slim of zelfs
Nadere informatieWaarmaken van Leibniz s droom
Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais
Nadere informatieInformatica. Deel II: les 2. Leibniz - erven - digitaal. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction
Informatica Deel II: les 2 Leibniz - erven - digitaal Jan Lemeire Informatica deel II februari mei 2013 Parallel Systems: Introduction Leibniz 1646 1716 Jan Lemeire Pag. 2 / 48 Calculemus! Berechnen wir!
Nadere informatieWaarmaken van Leibniz s droom
Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais
Nadere informatieInformatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction
Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic
Nadere informatieInformatica 2e semester
Informatica 2 e semester: les 5 computerarchitectuur chips lineaire datastructuren Jan Lemeire Informatica 2 e semester februari mei 2018 Vandaag 1. Deel III/4: computerarchitectuur 2. Array-algoritmen
Nadere informatiePython (gem=1,86) Java (gem=1,57) Enquete cursus informatica 1e bachelors oefeningen beter aansluiten bij project?
Enquete cursus informatica 1e bachelors 216-217 Python (gem=1,86) Java (gem=1,7) 3 3 2 2 1 1 3 2 1-1 -2-3 3 2 1-1 -2-3 2 Combinatie python va (gem=1,6) 1 Hoe is de overgang python2va 1 1 3 2 1-1 -2-3 3
Nadere informatieIMP Uitwerking week 13
IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het
Nadere informatieInformatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2015. Parallel Systems: Introduction
Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2015 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic
Nadere informatieAddendum bij hoofdstuk 5 Generieke implementatie van de zoekalgoritmen
Addendum bij hoofdstuk 5 Generieke implementatie van de zoekalgoritmen De implementatie wordt kort besproken in 5.2.6 1. Programmatie Zoekalgoritme Definitie van boom: we hebben geen binaire boom met exact
Nadere informatieMuziek. Muziek. Analoog rekenen. Hoofdstuk 1: Van analoog naar digitaal. Analoog. Digitaal. Analoog. Gebruik makend van fysische grootheden Cf Babbage
Analoog rekenen Gebruik makend van fysische grootheden Cf Babbage Analoge electronica http://www.chem.uoa.gr/applets/appletopamps/appl_opamps2.html Hoofdstuk : Van analoog naar digitaal De rekenlat of
Nadere informatiepublic Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);
Vaknaam: Programmeren I (Java) - Tentamen Module: 2 Datum/Tijd: 17 mrt 2015 / 18.30 20:30 Richting: ICT Code: IC011 Docent: E. Lieuw Boeken en aantekeningen NIET toegestaan. Kladpapier is wel toegestaan.
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde
Nadere informatieZelftest Programmeren in Java
Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test
Nadere informatieWaarmaken van Leibniz s droom
Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais
Nadere informatieJava. Basissyllabus. Egon Pas
Java Basissyllabus Egon Pas 2011 BeanPole bvba Gasmeterlaan 92-9000 Gent BTW BE 472.902.516 Tel: + 32 9 224 42 17 Fax: + 32 9 223 62 88 www.beanpole.be info@beanpole.be 1 Programmeren 1.1 Hoe werkt een
Nadere informatieInformatica. Deel II&III: les 4. geheugen set, stacks & queues - interfaces. Jan Lemeire Informatica deel II&III februari mei 2015
Informatica Deel II&III: les 4 geheugen set, stacks & queues - interfaces Jan Lemeire Informatica deel II&III februari mei 2015 Parallel Systems: Introduction Waarmaken van Leibniz s droom (9) Artificiële
Nadere informatieHoe werkt een rekenmachine?
Hoe werkt een rekenmachine? Uit welke hardware-componenten bestaat een rekenmachine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachine I Constante getallen Instructies van het type
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 18 december 2015 Overerving (inheritance) Constructors Overriding Inheritance demo Exceptions Zelf exceptions veroorzaken Overerving (inheritance) 2-dimensionaal
Nadere informatieDe computer als processor
De computer als processor DE FYSIEKE COMPUTER Componenten van de computerconfiguratie Toetsenbord Muis Scanner Microfoon (Extern geheugen) Invoerapparaten Uitvoerapparaten Monitor Printer Plotter Luidspreker
Nadere informatieTentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale
Nadere informatieAbstracte klassen & Interfaces
Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.
Nadere informatieinformatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)
informatica hardware overzicht moederbord CPU RAM GPU architectuur (vwo) 1 moederbord basis van de computer componenten & aansluitingen chipset Northbridge (snel) Southbridge ("traag") bussen FSB/HTB moederbord
Nadere informatieInformatica 2e semester
Informatica Les 4 arrays encapsulatie - geheugen Jan Lemeire Informatica 2 e semester februari mei 2017 Vandaag 1. Arrays 2. Oefening 3. Algoritmes met arrays 4. Encapsulatie 5. Klasse-oefening 6. Deel
Nadere informatieVakgroep CW KAHO Sint-Lieven
Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be
Nadere informatieEen topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:
Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de
Nadere informatieBeginselen van programmeren Practicum 1 (Doolhof) : Oplossing
Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Nadere informatieWaarmaken van Leibniz s droom
Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais
Nadere informatiecomputerarchitectuur antwoorden
2017 computerarchitectuur antwoorden F. Vonk versie 1 2-8-2017 inhoudsopgave hardware... - 3 - CPU... - 3 - bussen... - 4 - bridges... - 4 - RAM... - 4 - hardware architectuur... - 5 - Dit werk is gelicenseerd
Nadere informatieVoorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
Nadere informatieNAAM: Programmeren 1 Examen 29/08/2012
Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je
Nadere informatieKleine cursus PHP5. Auteur: Raymond Moesker
Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven
Nadere informatieProgrammeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
Nadere informatieInformatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele
Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd
Nadere informatieInformatica. Deel II&III: les 2. Leibniz - erven - digitaal. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction
Informatica Deel II&III: les 2 Leibniz - erven - digitaal Jan Lemeire Informatica deel II&III februari mei 2015 Parallel Systems: Introduction Leibniz 1646 1716 Informatica II: les 2 Jan Lemeire Pag. 2
Nadere informatieInformatica 2e semester
Informatica 2 e semester: les 7 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica 2 e semester februari mei 2018 1 Is er een machine die even
Nadere informatieDe Arduino-microcontroller in de motorvoertuigentechniek (2)
De Arduino-microcontroller in de motorvoertuigentechniek (2) E. Gernaat (ISBN 978-90-79302-11-6) 1 Procescomputer 1.1 Microprocessoren algemeen De informatie-verwerking zoals is behandeld, is vrijwel geheel
Nadere informatie2 Algemene opbouw van een computersysteem
Procescomputer E. Gernaat 1 Microprocessoren algemeen Informatie-verwerking zoals behandeld is momenteel vrijwel geheel overgenomen door microprocessoren. Wanneer we voortborduren op het idee van combinatorische
Nadere informatieVI. Klassen en objecten
VI. Klassen en objecten Klassen en objecten vormen het fundament van OOP. We zullen dus uitgebreid aandacht besteden aan klassen en objecten. U kunt Java niet begrijpen zonder goed met klassen en objecten
Nadere informatieTENTAMEN Programmeren 1 VOORBEELDUITWERKING
TENTAMEN Programmeren 1 vakcode: 213500 datum: 10 juli 2004 tijd: 9:00-12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));
Nadere informatieDatatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.
Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort
Nadere informatieLessen Java: Reeks pag. 1
Lessen Java: Reeks 2 1-3-2016 pag. 1 Primitieve types type grootte waardes byte 8 bits 128, 127 short 16 bits 32768, 32767 int 32 bits 2 31, 2 31 1 long 64 bits 2 63, 2 63 1 type grootte waardes float
Nadere informatieTentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Nadere informatieDe AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)
De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz Foreach Foreach Speciale versie van for om iets voor alle elementen
Nadere informatieHoofdstuk 9. Hashing
Hoofdstuk 9 Hashing Het zoeken in een verzameling van één object is in deze cursus al verschillende malen aan bod gekomen. In hoofdstuk 2 werd uitgelegd hoe men een object kan zoeken in een array die veel
Nadere informatieInformatica 2e semester
Informatica 2 e semester: les 7 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica 2 e semester februari mei 2019 1 Is er een machine die even
Nadere informatieObjectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.
Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze
Nadere informatieHoe werkt een computer precies?
Hoe werkt een computer precies? Met steun van stichting Edict Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Overview Introductie SIM-PL Simulatietool voor werking computer
Nadere informatievon-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014
von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 Herhaling: Booleaanse algebra (B = {0,1},., +, ) Elke Booleaanse functie f: B n B m kan met., +, geschreven worden Met Gates (electronische
Nadere informatieTentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft
I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
Nadere informatieMicrocontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015
Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Computersysteem Een systeem dat rekenkundige operaties, data manipulaties en beslissingen kan uitvoeren, aan de hand
Nadere informatieVereiste kennis. 1 Java-editor. 2 Het compileren van een programma
3 Vereiste kennis Dit boek richt zich op het leren programmeren door het oefenen met programmeercodes. Veel theorie komt in het begin niet aan de orde. Dat is een grote uitdaging want het is niet makkelijk
Nadere informatieProgrammeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
Nadere informatieVan Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam
Van Poort tot Pipeline Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Pipeline processor One cycle machine Calculator File of registers Assembly
Nadere informatieProgrammeren in Java les 3
4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een
Nadere informatieOvererving & Polymorfisme
Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit
Nadere informatierecursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie
Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk
Nadere informatieProgrammeren in Java 3
2 september 2007 voor deeltijdstudenten Kop van Zuid Rotterdam, 3 juni 2007 Even voorstellen Naam: Wessel Oele(31) Docent bij opleiding technische informatica Kamer: I210 (tweede verdieping, links de gang
Nadere informatie10 Meer over functies
10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf
Nadere informatieProgrammeren in Java 3
26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class
Nadere informatieInformatica 2e semester
Informatica 2 e semester: les 6 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica 2 e semester februari mei 2017 1 Is er een machine die even
Nadere informatieProgrammeren 1 20 januari 2012 Prof. T. Schrijvers
Programmeren 1 20 januari 2012 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet
Nadere informatie6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica
Samenvatting door een scholier 1809 woorden 28 oktober 2005 6,1 16 keer beoordeeld Vak Methode Informatica Turing informatica samenvatting. hst3: algoritme:een beschrijving van stappen die gedaan moeten
Nadere informatieVoortgezet Prog. voor KI
Voortgezet Prog. voor KI Docent: Michael Wilkinson IWI 142 tel. 050-3638140 (secr. 3633939) Frank Brokken RC 352 tel. 050-3633688 Voorkennis: Inleiding Programmeren voor KI (nieuwe stijl) Stof: Practicum
Nadere informatieTentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI
Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.
Nadere informatieKwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();
Kwis (3) class X { public void a() { System.out.println("x"); class Y extends X { public void a() { System.out.println("y"); class Z extends Y { public void a() { System.out.println("z"); public static
Nadere informatieCOMPUTERVAARDIGHEDEN EN PROGRAMMEREN
COMPUTERVAARDIGHEDEN EN PROGRAMMEREN 3 e les Prof. Dr. Frank De Proft 12 oktober 2004 Tweede les : Inleiding Computerwetenschappen vs. computervaardigheden - Algoritmen 1 Derde les : Enkele basisbegrippen»
Nadere informatieHoofdstuk 0. Van Python tot Java.
Hoofdstuk 0. Van Python tot Java. In dit eerste hoofdstuk maken we de overstap van Python naar Java. We bespreken de verschillen en geven wat achtergrondinformatie. In het volgende hoofdstuk gaan we dieper
Nadere informatieJava Les 3 Theorie Herhaal structuren
Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een
Nadere informatieVAN HET PROGRAMMEREN. Inleiding
OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,
Nadere informatieKlas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek
Klas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek VTI St.- Laurentius Neem eerst de tekst in het boek door, doe dit enkele keren en probeer uiteraard te onthouden wat je leest. Los nadien de
Nadere informatieStacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49
Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen
Nadere informatieUitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur
Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf
Nadere informatieHoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.
Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de
Nadere informatieRecursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40
Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N
Nadere informatieNAAM: Programmeren 1 Examen 21/01/2011
Programmeren 1 21 januari 2011 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet
Nadere informatieObject-oriented programmeren met BlueJ en Visual Studio
Object-oriented programmeren met BlueJ en Visual Studio HA-2265-03 Nascholing Katholiek Onderwijs Vlaanderen Bert Cauwenberg & Lieven Pauwels Werkgroep Handel 2017 Guimardstraat 1, 1040 Brussel Guimardstraat
Nadere informatiePracticumopgave 3: SAT-solver
Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel
Nadere informatieModelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 27 november 2015 Recursie Objecten Constructors Aanpassen variabelen this keyword Recursie Recursie Recursieve functie roept zichzelf (direct of indirect) aan
Nadere informatiePlanning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)
Planning 1. Mini College 2. Introductiecursus Imperatief Programmeren 3. Crash and Compile (vanaf 17:00 uur) Geschiedinis van de Codemonkeys imperatief programmeren voor beginners Geschiedenis van de Codemonkey
Nadere informatieTentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Tentamen Inleiding Programmeren (IN1608WI), 2 februari 2012, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Gesloten boek tentamen, bij dit tentamen mag je geen gebmik maken van
Nadere informatieOntwerp van Informatiesystemen
1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents
Nadere informatieHelden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief
Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief Herman Geuvers Radboud Universiteit Nijmegen Technische Universiteit Eindhoven 1 Helden van de wiskunde:
Nadere informatieModule 3: Scratch programmeren: is het logisch of is het niet logisch?
Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2
Nadere informatieIn Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen.
Leerlijn programmeren In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen. Deze leerlijn is opgebouwd aan de
Nadere informatieInleiding Software Engineering! Unit Testing, Contracten, Debugger! 13 Februari 2014!
Inleiding Software Engineering Unit Testing, Contracten, Debugger 13 Februari 2014 Beknopte info over Unit Testing en Contracten kan je vinden op het einde van dit document. Eclipse beschikt over een handige
Nadere informatieOPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.
Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven
Nadere informatie