TDDD78 Att välja och genomföra ett projekt

Relevanta dokument
TDDD78 Att välja och planera ett projekt

Att välja och planera ett projekt

TDDD78 Att välja och planera ett projekt

Före projektet TDDD78, TDDE30, 729A

Labb 1: Vad, hur, och varför?

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Design och konstruktion av grafiska gränssnitt

Design och konstruktion av grafiska gränssnitt

TDDD92 Artificiell intelligens -- projekt

TDDD92 Artificiell intelligens -- projekt

Kursutvärdering/1MD222 Konstruktion av användargränssnitt II Datum för sammanställning:

GRUNDKURS I C-PROGRAMMERING

Evaluation Summary - CDT104 Grundläggande Webbdesign HT07 Dan Levin

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 13. Svarsfrekvens i procent = 27.

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Objektorienterad programmering och Java

Hur tycker du kursen har varit? Tycker du att kursens upplägg har underlättat för dig att uppnå lärandemålen?

TDDD80 Mobila och sociala applikationer. Kursintroduktion

Kursutvärdering FySA01 Ht 2014

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

BG306A Strukturmekanik, bärverksanalys MT129A Finita elementmetoden

Välkomna till DIT012 IPGO

Evaluation Summary - CT3380 Grundläggande webbdesign HT05 Dan Levin

TDDD80 Mobila och sociala applikationer. Kursintroduktion

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Kursutvärderare: IT-kansliet/Christina Waller. General opinions: 1. What is your general feeling about the course? Antal svar: 17 Medelvärde: 2.

Projektuppgift - Gymmet

Välkommen till kursen i Avancerad interaktionsdesign. Certec & EAT Institutionen för designvetenskaper

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Slutrapport för SquareShooter

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Projektuppgift - Biblioteket

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Objektorienterad programmering

TDDD78 Objektorientering: Lagring och livstid

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 11. Svarsfrekvens i procent = 14.

Outline. Objektorienterad Programmering (TDDC77) Kursinfo. Outline. Hemsida. Organization. Ahmed Rezine Examination. Webreg.

Föreläsning 16: Tentan, att förbereda sig

Eventuella kommentarer: Under kursens gång har 4 studenter hoppat av utbildningen.

Evaluation Summary - CT3380 Grundäggande webbdesign HT06 Dan Levin

1DV450 - vt2014. Har du läst kursen på Campus eller distans. Antal respondenter: 24. Antal svar. Svarsfrekvens: 37,50 %

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

TDDD80 Mobila och sociala applika1oner. Kursintroduk1on

SLUTRAPPORT. Sebastianlund.com. Individuellt mjukvaruutveckingsprojekt, 1DV430. Författare: Sebastian Lund WP11 Datum:

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

DD

Dagbok Mikael Lyck

VT17-1DV023-7,5hp. Vilket sammanfattande omdöme ger du kursen? Antal respondenter: 56. Antal svar. Svarsfrekvens: 42,86 %

Fö 8. Sammanfattande föreläsning MAMN25

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Arbetsrapport CEQ, ETS170

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Allmänna frågor om kursen: Kursutvärderare: IT-kansliet/Christina Waller. 1. Vad är ditt allmänna omdöme om kursen? Antal svar: 30 Medelvärde: 3.

PD104A - Introduktion för Produktuteckling och design

TDDD78, TDDE30, 729A Typhierarkier del 3 När och hur vill vi använda dem? Några Best Practices

[SLUTRAPPORT: DRAWPIXLZ (ANDROID-APP)] Slutrapport. Författare: Zlatko Ladan. Program: Utvecklare av Digitala Tjänster 180P

Hi-Fi Prototyping + laborationsgenomgång & verktyg

TDDC74: Projekttitel

TDDC77 Objektorienterad Programmering

KURS-PM för. Lärande i arbete 2 (YTLR27) 40 Yhp. Version 1.0 Uppdaterad

Praktikum i programmering

HF LEQ. Antal svar: 23

Dokumentation och presentation av ert arbete

TDDD82. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

GPT The bitter end. Förra veckan: Rekursiva funktioner som läggs in externa filer har stor räckvidd

