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

Relevanta dokument
Datastrukturer och algoritmer

Datastrukturer och algoritmer

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

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

Datastrukturer och algoritmer

Datastrukturer och algoritmer

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

Introduktionsmöte Innehåll

Datastrukturer och algoritmer

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

EDAA01 Programmeringsteknik - fördjupningskurs

Datastrukturer och algoritmer

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

Datastrukturer och algoritmer

Datastrukturer och algoritmer

Föreläsning 1 Datastrukturer (DAT037)

Datastrukturer och algoritmer

Föreläsning 14 Innehåll

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

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

Grundläggande Datalogi

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

Programmeringsteknik II

Facit Tentamen TDDC (7)

Teoretisk del. Facit Tentamen TDDC (6)

Innehåll. F7: Tabell, hashtabell, relation & lexikon. Gränsyta till Tabell. Tabell. Tabell Hashtabell Relation Lexikon.

Datavetenskapligt program, 180 högskolepoäng

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

Datastrukturer och algoritmer

Föreläsning Datastrukturer (DAT037)

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

729G06 Föreläsning 1 Objektorienterad programmering

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

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

Föreläsning Datastrukturer (DAT037)

Datastrukturer och algoritmer

Datastrukturer och algoritmer

Datateknik GR (A), Introduktion till programmering i C++, 7,5 hp

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Föreläsning 13 Datastrukturer (DAT037)

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

Tentamen Datastrukturer (DAT037)

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

Poäng. Start v. Datastrukturer och algoritmer (C) 7.5. Antal registrerade (män/kvinnor) 98 (82/16)

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Föreläsning 13 Innehåll

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Föreläsning 9 Innehåll

Datastrukturer och Algoritmer D0041D

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Föreläsning 13 Datastrukturer (DAT037)

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Föreläsning 5 Innehåll

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

SKOLFS. beslutade den -- maj 2015.

GRUNDKURS I C-PROGRAMMERING

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

SKOLFS. beslutade den XXX 2017.

Kursplanering Objektorienterad programmering

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

Föreläsning 1: Introduktion till kursen

Poäng. Start v. Datastrukturer och algoritmer (Python) 7.5. Antal registrerade (män/kvinnor) 65 (57/8)

Föreläsning 1: Introduktion till kursen

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

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

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

TANA17 Matematiska beräkningar med Matlab

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

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

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Tentamen Datastrukturer (DAT036)

Schemaunderlag för Programmering, grundkurs (TDDB18)

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 15: Repetition DVGA02

Algoritmer och problemlösning

Tentamen Datastrukturer, DAT037 (DAT036)

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

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Föreläsning 1: Introduktion till kursen

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

Läsanvisningar Henrik Shahgholian

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

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

MMA132: Laboration 2 Matriser i MATLAB

Föreläsning 13 Innehåll

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

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

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

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Föreläsning Datastrukturer (DAT036)

Asymptotisk komplexitetsanalys

Lösningar Datastrukturer TDA

Allmänna frågor om kursen: Kursutvärderare: IT-kansliet/Christina Waller. 1. Vad är ditt allmänna omdöme om kursen? Antal svar: 30 Medelvärde: 3.

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Transkript:

Innehåll Datastrukturer och algoritmer Föreläsning 1! Introduktion och begrepp Kurspresentation! - Målsättning! - Kursutvärdering! - Upplägg! - Översikt! Viktiga begrepp "1 "2 Mina målsättningar Alla ska höja sig ett par snäpp som programmerare.! Förstå komplexitetsbegreppet! - Tid och rum! Ni ska ha lärt er några viktiga typer av algoritmer och datatyper! Rolig kurs 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 (om något är oklart så fråga)! - Gör övningar! - Börja med laborationerna i tid. På planeringen framgår när det är lämpligt att börja med uppgifterna.! - Utnyttja handledningen! - Säg till om det är något som inte funkar "3 "4 Websajten http://www.cs.umu.se/kurser/5dv149/vt14! - Schema! - Uppdateringar! - Formalia! - Resultatredovisning! - Gruppövningar! - Planering! OH-bilder! - Datatyper att använda under kursen! - Inlämningsuppgifter! - Gamla tentor Fem stycken! Obligatoriska uppgifter - Analysera algoritmer (i par)! Experimentellt! Börja samla data till detta redan idag annars kommer tiden bli knapp! Asymptotiskt! - Test! - Debugging! Redovisas muntligt. Ni kommer få boka in en tid för redovisning.! - Tabeller! - Hitta vägen "5 "6

