Datastrukturer och algoritmer

Relevanta dokument
Innehåll. Inblandade personer. ÿkurspresentation Inblandade personer Administration Målsättning Förkunskaper Kursutvärdering Upplägg Översikt

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

Datastrukturer och algoritmer

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Datastrukturer och algoritmer

Datastrukturer och algoritmer

Datastrukturer och algoritmer

Introduktionsmöte Innehåll

Föreläsning 1 Datastrukturer (DAT037)

Datastrukturer och algoritmer

EDAA01 Programmeringsteknik - fördjupningskurs

Datastrukturer och algoritmer

Programmeringsteknik II

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Föreläsning 15: Repetition DVGA02

Poäng. Start v. DV1: Datavetenskapens byggstenar 7.5. Antal registrerade (män/kvinnor) 38 (38/0)

PROGRAMMERINGSMETODIK

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

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

729G06 Föreläsning 1 Objektorienterad programmering

Datavetenskapligt program, 180 högskolepoäng

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

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

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Rebecka Geijer Michaeli, IDA, Linköpings universitet. 1 Administrativ information Upplägg... 2

Föreläsning 14 Innehåll

Design och konstruktion av grafiska gränssnitt

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

Föreläsning 2 Datastrukturer (DAT037)

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

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

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

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Start v. Programspråk. Poäng. 03 Institution Institutionen för datavetenskap 7.5. Antal registrerade (män/kvinnor) 59 (54/5)

Föreläsning 13 Datastrukturer (DAT037)

Välkomna till DIT012 IPGO

PROGRAMMERINGSMETODIK

Design och konstruktion av grafiska gränssnitt

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Kursens uppläggning. Lärare. Handledare och gruppövningar.

Föreläsning 13 Datastrukturer (DAT037)

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Problemlösning. Planering av program. Konstruktion. Programmeringsmetaforer. Problemlösning. Programmering = Problemlösning

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Objektorienterad programmering

NUMERISKA METODER HT01. Energiteknik & Teknisk fysik HT01. Institutionen för Datavetenskap Umeå Universitet

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Tentamen Datastrukturer D DAT 035/INN960

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

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

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Start v. Interaktionsteknik. Poäng. 12 Institution Institutionen för datavetenskap 7.5. Antal registrerade (män/kvinnor) 100 (92/8)

Grundläggande Datalogi

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Föreläsning 1: Introduktion till kursen

Utbildningsplan för Datavetenskapligt program, 180 högskolepoäng

Programmering = modellering

Sökning och sortering

SKOLFS. beslutade den -- maj 2015.

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

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

SKOLFS. beslutade den XXX 2017.

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Datastrukturer och algoritmer

KTH, NADA, Vahid Mosavat. 1. Flervalsfrågor (5p)

Föreläsning Datastrukturer (DAT037)

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

Föreläsning 3 Datastrukturer (DAT037)

Datastrukturer. föreläsning 6. Maps 1

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Programmering, grundkurs

Föreläsning 11. ADT:er och datastrukturer

Programmeringsteknik I

Tentamen Datastrukturer (DAT036)

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

TDIU01 (725G67) - Programmering i C++, grundkurs

Tentamen Datastrukturer, DAT037 (DAT036)

Seminarium 13 Innehåll

Inlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen

Facit Tentamen TDDC (7)

TDDC74 Programmering, abstraktion och modellering. Tentamen

Föreläsning 4 Datastrukturer (DAT037)

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

Kursplanering Objektorienterad programmering

Transkript:

Föreläsning 1 Kurspresentation Inblandade personer Målsättning Förkunskaper Kursutvärdering Upplägg Översikt Föreläsning 1 Viktiga begrepp Innehåll Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 2 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 2 3 Inblandade personer Föreläsare Anders Broberg (kursansvarig) Gruppövningar Anders Ulrika Anna Peter Handledare Peter Daniel Anna Ulrika Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 3 4 Kursutvärdering från ifjol 1 Kurs med ca 150 studenter Bra föreläsare, dock lite oförberedd ibland Byt bok/grymt bra bok Rimligare krav Bra tempo på föreläsningarna, lite segt ibland Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 4 Detta resulterade i... Stor omarbetning 2003 an hela kursen Omarbetning av OH-materialet Från kaos till strikt ordning Delvis nya laborationer En nyinlagd datorövning i början av kursen Och vad blev det av detta Överlag så var det mycket positiva intryck från studenterna Bra upplägg Man har lärt sig grymt mycket Boken är fortfarande den samma... Men... Kursen gick på helfart för vissa... Tunga laborationer och svårtolkad lab. Svårt att få handledning 5 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 5 6 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 6

