Informatica. 2 e semester: les 8. Software & binaire bomen. Jan Lemeire Informatica 2 e semester februari mei Parallel Systems: Introduction

Maat: px
Weergave met pagina beginnen:

Download "Informatica. 2 e semester: les 8. Software & binaire bomen. Jan Lemeire Informatica 2 e semester februari mei Parallel Systems: Introduction"

Transcriptie

1 Informatica 2 e semester: les 8 Software & binaire bomen Jan Lemeire Informatica 2 e semester februari mei 2016 Parallel Systems: Introduction

2 Leibniz droom De Calculus ratiocinator Een logisch denkend apparaat Om met de regels van de logica ondubbelzinnig te kunnen vaststellen of een statement waar of vals is Deductief systeem waarin alle regels afgeleid zijn van een kleine verzameling axiomas Leibniz was één van de eerste die begreep dat als je filosoferen, denken, redeneren, in formele regels kunt gieten, je dit ook door een apparaat kunt Informatica II: les 6 laten doen.

3 Vandaag 1. Theoretische informatica 2. Software 3. Android app, Java applets, Executable jars 4. Overzicht datastructuren 5. Binaire bomen

4 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 Elektronica: (2) relais -schakeling, (3)geheugen (1) Digitaal & binair (0) Het idee Informatica deel III: technologie, historiek en economische aspecten

5 Hoofdstuk 6: Computatietheorie Jan Lemeire Pag. 5 / 83

6 George Boole Logica herleid tot Booleaanse algebra Boole zette een belangrijke stap met het ontwikkelen van een algebra voor het rekenen met statements over waar/onwaar. Informatica II: les 6

7 Gottlob Frege Beschrijft hoe wiskundigen en logici denken 1879: de universele taal van de logica 1903: brief van Betrand Russel die hem op een onvolledigheid wijst Extra-ordinaire verzameling = verzameling dat een element is van zijn eigen Vb: verzameling van alle dingen die geen spreeuw zijn Maar: de verzameling E van alle ordinaire verzamelingen En wat is E? Ordinair of extra-ordinair Eind 19e eeuw dacht men dat alle natuurwetten binnen handbereik waren (positivisme). Zo begreep men met de Maxwell-vergelijkingen electriciteit en magnetisme. De relativiteitstheorie van Einstein en de kwantummechanica maakte een einde aan dit optimism in de fysica. Maar ook in de logica bleek nietinformatica zo iets te bestaan II: les als 6 een mooie verzameling regels die niet tot contradicties leidt.

8 David Hilbert Wir mussen wissen; wir werden wissen We moeten weten; we zullen weten Elke logische of mathematische vraag is oplosbaar (en zal opgelost worden) Nodig: een expliciete procedure om vanuit premises na te gaan of een conclusie volgt of niet (Hilbert s beslissingsprobleem) Hilbert s beslissingsprobleem zou leiden tot een doorbraak in de theoretische informatica. Informatica II: les 6

9 Alan Turing Hilbert s procedure: algoritme! Als we een mechanische lijst van regels hebben om de oplossing van een mathematisch probleem op te lossen, zouden wiskundigen geen werk meer hebben Bestaat er zo n algoritme? Om tegendeel te bewijzen moest Turing een machine maken dat een algoritme kan uitvoeren Alan Turing wierp zich op Hilbert s probleem. Hij bedacht dat er hiervoor een algoritme gemaakt moest worden (die nagaat of een statement klopt of niet), en vervolgens een machine die het algoritme kan uitvoeren. De Turing Informatica II: les 6 machine werd geboren, een theoretisch model van een computer.

10 De Turing machine Data: oneindige lange tape voor het lezen of schrijven van 0/1/spatie Kan 1 vakje naar links of rechts bewogen worden Staat (toestand): een aantal binaire variabelen Gedragsregels: Staat Gelezen bit Nieuwe staat Te schrijven bit > < _ > 1 1 HALT Bewegen Deze machine is alleen maar van theoretisch nut. Ze is bijvoorbeeld niet Informatica II: les 6 gemakkelijk programmeerbaar.

11 Voorbeeld Applet van studenten ten/turing Machine.html 5-state B.B. : met input _11 stopt machine, voor andere inputs niet (gebruik underscore ipv 0!!) Java applet:

12 Oplossing van Hilbert s beslissingsprobleem? Met de machine nagaan of een logisch statement waar of vals is: Programma runnen Als de machine stopt is statement bewezen (waar). Halting problem (tegelijkertijd ontdekt door Alonzo Church en Alan Turing) Gegeven een Turing machine en programma, ga na of dit programma zal stoppen. Hier bestaat geen algoritme voor die dit kan nagaan Hilbert s beslissingsprobleem is onoplosbaar Het resultaat van Turing was weer een knak voor het optimisme van de wetenschap. Je kan niet van alles bewijzen of het waar of niet waar is. Hieruit onstond mede de moderne relativistische kijk op de wereld. De wetenschap kan niet alles oplossen/verklaren De VUB blijft echter geloven dat wetenschap veel kan oplossen. Scienta Vincere Tenebras! Informatica II: les 6

