Informatica 2e semester

Maat: px
Weergave met pagina beginnen:

Download "Informatica 2e semester"

Transcriptie

1 Informatica 2 e semester: les 8 Software & binaire bomen Jan Lemeire Informatica 2 e semester februari mei 2018 Informatica 2e semester: HOC 8

2 Vandaag 1. Overzicht datastructuren 2. Binaire bomen 3. Chips 4. Halfgeleiders

3 Overzicht datastructuren

4 Raadseltje raadsel f1(x): y = *log 10 (x) f2(x): y = *x f3(x): y = 5 + x* log 10 (x) f4(x): y = 0.1*x 2 Wie wint? Welke functie wordt de grootste bij grote x? Hoe dicht liggen de functies bij elkaar bij zeer grote x?

5 f1(x): y = *log 10 (x) f2(x): y = *x f3(x): y = 5 + x* log 10 (x) f4(x): y = 0.1*x 2 p. 3

6 p. 3 De big-o notatie O(0) < O(log(n)) << O(n) < O(n.log(n)) << O(n 2 ) Maar ook O(poynomiaal) << O(exponentiële functie) Bijvoorbeeld: O(n 10 ) << O(2 n ) n n 10 2 n = = = Informatica 2e semester: HOC 8 Jan Lemeire Pag. 6 / 90

7 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 2e semester: HOC 8 Jan Lemeire Pag. 7 / 90

8 Hfst 6 Lineaire datastructuren Arrays niet flexibel Linked Lists: Flexibel toevoegen en verwijderen J A V A Informatica 2e semester: HOC 8 Jan Lemeire Pag. 8 / 90

9 Flexibel verwijderen link first J A V N A Informatica 2e semester: HOC 8 Jan Lemeire Pag. 9 / 90

10 Vinden van het i de element Array = beginvakje + i Linked List Je bent van in het begin niet zeker waar het i-de element zich bevindt in het geheugen, zeker nadat elementen zijn toegevoegd en verwijderd J A V A J A V A J A V A 8 N J A V A 8 N A B Informatica 2e semester: HOC 8 Jan Lemeire Pag. 10 / 90

11 Bomen

12 p. 64 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 2e semester: HOC 8 Jan Lemeire Pag. 12 / 90

13 Binaire boom Informatica 2e semester: HOC 8 Jan Lemeire Pag. 13 / 90

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

15 p. 65 Geordende binaire boom Zoeken kan snel Flexibel: toevoegen & verwijderen Informatica 2e semester: HOC 8 Jan Lemeire Pag. 15 / 90

16 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 2e semester: HOC 8 Jan Lemeire Pag. 16 / 90

17 Boom object public class BinaryTree<T> { Node<T> root; Comparator<T> comparator; } public BinaryTree(Comparator<T> comparator){ this.comparator = comparator; root = null; } Informatica 2e semester: HOC 8 Jan Lemeire Pag. 17 / 90

18 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 2e semester: HOC 8 Jan Lemeire Pag. 18 / 90

19 p. 66 IntegerComparator class IntegerComparator implements Comparator<Integer> public int compare(integer val1, Integer val2) { return val1 - val2; } } Informatica 2e semester: HOC 8 Jan Lemeire Pag. 19 / 90

