Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction



Vergelijkbare documenten
Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Informatica. Deel II&III: les 1. Java versus Python. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction

Hoofdstuk 0. Van Python tot Java.

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

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

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

Objectgericht Programmeren. (in Python)

SYNTRA-WEST. Cursus OOP. Deel

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

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Programmeren in Java les 3

Programmeren in Java 3

Programmeren (1) Examen NAAM:

Modelleren en Programmeren

Ontwerp van Informatiesystemen

Modelleren en Programmeren

Modulewijzer Tirdat01

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft


Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Overerving & Polymorfisme

Vakgroep CW KAHO Sint-Lieven

Datastructuren en algoritmen

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89.

[14] Functies. Volg mee via 14_Functies-1.py. We beginnen met een eenvoudig voorbeeldje:

Inleiding Programmeren 2

IMP Uitwerking week 13

N&O: Objectgericht Programmeren. (in Python)

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Lessen Java: Reeks pag. 1

Programmeren in Java 3

Inleiding Programmeren 2

10 Meer over functies

Scala. Korte introductie. Sylvia Stuurman

ALGORITME objectgeoriënteerd programmeren

SYNTRA-WEST. Initiatiecursus JAVA. Deel

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Java. Basissyllabus. Egon Pas

Addendum bij hoofdstuk 5 Generieke implementatie van de zoekalgoritmen

Datastructuren Werkcollege Intro

Modelleren en Programmeren

BEGINNER JAVA Inhoudsopgave

Een gelinkte lijst in C#

Zelftest Inleiding Programmeren

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Programmeren in C# Samenvatting van C#

Modelleren en Programmeren

Datastructuren: stapels, rijen en binaire bomen

Ingebouwde klassen & methodes

Objectgericht programmeren 1.

Modulewijzer tirprog02/infprg01, programmeren in Java 2

Introductie in C++ Jan van Rijn. September 2013

INFORMATICA 1STE BACHELOR IN DE INGENIEURSWETENSCAPPEN

Kleine cursus PHP5. Auteur: Raymond Moesker

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

Objectgericht programmeren 1

Programmeren in C++ (deel 1)

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

Stacks and queues. Hoofdstuk 6

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

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

Online c++ leren programmeren:

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


Zelftest Programmeren in Java

Cursus Programmeren en Dataverwerking.

Lessen Java: Reeks 3. David Blinder Jan G. Cornelis

Programmeermethoden NA. Week 5: Functies (vervolg)

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