Projektarbete. Anvisningar, tips och mallar. Sammanställt lå 05/06 av lärgruppen - Projektarbete

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 1. Kursinformation Vad är Software Engineering? Hur går ett projekt till?

Objektorienterad Programkonstruktion

Post Mortem för Get The Treasure!

TDDD35 - Användbara system

TDDI02. Programmeringsprojekt, Föreläsning 1. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren

Sammanställd kursutvärdering för samhällets digitalisering SVP, HT 2016

Programmeringsteknik F1/TM1

ToDo ios-applikation. Mikael Östman. Mikael Östman - mo22ez Linnéuniversitetet

Vågar du ifrågasätta din studieteknik?

Kursplanering Objektorienterad programmering

INSTRUKTIONER OCH TIPS Fördjupningsarbete Receptarier (15 hp) och Apotekare (30 hp)

Introduktion till Programmering. Dåtid, nutid och framtid

Kortfattad sammanfattning av studenternas synpunkter och förslag

Poäng. Start v. Programmeringsteknik med C och Matlab 7,50. Antal registrerade (män/kvinnor) 274 (194/80)

Projekt Foreläsning VI

Lära dig analysera större och mer komplicerade problem och formulera lösningar innan du implementerar.

Elevernas uppfattningar om alltmer digitaliserad undervisning

Sammanfattning av kursutvärdering Design av informationssystem, moment 1, Programmeringens grunder, 7,5 hp, ht 2016

Deltagarnas utvärdering av 23 saker

Kursbeskrivning / Matrialiserande och gestaltning, 12 hp

Tea Nygren Siv Söderlund Fredrik Wiklund. Carl Hemmingsson. Magnus Johansson. Carl Hemmingsson. Föreläsningar Lektioner Laborationer Projekt

Sammanfattning av kursutvärdering. Informatik C, IT-arkitektur vt2014. Sammanfattning Svarsfrekvens: 18% ( 7 / 39 ).

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Transkript:

jonas.kvarnstrom@liu.se 2015 TDDD78 Att välja och genomföra ett projekt

Steg 1: Grunder, labbmiljö, era första Java-program Vecka 4 Vecka 5 Vecka 6 3 labbar, enskilt Steg 2: Fortsättning, större labb Vecka 7 Vecka 8 Vecka 9 1 labb, enskilt 150224-25: Sista dag för Tetris, sista demo Därefter byter vi fokus till projektet Inte klar? Nästa demotillfälle är redan i påsk!

Arbeta gärna i par Steg 3: Utforska, gör något eget ett projekt! 3 Vecka 9 Vecka 10 Vecka 11 Vecka 12 Vecka 13 Vecka 14 Vecka 15 Vecka 16 Vecka 17 Vecka 18 Ny gruppindelning: Grupper om 2 rekommenderas Cirka 100 timmar arbete per person Jag skulle också säga att valet att jobba själv nog ändå bör undvikas, även om det finns fördelar så tror jag att det är bättre att jobba i grupp. Att ha en projektpartner att diskutera med är lärorikt. Att jobba själv har fördelar och nackdelar. En fördel är att det är lätt att hitta tider att jobba men samtidigt finns nackdelen att det kan vara svårt att faktiskt göra det då det inte finns någon annan som förväntar sig att man ska jobba.

Projektet I projektet ska ni: Designa och implementera ett OO-program Utan styrning av en fördefinierad uppgift Lära er av erfarenheten framgångar och motgångar Visa upp vad ni lärt er vid demo/inlämning 4

Projektet Projekt väljs fritt, men: Inte fortsättning på Tetris Inte Android-projekt (för mycket Android-specifikt) 6 Fokus ska vara på objektorientering, inte på: "Lågnivåprogrammering", matrismatematik, Grafik, ljud, animering

Utökningsbart! Välj ett utökningsbart projekt! Liten "kärna" som kan implementeras snabbt Många finesser som kan implementeras efter hand Möjlighet att stoppa när tiden är slut! 7 Lista på milstolpar. 1. 2. 3. 10. 11. 25. Enkelt att implementera, ändå testbart Lagom stora steg att utöka med Hit hinner vi säkert inte!

