Programmeren (2IS45) (semester A, kwartiel 1, 2012/2013)

16/10 Inleveropdracht 3 (pdf) beschikbaar; inleveren via PEACH voor vrijdag 26 oktober 23.00u (te gebruiken project: IntListTester_practicum.zip)
3/10 Inleveropdracht 2 (pdf) beschikbaar; inleveren via PEACH voor zondag 14 oktober 23.00u
19/9 Inleveropdracht 1(pdf) beschikbaar; inleveren via PEACH voor zondag 30 september 23.00u
18/9 De practicumbijeenkomsten op donderdag zijn met ingang van 20 september in Metaforum 13 (5e verdieping Metaforum).
  Tentamen, inleveropdrachten en eindcijfer

Het tentamen zal met de eigen laptop/notebook gemaakt moeten worden. Gebruik van internet en netwerkverbindingen tijdens het tentamen is verboden. De netwerkverbindingen zullen tijdens het tentamen worden uitgeschakeld. Het werk moet electronisch ingeleverd worden.

Er zijn 3 inleveropdrachten die elk met een cijfer (0 t/m 10) beoordeeld zullen worden. Het eindresultaat voor
de inleveropdrachten is het gemiddelde (niet afgerond) van de 3 cijfers behaald voor de opdrachten.

Het eindcijfer voor het vak wordt bepaald uit de punten behaald voor het tentamen (gewicht 70%) en het eindresultaat behaald voor de ingeleverde opdrachten (gewicht 30%).

doelgroep
minor TI, minor ES
college en practicum
semester A kwartiel 1 maandag 3e + 4e uur MA 1.46 (college)
woensdag 5e + 6e uur Metaforum 09 (college en/of practicum)
donderdag 1e + 2e uur Metaforum 13 (practicum)
docent
Gerard Zwaan, MF 7.093, email: G.Zwaan@tue.nl
materiaal
Java compiler en ontwikkelomgeving (IDE)
Voor het uitvoeren van de opdrachten op het practicum zijn een Java compiler en een Java ontwikkelomgeving nodig. Aangeraden wordt om hiervoor de Java Development Kit Standard Edition (JDKversie 7 update 7) te downloaden van deze Oracle pagina en te installeren op uw computer. Vervolgens dient u de NetBeans ontwikkelomgeving (NetBeans IDE 7.2, versie voor Java SE) via deze NetBeans pagina te downloaden en te installeren.
De volgende pdf-file bevat een iets gedateerde beknopte handleiding NetBeans (pdf) (beschrijft kort downloaden en installeren van NetBeans en het creeren van eenvoudige projecten binnen de NetBeans IDE).
inhoud
datum behandelde stof materiaal
3/9 (college) (lees zelf hoofdstuk 1 van het boek)
inleiding
2.1 (basis Java applicatie/programma)
2.2 (variabelen en primitieve typen)(gedeeltelijk)
voorbeeldprogramma (zip-file met compleet NetBeansproject):
HelloWorld.zip
5/9 (college) 2.2 (variabelen en primitieve type (vervolg))
2.5 (expressies)
2.4 (tekstinvoer)
met name 2.4.6: standaardklasse Scanner voor tekstinvoer
3.1 (while statement, if-then-else statement)
gestructureerd commentaar, postconditie, invariant, eindiging repetitie
voorbeeldprogramma's (zip-files met complete NetBeans projecten):
Interest.zip, TextInputScanner.zip TextInputTextIO.zip,
PrintNumbers.zip, PrintNumbers1.zip, Maximum.zip
6/9 (instr/pract)
(met notebook)
Opgaven week 1 (pdf) Average2.java
XXX.java
10/9 (college)
(alleen 3e uur,
 4e uur vervalt)
oplossing opgave 7, week 1
if-statement (3 gegeven getallen in volgorde afdrukken; 2 oplossingen:
volledige beslissingsboom vs. verwisselen van waarden)
(zie ook 3.5.1 t/m 3.5.3)
GCD.java
PrintInOrder3Numbers.zip