13 De universele computer Elke computatie kan er op uitgevoerd worden = Turing Machine Kan alles berekenen wat berekenbaar is rekenen ook om logisch te denken universeel Turing s resultaten blijken wel belangrijk voor de informatica. Misschien wel het belangrijkste resultaat van Turing is het idee van een universele computer. Eén computer (hardware) die alles kan berekenen wat maar te berekenen valt. Dit was revolutionair, omdat velen in die tijd niet konden geloven dat je met 1 machine totaal verschillende berekeningen kan doen. Alsof je met een Informatica II: les 6 wasmachine ook kan autorijden.

14 Misvattingen omtrent computers Howard Aiken, bouwde de eerste computer voor IBM in 1944 en zei in 1956: If it should turn out that the basic logics of a machine designed for the numerical solution of differential equations coincide with the logics of a machine intended to make bills for a department store, I would regards this as the most amazing coincidence I have ever encountered Studie van 1947: slechts zes elektronische digitale computers zullen voldoende zijn om al het rekenwerk van de gehele Verenigde Staten te kunnen doen."

15 Basisprincipe 1 universele computer kan elke andere computer simuleren Zo is je programma ook maar data die zegt wat de computer moet doen. Voor dat programma heb je geen aparte machine nodig, toch? Nogal logisch, niet? Dit kan je ook toepassen op programmeertalen: je wilt een taal waarmee je alle mogelijke algoritmes kan programmeren, een universele programmeertaal. Als je met 1 computer een andere kan simuleren (nabootsen), kan je alles doen wat die andere ook kan. Als die andere universeel is, is de jouwe ook universeel. Hiermee bewijs je de equivalentie van universele computers. En ook de compleetheid van programmeertalen. Java & Python zijn complete Informatica II: les 6 talen, je kan er alles mee programmeren wat je maar kan bedenken.

16 Computatietheorie: bewijzen dat een programma correct is Heel omslachtig! Enkel mogelijk voor eenvoudige algoritmes. Dus: ad-hoc testen noodzakelijk, zorgvuldig programmeren, goed opdelen, Anderzijds zijn er nog vele gaten in de theoretische informatica. Zo zou het toch handig zijn om te bewijzen dat je programma correct is. Dit blijkt heel omslachtig te zijn, zelfs voor simple programma s. Informatica blijft dan ook gedeeltelijk een praktische wetenschap. Maar wij ingenieurs malen daar toch Informatica II: les 6 niet om, he? Als het maar nuttig is, die computer.

17 Hoofdstuk 6: Software Jan Lemeire Pag. 17 / 83

18 Informatica II: les 8 software: weg met de kabeltjes

19 software Programmeertalen Een processor biedt een aantal instructies aan die hij begrijpt en kan uitvoeren. Deze instructies zijn binair en noemt men machinecode. Voor de leesbaarheid biedt assembler mnemonische afkortingen aan voor de binaire instructies, alsook Informatica variabelen II: en les labels 8 van codelijnen. De assembler zet alle afkortingen om naar binaire machinecode die dan uitgevoerd kunnen worden.

20 Voorbeeldprogramma (zie hfst 4) Scanner scanner = new Scanner(System.in); System.out.print("Geef een getal:"); int x = scanner.nextint(); int m = x; int t = 0; do { System.out.println(m); m = m * x; t++; } while (m < 1000 && t < 20);

21 In assembler (javacode vanaf lijn 3) lw $t0, $s0 # load word mv $t1, $t0 # move value mv $t2, 0 l1: sw $t0, $s1 # store word mul $t1, $t1, $t0 # multiply add $t2, $t2, 1 lt # addition $t3, $t1, 1000 # less than lt $t4, $t2, 20 # less than and $t5, $t3, $t4 # and beq $t5, 1, l1 # jump to l1 if equal Lezen van toetsenbord en schrijven naar scherm gebeurt door te lezen en schrijven naar geheugenadressen $s0 en $s1. Variabelen x, m en t staan in registers $t0, $t1 en $t2. Voor de conditie hebben we 3 extra registers nodig ($t3, $t4 en $t5). l1 is een label van een instructie, om er later naar toe te kunnen springen. Resultaat van een bewerking komt in eerste operand.