20 Ordenen van studenten op naam class StudentComparator implements public int compare(student student1, Student student2) { int ordenaam = student1.naam.compareto(student2.naam); if (ordenaam == 0) // als beide dezelfde naam return student1.voornaam.compareto(student2.voornaam); else return ordenaam; } } Informatica 2e semester: HOC 8 Jan Lemeire Pag. 20 / 90

21 Aanmaken van boom IntegerComparator comparator = new IntegerComparator(); BinaryTree<Integer> tree = new BinaryTree<Integer>(comparator); korter: BinaryTree<Integer> tree = new BinaryTree<Integer>(new IntegerComparator()); Informatica 2e semester: HOC 8 Jan Lemeire Pag. 21 / 90

22 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 2e semester: HOC 8 Jan Lemeire Pag. 22 / 90

23 Recursie

24 Niet in cursus + Recursie private void recursion4(int t) { System.out.println(t); t++; if (t < 10) recursion4(t); } Bij aanroep van recursion4(6) geeft dit: Jan Lemeire Pag. 24 / 90

25 + Na het oproepen van een functie, ga je verder met de rest int f(){ System.out.println("a"); g(); System.out.println( b"); } int g(){ System.out.println( c"); } Output: a c b Na het uitvoeren van g(), wordt de rest van f() uitgevoerd Jan Lemeire Pag. 25 / 90

26 + Terugkeer van de recursie private int recursion5(int t){ if (t < 10) recursion5(t+1); System.out.println(t); } Output bij aanroep van recursion5(6) : Moeilijkste van recursie Jan Lemeire Pag. 26 / 90

27 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. Informatica 2e semester: HOC 8 Jan Lemeire Pag. 27 / 90

28 Operaties op bomen

29 Belangrijke operaties 7.3 Zoeken element 7.5 Toevoegen element (opbouwen boom) 7.6 Verwijderen element 7.7 Doorlopen van boom (bvb printen) Informatica 2e semester: HOC 8 Jan Lemeire Pag. 29 / 90

30 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 2e semester: HOC 8 Jan Lemeire Pag. 30 / 90

31 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 2e semester: HOC 8 Jan Lemeire Pag. 31 / 90

32 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 2e semester: HOC 8 Jan Lemeire Pag. 32 / 90

33 Ongebalanceerde boom aantalzoekstappen = log 4 n aantalzoekstappen = log 1.33 n Gemiddelde is slechter dan log 2 n! Informatica 2e semester: HOC 8 Jan Lemeire Pag. 33 / 90

34 Zoektijd log 2 n log 4 n log 1.33 n n 2k + log 2 k n/2 10 3,3 1,7 8,1 16, ,6 3,3 16,1 16, ,0 5,0 24,2 16, ,3 6,6 32,3 16, ,6 8,3 40,0 17, ,9 10,0 48,4 21, ,3 11,6 56,5 66, ,6 13,3 64,6 516, ,9 14,9 72,7 5016, /2 *2,433 Informatica 2e semester: HOC 8 Jan Lemeire Pag. 34 / 90

35 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 2e semester: HOC 8 Jan Lemeire Pag. 35 / 90

36 p 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 2 (k 1) n/2k lineair Informatica 2e semester: HOC 8 Jan Lemeire Pag. 36 / 90

37 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 2e semester: HOC 8 } Jan Lemeire Pag. 37 / 90

38 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 2e semester: HOC 8 Jan Lemeire Pag. 38 / 90

39 p Verwijderen van element Node die we verwijderen: Eerste mogelijkheid: node heeft geen subbomen Niet in cursus T1 Tweede mogelijkheid: node heeft 1 subboom T2 T3 Informatica 2e semester: HOC 8

40 3 e geval: node heeft 2 subbomen Verwijderen node Meest linkse van rechtersubboom Meest rechtse van linkersubboom Informatica 2e semester: HOC 8 Onze keuze Jan Lemeire Pag. 41 / 90

41 Promoten meest rechtse van linkersubboom Niet in cursus T4 T5 T6 Informatica 2e semester: HOC 8 Jan Lemeire Pag. 42 / 90

42 public boolean remove(t object){ if (comparator.compare(root.data, object)== 0){ root = createsubtree(root); return true; } else return findnodeandremove(root, object); } private boolean findnodeandremove(node<t> current, T object){ if (current == null) return false; Eentje hoger stoppen! if (current.left!= null && comparator.compare(current.left.data, object)== 0){ current.left = createsubtree(current.left); return true; } else if (current.right!= null && comparator.compare(current.right.data, object)== 0){ current.right = createsubtree(current.right); return true; } } else if (comparator.compare(current.data, object) < 0) return findnodeandremove(current.left, object); else Informatica 2e semester: HOC 8 return findnodeandremove(current.right, object); Jan Lemeire Pag. 43 / 90

