Under kursens gång lär man sig olika programmeringsprinciper, och använder dessa principer för att skapa konkreta program. Studenten applicerar, stabiliserar och fördjupar sina kunskaper genom att lösa olika problem. Teori och praktik binds, och olika förmågor utvecklas.
Laborationerna utgör en regelbunden rutin, där studenten löser en rad olika problem och reflekterar kring dessa problem. Vägen visas till studenten, och studenten uppmuntras att gå denna väg.
Studenten jobbar vid datorn, och löser olika problem. Om behovet uppstår, diskuteras olika aspekter av ett problem med andra studenter och med läraren. Studenten skapar och lagrar en rad olika program. Dessa program beskrivs och kommenteras noggrant. Ett välorganiserat bibliotek med program skapas.
Studenten väljer själv de problem som ska lösas vid ett visst laborationstillfälle. Det väljs det som är intressant och som kan klaras vid en viss tidpunkt under kursens gång. Studenten går så djupt och så snabbt som han/hon kan.
För att bekräfta sin framgång på kursen, gör studenten ett urval av sina program och lägger dem i en särskild katalog. Denna katalog kan kallas för Laborationer. Studenten väljer 4 program från vart och ett av följande kunskapsområden:
1. Arv, klasshierarkier, gränssnitt och grafik
2. Grafiska användargränssnitt, användargränssnittets funktioner
3. Trådar, kommunikation mellan program
Programmen i ett visst kunskapsområde utgör en laboration. Dessa program läggs i en särskild underkatalog. Under kursens gång skapas 3 underkataloger, med 4 program i varje underkatalog. Dessa underkataloger kan kallas för Laboration 1, Laboration 2 och Laboration 3.
När en laboration har utvecklats tillräckligt, kan den redovisas. Laborationen kan redovisas vid vilket laborationstillfälle som helst. Studenten presenterar laborationen vid datorn. Olika aspekter i samband med ett program förklaras, och diskussionen förs. Studenten bekräftar sin förståelse av detaljer och sammanhanget.
Alla 3 laborationer ska redovisas. Om detta inte görs under kursens gång, ska det göras senare, vid något av extraredovisningstillfällen. Dessa tillfällen annonseras via kursens hemsida.
För varje laboration ges ett särskilt betyg. Om redovisningen accepteras, ges ett av följande betyg: A, B, C, D, E eller F. Om redovisningen inte accepteras, behöver studenten göra om den aktuella laborationen och redovisa den vid ett senare tillfälle. Utifrån enskilda betyg på laborationerna bildas ett gemensamt betyg. Detta betyg är medelvärdet av de enskilda betygen (medelvärdet avrundas uppåt).
Betyget för en viss laboration avgörs av följande faktorer:
1. hur djupt går studenten i ett visst område (hur mycket är de valda problemen och motsvarande program komplicerade, och hur binds det aktuella området med andra områden)
2. hur brett går studenten med sina problem inom ett visst område (hur täcks ett visst område med exempelprogrammen)
3. hur beskrivs de valda problemen, och hur kommenteras motsvarande program
4. hur presenteras programmen
5. hur förs diskussionen i samband med programmen
Betyget på en laboration visar hur studenten förstår en särskild enhet i kursen, och hur han/hon binder denna enhet med andra enheter. Betyget avspeglar också studentens förmåga att skriftligt och muntligt presentera sina program, och att föra diskussionen i samband med dessa program.
Problem för laborationerna kan hämtas från boken ”Programmeringsprinciper i Java, Övningsbok, Del 2” (Fadil Galjić, Studentlitteratur), eller från någon annan bok. Studenten kan modifiera och/eller utvidga dessa problem, eller hitta på egna problem. Originella inslag värderas högt.
Studenten ska noggrant studera bakomliggande teori i boken ”Programmeringsprinciper i Java, Del 2” (Fadil Galjić, Studentlitteratur). Studenten ska experimentera med olika programexempel i böckerna ”Programmeringsprinciper i Java, Exempelsamling, Del 2” (Fadil Galjić, Studentlitteratur) och ”Programmeringsprinciper i Java, Övningsbok, Del 2” (Fadil Galjić, Studentlitteratur). Studenten ska även experimentera på egen hand, för att kunna få en klar bild av de olika begreppen.