Toevoegen van JDK Javadoc (beschrijving API Javabibliotheken)
aan de NetBeans IDE volg
link
12/9 (college) operaties op Strings (2.3.2); klasse Character en methode isLetter(char)
tellen van karakters met bepaalde eigenschap in een ingevoerde string
(aantal a's; aantal a's en A's; aantal letters)
switch-statement (3.6.1)
introductie arrays (7.1.1, 7.1.2) a.h.v. bepaling van het meest
voorkomende cijfer in een rij cijfers
voorbeeldprogramma MostFrequentGrade
in- en uitvoer met files (file I/O) (2.4.5, sheets)
eindiging van repetities (3N+1-sequence, 3.2.2)
for-loops (3.4 t/m 3.4.3)
afdrukken alle delers van een getal (3 varianten; laatste met hulpfunctie)
NumberOfas.zip
MostFrequentGrade.zip
sheets file I/O met klassen uit standaardbibliotheken (pdf) (vanaf sheet 22)
FileInputOutput.zip (voorbeeldproject file I/O)
ThreeNPlusOne.zip (voorbeeldproject 3N+1-sequence)
PrintingDivisors.zip (voorbeeldproject afdrukken delers; 3 varianten)
13/9 (instr/pract)
(met notebook)
Opgaven week 2 (pdf) SquareRoot.java
17/9 (college) subroutines (deeltaak/deelexpressie), contract, definitie/aanroep,
parameters (formeel/actueel), resultaattype, lokale/globale variabelen
(zie voorbeeldprojecten; hoofdstuk 4: 4.1, 4.2, 4.3, 4.4 (4.3.3, 4.3.5 nog niet behandeld)
voorbeeldprojecten
GuessingGameSection42.zip (methoden voor deeltaken, globale variabelen)
Summation.zip (methoden voor deeltaken, globale vs. lokale variabelen, functie met resultaat en parameter)
19/9 (college/instr/pract) vervolg subroutines (zie voorbeeldprojecten)

Opgaven week 3 (pdf)
Inleveropdracht 1 (pdf) (inleveren via PEACH voor zondag 30 september 23.00u)
voorbeeldprojecten
GameOfDice_monolithic.zip, GameOfDice_subroutines.zip
20/9 (instr/pract) zie 19/9  
24/9 (college) specificatie/preconditie/postconditie
gebruik van een bestaande klasse o.b.v. specificatie (zie sectie 4.6)
recursie
voorbeeldproject (gebruik van een bestaande klasse (Mosaic)):
RandomMosaicWalksection46.zip
recursion.pdf (notes on recursion)
FibonacciNumbers.zip (project recursie)
Recursion_Summation.zip (valkuilen bij het gebruik van recursie)
26/9 (college/instr/pract) recursie (vervolg; zie 24/9)
Opgaven week 4 (pdf)
27/9 (instr/pract) zie 26/9  
1/10 (college) scope van variabelen (zie sectie 4.7)

klassen als typen, instanties/objecten, instantievariabelen en -methoden,
constructoren, structurering programma's door gebruik van geschikte
klassen (voorbeeld: punt-in-rechthoeken-probleem)
(zie ook secties 5.1, 5.2, 5.3)

voorbeeldprojecten (punt-in-rechthoeken-probleem)
PointsInRectangles_monolithic.zip (oplossing met 4 integer arrays)
PointsInRectangles_monolithic_class_as_datacontainer.zip (oplossing met
1 array van Rectangle-objecten, klasse Rectangle gebruikt
als datacontainer)
PointsInRectangles_monolithic_class_constr_1method.zip (oplsossing met
1 array van Rectangle-objecten, klasse Rectangle gebruikt als  nieuw
type (data+operaties))
3/10
(college/instr/pract)
ontwerp en implementatie van een klasse (TimeOfDay)
Opgaven week 5 (pdf)
TimeOfDay (slides), TimeOfDay design document (pdf)

PointsInRectangles.java, Rectangle.java, TimeOfDay.java
4/10 (instr/pract) inleveropdracht 2 (pdf) beschikbaar; inleveren via PEACH voor zondag 14 oktober 23.00u (te gebruiken file: Date.java)  
8/10 (college) aspecten van programmeren van grafische user interfaces (GUIs)
aan de hand van een aantal voorbeeldprojecten
(zie ook boek 6.1, 6.3, 6.4, 6.5, 6.6, 6.7)
voorbeeldprojecten GUI programmeren
EmptyWindowExample.zip
GreenBlueButtonExample.zip
TextInputExample.zip
10/10
(college/instr/pract)
vervolg college GUI-programmeren (zie 8/10)
instructie Opgaven week 6 (pdf)
DrawingPanelMouseClicks_manual.zip
DrawingPanelMouseClicks.zip
TimeOfDayViewer_manual.zip
11/10 (instr/pract) oefening in GUI-design in NetBeans (TimeOfDay_GUI.pdf)  
15/10 (college) aspecten van programmeren van grafische user interfaces (GUIs)
met behulp van de grafische editor in NetBeans
abstracte datastructuren en de implementatie daarvan aan de hand van
datastructuur stapel (stack) en twee implementaties daarvan
(sheets: data_structures_stacks.pdf)
voorbeeldproject GUI programmeren DrawingPanelMouseClicks.zip
voorbeeldprojecten datastructuren
UnboundedStack_ArrayApp.zip (stack geimplementeerd met dynamisch array)
UnboundedStack_ListApp.zip (stack geimplementeerd met gelinkte lijst)
17/10
(college/instr/pract)
inleveropdracht 3 (pdf) beschikbaar; inleveren via PEACH voor vrijdag 26 oktober 23.00u (te gebruiken project: IntListTester_practicum.zip)  
18/10 (instr/pract)    
22/10 (college) eenvoudige inheritance (extends, super- en subklasse, uitbreiding en/of
verandering gedrag, dynamische binding, polymorfisme)
eenvoudige klassenhierarchie (figuren), abstracte klasse
(zie ook boek: 5.5, 5.6, 5.7.1, 5.7.2, 5.7.3)
sheets: inheritance.pdf
24/10
(instr/pract)
oefening over figurenhierarchie
(tekst Assignment_Figures.pdf, beginproject FiguresAssignment.zip)

(additionele oefening in GUI-design met NetBeans
tekst Assignment_Rectangles.pdf, beginproject Rectangles.zip
ontwikkelde GUI is vergelijkbaar met de (al gegeven) GUI
in bovenstaande oefening over figuren)

 
25/10 geen bijeenkomst  

Gerard Zwaan