Så... Laborationer Vi har sett över laborationerna ett par gånger Bytt bok till i år Två kurser i år Sett över gruppövningarna Tre stycken Implementera tabeller (individuell) Implementera en router (2 och 2) Analysera tre algoritmer oexperimentellt (individuell) oasymptotiskt (gruppövning) 7 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 7 8 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 8 Liten undersökning om programmering Liten undersökning om programmering fortsättning Sätt er efter programtillhörighet Hur roligt är programmering, gradera er efter en skala: o Det roligaste som finns o Roligare än det mesta o Aceptabelt o Tråkigare än det mesta o Det tråkigaste som finns Flytta om er inom programtillhörighet 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? 9 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 9 10 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 10 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 Era målsättningar 11 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 11 12 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 12

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 Förkunskaper Kunna implementera en godtycklig algoritmbeskrivning i JAVA/C 13 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 13 14 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 14 Gruppövningar Gruppövningar 2 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 Gruppövning 1: Implementering av en länkad lista och debugging Gruppövning 2: Komplexitetsanalys Gruppövning 3: Fält, tabeller, stackar och köer Gruppövning 4: Träd, grafer och grafalgoritmer Gruppövning 5: Sökträd, Trie, Heap, Mängd, Lexikon och Prioritetskö 15 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 15 16 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 16 Tentan Websajten 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 http://www.cs.umu.se/kurser/tdba36/vt05/ Schema Uppdateringar Formalia Resultatredovisning Gruppövningar Föreläsningar o Introduktion, OH-bilder, läsanvisningar Gamla tentor 17 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 17 18 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 18

Datastrukturer & Algoritmer Tänket viktigt! 19 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 19 20 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 20 21 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 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 21 22 Algoritmer Tids och rumsfrågor Exekvering, implementering, underhåll Tid vs rumskomplexitet Analys av exekveringstider o Olika sätt, vad de står för och +/- Experimentell Asymptotisk o T(n) för em alg => O(n) Primitiva operationer Okulärbesiktning o Att beskriva algoritmer Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 22 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 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 23 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 23 24 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 24

Sortering Design av algoritmer 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 Idéer till 4 olika algoritmtyper Brute force, D&C, Greedy och dynamisk programmering Exempel på varje +/- Typiska användningar 25 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 25 26 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 26 Föreläsning 1 Att bygga program bygga broar Brobygge Specifikation Beskrivning Material Verktyg Uppföljning Att bygga program bygga hus/broar Programmering Problembeskrivning Systemdesign Modelleringsverktyg o Datatyper representera datat i programmet o Algoritmer stegvis plan för att utföra något, modellera hur man löser problemet o Kontrollstrukturer för att modellera flödet Utvärdering/uppföljning o Komplexitetsanalys o Valideringskriterier Husbygge Specifikation/Beskrivn ing Material Verktyg Utvärdering/uppföljni ng 27 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 27 28 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 28 29 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å Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 29 30 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++ Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 30

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 Gränssnitt Vad är ett gränssnitt? Kontaktyta Gränsen mellan två eller flera delar Överenskommelse - oberoende av vem, vart, hur ska det passa o Musköten 1700-talet o Lego Uppmuntrar till lösaktighet o Skruvmejslar med olika spetsar 31 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 31 32 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 32 Gränssnitt Gränssnitt i datavetenskapen Separerar Funktion och implementationen Användning och skapandet Specifikationen och konstruktionen Mellan centralenheter och periferienheter Mellan människan och maskinen Mellan mjukvarukomponenter Funktioner/metoder Datatyper Datakommunikation Distribuerade system 33 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 33 34 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 34 Begrepp Datatyper = op. + obj. Vilka objekt är det? ovad vill vi modellera/representera/ abstrahera Vad kan man göra med dem? ovilka operationer/metoder Begrepp Data - objekten som bär information Datatyp - värdemängd samt operationer Enkel (heltal) Sammansatt (Lista av heltal) o Homogen 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 35 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 35 36 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 36

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 37 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 37