Exempel 1 8

Exempel 2 Vektoriserat ritprogram 9 (Bilden är inte från kursen)

Exempel 3 Sidoscrollande spel 10

Exempel 4 Kalenderprogram Kanske med gränssnitt mot TimeEdit 11

Exempel 5 Tower Defence 12

Exempel 6 Zip-verktyg 13 (Bilden är inte från kursen)

Exempel 7 Treasure Hunter 14

Exempel 8 UML-visare 15

Exempel 9 Schack 16

Exempel 10 Brädspel 17

Exempel 11 Chat-system 18

Exempel 12 Spel 19

Exempel 13 Spel 20

Exempel 14 Utvecklingsmiljö för ett litet programspråk 21

Exempel 15 Bilspel 22

Exempel 16 Plattformsspel 23

Exempel 17 Tower Defense 24

Exempel 18 Word Wars 25

Exempel 19 Sidoscrollande spel 26

Exempel 20 27

Exempel 21 28

Exempel 22 29

Exempel 23 30

Exempel 24 31

Exempel 25 32

Förberedelser Läs websidorna om projekt! Mer info än på föreläsningen 34 Hitta projektpartner Som hjälp: Samling här under pauserna Kom överens om projekt och hur ni ska arbeta Anmäl er i WebReg Nya grupper, K/L/M/N Vi "balanserar" grupperna anmäl i tid om schemat är viktigt

Förberedelser 2 Skriv en första projektbeskrivning enligt mall på nätet Projekttyp Milstolpar Diskussion av hur ni har tänkt arbeta 35 Lämna in till handledare För att garanterat få det genomläst till projektstart 150226: Lämna in senast 150218

Projektbeskrivning: Studenternas åsikter 1 36 Projektbeskrivningen var annars ett bra hjälpmedel med tanke på planeringen som skrevs innan programmerandet började. Jag hade skrivit bra milstolpar som jag följde till stor del och som var till stor hjälp. Vi har använt projektbeskrivningen ganska mycket för att pricka av mot milstolparna hur långt vi hade kommit med projektet. Detta har varit till stor hjälp för planering av tiden. Det är viktigt att börja i god tid och att ha en plan för arbetet klar eftersom att det underlättar arbetet väldigt mycket. Vi har lärt oss att man ska lägga ner mycket tid på tänka ut hur man ska bygga upp projektet innan man börjar koda. Om man tänkte igenom allt ner till minsta detalj sparar man mycket tid när man sedan ska koda det. The project description [was] great at the beginning of the project because you had to really think about how you would structure the code. The best thing was milestones since it helped a lot later in the project. You always knew what to do next and it helped to split the project into smaller parts.

Projektbeskrivning: Studenternas åsikter 2 37 Vi har inte haft någon nytta av projektbeskrivningen, eftersom man började med det man tyckte behövdes mest. Hade vi vetat i förväg exakt hur vi skulle göra så hade vi följt den men nu hade vi inte det.

Mål och medel Mål: Visa upp vad ni kan inom objektorientering och Java 39 Medel: Skriv ett eget projekt Välskriven kod av hög kvalitet Använd objektorienteringen och Javas finesser Demonstrera vad ni kan inom kursens mål Tänk på vad man ser när man läser koden Inte vad programmet utför, utan hur Dokumentera Mer att skriva i projektbeskrivningen visar hur ni tänker, som på en tenta där man inte bara skriver slutliga svaret

Vecka 7 Vecka 8 Vecka 9 Vecka 10 Vecka 11 Vecka 12 Vecka 13 Vecka 14 Vecka 15 Vecka 16 Vecka 17 Vecka 18 Vecka 19 Vecka 20 Vecka 21 Vecka 22 150830 151025 160117 Välj och utforma projekt Lämna in beskrivning Början på projekt Tentaperiod Fortsätt med projekt Påsk, omtentor, komplettera labbar Fortsätt med projekt Slutdemonstration 150430 (?) Kodinlämning 150506 Bedömning, kommentarer Kompletteringsmöjligheter 150218 beskrivning 150226 start 150416 inlämning för gemensam genomgång Andra kurser tar mer tid här! Tidplan