Recursie. public static int faculteit( int n ){ // Deze functie berekent n! // pre: n = N en n >= 0 // post: faculteit = N!

Programmeermethoden NA. Week 5: Functies (vervolg)

1 Inleiding in Functioneel Programmeren

Objectgericht ontwerpen

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Vorig jaar in 5v cluster, tot en met OO hoofdstukken, geen problemen. Nu in mengcluster, tot OO hoofdstukken, wel problemen bij 4h leerlingen

1.7 Ontleding van het eerste programma... 14

Abstracte klassen & Interfaces

Inleiding Programmeren 2

Transcriptie:

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 Imaging: Quality, Quantification and Acceleration

The third pillar of the scientific world: computational science

25/02/2014 9

Informatica = tool

Jan Lemeire (jan.lemeire@vub.ac.be) Burgerlijk ingenieur, 1994, VUB + bijkomende masters in de computerwetenschappen (1995) Werkte 4 jaar in de privé, voor 2 IT-consultancy companies 2000-2007: doctoreerde aan de VUB als assistant Gaf oefeningen informatica Sinds 2008: deeltijds professor aan VUB Vak parallel systems in de masters Sinds 2011: titularis Informatica eerste bachelors Sinds oktober 2013: geeft ook les aan industrieel ingenieurs Computerarchitectuur, operating systems, dsp, gevorderde programmeertechnieken Onderzoeksdomeinen: parallel processing & data mining/machine learning/probabilistische modellen http://parallel.vub.ac.be

+ Eerste semester Algoritmes Recursie Maken van een eigen functie Maken van een while-lus Gebruiken van lijsten Maken van een for-lus Variabelen

2 e semester Boek: Java de basis - Andree Hollander Cursustekst deel II Cursustekst deel III Slides: alles staat in cursus Code http://parallel.vub.ac.be: alle info Jan Lemeire Pag. 13 / 37

1 e semester Basis programmeervaardigheden While for Lijsten/arrays Functies Recursie Object-georiënteerd programmeren Regels Organisatie van de code Gebruik klasses Pijlers Datastructuren Arrays ArrayLists Stack, Queue, Linked lists trees - maps Algoritmen Numerieke algoritmen: nulpunten, sorteren Zoekalgoritmen Beheers het gebruik van bibliotheken: Programmeervaardigheden Klassestructuur PROJECT Voorbeelden Documentatie GUI-klassen JFrames Jpanels Jbuttons - Events Eventlisteners - mouse Paint, layout, JApplet Utility-klassen Timer, Thread, Random, File, THEORIE III: technologie, historiek en economische aspecten

Java versus Python 1. Object-georiënteerde taal. 2. public static void main 3. Puntkomma s en accolades 4. System.out.println 5. Typeren: sterk en statisch 6. Arrays en ArrayLists 7. Verschil tussen letters en woorden 8. De for-lus 9. Varia Jan Lemeire Pag. 15 / 37

Jan Lemeire Pag. 16 / 37

Wat berekent GHI? Jan Lemeire Pag. 17 / 37

p. 5 GGD in python def berekengrootstgemenedeler(x, y): while x!= y: if x > y: x = x-y else: y = y-x return x; s = raw_input("geef 2 getallen: ") a = int(s) s = raw_input() b = int(s) ggd = berekengrootstgemenedeler(a, b) print "Grootste gemene deler van", a, "en", b, "is", ggd Jan Lemeire Pag. 18 / 37

p. 8 Getypeerde parameters public static int berekengrootstgemenedeler(int x, int y) Java: Enkel op te roepen met integers In python: ook reëel getal mogelijk! Elk type, dus ook string Parameters 4.5 & 5.5 werkt Parameters 4.5 en 5.1 werkt het niet NOK Jan Lemeire Pag. 19 / 37

Type checking nuttig Je weet als gebruiker wat mee te geven In python: input documenteren Geruststelling, je kan niets fouts doen Hier: negatieve waarden geeft fouten: checken In Python: steeds extra checks doen op type Parameters kunnen ingewikkelde objecten zijn Jan Lemeire Pag. 20 / 37

p. 11 Functie: maar 1 teruggeefwaarde Java, zoals de meeste programmeertalen Functie kan maar 1 waarde teruggeven Voorbeeld: celsius-conversie, ggd Indien meerdere waarden: truken nodig Jan Lemeire Pag. 21 / 37

Voorlopige conclusie conclusie Python Snel, voor kleine programma s High-level, handige basisfunctionaliteiten Cf Matlab Java Voor grote programma s en bibliotheken, te delen met andere programmeurs Iets meer low-level Meest-gebruikte industriële taal Jan Lemeire Pag. 22 / 37

Java versus Python 1. Object-georiënteerde taal. 2. public static void main 3. Puntkomma s en accolades 4. System.out.println 5. Typeren: sterk en statisch 6. Arrays en ArrayLists 7. Verschil tussen letters en woorden 8. De for-lus 9. Varia Jan Lemeire Pag. 23 / 37

Waarom een burgerlijk ingenieur aanwerven? Doorzettingsvermogen Zelfdiscipline Werkmethode Analytisch denken Probleemoplossend vermogen

Deze cursus: kennis & vaardigheden Nieuwe taal onder de knie krijgen Nauwkeurigheid Debuggen problemen oplossen Doorzettingsvermogen Jan Lemeire Pag. 25 / 37

Objecten

Persoon-object Jan Lemeire Pag. 27 / 37

p. 23 Jan Lemeire Pag. 28 / 37

Niet in cursus Persoonobjecten Jan Lemeire Pag. 29 / 37

Objecten Gedefinieerd met een klasse (type object) Heeft attributen De eigenschappen van het object Aangemaakt met een constructor Object is instantiatie van een welbepaalde klasse Heeft methodes Methode heeft toegang tot de attributen, kan deze veranderen Jan Lemeire Pag. 30 / 37

p. 26 Uitbreiding: vrienden Jan Lemeire Pag. 31 / 37

p. 28 Overerving Jan Lemeire Pag. 32 / 37

p. 25 Jan Lemeire Pag. 33 / 37

Overerving (inheritance) Subklasse erft alle attributen en methodes over van moederklasse Subklasse kan attributen toevoegen Subklasse kan methodes toevoegen of methodes overschrijven Constructor van subklasse moet een constructor van moederklasse oproepen (superconstructor) Jan Lemeire Pag. 34 / 37

Overerving (Inheritance): hiërarchie Generalizatie Vehicle Light Vehicle Heavy Vehicle Car Truck Bus Specializatie Racing Car Jan Lemeire Pag. 35 / 37

p. 26 Jan Lemeire Pag. 36 / 37

Pijlers van object-georiënteerde programmeertalen I. Encapsulatie 2.4 Conclusies ArrayList versus array p. 34 3.2 Stapel-datastructuur p. 39 5.2 Java s LinkedList p. 52 6.7.2 AVL-boom p. 70 II. Overerving (inheritance) 4.3 FunctieMetAfgeleide-interface p. 47-48 6.7.4 AVLTree subklasse p. 72 III. Polymorfisme en abstractie 4.2 Functie-interface p. 45 8.6 Mapimplementaties p. 97 9.2.2 Abstract zoekalgoritme p.100 9.2.7 Vergelijking van zoekalgoritmes p.110 p. 4 Jan Lemeire Pag. 37 / 37

Feedbackpermanentie Theorie & oefeningen op afspraak met Ann Dooms https://kwaliteitszorg.vub.ac.be/evaluatie Jan Lemeire Pag. 38 / 37