Presentation laddar. Vänta.

Presentation laddar. Vänta.

© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1.

Liknande presentationer


En presentation över ämnet: "© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1."— Presentationens avskrift:

1 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1

2 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Innehåll  Kurspresentation  Inblandade personer  Målsättning  Förkunskaper  Kursutvärdering  Upplägg  Översikt  Föreläsning 1  Viktiga begrepp

3 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Inblandade personer  Föreläsare  Anders Broberg (kursansvarig)  Gruppövningar  ??  Handledare  Peter  Markus  Erik  Tommy

4 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Kursutvärdering från ifjol, och förfjol  1 Kurs med ca 120 studenter  Bra föreläsare, dock lite oförberedd ibland  Dumt att byta bok mitt i kursen  Rimligare krav  Bra tempo på föreläsningarna, lite segt ibland

5 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Intryck  Överlag så var det mycket positiva intryck från studenterna  Bra upplägg  Man har lärt sig grymt mycket  Men...  Tunga laborationer och svårtolkad lab.

6 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Så...  Vi har sett över laborationerna ett par gånger  Bytt bok till i år tillbaka till Janlert & Wibergs bok  Sett över gruppövningarna

7 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Laborationer  Tre stycken  Implementera tabeller (individuell)  Implementera en router (2 och 2)  Analysera tre algoritmer oExperimentellt (individuell) oAsymptotiskt (gruppövning)

8 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Liten undersökning om programmering  Sätt er efter programtillhörighet  Hur roligt är programmering, gradera er efter en skala: oDet roligaste som finns oRoligare än det mesta oAceptabelt oTråkigare än det mesta oDet tråkigaste som finns  Flytta om er inom programtillhörighet

9 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Liten undersökning om programmering fortsättning  Vad är det som gör att ni känner det ni gör?  Vad är det som gör det så roligt?  Varför är det så himla tråkigt?

10 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Mina målsättningar  En Topp-3 kurs  Alla ska höja sig ett par snäpp som programmerare, och inse att man har gjort det  Förstå komplexitetsbegreppet  Tid och rum  Rolig kurs

11 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Era målsättningar          

12 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Vad krävs för att nå dit?  Ge kursen en ärlig chans  Kom i tid till föreläsningarna  Läs boken, förstå vad som står där  Gör övningar  Börja med laborationerna i tid  Utnyttja handledningen  Säg till om det är något som inte funkar

13 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Förkunskaper  Kunna implementera en godtycklig algoritmbeskrivning i JAVA/C

14 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Gruppövningar  Till varje föreläsning finns det övningar från boken  Vissa utvalda räknar vi på gruppövningarna  Sitter i smågrupper och hjälper varandra

15 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Gruppövningar 2  Gruppövning 1:  Implementering av en länkad lista och debugging  Gruppövning 2:  Komplexitetsanalys  Gruppövning 3 och 4:  Fält, tabeller, stackar och köer  Träd, grafer och grafalgoritmer  Sökträd, Trie, Heap, Mängd, Lexikon och Prioritetskö

16 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Tentan  Tvådelad tentamen (Måste vara godkänd på båda delarna).  En begreppsdel oFörklara kortfattat ett antal begrepp  En förståelsedel oFrågor där man får visa att man förstått kursen – ”hur saker och ting hänger ihop”

17 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Websajten   Schema  Uppdateringar  Formalia  Resultatredovisning  Gruppövningar  Föreläsningar oIntroduktion, OH-bilder, läsanvisningar  Gamla tentor

18 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Datastrukturer & Algoritmer

19 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Tänket viktigt!

20 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Innehållsöversikt  Algoritmer  Komplexitetsanalys, mm  Designprinciper  Abstrakta datatyper  Stack, Kö, Listor, Träd, Graf, P-kö. Heap. Tabell, Sträng, Mängd, Sökträd, Tries, mm  Sökning  Olika metoder och hur dom passar i olika lägen  Sortering  5-6 olika algoritmer, analys

21 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Algoritmer  Tids och rumsfrågor  Exekvering, implementering, underhåll  Tid vs rumskomplexitet  Analys av exekveringstider oOlika sätt, vad de står för och +/- –Experimentell –Asymptotisk oT(n) för em alg => O(n) –Primitiva operationer –Okulärbesiktning oAtt beskriva algoritmer

22 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Abstrakta Datatyper  Beskrivningssätt  Organisation, Modell  Gränsytan (formell, informell)  Grundbegrepp  Vad är en organisation, sorterad ADT, mm  Primär vs. sekundär struktur  Absolut vs. relativ komplexitet  Sätt att implementera  +/-, när var hur  Komplexitet för de viktigaste operationerna  Vart hittar vi ADT typiskt  Hur olika ADT hänger ihop med varandra  Algoritmer på ADT