Tips om tidsplanering 41 Det tar längre tid än man tror Räkna med att allt tar längre tid än vad man tror Start on the project early. It will take a lot of time so you can t only work the last days before deadline, especially not if you aim for a high grade. Gör projektet. Vänta inte, var helst klar till första redovisning. Undvik vänta till omtenta-p.

Handledning Vi har begränsat antal timmar till handledning 42 Alternativ 1 Under vissa av veckorna: 1 labbtillfälle per vecka Alternativ 2 Under vissa av labbarna: assistenterna stannar 60 min Gäller vecka 10, 11, 13, 14, 16

Be om hjälp 43 Det kan också vara en bra idé att fråga assistenterna om hjälp om man kör fast, istället för att sitta och slå huvudet i bordet tills man tappar motivationen att fortsätta. Måla inte in er i ett hörn! Ständig uppföljning med handledare Diskutera problem och lösningar Be handledaren titta på koden Fånga upp problem tidigt Jobba inte enbart hemma!

Steg för steg 44 Gör projektet steg för steg Lägg till lite mer funktionalitet Se till att det fungerar Dokumentera Putsa och förbättra Kontrollera (inspektioner, ) Checka in resultatet som en fast punkt (versionshantering) Repetera Det var inte förrän slutet som vi gjorde kodinspektioner, som till vår fasa visade 1,661 varningar (ungefär en tredjedel magiska konstanter). De flesta av dessa är nu fixade, men vi borde absolut kollat på detta under tiden vi skrev programmet istället. Skriv ner alla designbeslut ni tar. Ni kommer glömma bort dem. Tips till nästa års studenter skulle nog vara just att skriva på projektbeskrivningen under tiden som ni programmerar. Det tror jag ökar chansen till ett högre betyg. Däremot borde jag ha skrivit på resten av projektbeskrivningen medan jag skrev koden. Inte minst för att då lättare få med fler av kriterierna för att få ett högre betyg.

Gemensam genomgång 150416 (2v före demo) lämnar alla projekt + dokumentation Vi gör en snabb genomgång Vi sammanfattar vanliga förbättringsförslag Samma text skickas ut till alla inom 1 vecka 45 Inte individuellt!

Finputsning 46 Steg för steg kan införa feature freeze någon vecka innan slutet Ger tid till slutlig finputsning kvaliteten räknas Gå genom kodinspektioner Se över hela strukturen Uppdatera gammal kod, nu när ni vet bättre Ta bort "dubletter", hitta ineffektiv kod Uppdatera kommentarer och dokumentation Slutför projektbeskrivningen

Demo Sista veckan: Demonstration Visa vad ni gjort Visa att ni förstår vad ni gjort 47 Vid inlämning (veckan efter): Se till att ni har följt instruktionerna! Annars kommer projektet i retur

Jobba med andra kurser Jobba med projektet

Betygsättning Tre kvalitativa kriterier för betygsättning (3/4/5): Kvalitet Skriv tydlig, lättläst, dokumenterad kod Implementera ett robust system Följ rekommendationer från föreläsningar Följ allmänna kvalitetskriterierna på kurswebsidorna Objektorientering och Java Använd objektorienterade lösningar, visa att ni har förstått OO-principer Omfattning motsvarande 100 timmar/person Sekundärt kriterium Ju mindre projekt, desto mer tid för finputsning högre kvalitet krävs 50 Ett program är inte bra bara för att det ger rätt resultat! Tänk på struktur, läsbarhet,

Betygsättning Fyra kvantitativa kriterier för betyg 3, 4, 5 Visa breda kunskaper i koden Använd n "finesser" ur en lista [5,8,11 st] enum-klass, filhantering, 51 Visa förståelse i projektbeskrivningen: Förklara kod, motivera lösningar n objektorienterade egenskaper [1,2,3 st] n designbeslut [2,5,8 st] n UML-diagram [1,2,4 st] Reflektera lär er ännu mer!