Gruppövningar Gruppövning 1: Komplexitetsanalys Gruppövning 2: Minnesallokering och filer Gruppövning 3: Algoritmkonstruktion Gruppövning 4: Lite mer avancerade datatyper Gruppövning 5: Förberedelser inför tentan Kursutvärderingen från vt13 Plocka bort avsnittet om trådsäkerhet och omfördela en del av materialet med c-kursen, så att materialet görs mer lättillgängligt och mer tid kan läggas på tex kodexempel.! Gör instruktioner för vad man bör göra innan man frågar handledarna om för att frågorna ska gå snabbare att besvara och därmed göra så att folk slipper vänta så länge på handledare.! Försök få med lite mer kodexempel på föreläsningarna (utan att för den sakens skull minska på antalet exempel på pseudokod). Framför allt rörande minnesallokerande och pekare.! Försök hålla nere tiden som behövs för studenterna! Flytta bort några handledningstillfällen i början av labbarna för att kunna hjälpa lite mer på slutet.! Se över debugguppgiften tidsmässigt. Dedikerad tid för redovisning?! Se över handledningssituationen! Se över labspecifikationerna och se om något kan klargöras för att förenkla.! Poängtera tydligare att quizen i cambro finns och då det kan vara lämpligt att göra dem (lägg gärna till fler frågor) "7 "8 Datastrukturer & Algoritmer Vi ska strukturera upp ert tänk kring program.! Genom att se strukturer och hitta likheter ska vi bygga mer komplexa program! Ni ska lära er nya byggblock att bygga upp program av, och lära er i vilken situation de passar Innehållsöversikt Algoritmer! Pseudokod som ett sätt att beskriva algoritmer! Tids och rumskomplexitet! Komplexitetsanalys (exprimentell och asymptotisk)! Designprinciper! Abstrakta datatyper! Stack, Kö, Listor, Träd, Graf, Prioritetskö. Heap. Tabell, Sträng, Mängd, Sökträd, Tries,...! med tillhörande algoritmer! Sökning och Sortering! Målet är att ni efter kursen kan hitta och implementera en bra algoritm som passar för en given situation! Testning och felsökning "9 "10 Abstrakta DataTyper Beskrivningssätt! Grundbegrepp! Olika sätt att konstruera! Vart hittar vi typiskt olika ADT! Hur olika ADT hänger ihop med varandra! Fokus ligger på att använda datatyperna och förstå när man bör välja en given implementation. Att konstruera program Att bygga program bygga broar! Brobygge! - Specifikation! - Beskrivning! - Material! - Verktyg! - Uppföljning "11 "12

Att konstruera program Problembeskrivning! Systemdesign! Modelleringsverktyg! Datatyper representera datat i programmet! Algoritmer stegvis plan för att utföra något, modellera hur man löser problemet Datatyper = op. + obj. Vilka objekt är det?! - Vad vill vi modellera/representera/abstrahera! Vad kan man göra med dem?! - Vilka operationer/metoder "13 "14 Gränssnitt Gränssnitt Vad är ett gränssnitt?! - Kontaktyta! Separerar! - Funktion och implementationen! - Gränsen mellan två eller flera delar! - Användandet och skapandet! - Överenskommelse - oberoende av vem, vart och hur ska det passa! - Specifikationen och konstruktionen Musköten 1700-talet "15 "16 Gränssnitt i datavetenskapen Mellan centralenheter och periferienheter! Mellan människan och maskinen! Mellan mjukvarukomponenter! - Funktioner/metoder! - Datatyper! -! På den här kursen: mellan mjukvarukomponenter. Begrepp Data - objekten som bär information! Sammansatt datatyp vs. enkel! Homogen vs. Hetrogen! Struktur! Abstrakta datatyper! Konstruerad datatyp! Implementerad datatyp! Konkret datatyp Datatyp - värdemängd samt operationer! Fysisk implementerad i språket/hårdvaran! "17 "18

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! - Informell beskrivning av operationernas funktion! - Signaturdiagram! Formell beskrivning - rent matematisk-logisk Gränsyta till Fält Array(val,index)! Create (lo,hi:index) -> Array(val,index) Set-value(i:index,v:val,a:Array(val,index)) ->Array(val,index) Low (a:array(val,index)) -> index High (a:array(val,index)) -> index Has-value (i:index,a:array(val,index))-> Bool Inspect-value (i:index,a:array(val,index))-> val "19 "20 Ordobegreppet Ett sätt att förenklat beskriva hur mycket tid/utrymme en algoritm kräver! Om en algoritm tex har en tidskomplexitet O(n 2 ) så kommer tiden att köra algoritmen att växa kvadratiskt beroende på mängden data algoritmen arbetar med.! Vi kommer att formalisera detta senare under kursen Fält Modell! - Schackbräde! Organisation! - n-dimensionellt fält organiserat som rätblock! - Tillåts innehålla odefinierade elementvärden! Statisk typ "21 "22 Specifikation Gränsyta Måste bestämma i förväg! - Datatypen för elementvärdena! Ingående operationer! - Konstruktorer! - Antal dimensioner fältet! Create, Set-value! - Datatyp för varje koordinataxel - Inspektorer! Inspect-value, Has-value, Low, High "23 "24

Gränsyta till Fält Konstruktion av Fält Array(val,index)! Create (lo,hi:index) -> Array(val,index) Set-value(i:index,v:val,a:Array(val,index)) ->Array(val,index) Low (a:array(val,index)) -> index High (a:array(val,index)) -> index Has-value (i:index,a:array(val,index))-> Bool Inspect-value (i:index,a:array(val,index))-> val Fysisk datatyp i många språk! N-dim Fält som 1-dim Fält! - vecklar ut fältet! - Matriser lagras radvis! N-dim Fält som fält av fält av...! Fält kan konstrueras som Lista! - Inte så effektiv "25 "26 Gles matris Gles matris stort antal element är odefinierade eller har värdet noll! Implementeras som Vektor av tabell! - Sparar utrymme! - Sparar tid Tillämpningar Fält Tekniska beräkningar! - Geometriska transformationer! Rotation, translation, skalning! - Linjära ekvationssystem! - Kantdetektering i bilder! - Spelmatriser "27 "28