23 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Sökning (traversering)  Vad är traversering  Olika metoder för sökning i sekvenser  Linjär & Binär  +/-  Ställer de några krav på implementationen av ADTn

24 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Sortering  Varför sorterar vi?  Sorterad ADT vs sortering av data  Sökningen blir snabbare…ibland  Hur kan vi sortera (olika former)  +/-  När passar dom?  Känna till någon bra alg. Bra  Stabil sortering

25 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Design av algoritmer  Idéer till 4 olika algoritmtyper  Brute force, D&C, Greedy och dynamisk programmering  Exempel på varje  +/-  Typiska användningar

26 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Föreläsning 1  Att bygga program ≈ bygga broar  Brobygge  Specifikation  Beskrivning  Material  Verktyg  Uppföljning

27 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Att bygga program ≈ bygga hus/broar  Husbygge  Specifikation/Beskrivning  Material  Verktyg  Utvärdering/uppföljning  Programmering  Problembeskrivning  Systemdesign  Modelleringsverktyg oDatatyper – representera datat i programmet oAlgoritmer – stegvis plan för att utföra något, modellera hur man löser problemet oKontrollstrukturer – för att modellera flödet  Utvärdering/uppföljning oKomplexitetsanalys oValideringskriterier

28 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Metaforer för programbyggnad  Instruktionsmetaforen  Programmeraren är en arbetsledare som ger instruktioner till datorn som den sedan följer i tur och ordning till punkt och pricka.  Problemlösningsmetaforen  Vad ska göras och hur ska det göras? Programmeraren löser problemet (skriver en algoritm) som sedan implementeras.  Adaptionsmetaforen  Programmet är ett objekt som ingår och interagerar med en miljö.  Programmet anpassas till miljön gradvis Låg nivå nära datorn Hög nivå

29 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Datavärldsbilder  Manipulativa ansatsen  Hantverksmetafor, man har ett (passivt) objekt som bearbetas steg för steg tills man nått målet.  Imperativa språk som C, Pascal, Modula, Ada  Funktionella ansatsen  Matematisk funktionsmetafor, man ändrar aldrig ett objekt. Resultatobjekten är avbildningar av startobjekten.  Funktionella/relationella språk som ML, Lisp, Prolog  Objektorienterade ansatsen  Objekten har själv egenskaper och beteenden och interagerar med andra objekt. Händelsestyrd programmering.  Objektorienterade språk som Java, C++

30 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Kursens (och bokens) strategi:  Att beskriva datastrukturer och ansatser så neutralt som möjligt.  Detta gör att kunskaperna blir mer generella och allmänt tillämpbara.  Språkoberoende  Flesta studenterna har Java som bakgrund, några har C som bakgrund.  Kan själv välja språk på labbarna  Oftast pseudokod på föreläsningarna

31 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Gränssnitt  Vad är ett gränssnitt?  Kontaktyta  Gränsen mellan två eller flera delar  Överenskommelse - oberoende av vem, vart, hur ska det ”passa” oMusköten 1700-talet oLego  Uppmuntrar till lösaktighet oSkruvmejslar med olika spetsar

32 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Gränssnitt  Separerar  Funktion och implementationen  Användning och skapandet  Specifikationen och konstruktionen

33 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Gränssnitt i ”datavetenskapen”  Mellan centralenheter och periferienheter  Mellan människan och maskinen  Mellan mjukvarukomponenter  Funktioner/metoder  Datatyper  Datakommunikation  Distribuerade system

34 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Begrepp  Datatyper = op. + obj.  Vilka objekt är det? oVad vill vi modellera/representera/ abstrahera  Vad kan man göra med dem? oVilka operationer/metoder

35 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Begrepp  Data - objekten som bär information  Datatyp - ”värdemängd” samt operationer  Enkel (heltal)  Sammansatt (Lista av heltal) oHomogen vs. Heterogen  Fysisk - Implementerad i språket/hårdvaran  Abstrakt - När man inte är intresserad av om/hur den är implementerad i språk/hårdvara  Konstruerad – när man beskrivit hur man skulle representera objekten och operationer  Implementerad - komplett konstruerad från grunden (fysiska datatyper) och redo att användas i ett program  Konkret = Fysiska, implementerade eller konstruerade datatyper  Struktur – det som finns kvar när man bortser från elementvärdem

36 Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Beskrivningssätt  Modell - vardaglig, ”det man modellerar”  Kö  Organisation  Den grundläggande naturen på objekten, linjärt ordnade, före och efter relation etc.  Informell beskrivning  Gränsytan (nödvändig och minimal, kraftfull)  Informell beskrivning av operationernas funktion  Signaturdiagram  Formell beskrivning - rent matematisk-logisk  Konstruktioner och implementationer  Komplexitetsanalys  Tillämpningar och algoritmer


Ladda ner ppt "© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1."

Liknande presentationer


Google-annonser