Presentation laddar. Vänta.

Presentation laddar. Vänta.

1 Programmeringsmetodik Vad är programmering Vad är programmeringsmetodik Vad är en algoritm.

Liknande presentationer


En presentation över ämnet: "1 Programmeringsmetodik Vad är programmering Vad är programmeringsmetodik Vad är en algoritm."— Presentationens avskrift:

1 1 Programmeringsmetodik Vad är programmering Vad är programmeringsmetodik Vad är en algoritm

2 2 Vad innebär det att programmera? Konstruera en datorartefakt (datorsak) som: –Löser ett problem eller en uppgift –Gör det enklare att lösa ett problem eller en uppgift –Som roar användaren Det finns många typer av datorsaker såsom –Interaktiva (det finns en användare som styr programmet) –Batch-program Typen av datorartefakt påverkar vad det innebär att programmera?

3 3 Vad innebär det att programmera? Storleken eller komplexiteten på programmet påverkar också vad det innebär att programmera –Småskalig programmering Ett fåtal personer inblandade Upp till ett tusental rader kod T ex. laborationerna på kursen –Storskalig programmering Stora projekt med upp flera hundra inblandade Kan sträcka sig över flera år Enormt mycket med kod att skriva och hantera T ex. Programmeringen av AXE-stationerna

4 4 Att jobba som programmerare Handlar mycket om: –Problemlösning –Design –Dokumentation –Specifikation –Granskning –Felsökning –Konstruktion Handlar mycket mindre än man tror om: –Kodning vid datorn

5 5 Vad har vi för hjälpmedel som programmerare? Strategi Algoritmer Programmeringsspråk Utvecklingsmiljö –Editorer –Kompilator, mm –Diverse verktyg för att sök efter fel och rätta fel –Administrationsverktyg Dokumentation, beskrivning Programbibliotek

6 6 Programmeringsmetodik Programmering? –Mer än bara kodning? Konstruktion Design Dokumentering Metodik? –En strategi eller metod för att utföra något –Ett arbetssätt –En arbetsplan

7 7 Nej! Det finns olika typer av programmering En och samma metodik för alla typer av programmering? Vi kommer att koncentrera oss på småskalig programmering

8 8 Skillnader i metodik Storskalig programmering kräver mycket mer administration –Versionshantering –Personal Testning och felhantering blir mycket mer komplext Varför småskalig programmering på kursen? –Lättare att börja med, överblickbara problem –Storskaligheten går alltid att bryta ner till småskalighet

9 9 Typer av småskalig programmering Maskinnära programmering Realtidsprogrammering Probleminriktad programmering Programmering av batch-system –Passiva användare Programmering av interaktiva system –Aktiva användare

10 10 Strukturerad programmering Vi vill inte ha några spagetti-program utan någon struktur. En metodik som lämpar sig för småskalig programmering av algoritmiska problem

11 11 Strukturerad programmering Formulera uppgiften, specificera Lös problemet, konstruera algoritmen Verifiera algoritmen Val av programmeringsspråk Kodning Avlusning Validering Dokumentation Underhåll

12 12 Formulera uppgiften Samla in information - dialog med beställaren Strukturera, indata, utdata, arbetsmiljön Skriv ner en specifikation –Problem: –Omgivning: –Indata: –Utdata: Tänk över kritiska situationer –För att reda ut –För att kunna validera algoritmen och programmet

13 13 Lös problemet, konstruera algoritmen “Dived and conquer” Stegvis förfining - “Top-down” Stegvis ihopslagning - “Bottom up” Hybridmetod i praktiken

14 14 Verifiera algoritmen Arbetskrävande “handexekvering” Använd någon form av testschema Viktigt att hitta och test extremfallen Skriv eventuellt algoritmen i ett prototypspråk, som är lättare att verifiera.

15 15 Val av programmeringsspråk Det finns många språk som är lämpade olika bra för olika typer av programmering, problem, etc Man bör välja programmeringsspråk efter –Sina egna kunskaper –Problemets natur –Lösnings natur –Tillgången