22 3 e generatietaal Onafhankelijk van de hardware beschrijving van het algoritme Gebruik van variabelen ipv geheugenadressen Geen JUMP, enkel for/while/if/switch Jumps leidt tot spagetticode, je mag van overal naar overal springen Functies/methodes mogelijk Omzetting naar assembler: compileren Checkt je code op syntaxfouten! Programmeren in assembler is niet produktief. Het is redelijk omslachtig, je maakt snel fouten en de code is heel onleesbaar. Daarom heeft men programmeertalen ontwikkeld die minder code vergen, meer aansluiten bij algoritmes, meer gestructureerd zijn, leesbaarder en minder foutgevoelig. De Nederlander Informatica Edgser II: les Dijkstra 8 was het voornaamste genie achter de 3 e generatietalen.

23 Edsger Dijkstra (NL) Welke constructies moet een programmeertaal minimaal bevatten? While/for Goto is onnodig. In oude talen kon je zeggen spring naar lijn 111, naar elke willekeurige lijn van je programma. Dit leidde echter tot onoverzichtelijke spaghetti -code. Dijkstra toonde aan dat een while voldoende is Functies In het begin waren er om praktische redenen veel beperkingen op het gebruik van functies. Recursie Hier was veel tegenkanting tegen, omdat het praktisch tamelijk duur is (vergt veel van de processor)

24 Programma => computer broncode Applicatie (executable.exe) Operating System (Windows, Linux, Mac, ) Hogere taal compileren Machinetaal uitvoeren Hardware (Intel of AMD processor) Nieuwe compilatie nodig voor elk systeem (operating system + hardware)!

25 Java: via virtuele machine Java code (.java file) Java applicatie (.class of jar-file) Java Virtual Machine Operating System (Windows, Linux, Mac, ) Hardware (Intel of AMD processor) compileren Specifieke tussentaal die iets hoger is dan assembler uitvoeren Tijdens het uitvoeren wordt instructies van de class-files omgezet naar machinetaal Javacode werkt op elk operating system! Je moet wel de virtuele machine installeren

26 Ideaal voor internet Java applicatie (.class of jar-file) Java Virtual Machine Operating System (Windows, Linux, Mac, ) Jou code staat op webserver INTERNET Via virtuele machine runt hij op elke lokale machine ( client ) Hardware (Intel of AMD processor) Doordat Javacode via een virtuele machine (die wel specifiek is voor elk systeem) Informatica tijdens II: het les uitvoeren 8 wordt omgezet naar machinetaal, kan je programma overal uitgevoerd worden.

27 Python & Mathlab Geïnterpreteerde talen Je code wordt tijdens het uitvoeren omgezet naar machinetaal. Je moet Python/Matlab dus geïnstalleerd hebben Javacode wordt wèl gecompileerd, java-files worden omgezet naar class-files. Javacode wordt dus gecontroleerd op fouten. Maar Python en Matlab niet, waardoor je programma zal crashen bij fouten met de types van variabelen bijvoorbeeld

28 4e generatietaal High-level specification languages: programmeren wat je wilt, niet hoe het moet gebeuren Vb: GUI aanmaken met een tool Te integreren in Eclipse Google Windowbuilder Pro Visual Editor (Nog) niet echt succesvol Enkel voor specifieke applicaties (zoals GUIs) Mijn mening: nog geen artificiële intelligentie => computer kan nog niet begrijpen wat je wilt Een GUI aanmaken kan via een tool waarbij je niets moet programmeren. Je bouwt als het ware je applicatie door aan te geven hoe deze er uit moet zien. Informatica II: les 8 Dit werkt echter nog niet voor algemene applicaties

29 Tool om GUIs te maken Kan je toevoegen aan Eclipse!

30 Object-georiënteerde talen Worden als 3 e generatietalen aanzien Toch is de code-organisatie fundamenteel verschillend De code is opgesplitst in klasses ipv functies. Vergt een andere manier van denken Is dè uitdaging van dit semester, zowel voor jullie als voor ons (lesgevers)

31 Voor ingenieur: welke taal? moet handig en efficiënt zijn, geschikt voor de taak Python Matlab High-level (doet veel voor u) Java Kleine projecten C/C++ Grote projecten Low-level (kort bij de hardware) Zonder al te diep in te gaan over wat nu de beste taal is (een eeuwige steeds-hoogoplopende discussie onder informatici), een kleine poging tot conclusies. C/C++ zullen velen later nog zien, het is de meest-gebruikte taal die kort bij de hardware staat, daarvoor uitermate geschikt voor het programmeren van systemen (chips, Informatica II: les 8 robots, kritische applicaties, )

32 Wat met je Javaproject? Niet in boek Project als applet in website App for Android Android = java Executable jar-file Eclipse: Export => Java => Runnable JAR file Je kiest klasse met de main() die uitgevoerd moet worden

33 Applets

