UvA, opleiding AI, cursus IOOP UvA - Opleiding AI Cursus Imperatief & Objectgeoriënteerd Programmeren College 1: maandag 31 januari 2011 Docent: drs. F. de Vries Assistent: Maarten Inja
UvA, opleiding AI, cursus IOOP Ponskaarten
UvA, opleiding AI, cursus IOOP Programma vandaag 1e uur: opzet van de cursus - Begeleiding, Inhoud, Opdrachtenschema’s - Beoordeling en deadlines, Practicum 2e uur: stof hoofdstuk 1 en 2 -Concepten en begrippen -Programmavoorbeelden
UvA, opleiding AI, cursus IOOP Doel van de cursus Kennismaking met de concepten van het moderne object-georiënteerde programmeren Kennis van de begrippen en concepten Kunnen toepassen van concepten Ervaringskennis met toepassen van de concepten
UvA, opleiding AI, cursus IOOP Realisatie van het doel van de cursus Twee sporen: (1) Theorie: oefeningen uit de werkboeken maken (2) Praktijk: practicumopdrachten maken
UvA, opleiding AI, cursus IOOP De website van de cursus 11/index.htmhttp://staff.science.uva.nl/~fdevries/ioop.ai/ioop10 11/index.htm Literatuur Cursusrooster Opdrachten werkboek Opdrachten practicum
UvA, opleiding AI, cursus IOOP Werkboeken Onderdelen van de Student Lab Manuals: – Prelab Activities (met 5 sub-onderdelen) – Lab Exercises – (Labs provided by instructor) – Postlab Activities We maken 3 onderdelen uit Prelab Activities: – Short Answers – Programming Ouput – Correct the code Telt voor 30% van theoriecijfer
UvA, opleiding AI, cursus IOOP Beoordeling practicumopdrachten Per opdracht 0, 1 of 2 punten: 0 punten: programma werkt niet en/of voldoet niet aan de specificaties 1 punt: programma werkt en voldoet aan de specificaties 2 punten: plus voldoet aan code conventies: – Zinvolle code – Overzichtelijke code – Lay out en comments volgens code conventies Voorbeelden
UvA, opleiding AI, cursus IOOP punten
UvA, opleiding AI, cursus IOOP punt
UvA, opleiding AI, cursus IOOP punten (deel a)
UvA, opleiding AI, cursus IOOP punten (deel b)
UvA, opleiding AI, cursus IOOP Code conventies (1) Comments: – Intro klasse (doel, functie, opdracht nr, naam auteur, datum) meerdere regels – Kort comment elke instantie variabele – Introductie methode 1 regel – Code blokken: wat en waarom – End-comments bij klasse, methode, blok, nesting – Elke methode heeft dus minimaal 2 comments – een/codeConventies.htm een/codeConventies.htm
UvA, opleiding AI, cursus IOOP Code conventies (2) Lege regels: – Vóór de header van de klasse – Vóór elke methode beschrijving – Vóór een samenhangend codeblok Accolades {..} – (aanbevolen) Begin accolade: vooraan, regel verder leeg – Einde accolade: vooraan met end-comment Spaties: – (aanbevolen) rond argumenten ( arg1, arg2 ) Regellengte: – maximaal plm. 80 tekens
UvA, opleiding AI, cursus IOOP Code conventies (3) Extra conventies: 1.Namen van klassen beginnen altijd met een Hoofdletter 2.Namen van methoden beginnen met een kleine letter 3.Namen van variabelen beginnen met een kleine letter 4.Lange namen worden met de CamelCase notatie beschrevenCamelCase
UvA, opleiding AI, cursus IOOP Wat wordt bekend verondersteld? Normale computergebruik Enige bekendheid met Windows Edit-compile-execute cyclus programmeren
UvA, opleiding AI, cursus IOOP Spaciale aandacht voor: Studenten die achterlopen: – Sneller signaleren – Extra aandacht Laatste jaar van deze cursus?? – Dus afronden extra belangrijk
UvA, opleiding AI, cursus IOOP Pauze Uitdelen short list concepten Na de pauze: stof hfst 1 en 2
UvA, opleiding AI, cursus IOOP Deel 2: stof hoofdstuk 1 en 2 Hoofdstuk 1: algemene inleiding Hoofdstuk 2: eenvoudige Java programma’s
UvA, opleiding AI, cursus IOOP Typical Java Development Environment Java programs go through five phases – Edit Programmer writes program using an editor; stores program on disk with the.java file name extension – Compile Use javac (the Java compiler) to create bytecodes from source code program; bytecodes stored in.class files – Load Class loader reads bytecodes from.class files into memory – Verify Bytecode verifier examines bytecodes to ensure that they are valid and do not violate security restrictions – Execute Java Virtual Machine (JVM) uses a combination of interpretation and just- in-time compilation to translate bytecodes into machine language
Pearson Education, Inc. All rights reserved. 21 Fig. 1.1 | Typical Java development environment.
UvA, opleiding AI, cursus IOOP Hoofdstuk 2 Eerst 4 vormen van Welcome.java Eenvoudige applicaties: – Voorbeeld 1: class Addition – Voorbeeld 2: class Comparison
UvA, opleiding AI, cursus IOOP Figuur 2.1 Welcome1.java
UvA, opleiding AI, cursus IOOP Figuur 2.3 Welcome2.java
UvA, opleiding AI, cursus IOOP Figuur 2.4 Welcome3.java
UvA, opleiding AI, cursus IOOP Figuur 2.6 Welcome4.java
UvA, opleiding AI, cursus IOOP Fig. 2.7 Addition.java – deel 1 import declaration Scanner nextInt import declaration imports class Scanner from package java.util. Declare and initialize variable input, which is a Scanner. Declare variables number1, number2 and sum. Read an integer from the user and assign it to number1.
UvA, opleiding AI, cursus IOOP deel 2 Addition.java (2 of 2) 4. Addition 5. printf Read an integer from the user and assign it to number2. Calculate the sum of the variables number1 and number2, assign result to sum. Display the sum using formatted output.
UvA, opleiding AI, cursus IOOP Hoofdstuk 2 Toepassing gelijkheids- en relationele operatoren Voorbeeld 2: class Comparison
UvA, opleiding AI, cursus IOOP Fig | Equality and relational operators.
UvA, opleiding AI, cursus IOOP Outline Test for equality, display result using printf. Compares two numbers using relational operator <.
UvA, opleiding AI, cursus IOOP Outline Comparison.java (2 of 2) Program output Compares two numbers using relational operators >, =.
UvA, opleiding AI, cursus IOOP Volgende week College – Bespreking en zelfbeoordeling van LabManual oefeningen hoofdstuk 2 – Vooruitblik op de stof van hoofdstuk 3 Practicum – Basisopdrachten cursusweek 2 (jaarweek 6) Studie – Stof hoofdstuk 3 Deitel & Deitel – Lab Manual oefeningen hoofdstuk 3 – Basisopdrachten cursusweek 3