16 16 Kodning av algoritmen Saker som ingår i kodningsarbetet –Definiera programmeringsstilen –Strukturera dataflödet –Design av (abstrakta) datatyper –Implementera algoritmen och datatyperna Kommentera koden ordentligt Följ algoritmen (som är verifierad) –Återanvändning av kod

17 17 Testning och verifiering av koden Testa delarna för sig allt eftersom de blir klara Ställ upp ett testschema –delarna –logiska block –hela systemet Validering av systemet –Stäm av det färdiga systemet mot beställningen som är specificerad i ett dokument, skriv ner skillnader och likheter

18 18 Dokumentation Sammanställ den information som de övriga punkterna har producerat –Inledning –Problemspecifikation –Systembeskrivning beskriv systemet i stora drag, modulariseringen, dataflöde, större datastrukturer –Algoritmbeskriving –Resultat från olika typer av verifiering, och avlusning –Användarmanual –Möjliga utvecklingar av systemet

19 19 Underhåll av systemet Ett system har en livscykel som innebär –Rätta till kända felaktigheter –Implementera möjliga förbättringar –Inrapportera felaktigheter –Versionshantering

20 20 Algoritm Efter den persiske matematikern Muhammend al Khowarzmi 800 talet e. kr

21 21 Ingredienser Receptet Ugn Plåtar Bunkar Bullar Vad är en algoritm Algoritm är som ett recept eller som en arbetsbeskrivning

22 22 –Skriv ner talet 0 –Gå igenom listan, och för varje anställd så adderar du personens lön till det skrivna talet –När man har nått slutet på listan, så är det nedskrivna talet utdata Exempel Antag att vi har en lista med alla anställda på ett företag: Namn, Pnr, och Lön, och vi vill räkna ut lönekostnaden för företaget.

23 23 Karakteristik för en algoritm Texten som beskriver algoritmen är fixt stor Processen som algoritmen beskriver kan vara av dynamisk storlek Algoritmer löser en klass av problem Algoritmer kan ha olika kornighet –T ex. Andra steget i föregående algoritm kan förfinas så att man får en mer finkornig algoritm

24 24 Algoritmer mer formellt Def: En algoritm är en noggrann plan, en metod för att stegvis utföra något. Krav på en algoritm: –Ändlighet (Algoritmen måste ha en ändlig beskrivning) –Bestämdhet (Varje steg måste vara entydigt) –Indata (Algoritmen måste ha Noll eller flera indata) –Utdata (Algoritmen måste ha Ett eller flera utdata) –Effektivitet (Varje steg i algoritmen måste vara effektiva, kunna utföras på en ändlig tidsrymd)

25 25 Algoritmkonstruktion & Problemlösning Problemlösningsstrategi eller metod (top-down, bottom-up, etc) Dålig eller felaktig strategi kan ge: –Ineffektiv lösning –Dålig lösning –Ingen lösning alls

26 26 Problemlösning och algoritmkonstruktion Stegvis förfining - “Top-down” –Strukturerad lösning –Överblickbar metod –Risk för att uppfinna hjulet igen Stegvis ihopslagning - “Bottom up” –Återvinning –Lego-metod –Konstruerar onödigheter Hybridmetod i praktiken

27 27 Algoritmskrivning Kort och koncist språk Entydigt Högnivå-liknande syntax

28 28 Att leta fel i programmet Vilka verktyg har vi till förfogande –Testscheman –Bra språkkunskap –Editorn –Kompilatorn –Papper och penna –Spårutskrifter

29 29 Olika typer av fel Syntaxfel –Grammatiska fel Jag åkte ett buss –Felstavningar –Tvetydigheter Soppan är klar Mannen slog pojken med käppen Semantiska fel Tankefel –Problemet är löst på fel sätt

30 30 Att upptäcka fel Syntaktiska fel –Många kan upptäckas vid kompileringen Semantiska fel –Programmet uppträder inte som det skall –Svårare att upptäcka var de är


Ladda ner ppt "1 Programmeringsmetodik Vad är programmering Vad är programmeringsmetodik Vad är en algoritm."

Liknande presentationer


Google-annonser