34 Java applets Boek 1 p. 49 Niet te kennen Kan je toevoegen aan html-webpagina s <applet code="be.ac.vub.ir.util.jappletwithpanel archive="../causallearningwithkde.jar" height="360" width="900"> <param name="panel" value="be.ac.vub.ir.statistics.estimators.kde2dpanel" > </applet> Steek al je files in een jar-file In Eclipse: File menu -> export -> Java -> Jar file Je browser heeft een java-console waarin de System output komt (System.out & System.err) Informatica II: les 8 Jan Lemeire Pag. 36 / 83

35 Voorbeeld import javax.swing.japplet; public class CannonDemoApplet extends JApplet { public void init(){ String opt = getparameter("option"); if (opt!= null && opt.equals("ammo")) getcontentpane().add(new CannonPanel(true)); else getcontentpane().add(new CannonPanel(false)); } } Informatica II: les 8 Jan Lemeire Pag. 37 / 83

36 Opgelet Zorg dat beeldjes en audiofiles ook in de jar komen Zet ze bij je packages Laden van beeldjes: zie website Informatica II: les 8 Jan Lemeire Pag. 38 / 83

37 JApplet De browser communiceert met de applet via public void init( ) initializes variables and objects Voeg GUI componenten toe aan contentpane: getcontentpane().add() public void paint( Graphics g ) to draw screen public void start() called when the applet is visible. It is called after the init method and each time the applet is revisited in a Web page. public void stop() called when applet is no longer visible public void destroy() when hosting window is closed (exit). Overschrijf methodes als nodig Informatica II: les 8 Jan Lemeire Pag. 39 / 83

38 Overzicht datastructuren

39 Raadseltje raadsel package be.ac.vub.ir.data.functions.functionscharts

40 p. 3 De big-o notatie O(0) << O(log(n)) << O(n) Informatica II: les 8 Jan Lemeire Pag. 42 / 83

41 Performantie datastructuren p. 2 Datastructuur Random access (opvragen i de element) Find (via naam) Toevoegen / verwijderen Array O(0) ++ O(n) O(log(n)) als gesorteerd O(n) - ArrayList O(0) ++ O(n) O(log(n)) als gesorteerd O(n) - Linked list O(n) - O(n) -- O(0) ++ Binaire boom n.v.t. O(log(n)) + O(0) ++ Hashtabel n.v.t. O(0) ++ O(0) ++ Zolang binnen grootte Informatica II: les 8 Jan Lemeire Pag. 43 / 83

42 Bomen

43 p. 62 Bomen (hoofdstuk 7) Arrays: basis ArrayList: flexibele grootte van array Linked Lists: flexibel toevoegen en verwijderen van elementen Maar: doorlopen van lijst is traag (bvb zoeken van element) Nodig: flexibele structuur om elementen in op te zoeken Informatica II: les 8 Jan Lemeire Pag. 45 / 83

44 Binaire boom Informatica II: les 8 Jan Lemeire Pag. 46 / 83

45 Alle mogelijkheden afgaan = aanmaken boom (les 8) Hfst 5 Initial UP LEFT UP LEFT DOWN UP LEFT RIGHT Oplossing puzzel zoeken Informatica II: les 8 LEFT DOWN DOWN LEFT RIGHT Jan Lemeire Pag. 47 / Geen binaire boom, kan meer of minder takken hebben

46 p. 63 Geordende binaire boom Zoeken kan snel Flexibel: toevoegen & verwijderen Informatica II: les 8 Jan Lemeire Pag. 48 / 83

47 Elke node is een object class Node<T>{ T data; Node<T> left, right; } Node(T data){ this.data = data; this.left = null; this.right = null; } Informatica II: les 8 Jan Lemeire Pag. 49 / 83

48 Boom object public class BinaryTree<T> { Node<T> root; Comparator<T> comparator; } public BinaryTree(Comparator<T> comparator){ this.comparator = comparator; root = null; } Informatica II: les 8 Jan Lemeire Pag. 50 / 83

49 Definiëren van ordening java.util Interface Comparator<T> Method Summary boolean int compare(t o1, T o2) Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. equals(object obj) Indicates whether some other object is "equal to" this comparator. Informatica II: les 8 Jan Lemeire Pag. 51 / 83

50 p. 65 IntegerComparator class IntegerComparator implements Comparator<Integer> public int compare(integer val1, Integer val2) { return val1 - val2; } } Informatica II: les 8 Jan Lemeire Pag. 52 / 83

51 Aanmaken van boom IntegerComparator comparator = new IntegerComparator(); BinaryTree<Integer> tree = new BinaryTree<Integer>(comparator); korter: BinaryTree<Integer> tree = new BinaryTree<Integer>(new IntegerComparator()); Informatica II: les 8 Jan Lemeire Pag. 53 / 83

