TDDD78 Att välja och planera ett projekt

Relevanta dokument
TDDD78 Att välja och genomföra ett projekt

Att välja och planera ett projekt

TDDD78 Att välja och planera ett projekt

Före projektet TDDD78, TDDE30, 729A

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

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

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

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

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:

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

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

Välkomna till DIT012 IPGO

Objektorienterad programmering och Java

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

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.

GRUNDKURS I C-PROGRAMMERING

Slutrapport för SquareShooter

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

TDDD80 Mobila och sociala applikationer. Kursintroduktion

DD

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

TDDD80 Mobila och sociala applikationer. Kursintroduktion

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

BG306A Strukturmekanik, bärverksanalys MT129A Finita elementmetoden

TDDD78 Objektorientering: Lagring och livstid

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

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

Projektuppgift - Gymmet

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

Projektuppgift - Biblioteket

Kursutvärdering FySA01 Ht 2014

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Objektorientering: Lagring, räckvidd och livstid

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

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

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

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

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

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

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

Evaluation Summary - CT3380 Grundläggande webbdesign HT05 Dan Levin

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

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

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

Motivation. Programmeringsuppgift: En första ansats: Lagra info om anställda Håll reda på varje anställds närmaste chef. som också är en anställd!

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

Objektorienterad programmering

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

Projektuppgift.

Tentamen, EDAA10 Programmering i Java

Dagbok Mikael Lyck

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

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

Projektet. TNMK30 - Elektronisk publicering

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

TDDC74: Projekttitel

Evaluation Summary - CD5570 DoA, distans VT 2004 Dan Levin

Hi-Fi Prototyping + laborationsgenomgång & verktyg

Post Mortem för Get The Treasure!

Hisspresentation av programdesign Projektplan: Kommunikation i teknisk utbildning,

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

Introduktion till Programmering. Dåtid, nutid och framtid

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

Objektorientering: Lagring och livstid

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

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Programmering på papper. Datorer, programmering och instruktioner

Hur jag lärde mig att älska Datavetenskap

Programmeringsteknik F1/TM1

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

Fö 8. Sammanfattande föreläsning MAMN25

Kursutvärdering D0010E LP3 VT09

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

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

Programmeringsteknik II

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

Evaluation Summary - CT3380 Grundäggande webbdesign HT06 Dan Levin

Har haft tankar till och från under de senaste åren att börja plugga till ABL med en tanke att sedan sakta men säkert starta en egen firma.

Elevernas uppfattningar om alltmer digitaliserad undervisning

Programmering, abstraktion och modellering PROJEKTFÖRELÄSNING ANDERS MÄRAK LEFFLER IDA/HCS

TENTAMEN OOP

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

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

Kandidatarbete Data och Informationsteknik

CVS-Introduktion. CyberRymden Introduktion till CVS,17 november (27) Marcus Rejås

TDDC74 - Projektspecifikation

Blandat. Föreläsning 5

TDDD80 Mobila och sociala applika1oner. Kursintroduk1on

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

RESULTAT - MÅLUPPFYLLELSE

Introduktionsmöte Innehåll

Transkript:

jonas.kvarnstrom@liu.se 2017 TDDD78 Att välja och planera ett projekt

Steg 1: Grunder, labbmiljö, era första Java-program Vecka 3 Vecka 4 Vecka 5 Vecka 6 4 labbar, enskilt Steg 2: Fortsättning, miniprojekt Vecka 7 Vecka 8 Vecka 9 1 miniprojekt, enskilt 170302-03: Sista dag för Tetris, sista demo Fokusbyte: Projektet Inte klar? Nästa demotillfälle är redan i påsk!

Projekt: Arbeta gärna i par 3 Steg 3: Utforska, skapa ett eget projekt! Vecka 10 Vecka 14 Tentor Vecka 15 Påsk Vecka 16 Omtentor Vecka 17 Ny gruppindelning: Grupper om 2 rekommenderas Cirka 80 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 4 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

Projektet 6 Projekt väljs fritt, men: Inte fortsättning på Tetris Inte Android-projekt (för mycket Android-specifikt) Visa vad ni har lärt er om objektorienterad programmering Undvik projekt som kräver alltför mycket: "Lågnivåprogrammering", matrismatematik, Grafik, ljud, animering

