Professional Documents
Culture Documents
H. Blockeel, B. Geebelen
Twee delen
Java
- Software: programmas die zorgen dat computers doen wat ze moeten doen - leren programmeren
SOCS
- Hardware: de machinerie achter de computer - inzicht in hoe een computer werkt
Hendrik Blockeel
2
Ben Geebelen
Hoorcolleges en oefenzittingen
JAVA: een zestal hoorcolleges + 15 oefenzittingen SOCS: vier hoorcolleges Hoorcolleges Java/Socs afgewisseld Wordt vervolgd in Informatica 2 (2de semester)
Oefenzittingen zijn ZEER belangrijk! Programmeren = vaardigheid, moet geoefend worden Onvoldoende oefening is veruit de grootste reden voor niet slagen op het examen Nog belangrijker in 2e semester! (practicum)
Examen
Mondeling met schriftelijke voorbereiding JAVA: 1 theorievraag, 1 oefening (klein Javaprogramma schrijven of ontwerpen) SOCS: enkel theorie
Waarom?
Waarom moeten wij dit vak volgen? De belangrijkste reden: Elke ingenieur moet kunnen programmeren Een ingenieur(-architect) moet voortdurend problemen oplossen waarvoor geen kant- en klare oplossing beschikbaar is Kunnen programmeren biedt een ongevenaarde exibiliteit bij het oplossen van problemen Programmeervaardigheden nodig bij gebruik van tools in vakken in hogere jaren
6
Waarom?
Waarom Java? Momenteel zeer veel gebruikte taal Kennis van Java is handig, programmas kunnen voortbouwen op / aansluiten bij bestaande programmas Maar: de taal zelf is niet het belangrijkste Java wordt binnen 20 jaar waarschijnlijk niet meer gebruikt De aangeleerde concepten zijn universeel ook nodig als je later met andere talen werkt Deze begrijpen en kunnen toepassen
Doelstellingen (JAVA)
Aanleren van objectgericht programmeren (OOP) 1 specieke taal: Java Algemene concepten die Java overstijgen Aanleren van probleemoplossend denken Ontwikkelen van algoritmes Problemen structureren, deelproblemen identiceren en oplossen = Focus op algemene vaardigheden
8
Supersnelle evolutie
ENIAC 1 (1946)
5000 operations per second
Smartphone (2011)
30 megaops (30.000.000 ops. per second)
Computer graphics
(Animatie)lms... Fotorealistische weergave van nog niet bestaande constructies op basis van modellen
12
Robocup
Voetballende robots (jaarlijkse competitie) Doel: By mid-21st century, a team of fully autonomous humanoid robot soccer players shall win the soccer game, complying with the ofcial rule of the FIFA, against the winner of the most recent World Cup.
13
Robot-autos
Robot-helicopters
http:/ /www.youtube.com/watch?v=MQUkgk3HyE&feature=player_detailpage
15
16
Programmeren...
Programmeren laat toe om relatief ingewikkelde berekeningen uit te voeren vragen beantwoorden die anders wel erg veel manueel werk zouden vergen, ook met een rekenmachine of spreadsheet ter beschikking
17
Voorbeeld
342 x 123 = ? gemakkelijk te berekenen Prijs van een ticket: 3 euro; vanaf 10 : 2,5 euro per bijkomend ticket; vanaf 50: 2 euro per bijkomend stuk. Druk een tabel af met prijzen voor 1 tot 100 tickets kan met excel of andere spreadsheet-software Warmteverlies (isolatie) van een woning Afhankelijk van gebruikte materialen, oppervlaktes, ... Persoon beschrijft woning, programma berekent automatisch warmteverlies Van beschrijving (plan, materialen, ...) naar getal: ingewikkelde berekening
18
Uitdrukkingen
20
Voorbeeld
5 7*5 4+2 3.2 3 / 3.0 3 /
22
We kunnen niet alleen met getallen rekenen Bv. 3<7 is ook een uitdrukking, net als 3+2 Wat is het resultaat?
23
Types
0, 1, 2, 3, ... -1, -2, -3, ... zijn integers (gehele getallen), in Java: int true, false zijn booleaanse waarden, in Java: boolean 3.2, 36.2751 zijn rele getallen; in Java: oat of double niet echt rele getallen: hebben steeds een beperkte precisie (beperkt aantal cijfers); double = dubbele precisie (bij voorkeur te gebruiken) Probeer bv.: (oat) 1.0/3.0; (double) 1.0/3.0 Wetenschappelijke notatie: 4.2e3 = 4.2*103 =4200 5.42e-5 = 0.0000542
25
26
27
28
Operatoren
wiskundige: +, -, *, /, % opmerking: / heeft twee betekenissen! gehele vs. rele deling betekent gehele deling wanneer toegepast op 2 waarden van type int, rele deling in alle andere gevallen %: modulo = rest na deling door... Bv. test of x even is: x % 2 == 0 logische: && (en), || (of), ! (niet) vergelijkende: < , > , <= , >= , == , != Strings: + (dus + heeft ook twee betekenissen)
29
Variabelen
31
Variabelen
Een variabele heeft een naam en type Van een variabele is niet meteen duidelijk welke waarde ze voorstelt; kan voor eender welke waarde van dat type staan In Java moeten we een variabele introduceren alvorens we ze mogen gebruiken Algemene vorm: <type> <variabele> ; Bv. : int x ; (x is een variabele van type int) Aan een variabele kan een waarde toegekend worden Tot nader order staat de variabele dan voor die waarde Algemene vorm: <variabele> = <uitdrukking> ; Bv. x = 4 ; (x krijgt de waarde 4)
32