52 Nog korter: via anonymous class BinaryTree<Integer> tree = new BinaryTree<Integer>( new Comparator<Integer>() public int compare(integer val1, Integer val2) { return val1 - val2; } } ); Informatica II: les 8 Jan Lemeire Pag. 54 / 83

53 Operaties op bomen

54 Belangrijke operaties 7.3 Zoeken element 7.5 Toevoegen element (opbouwen boom) 7.6 Verwijderen element 7.7 Doorlopen van boom (bvb printen) Informatica II: les 8 Jan Lemeire Pag. 56 / 83

55 Binaire bomen

56 Recursie zonder recursie? Staartrecursie 1 recursieve oproep Kan ook geprogrammeerd worden met een while Boomrecursie Meer dan 1 recursieve oproep (vb fibonacci) Is minder evident om zonder recursie te programmeren, bij Mergesort zien we hoe dit kan. Aanpak zoals bij breadth-first search. Jan Lemeire Pag. 58 / 83

57 p Zoeken element public boolean contains(t object){ return find(root, object); } private boolean find(node<t> current, T object){ if (current == null) return false; else if (comparator.compare(current.data, object) == 0) return true; else if (comparator.compare(object, current.data) < 0) return find(current.left, object); else return find(current.right, object); } Tijd ~ diepte boom Idealiter: log 2 n Behalve als ongebalanceerd (zie verder) Informatica II: les 8 Jan Lemeire Pag. 59 / 83

