DM536. Rapport og debug



Relaterede dokumenter
Dokumentation af programmering i Python 2.75

Programmering C RTG

Hvordan laver jeg en poster/plakat og handout

Introduktion til funktioner, moduler og scopes i Python

IT sikkerhed Whitelist

Website sikkerhed SQL Injections og mere...

Visualiseringsprogram

Lær Python dag 1 - modul 1

VægtAgenten Betjeningsvejledning Version 3.0

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

DM502. Peter Schneider-Kamp

mailinglister i Revimentor

Eksempler på hurtige uformelle evalueringer

FSFI s guide til DFR s elektronisk bevissystem

DM507 Algoritmer og datastrukturer

Digital Kommuneplan. Kravsspecifikation gennem brugerinvolvering

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Få navn på analysenr. i excel-fil og ind i pivottabel med data fra qlikview

DM507 Algoritmer og datastrukturer

Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test

DM507 Algoritmer og datastrukturer

Det sprogpædagogiske kørekort 2012/2013. Modul 9: Rettelse af kursistopgaver (Del 1)

Starthjælp Alt hvad du skal vide, når du flytter dit telefonnummer over til evercall

Eksamensopgaver datalogi, dlc 2011 side 1/5. 1. Lodtrækningssystem

DM507 Algoritmer og datastrukturer

Guide til Web-direct. Indholdsfortegnelse

Installationsvejledning til LMeSmartClient

Programmering i C. Lektion december 2008

Talrækker. Aktivitet Emne Klassetrin Side

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

HJÆLP TIL FILM-X ANIMATIONSVÆRKTØJ

På de følgende sider kan du læse om nogle af de overvejelser du bør gøre dig, hvis du påtænker at skifte din bolig ud.

HTX, RTG. Rumlige Figurer. Matematik og programmering

Word. Strukturering, henvisninger m.m.

ØVELSESINSTRUKTION - LÆRER. Øvelsesinstruktion - lærer TEMA: #PRIVATLIV TEMA: #PRIVATLIV

Brugermanual til Wordpress 3.2.x Content Management System

Python 3 kursus lektion 1:

DM507 Algoritmer og datastrukturer

Retningslinjer for manuskripter til Dansk Tidsskrift for Teologi og Kirke

1-1 Usability evaluering af den simple udgave

Dit Liv På Nettet - Manus 6. klasse

Kom godt igang med Inventar registrering

SLS-kasserer. - En vejledning til kassererarbejdet i din lokalbestyrelse

5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN

Vejledning til SD Personale Web og indberetning af merarbejde, kørsel m.m.

Brugervejledning til KasseRapportenPLUS

Inspektion af lægemidler i håndkøb i detailhandlen

Manual til Vandværksløsninger

Håndskanner & Skannerpen Tjekliste

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

DIVISIONSMATCHBEREGNING VERSION 1.07

Økonomisk analyse af forskellige strategier for drægtighedsundersøgelser

Eksamensopgaver datalogi, dl/vf 2010 side 1/5. 1. Lodtrækningssystem

Cecilie Maria Nielsen, Mathias Fornitz Eriksen og Martin Arnetoft klasse

DM507 Algoritmer og datastrukturer

Nordisk spørgeskema om arbejdsrelateret sikkerhedsklima

Brugervejledning til InfoLand.dk skabelonen

Linket viser jer frem til billedet nedenfor, her skal du blot skrive jeres brugernavn og adgangskode. Indtast din adgangskode her:

Ligeværdige udtryk. Aktivitet Emne Klassetrin Side. Vejledning til Ligeværdige udtryk 2

Anvendelse af BPT til manuel test

Implementering af boligkreditdirektivet

Oplevelsesdesign. Kommunikation/IT. Maia Birch, Isabel Odder & Jeanette Bengtsen

Projektbeskrivelse RSS Læser

Effektive råd til dit CV

Sortering. Eksempel: De n tal i sorteret orden

Vejledning Post modul

Vejledning i opbygning af Tillidszonen

BRUGERVEJLEDNING STANDTEKST

Denne publika ion er udarbejdet af Digitaliseringsstyrelsen Landgreven 4 Postboks København K Telefon digst@digst dk

Poster design. Meningen med en poster

Sortering. Eksempel: De n tal i sorteret orden

Københavnerdrenge skal lære nye vaner på camp

Brugervejledning til DHF's onlinesystem

Tastevejledning Windows XP

Sammenlign og byt. Et eksempel på dokumentering af et program

Transkript:

DM536 Rapport og debug

Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf Allen B. Downey: Think Python: How to Think Like a Computer Scientist, Version 2.0.10, Green Tea Press, 2013. Martin Storgaard Frit fra leveren

Rapport Før du starter Læs hele projektbeskrivelsen igen Vær især opmærksom på de krav projektbeskrivelsen stiller - både implicitte og eksplicitte

Rapport Specifikation Beskriv problemet Hvad siger projektbeskrivelsen? (Du må gerne referer til den!) Har du selv nogle mål du vil have opfyldt? Gør det kort og præcist

Rapport Design Beskriv de algoritmer du har designet Du skal ikke beskrive hvordan du er kommet frem til din algoritme Benyt pseudo kode (Enten punkt form eller som nedenfor) Eksempel: [Beskrivende tekst for algoritmen, inklusiv navn] output = tom liste For hvert element, e, i listen, A: hvis e ikke er en liste: Tilføj e til output ellers Tilføj hvert element i listen e til output

Rapport Implementering Vis din implementering Undlad trivielle dele, fx output = [] Highlight og linienumre er essentielle Når du forklarer hvad eller hvorfor du har implementeret som du har, så referer til linienummeret Eksempel: Forklar hvad extend() gør, og hvorfor det svarer til dit design

Rapport Test Inkluder kun test fra den sidste version af din kode! Denne sektion er vigtig, og det kan være svært at finde alle tilfælde og kan tage lang tid! Vis gerne at hver enhed i din kode virker Dvs. at du viser og tester hver metode Test skal inkluderer: Rigtig input (Vis at det rent faktisk virker) Forkert input (Vis hvad den gør hvis det ikke virker, er det forventeligt?) Speciale tilfælde (Oftest, men ikke udelukkende, vil det være at teste if-else statements) Du må (bør) lave dit eget input til ovenstående Dokumenter dine test på følgende format: Input Forventet output Faktiske output Kommentar til din test

Rapport Konklusion Beskriv hvordan dit produkt lever op til kravene Du kan opsummere din specifikation og henvise til dine test sektioner Kan indeholde en meget kort diskussion, hvis der er noget der ikke virker og hvad man tror, der er galt

Rapport Appendiks Kildekode (med formatering og linienumre) Test kode Input Evt. ekstra kode skrevet til testene Output Andre hjælpeprogrammer mv.

Debugging Fejltyper Syntaks fejl Runtime fejl Semantiske fejl

Debugging Syntaks fejl Fejlen opstår før programmet kører Opstår hvis syntaksen i ens fil er forkert Eksempel

Debugging Syntaks fejl Tjek at du ikke bruger et keyword som variabel navn Tjek at du har et kolon hvor det skal være, fx efter forløkken, while-løkken, if-statement osv Tjek at dine tekst strenge er afsluttet korrekt Tjek at du har lukket dine operatore, fx (, [ og { Tjek at du bruger == fremfor = og omvendt Tjek at du kun bruger tabs eller mellemrum når du indrykker dine linier

Debugging Syntaks fejl Tjek at du har gemt dine ændringer Tjek at du kører den rigtige fil Hvis du skriver et modul, tjek at du ikke bruger samme navn som et Python modul

Debugging Runtime fejl Fejlen opstår imens programmet kører Kan opstå af mange årsager Programmet er afhægig af brugerinput og fanger ikke exceptions ordentlig Den løber tør for hukommelse fx uendelig recursion

Debugging Runtime fejl Programmet gør absolut ingen ting Betyder at du højest sandsynlig kun har metoder og klasser i din fil, men at du aldrig kalder dem! Programmet starter, men bliver aldrig færdigt Dette betyder oftest at du har lavet en uendelig løkke eller en uendelig rekursion

Debugging Runtime fejl Løsning: Indsæt print-statement i din kode! Hvis det ikke virker: Prøv andre steder i din kode Hvis det ikke virker: Så forstår du muligvis ikke flowet i din kode Løsning: Indsæt print-statement i starten af dine metoder

Debugging Runtime fejl Alt for meget output! Simplificer dit output eller simplificer din kode Omskriv dele af din kode, det kan være at det giver dig en bedre forståelse! Find det mindste output, som producerer fejlen Find det mindste output, som ikke producerer fejlen

Debugging Semantiske fejl Fejlen opstår i mens programmet kører Der kommer ingen fejl besked, men programmet gør ikke det rigtige! Find det sted i koden, som ikke virker korrekt Brug print-statements undervejs Hvis du har en masse one-liners prøv at opdele koden til flere linier og print dem