T-FLIP Kickoff Courses I am involved in Førsteamanuensis, Morten Goodwin, Ph.D. 2015-09-02 Basic Programming • DAT101: Basic Programming. • 150-200 students. • Java • 24 weeks. • 4-5 mandatory assignments weekly • 2-3 voluntary assignments weekly T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 2/ 22 Basic Programming • All mandatory assignments fully tests. • Types of tests: • Unit tests • Mockup • Reflection T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 3/ 22 Standard unit tests 1 2 3 4 5 6 7 @Test(timeout=10000) public void testOppgave3() { Oblig3Funksjoner k = new Oblig3Funksjoner(); int euro = (int)k.kronerTilEuro(20); if(euro!=2){ fail(”Forsøkte å konvertere 20 kroner. Forventet 2 Euro ←men fikk isteden:”+euro); } 8 9 10 11 12 13 euro = (int)k.kronerTilEuro(0); if(euro!=0){ fail(”Forsøkte å konvertere 0 kroner. Forventet 0 Euro ←men fikk isteden:”+euro); } } T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 4/ 22 Mockup 1 2 3 4 5 6 7 8 9 10 11 12 13 public class TestFrame extends JFrame{ public ArrayList<Component> komponenter = new ArrayList<←Component>(); public Component add(Component c){...}} public void testOppgave8(){ int numJButtons = 0; for (Component c : t.komponenter) { try { JButton b = (JButton)c; numJButtons += 1; } catch (ClassCastException e) {} } if(numJButtons!=24){ fail(”Det er ”+numJButtons+” luker lagt til. Oppgaven krever 24 ←knapper.”); }} T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 5/ 22 Reflection 1 2 3 4 5 6 7 8 public void testOppgave2(){ Oblig10Brus o = new Oblig10Brus(); Class tClass = o.getClass(); boolean hasPoengsum = false; if(!Tools.containsVariable(”double”, ”poengsum”, tClass){ fail(”Fant ikke variabelen poengsum av typen double”); } } T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 6/ 22 Assignment T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 7/ 22 Do assignment T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 8/ 22 Wait a long time for the teacher T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 9/ 22 Fix problems noted by the teacher T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 10/ 22 Wait a long time for the teacher T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 11/ 22 Wait a long time for the teacher — again T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 11/ 22 Teacher will manually verify the assignment T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 12/ 22 New way T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 13/ 22 Do assignment T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 14/ 22 Push code T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 15/ 22 Oversikt 1 2 3 4 5 6 7 8 9 10 Detaljer Oppgave 10 Deloppgave 1: Godkjent Deloppgave 2: Ikke godkjent Oblig10Brus har hverken variabelen poengsum av typen double, eller metoden getPoengsum som returnerer double Deloppgave 3: Ikke godkjent Ble ikke spurt om brusmerke da jeg la til brus Antall deloppgaver godkjent: 1 av 3 (33%) Total evaluering Oppgave 10: Ikke godkjent Fix problems noted by the system T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 17/ 22 Student iteration Program the assignemnts Commit and push on git Build in Bamboo View results Pass Pass Fail If one or more tests fails If every test passes T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 18/ 22 Everyone is Happy Happy Student T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 19/ 22 Everyone is Happy Happy Student T-FLIP Kickoff - Courses I am involved in - Morten Goodwin Happy Teacher New way 19/ 22 DAT101 Usage 14 % 45% 12 % 40% 35% 10 % 30% 8% 25% 6% 20% 15% 4% 10% 2% 5% Deadline 00-01 01-02 02-03 03-04 04-05 05-06 06-07 07-08 08-09 09-10 10-11 11-12 12-13 13-14 14-15 15-16 16-17 17-18 18-19 19-29 20-21 21-22 22-23 23-00 0% New Assignment Given Usage over week New Assignment Given Deadline 0% Wed Thu Fri Sat Sun Mon Tue Usage over day T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 20/ 22 Fall Uke 1 2 3 4 5 6 7 8 9 10 11 12 Tema Introduksjon Programkontroll Funksjoner og metoder Løkker Metoder og objekter GUI Arrays Objektorientering Objektorientering (2) GUI (2) Unntak og debugging Repetisjon Oppgaver Enkelt program Biblioteksprogram Valutakalkulator Gjett-et-tall spill Super Mario Julekalender GPS-program Stein-saks-papir spill Snake Brus-testings program Eksamensoppgaver T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 21/ 22 Spring Uke 1 2 3 4 5 6 7 8 9 10 11 12 Tema Oppgave Android-utvikling Quiz-app Android-utvikling BreakOut-app String Oversetter UML Skiløp-program Filer Varebeholdning GUI (3) Sudoku Generic Collections Lotto-program Eksterne bibliotek (Twitter) Program for fjernstudenter Enhetstesting og Tråder Enhetstestet valutakalkulatro Design patterns Word Eksamenstrening Eksamensoppgaver Eksamenstrening (2) Eksamensoppgaver Eksamen T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 22/ 22 DAT233: Programming Concepts • 15 students. • Scala, Prolog • 12. • 3 large mandatory assignments. • Manually tested for correctness, speed and functionality T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 23/ 22 DAT234: Scripting and Hacking • Not involved with any longer • 25 students. • Bash, Powershell, and Python • 10 assignments. • Manually tested for correctness. • All handins through git T-FLIP Kickoff - Courses I am involved in - Morten Goodwin New way 24/ 22
© Copyright 2024