58 Staartrecursie Met while: public boolean containswithoutrecursion(t object){ Node<T> current = root; while (current!= null){ if (comparator.compare(current.data, object) == 0) return true; // gevonden! else if (comparator.compare(object, current.data) < 0) current = current.left; else current = current.right; } return false; // niet gevonden } Informatica II: les 8 Jan Lemeire Pag. 60 / 83

59 p Zoektijd binaire boom Als gebalanceerd n => n/2 => n/4 => n/8 => => 1 Of: 1.2 x = n x = aantalzoekstappen = log 2 n Informatica II: les 8 Jan Lemeire Pag. 61 / 83

60 Ongebalanceerde boom aantalzoekstappen = log 4 n aantalzoekstappen = log 1.33 n Gemiddelde is slechter dan log 2 n! Informatica II: les 8 Jan Lemeire Pag. 62 / 83

61 Zoektijd log 2 n log 4 n log 1.33 n n/2 10 3,3 1,7 8, ,6 3,3 16, ,0 5,0 24, ,3 6,6 32, ,9 10,0 48, ,9 10,0 48, ,3 11,6 56, ,6 13,3 64, ,9 14,9 72, /2 *2,433 Informatica II: les 8 Jan Lemeire Pag. 63 / 83

62 Verschil in zoektijd Eigenschap logaritmes : Verschil in aantal stappen: log d n = log 2 n log 2 d Verandering van basis stappenratio = log d n log 2 n = 1 log 2 d stappenratio = 1 log = = 2.43 stappenratio = 1 log 2 4 = 1/2 2 t.o.v t.o.v. 4 Besluit: logaritmisch << lineair Informatica II: les 8 Jan Lemeire Pag. 64 / 83

63 p. 102 Ongebalanceerde boom 2 Vast aantal (k-1) nodes links, de rest rechts k << n Rechterboom heeft n/k => n/2k stappen Totaal n/2k + log(k 1) n/2k lineair Informatica II: les 8 Jan Lemeire Pag. 65 / 83

64 p Toevoegen element public void add(t object){ Node<T> newnode = new Node<T>(object); if (root == null) root = newnode; else add(root, newnode); } private void add(node<t> current, Node<T> newnode){ if (comparator.compare(newnode.data, current.data) < 0){ // moet links komen if (current.left == null) current.left = newnode; else add(current.left, newnode); } else { // rechts if (current.right == null) current.right = newnode; else add(current.right, newnode); } Informatica II: les 8 } Jan Lemeire Pag. 66 / 83

65 Volgorde van toevoegen bepaalt boom! Wat als ik toevoeg in die volgordes? {k, l, g, i, x, q, r, a, e, f, c, z} {a, c, e, f, g, i, k, l, q, r, x, z} {i, z, q, l, k, f, e, g, c, x, a, r} Informatica II: les 8 Jan Lemeire Pag. 67 / 83

Waarmaken van Leibniz s droom

Waarmaken 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 informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 8 Software & binaire bomen Jan Lemeire Informatica 2 e semester februari mei 2017 Vandaag 1. Overzicht datastructuren 2. Binaire bomen 3. Theoretische informatica 4. Software

Nadere informatie

Informatica. Deel II: les 8. Software & binaire bomen. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction

Informatica. Deel II: les 8. Software & binaire bomen. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction Informatica Deel II: les 8 Software & binaire bomen Jan Lemeire Informatica deel II&III februari mei 2014 Parallel Systems: Introduction Waarmaken van Leibniz s droom (10) Artificiële intelligentie (9)

Nadere informatie

Informatica. Deel II&III: les 8. Software & binaire bomen. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction

Informatica. Deel II&III: les 8. Software & binaire bomen. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction Informatica Deel II&III: les 8 Software & binaire bomen Jan Lemeire Informatica deel II&III februari mei 2015 Parallel Systems: Introduction Leibniz droom De Calculus ratiocinator Een logisch denkend apparaat

Nadere informatie

Informatica. Deel II: les 10. Bomen. Jan Lemeire Informatica deel II februari mei Informatica II: les 9

Informatica. Deel II: les 10. Bomen. Jan Lemeire Informatica deel II februari mei Informatica II: les 9 Informatica Deel II: les 10 Bomen Jan Lemeire Informatica deel II februari mei 2012 Informatica II: les 9 De volgende revolutie Internet! Jan Lemeire Pag. 2 / 37 Technologie Netwerk laat toe dat computers

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 8 Software & binaire bomen Jan Lemeire Informatica 2 e semester februari mei 2018 Informatica 2e semester: HOC 8 Vandaag 1. Overzicht datastructuren 2. Binaire bomen 3. Chips

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 8 Software & binaire bomen Jan Lemeire Informatica 2 e semester februari mei 2019 Vandaag 1. Non-zero sum games 2. Leren 3. Deel III: slimme algoritmen versus intelligentie

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 9 OS & Sorteren Jan Lemeire Informatica 2 e semester februari mei 2018 Informatica 2e semester: HOC 9 Vandaag 1. Software 2. Het gebruik van static 3. Sorteren 4. Besturingssystemen

Nadere informatie

Informatica. Deel II&III: les 7. AI linked lists - chips. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Informatica. Deel II&III: les 7. AI linked lists - chips. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction Informatica Deel II&III: les 7 AI linked lists - chips Jan Lemeire Informatica deel II februari mei 2015 Parallel Systems: Introduction Hoofdstuk 9: Artificiële intelligentie Jan Lemeire Pag. 2 / 77 Waarmaken

Nadere informatie

Informatica. Deel II: les 9 OS & AVL. Jan Lemeire. Informatica deel II. februari mei Informatica II: les 9

Informatica. Deel II: les 9 OS & AVL. Jan Lemeire. Informatica deel II. februari mei Informatica II: les 9 Informatica Deel II: les 9 OS & AVL Jan Lemeire Informatica deel II februari mei 2014 Hoofdstuk 8: Operating Systems Jan Lemeire Pag. 2 / 64 Bedrijfscomputers Initieel waren er voornamelijk bedrijfscomputers

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 9 OS & Sorteren Jan Lemeire Informatica 2 e semester februari mei 2017 Informatica 2e semester: HOC 9 Vandaag 1. Software 2. Het gebruik van static 3. Sorteren 4. Besturingssystemen

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 9 Software, Sorteren en OS Jan Lemeire Informatica 2 e semester februari mei 2019 Informatica 2e semester: HOC 9 Vandaag 1. Software (deel III) 2. Sorteren 3. Het gebruik

Nadere informatie

Hoofdstuk 6. Geordende binaire bomen

Hoofdstuk 6. Geordende binaire bomen Hoofdstuk 6 Geordende binaire bomen Eerder bespraken we hoe gelinkte lijsten een zeer flexibele structuur geven. Het zoeken in een gelinkte lijst was echter niet optimaal, aangezien je enkel de lijst van

Nadere informatie

Informatica. 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 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 informatie

Waarmaken van Leibniz s droom

Waarmaken 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 informatie

Modelleren en Programmeren

Modelleren 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 informatie

Informatica. 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 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 informatie

Programmeren: Visual Basic

Programmeren: Visual Basic PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Algemene Kennis: 01. Programmeren Programmeren is het schrijven van een computerprogramma, een concrete verzameling instructies

Nadere informatie

Waarmaken van Leibniz s droom

Waarmaken 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 informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Hoofdstuk 0. Van Python tot Java.

Hoofdstuk 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 informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep 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 informatie

Informatica. 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 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 informatie

Elementary Data Structures 3

Elementary Data Structures 3 Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

eerste voorbeelden in Java

eerste voorbeelden in Java Beginselen van programmeren 2 eerste voorbeelden in Java vereisten: een editor: om programma in te tikken en te bewaren een Java compiler: zet ingetikte (bron-) programma om naar byte-code een Java Virtuele

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15

Nadere informatie

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden

Nadere informatie

Informatica. Deel II&III: les 9. OS, Hashing & Mappen. Jan Lemeire. Informatica deel II&III. februari mei Informatica II: les 9

Informatica. Deel II&III: les 9. OS, Hashing & Mappen. Jan Lemeire. Informatica deel II&III. februari mei Informatica II: les 9 Informatica Deel II&III: les 9 OS, Hashing & Mappen Jan Lemeire Informatica deel II&III februari mei 2015 Vandaag 1. Besturingssystemen 2. Java applets 3. Static in java 4. Hashing en Mappen Hoofdstuk

Nadere informatie

Modelleren en Programmeren

Modelleren 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 informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Python (gem=1,86) Java (gem=1,57) Enquete cursus informatica 1e bachelors oefeningen beter aansluiten bij project?

Python (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 informatie

Module Limieten van de berekenbaarheid : antwoorden

Module Limieten van de berekenbaarheid : antwoorden Module Limieten van de berekenbaarheid : antwoorden Gilles Coremans 2018 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. Dit werk is gebaseerd

Nadere informatie

Zelftest Informatica-terminologie

Zelftest Informatica-terminologie Zelftest Informatica-terminologie Document: n0947test.fm 01/07/2015 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTIE Deze test is een zelf-test, waarmee u

Nadere informatie

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren,

Nadere informatie

Planning. 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) 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 informatie

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer

Nadere informatie

Java virtuele machine JVM

Java virtuele machine JVM Implementatie Java Java virtuele machine JVM Java programma vertaald naar byte code instructies Byte code instructies uitgevoerd door JVM JVM is processor architectuur kan in principe in hardware worden

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Opdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is

Opdrachten herhalen. public void tekenscherm (object o, PEA pea) { int x; x = 1; zolang de voorwaarde geldig is Opdrachten herhalen public void tekenscherm (object o, PEA pea) { int x; x = 1; while ( x

Nadere informatie

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011 15 november 2011 Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree

Nadere informatie

Assembly en Assemblers. Processoren 5 januari 2015

Assembly en Assemblers. Processoren 5 januari 2015 Assembly en Assemblers Processoren 5 januari 2015 Doel van vandaag Ik heb al losse eindjes over assembly verteld en een voorbeeldprogramma doorlopen. vandaag: algemeen + systematisch overzicht Programmeertalen

Nadere informatie

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

Objectgericht programmeren 1.

Objectgericht programmeren 1. Objectgericht programmeren 1 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn Objectgericht ontwerpen 35% Objectgericht ontwerpen 65% OP1 Informatiesystemen 50% Databanken 50% OP1 Evaluatie

Nadere informatie

Programmeren in Java

Programmeren in Java 4 september 2015 Even voorstellen Naam: Wessel Oele(39) Email: W.Oele@hr.nl Website: http://med.hro.nl/oelew Kop van Zuid Rotterdam, 3 juni 2007 Overzicht van modules programmeren in Java In totaal 4 modules

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 7 maart 2010 Deze les Zelf componenten maken Concurrency (multithreading): werken met threads levenscyclus van een thread starten tijdelijk onderbreken wachten stoppen Zelf componenten maken Je eigen component:

Nadere informatie

Informatica. 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 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 informatie

IMP Uitwerking week 13

IMP 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 informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Java Programma structuur

Java Programma structuur Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2013 Organisatie Docenten Jeroen Bransen Michael Moortgat Docenten Jeroen Bransen Imperatief programmeren (Java) Tot de kerst (ongeveer) Michael Moortgat

Nadere informatie

Een gelinkte lijst in C#

Een gelinkte lijst in C# Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk

Nadere informatie

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE Onderdeel van SmartProducts EVEN VOORSTELLEN DOCENT Fjodor van Slooten N208 (Horstring Noord) F.vanSlooten@utwente.nl Assistentie door: Hans Tragter, Marc Schreiber,

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Informatica. 2 e semester: les 9. OS & Sorteren. Jan Lemeire Informatica 2 e semester februari mei Informatica II: les 9

Informatica. 2 e semester: les 9. OS & Sorteren. Jan Lemeire Informatica 2 e semester februari mei Informatica II: les 9 Informatica 2 e semester: les 9 OS & Sorteren Jan Lemeire Informatica 2 e semester februari mei 2016 Vandaag 1. Besturingssystemen 2. Het gebruik van static 3. Binaire bomen (vervolg) 4. Sorteren Hoofdstuk

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code

Nadere informatie

Modelleren en Programmeren

Modelleren 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 informatie

Module 4 Hoofdstuk 1. Programmeertalen

Module 4 Hoofdstuk 1. Programmeertalen Module 4 Hoofdstuk 1 Programmeertalen Programmeertalen Een programmeertaal is een taal waarin de opdrachten worden geschreven die een computer moet uitvoeren Reeksen van die opdrachten of instructies vormen

Nadere informatie

Lessen Java: Reeks pag. 1

Lessen 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 informatie

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal.

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Programmeertalen Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Taal // machine De geschiedenis van de programmeertalen loopt parallel met de geschiedenis

Nadere informatie

Programmeren in Java 3

Programmeren 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 informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)

Nadere informatie

Android Development CCSS2011

Android Development CCSS2011 Android Development Voor dummies, door dummies... Challenges in Computer Science Seminar LIACS, Universiteit Leiden 15 Februari 2011 Inhoud 1 Introductie 2 Development Environment 3 Programmeren voor Android

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes 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 informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

Nadere informatie

Informatica 2e semester

Informatica 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 informatie

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

6,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 informatie

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Objectgeorï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 informatie

Tentamen Computersystemen

Tentamen Computersystemen Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:

Nadere informatie

Algoritmen abstract bezien

Algoritmen abstract bezien Algoritmen abstract bezien Jaap van Oosten Department Wiskunde, Universiteit Utrecht Gastcollege bij Programmeren in de Wiskunde, 6 april 2017 Een algoritme is een rekenvoorschrift dat op elk moment van

Nadere informatie

Programmeren in Java les 3

Programmeren 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 informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Informatica: C# WPO 11

Informatica: C# WPO 11 Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo

Nadere informatie

Modelleren en Programmeren

Modelleren 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 informatie

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Stacks 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 informatie

1e college Introductie Applicatiebouw. Applicatiebouw{ } Onderdeel van SmartProducts

1e college Introductie Applicatiebouw. Applicatiebouw{ } Onderdeel van SmartProducts 1e college Introductie Applicatiebouw Applicatiebouw{ } Onderdeel van SmartProducts EVEN VOORSTELLEN DOCENT Fjodor van Slooten N208 (Horstring Noord) F.vanSlooten@utwente.nl Assistentie door: Nadia Klomp,

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal.

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Programmeertalen Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Taal // machine De geschiedenis van de programmeertalen loopt parallel met de geschiedenis

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine 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 informatie

Bij dit hoofdstukken horen geen opgaven.

Bij dit hoofdstukken horen geen opgaven. 6. Programmeertalen Een computer begrijpt eigenlijk alleen maar binaire code (bestaande uit 1 en 0). Om hem/haar makkelijk opdrachten te geven zijn programmeertalen ontwikkeld. Deze moeten een goed gedefinieerde

Nadere informatie

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree traversal 15 november

Nadere informatie

Modulewijzer Tirdat01

Modulewijzer Tirdat01 Modulewijzer Tirdat01 W. Oele 25 augustus 2008 1 Inhoudsopgave 1 Inleiding en leerdoelen 3 2 Voorkennis 3 2.1 tirprg01 en tirprg02........................ 3 2.2 tirprg03.............................. 4

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

Nadere informatie

WORKSHOP ORANGE PI & PYTHON v september 2017

WORKSHOP ORANGE PI & PYTHON v september 2017 WORKSHOP ORANGE PI & PYTHON v1.1 21 september 2017 In deze workshop maak je kennis met een zogenaamde bord-computer ter grootte van een bankpas. Een bord-computer kan gebruikt worden als een normale computer

Nadere informatie

Hoofdstuk 9. Hashing

Hoofdstuk 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 informatie

Java Les 3 Theorie Herhaal structuren

Java 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 informatie

Practicumopgave 3: SAT-solver

Practicumopgave 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 informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Cursus Programmeren en Dataverwerking.

Cursus Programmeren en Dataverwerking. Cursus Programmeren en Dataverwerking http://hay.github.io/codecourse Vanavond (18.00-21.30) Introductierondje Algemene introductie (60-90m) Iets over bits en bytes Iets over programmeurs en programmeertalen

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

Helden 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 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 informatie

Kwis (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); 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 informatie

NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:

NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR: NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. Door mee te doen aan deze uitdaging kan je Nspyre laten zien wat je kan. Schrijf jij de beste oplossing dan is deze lego mindstorms nxt 2.0 set voor jou.

Nadere informatie

Datastructuren en Algoritmen voor CKI

Datastructuren en Algoritmen voor CKI Ω /texmf/tex/latex/uubeamer.sty-h@@k 00 /texmf/tex/latex/uubeamer.sty Datastructuren en Algoritmen voor CKI Vincent van Oostrom Clemens Grabmayer Afdeling Wijsbegeerte Hoorcollege 5 16 februari 2009 Waar

Nadere informatie

Waarmaken van Leibniz s droom

Waarmaken 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 informatie