Utökningsbart! 7 Fundera på utökningar! Liten "kärna" som kan implementeras snabbt Många finesser som kan implementeras efter hand Möjlighet att stoppa när tiden är slut! 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! (Men vem vet )

Exempel 8

Exempel 9 Sidoscrollande spel

Exempel 10 Kalenderprogram Kanske med gränssnitt mot TimeEdit

Exempel 11 Tower Defence

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

Exempel 13 Treasure Hunter

Exempel 14 UML-visare

Exempel 15 Schack

Exempel 16 Brädspel

Exempel 17 Chat-system

Exempel 18 Spel

Exempel 19 Spel

Exempel 20 Utvecklingsmiljö för ett litet programspråk

Exempel 21 Bilspel

Exempel 22 Plattformsspel

Exempel 23 Tower Defense

Exempel 24 Word Wars

Exempel 25 Sidoscrollande spel

Exempel 26

Exempel 27

Exempel 28

Exempel 29

Exempel 30

Exempel 31

Förberedelser 33 Läs websidorna om projekt! Mer info än på föreläsningen Hitta projektpartner, om du inte vill jobba ensam Som hjälp: Samling här under pauserna Kom överens om projekt och hur ni ska arbeta Anmäl er i WebReg Grupp K/L/M från D1, kogvet och "övriga", grupp N från U1 Grupper över gränserna är inte förbjudet men sällsynt Uppdelning ger bättre schema

Förberedelser 2 34 Skriv en första projektbeskrivning enligt mall på nätet Projekttyp Milstolpar Diskussion av hur ni har tänkt arbeta Lämna in till handledare Lämna senast 160228 får ev. kommentarer till projektstart 160307 Lämna senast 160330 kan redovisa före sommaren

Projektbeskrivning: Studenternas åsikter 1 35 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 36 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 38 Mål: Visa upp vad ni kan inom objektorientering och Java 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 Vecka 23 1708xx 1710xx 1801xx Tetris Börja fundera på projekt, ev. partner Tetris-demonstration! Projektbeskrivning! Tentaperiod Fortsätt med projekt, totalt 80 timmar per person Omtenta, påsk Slutdemonstration 170501-05? Kodinlämning 170507 Bedömning, kommentarer Tentaperiod Omtentor + labbdemo, ej projekt Kompletteringsmöjligheter, labbar + projekt 170308 helst beskrivning 170331 beskrivning! Andra kurser tar mer tid här! Tidplan

Tips om tidsplanering 40 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. Fixa ändå helst Tetris före projektet, annars missar ni nödvändig kunskap!

Be om hjälp 41 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 42 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.

Finputsning 43 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 44 Sista veckan: Demonstration Visa vad ni gjort Visa att ni förstår vad ni gjort Vid inlämning: Se till att ni har följt instruktionerna! Annars kommer projektet i retur

Jobba med andra kurser Jobba med projektet

Betygsättning 47 Flera kvalitativa kriterier för betygsättning (3/4/5, G/VG): Objektorientering och Java Använd objektorienterade lösningar Visa att ni har förstått OO-principer Följ rekommendationer från föreläsningar: Hur man skriver bra kod, som gör på rätt sätt Läsbarhet och struktur Skriv tydlig, lättläst, rimligt dokumenterad kod Omfattning motsvarande 80 timmar/person Sekundärt kriterium ändå viktigt Ju mindre projekt, desto mer tid för finputsning högre kvalitet krävs Kvalitativa svåra att mäta, bedömningsfråga Se websidorna för mer vägledning!

Betygsättning 48 Även några mer mätbara kriterier för specifika betyg Krav på koden Paketstruktur, namngivning, felhantering, upprepning, modellering av uppräkningsbara värden, resurshantering, loggning av fel, Visa förståelse i projektbeskrivningen: Förklara kod, motivera lösningar n objektorienterade egenskaper hur används de, vad vinner man på det, n designbeslut hur gjorde ni, vad var alternativen, n UML-diagram använd dem för att förklara koden Reflektera lär er ännu mer! Ignorera inte vi ger komplettering Se websidorna för detaljer kommer snart!