43 private Node<T> createsubtree(node<t> nodetoberemoved){ if (nodetoberemoved.left == null){ // right is the only subtree that we should consider return nodetoberemoved.right; T1 T3 } else if (nodetoberemoved.right == null){ } // left is the only subtree that we should consider return nodetoberemoved.left; T2 } else { Informatica 2e semester: HOC 8 // promote rightmost node of left subtree if (nodetoberemoved.left.right == null){ T4 nodetoberemoved.left.right = nodetoberemoved.right; return current.left; } else { Node<T> rightmostnode=pickrightmostnode(nodetoberemoved.left); } } T5 T6 // he is new root of subtree rightmostnode.right = nodetoberemoved.right; rightmostnode.left = nodetoberemoved.left; return rightmostnode;

44 private Node<T> pickrightmostnode(node<t> current){ // we expect current.right not to be null if (current.right.right!= null){ return pickrightmostnode(current.right); } else { Node<T> rightmostnode = current.right; current.right = rightmostnode.left; rightmostnode.left = null; return rightmostnode; } } Wat links van rightmostnode staat, gaat de plaats innemen van rightmostnode in de boom Informatica 2e semester: HOC 8

45 Oefening in boek We verwijderen eerst element l, q, g, vervolgens x en tot slot verwijderen we k Teken telkens de nieuwe boom Informatica 2e semester: HOC 8 Jan Lemeire Pag. 46 / 90

46 Op boom van p Doorlopen van boom public void preorder(node<t> node){ if (node!= null){ System.out.print(node.data+", "); preorder(node.left); preorder(node.right); } } public void inorder(node<t> node){ if (node!= null){ inorder(node.left); System.out.print(node.data+", "); inorder(node.right); } } public void postorder(node<t> node){ if (node!= null){ postorder(node.left); postorder(node.right); System.out.print(node.data+", "); } Jan Lemeire Pag. 47 / 90 } Informatica 2e semester: HOC 8 {k, g, a, e, c, f, i, l, x, q, r, z} {a, c, e, f, g, i, k, l, q, r, x, z} {c, f, e, a, i, g, r, q, z, x, l, k}

47 Boom van p.65 Informatica 2e semester: HOC 8 Jan Lemeire Pag. 48 / 90

48 Oefening: print de boom in de 3 volgordes p. 75 public void preorder(node<t> node){ if (node!= null){ System.out.print(node.data+", "); preorder(node.left); preorder(node.right); } } public void inorder(node<t> node){ if (node!= null){ inorder(node.left); System.out.print(node.data+", "); inorder(node.right); } } public void postorder(node<t> node){ if (node!= null){ postorder(node.left); postorder(node.right); System.out.print(node.data+", "); } } Informatica 2e semester: HOC 8 Jan Lemeire Pag. 49 / 90

49 Toepassingen preorder: backtracking Is de node de oplossing? Indien niet, zoek eerst links en daarna rechts inorder: in volgorde afgaan van alle elementen Informatica 2e semester: HOC 8 Jan Lemeire Pag. 50 / 90

50 p. 76 Toepassing postorder public int aantalkinderen(node<t> node){ if (node == null) return 0; int n = aantalkinderen(node.left); n += aantalkinderen(node.right); System.out.println("Node "+node.data+" heeft "+n+" kinderen"); return n + 1; } Voorbeeld van boomrecursie waarbij resultaat gegenereerd wordt bij het terugkeren uit de recursie Informatica 2e semester: HOC 8 Jan Lemeire Pag. 51 / 90

51 Gebalanceerde bomen

52 p Perfect gebalanceerde bomen imbalance # nodes # nodes links links # nodes # nodes rechts rechts 12/11 5/6 4/6 2/2 3/2 1/2 3/2 1/0 0/1 1/1 1/0 0/0 1/0 1/1 1/0 Informatica 2e semester: HOC 9 Jan Lemeire Pag. 53 / 90

53 // geeft -1 als niet perfect gebalanceerd, anders aantal nodes public int isperfectgebalanceerd(node<t> node){ if (node == null) return 0; int nlinks = isperfectgebalanceerd(node.left); int nrechts = isperfectgebalanceerd(node.right); if (nlinks < 0 && nrechts < 0) return -1; if (Math.abs(nLinks - nrechts) > 1) { System.out.println("Node "+node.data+" is niet perfect gebalanceerd: "+nlinks+" versus "+nrechts); } return -1; } else { } return nlinks + nrechts + 1; Informatica 2e semester: HOC 8 Jan Lemeire Pag. 54 / 90

54 Voorbeelden imbalance # nodes # nodes links links # nodes # nodes rechts rechts imbalance=60% imbalance=100% Promotie node l tot root Informatica 2e semester: HOC 8 Jan Lemeire Pag. 55 / 90

55 Hoofdstuk 5: Het productieproces Jan Lemeire Pag. 56 / 90

56 Informatica 2e semester: HOC 5

57 Optische computer? Maar Ook aan de VUB wordt er onderzoek gedaan naar een optische computer. Ik zie echter twee grote problemen waardoor deze waarschijnlijk nooit op de Informatica 2e semester: HOC 5 markt zal komen. Jan Lemeire Pag. 58 / 90

58 Probleem 1: Electrische computer heeft al een hele ontwikkelingsproces doorgemaakt Een alternatief moet wedijveren met de huidige processorkracht, de ontwikkeling van deze werd gefinancierd door de verkoop van minder krachtige processoren. Een alternatief heeft deze mogelijkheid niet Informatica 2e semester: HOC 5 Jan Lemeire Pag. 59 / 90

59 Aanverwant thema: de beste technologie is niet de beste optie voor de markt De eerste iphone of ipad die Apple op de markt bracht was niet het beste wat Apple te bieden had, maar ze was wel goed genoeg om de markt te veroveren. Zo kon Apple later met een verbeterde versie uitpakken (bvb betere camera) en weer langs de kassa passeren Tip: wacht minstens tot 2 e versie Jan Lemeire Pag. 60 / 90

60 Probleem 2 Geen goedkoop, eenvoudig productieproces lenzen zijn foutgevoelig, niet te miniaturiseren Electrische computer heeft dat wel, gebruik makend van micro-electronica Informatica 2e semester: HOC 5 Jan Lemeire Pag. 61 / 90

61 Wel: communicatienetwerken gaan via licht Glasvezel The world s cable map: Ook voor communicatie in computersystemen Informatica 2e semester: HOC 5 Jan Lemeire Pag. 62 / 90

62 De doorbraak van de computertechnologie Von Neuman met één van de eerste computers. Rechts de achterkant met de vacuümbuizen. Informatica 2e semester: HOC 5 De vacuümbuizen worden vervangen door chips Jan Lemeire Pag. 63 / 90

63 Componenten op een bordje met ingebakken connectielijnen Informatica 2e semester: HOC 5

64 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

65 Alle componenten op een chip In plaats van losse componenten die geconnecteerd moeten worden, wordt er 1 plaatje gemaakt waarvan delen gemuteerd zijn tot geleiders of halfgeleiders. Zo worden er weerstanden, capaciteiten en transistoren ingebakken in het plaatje alsook de connectoren die de componenten connecteren. Er wordt gestart met een wafer van silicium (element Si atoomnummer 14). Vervolgens wordt er adhv mallen geëtst in het wafer en worden er andere elementen geïnjecteerd Informatica 2e semester: HOC 5 (dopering genoemd) zodat een geleider of halfgeleider ontstaat. Jan Lemeire Pag. 66 / 90

66 Zand bevat het wonderlijke Silicium, de basis van de chip a = nm

67 Silicium- wafer Etsen en doperen met geleidend en halfgeleidend materiaal Informatica 2e semester: HOC 5 Jan Lemeire Pag. 68 / 90

68 Etsen van wafer adhv mal Eenvoudig productieproces te miniaturiseren tot 10 nanometer Informatica 2e semester: HOC 5 Jan Lemeire Pag. 69 / 90

69 Een oudtje : de Intel 4004 microprocessor (1971) NMOS-technologie 1000 transistors 1 MHz operation 1000 transistoren op 1MHz klokfrekwentie Jan Lemeire Pag. 70 / 90

70 Op 40 jaar van tot transistoren op 20x20mm Informatica 2e semester: HOC 5 Jan Lemeire Pag. 71 / 90

71 Moederbord van je PC De processor bevindt zich op het moederbord van je PC (schema: in de socket), waar het geconnecteerd wordt met het RAM-geheugen (schema: geheugensloten) en de connecties naar de buitenwereld (muis, toetsenbord en USB, PCI voor andere devices). Verder: de heatsink neemt de warmte weg, de BIOS bevat de basisinstellingen Informatica II: les 5 voor de opstart van je computer. Jan Lemeire Pag. 72 / 90

72 Informatica II: les 5

73 Zelf toevoegen van RAMgeheugen Informatica 2e semester: HOC 5 Jan Lemeire Pag. 74 / 90

74 Chip design Het aanmaken van een chip gebeurt volautomatisch vertrekkende van je ontwerp Informatica 2e semester: HOC 5 van het electronisch circuit. Voor het ontwerp bestaat modern software. Jan Lemeire Pag. 75 / 90

75 Miniaturisatie Breedte van de geleidende lijntjes op de chip Informatica 2e semester: HOC 5

76 Wèl toekomst voor licht in de computer Photonic Integrated Circuit: geen lichtprocessor, maar wel licht die in dezelfde chip interageert met de electronen. Kan wel niet zo klein gemaakt worden: de processor blijft werken met elektronen, de communicatie via licht

77 Interuniversitair Micro-Elektronica Centrum is het grootste onafhankelijke Europese onderzoekscentrum op het gebied van micro-elektronica, nanotechnologie Laatste machine van Fablab kostte 800 miljoen euro

78 TER INFO: HALFGELEIDERS Jan Lemeire Pag. 79 / 90

79 80 Basiselektronica II hfst 3 Diode Halfgeleiders Gedragen zich als geleider of isolator Afhankelijk van spanning over component Diode Afhankelijk van een andere spanning Transistor Werkt als versterker! Silicium Jan Lemeire Pag. 80 / 90

80 81 Basiselektronica II hfst 3 Diode Halfgeleiders Jan Lemeire Pag. 81 / 90

81 82 Basiselektronica II hfst 3 Diode Silicium atoom en kristal Voelt 8 electronen rond zich => Neutraal ( OK ) Jan Lemeire Pag. 82 / 90

82 83 Basiselektronica II hfst 3 Diode Zand Jan Lemeire Pag. 83 / 90

83 84 Basiselektronica II hfst 3 Diode Elektronen kunnen het atoom ontspringen Een gat (hole) wordt opgevuld door een naburig electron -> het lijkt net alsof het gat zich verplaatst Jan Lemeire Pag. 84 / 90

84 85 Basiselektronica II hfst 3 Diode Doperen met neven-atomen Antimoon Boron Voelt 9 electronen rond zich => Eentje te veel om OK te zijn N Voelt 7 electronen rond zich => Eentje te weinig P Jan Lemeire Pag. 85 / 90

85 86 Basiselektronica II hfst 3 Diode Gedopeerd silicium geeft meer electronen of holen Jan Lemeire Pag. 86 / 90

86 87 Basiselektronica II hfst 3 Diode Diffusie Elektronen en holen bewegen zich willekeurig rond Hoe hoger de temperatuur, hoe meer en hoe sneller Jan Lemeire Pag. 87 / 90

87 88 Basiselektronica II hfst 3 Diode Een elektrisch veld stuurt de elektronen/holen in een bepaalde richting: drift Door de diffusiecomponent zal het elektron niet 100% het elektrisch veld volgen Jan Lemeire Pag. 88 / 90

88 Een NP-junctie Het tegen elkaar plakken van N-gedopeerd silicium met P-gedopeerd silicium zorgt voor een depletielaag of ontruimingslaag waarover een spanning van 0.6 Volt komt te staan. De spanning houdt elektronen en holen tegen om van de ene naar de andere kant te springen. Jan Lemeire Pag. 89 / 90

89 Spanning over een diode Een spanning over de diode zal ofwel de depletielaag versterken en de diode doen sperren ofwel zorgen dat de spanning over de depletielaag overwonnen kan worden, de diode is in doorlaat. Jan Lemeire Pag. 90 / 90

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 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. 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: 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. 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&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. 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

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

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. 2 e semester: les 8. Software & binaire bomen. Jan Lemeire Informatica 2 e semester februari mei Parallel Systems: Introduction

Informatica. 2 e semester: les 8. Software & binaire bomen. Jan Lemeire Informatica 2 e semester februari mei Parallel Systems: Introduction Informatica 2 e semester: les 8 Software & binaire bomen Jan Lemeire Informatica 2 e semester februari mei 2016 Parallel Systems: Introduction Leibniz droom De Calculus ratiocinator Een logisch denkend

Nadere informatie

Informatica. Deel II: les 5. productieproces & stacks/queues/linked lists. Jan Lemeire Informatica deel II februari mei 2014

Informatica. Deel II: les 5. productieproces & stacks/queues/linked lists. Jan Lemeire Informatica deel II februari mei 2014 Informatica Deel II: les 5 productieproces & stacks/queues/linked lists Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Hoofdstuk 6: Het productieproces Jan Lemeire Pag.

Nadere informatie

Informatica 2e semester

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

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

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

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

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

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 5 computerarchitectuur chips lineaire datastructuren Jan Lemeire Informatica 2 e semester februari mei 2018 Vandaag 1. Deel III/4: computerarchitectuur 2. Array-algoritmen

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

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 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz Foreach Foreach Speciale versie van for om iets voor alle elementen

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

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

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

Hoofdstuk 2. Week 4: Datastructuren. 2.1 Leesopdracht. 2.2 Bomen. 2.3 Definitie

Hoofdstuk 2. Week 4: Datastructuren. 2.1 Leesopdracht. 2.2 Bomen. 2.3 Definitie Hoofdstuk 2 Week 4: Datastructuren 2.1 Leesopdracht In het hoorcollege komen lijsten en bomen aan de orde. De eerste datastructuur komt in het boek in bladzijden 317-333 aan de orde. In dit dictaat komt

Nadere informatie

Tentamen Programmeren in C (EE1400)

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

Nadere informatie

Datastructuren en algoritmen voor CKI

Datastructuren en algoritmen voor CKI Datastructuren en algoritmen voor CKI Jeroen Bransen 1 9 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Zoekbomen Binaire boom Bestaat uit knopen Beginknoop is de wortel (root) Elke knoop heeft

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

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

Informatica. Deel II: les 3. Electronica Arrays. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Informatica. Deel II: les 3. Electronica Arrays. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction Informatica Deel II: les 3 Electronica Arrays Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Leibniz droom De Calculus ratiocinator Een logisch denkend apparaat 1646 1716

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

Algoritmiek. 15 februari Grafen en bomen

Algoritmiek. 15 februari Grafen en bomen Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van

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

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

Informatica 2e semester

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

Informatica. Deel II: les 3. Electronica Arrays. Jan Lemeire Informatica deel II februari mei 2015. Parallel Systems: Introduction

Informatica. Deel II: les 3. Electronica Arrays. Jan Lemeire Informatica deel II februari mei 2015. Parallel Systems: Introduction Informatica Deel II: les 3 Electronica Arrays Jan Lemeire Informatica deel II februari mei 2015 Parallel Systems: Introduction Leibniz droom De Calculus ratiocinator Een logisch denkend apparaat 1646 1716

Nadere informatie

ALGORITMIEK: answers exercise class 7

ALGORITMIEK: answers exercise class 7 Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord

Nadere informatie

Muziek. Muziek. Analoog rekenen. Hoofdstuk 1: Van analoog naar digitaal. Analoog. Digitaal. Analoog. Gebruik makend van fysische grootheden Cf Babbage

Muziek. 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 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

Informatica 2e semester

Informatica 2e semester Informatica Les 3 Elektronica Interfaces - Overschrijven Jan Lemeire Informatica 2 e semester februari mei 2018 Informatica 2e semester: HOC 3 Vandaag 1. Deel III: hoofdstuk 1 binair rekenen 2. Deel III:

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

Dergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen.

Dergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen. Indexers in C#.Net In deze tutorial ga ik het hebben over indexers. Bij het gebruik van bijvoorbeeld een ArrayList object, kan je de gegevens uit deze collectie opvragen als ware het een array. // ArrayList

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

Zevende college algoritmiek. 23/24 maart Verdeel en Heers

Zevende college algoritmiek. 23/24 maart Verdeel en Heers Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht

Nadere informatie

Tweede college algoritmiek. 12 februari Grafen en bomen

Tweede college algoritmiek. 12 februari Grafen en bomen College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)

Nadere informatie

Addendum bij hoofdstuk 5 Generieke implementatie van de zoekalgoritmen

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

Opgaven Zoekbomen Datastructuren, 20 juni 2018, Werkgroep.

Opgaven Zoekbomen Datastructuren, 20 juni 2018, Werkgroep. Opgaven Zoekbomen Datastructuren, 20 juni 2018, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven.

Nadere informatie

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen Universiteit Twente 2009-2010/2 Afdeling Informatica, Faculteit EWI Tentamen dinsdag 19 januari 2010, 8.45-12.15 Algoritmen, Datastructuren en Complexiteit (214020 en 214025) Uitwerkingen Bij dit tentamen

Nadere informatie

Hoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding

Hoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding Hoofdstuk 3 Week 5: Sorteren 3.1 Inleiding Zoals al bleek in college 1 kunnen zoekalgoritmen veel sneller worden uitgevoerd, indien we weten dat de elementen in de lijst, waarin wordt gezocht, geordend

Nadere informatie

Datastructuren; (Zoek)bomen

Datastructuren; (Zoek)bomen Datastructuren; (Zoek)bomen Bomen, zoekbomen, gebalanceerde zoekbomen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 1 / 50 Bomen Traversal van bomen Datastructuur van

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

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

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

Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ.

Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ. Tweede Toets Datastructuren 29 juni 2016, 13.30 15.30, Educ-Γ. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe

Nadere informatie

Klas : 5 Industriële ICT Herhalingsvragen reeks 1 PC-techniek

Klas : 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 informatie

Zevende college Algoritmiek. 6 april Verdeel en Heers

Zevende college Algoritmiek. 6 april Verdeel en Heers Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)

Nadere informatie

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

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

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/ Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,

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

Opgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep.

Opgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep. Opgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven.

Nadere informatie

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

Inleiding elektronica Presentatie 1

Inleiding elektronica Presentatie 1 Inleiding elektronica Presentatie 1 2 Versie: 18 augustus 2014 Inleiding Elektronica Presentatie 1 16-9-2013 Praktische Elektronica, talk of the day! 2 1 Doel van deze module Herkennen van de algemene

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

Modelleren en Programmeren

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

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B

Verslag: Computer. Naam: Tyrone Ste Luce. Klas: M4B Verslag: Computer Naam: Tyrone Ste Luce Klas: M4B Inhoud 1. Inleiding 2. Binaire taal 3. Besturingssysteem 4. Hardware 5. Cmos en Bios 6. De processor 7. Internet 1. Inleiding Wanneer is de computer uitgevonden?

Nadere informatie

Informatica 2e semester

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

Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid.

Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid. Complexiteit of efficiëntie van algoritmen Hoe meet je deze? Tijd is geen goede maatstaf, want is afhankelijk van computer waarop algoritme wordt gedraaid. Een betere maatstaf is het aantal berekeningsstappen

Nadere informatie

Informatica 2e semester

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

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Doelstelling Code die werkt doet wat klant wil betrouwbaar is gemakkelijk te veranderen is En dit ook blijft doen Software rot Rottende software geeft geurtjes

Nadere informatie

Hardware. Robert Groen. Jim van Dijk. 13 september 2013 M44 ITTL

Hardware. Robert Groen. Jim van Dijk. 13 september 2013 M44 ITTL Hardware Robert Groen Jim van Dijk 13 september 2013 M44 ITTL 1 Inhoud Inleiding... 3 Geschiedenis van de pc... 4 Inhoud computer... 5 Software computer... 6 Onderdelen Hardware... 9 Functies Onderdelen

Nadere informatie

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=

Nadere informatie

Zevende college algoritmiek. 24 maart Verdeel en Heers

Zevende college algoritmiek. 24 maart Verdeel en Heers Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

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

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 25 november 2015 Herhaling Meer herhaling Recursie Mutuele recursie Objecten Herhaling Fibonacci class Fibonacci { public static void fibonaccitot(int bovengrens)

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:

Nadere informatie

Wat is een computer? Wanneer is de pc uitgevonden? Wat hebben de volgende bedrijven met elkaar te maken IBM, Microsoft, Adobe, Apple, Intel, AMD?

Wat is een computer? Wanneer is de pc uitgevonden? Wat hebben de volgende bedrijven met elkaar te maken IBM, Microsoft, Adobe, Apple, Intel, AMD? De Computer 1 Inhoudsopgave Wat is een computer?... 3 Wanneer is de pc uitgevonden?... 3 Wat hebben de volgende bedrijven met elkaar te maken IBM, Microsoft, Adobe, Apple, Intel, AMD? 3 De transistor....

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

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D

Nadere informatie

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Motivatie Software projecten mislukken vaker Vaker dan bouwkunde Vaker dan EM Vaker dan Oorzaak? Omgaan met verandering Vereisten Technologie Externe systemen

Nadere informatie

REEKS I. Zaterdag 6 november 2010, 9u

REEKS I. Zaterdag 6 november 2010, 9u TEST INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCHAPPEN - ACADEMIEJAAR 2010-2011 REEKS I Zaterdag 6 november 2010, 9u NAAM :... VRAAG 1: MINSTENS [5 PUNTEN] Schrijf een methode minstens(), met twee

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

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

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord December 17, 2018 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True : gohome () Goed:

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 10 Internet & sorteren Jan Lemeire Informatica 2 e semester februari mei 2018 Vandaag 1. Operating Systems (slot) 2. Sorteren (2e deel) 3. Internet: geschiedenis 4. Internet:

Nadere informatie

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

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

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 11 Hashing & Internet Slot Jan Lemeire Informatica 2 e semester februari mei 2017 Vandaag 1. Hashing 2. Internet (deel II) 3. Examen 4. De toekomst Hoofdstuk 9 Hashing Performantie

Nadere informatie

public boolean egualdates() post: returns true i f f there i f the l i s t contains at least two BirthDay objects with the same daynumber

public boolean egualdates() post: returns true i f f there i f the l i s t 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

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

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

NAAM: Programmeren 1 Examen 29/08/2012

NAAM: 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 informatie

Tentamen Programmeren in C (EE1400)

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

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord en Leonie Bosveld December 19, 2016 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True

Nadere informatie

De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL. ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family)

De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL. ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family) De CB channel controller TMS1022NL/NLL en TMS1023NL/NLL ( Dit is een maskrom-programmed version van de Texas Instruments TMS1000 family) Ik begin even met een korte inleiding over de TMS1000. ( Wil je

Nadere informatie

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 4EE11 Project Programmeren voor W College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Grotere programma s ontwerpen/maken Datastructuren en algoritmes 2 Evolutie,

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

520JHKHXJHQV -DQ*HQRH.+/LP

520JHKHXJHQV -DQ*HQRH.+/LP 520JHKHXJHQV -DQ*HQRH.+/LP 1 6LWXHULQJ520JHKHXJHQV Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Masker

Nadere informatie