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

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

Utveckla en applikation Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Skriva för att lära – så gör du
Matematik med föräldrar
Relationsdatabasdesign
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
Datavetenskapens roll. Datavetenskap •Vad är datavetenskapens roll i kognitionsvetenskapen?
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
Föreläsning 7 Analys av algoritmer T(n) och ordo
Programmeringsteknik I: F1 1 Föreläsning 1: Intro till kursen och programmering Kursens hemsida Studentportalen.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Föreläsning 1.
IT och kommunikationsvetenskap Teresa Cerratto Pargman, DSV
Välkommna! till kursen HI1024 Programmering, grundkurs 8,0 hp
Att programmera i språket Java
DoA VT -07 © Anders Broberg, Lena Kallin Westin, P = ((C,F,3), (B,D,3), (C,G,4),(A,F,4), (A,R,4), (C,D,5), (E,G,6), (B,R,6), (A,E,6), (A,C,8)) A.
Introduktion Logikprogrammering HT-02 Staffan Larsson.
Föreläsning 2 Datalogi för E1 2D1343
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 6 Asymtotisk analys.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
Datastrukturer och algoritmer
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning l5 Abstrakta datatyper och algoritmdesign.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
1 Programmeringsmetodik, 8p ML-delen Programmering Programmeringsmetodik Programspråk NR 1.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Listor En lista är en föränderlig ordnad samling objekt.
Känna till och ha provat metoder och verktyg för processledning
OOPJ I, 5p Objektorienterad Programmering i Java.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 11 J-uppgiften. Nästa period ägnas åt J-uppgiften. Den är individuell, dvs man jobbar på egen hand med uppgiften (inte tillsammans med labbkompisen).
Högskoleverkets kvalitetskonferens i Umeå 2007
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 11 Trie, Sökning och Sökträd.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 1: Inledning administrativt o dyl kursens mål varför programspråksteori? språkkategorier användningsområden.
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14.
Föreläsning 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
Ingenjörsmetodik IT & ME 2008
Välkommna! till kursen HI1024 Programmering, grundkurs 8,0 hp
Presentation of I. Name: Disputerat nu vår Forskningsintresset är:
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 16.
Datastrukturer och algoritmer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
Problemlösning. Programmeringsmetaforer Instruktion Konstruktion Problemlösning Adaptation Demonstration.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Introduktion. Administration Jag, B448, , Kursböcker enligt webben Schema enligt webbenwebben Laborationer 23, 29/10 + 7/11 kl
Kursintroduktion 2 Programmeringsteknik, 4p vt-00 Lärare/handledare Föreläsningar Thomas Johansson ank Marie Nordström
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Program. Symboliska samband Symboliska beteenden Matematisk kausalitet (orsak – verkan) 2x = y, y = x^2, y = kx + l.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8 Relationer, prioritetsköer och grafer.
Föreläsning 1 Introduktion till kursen. Algoritmer
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 4.
Föreläsningsanteckningar Kortfattat om programmeringsmetodik Ola Ågren Hur det går till att göra ett program.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 16.
Föreläsning 16: Tentan, att förbereda sig…
ÄMNESHJUL MATEMATIK ÅK 3
Presentationens avskrift:

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

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

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Inblandade personer  Föreläsare  Anders Broberg  Lena Kallin Westin (kursansvarig)  Ulrika Hägglund  Handledare  Lena Kallin Westin  Ulrika Hägglund

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Lena KW

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Ulrika H Anders B

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Administration  Personer som inte haft en datoranvändare på datavetenskap  Fyll i vit blankett och prata med mig.  Fyll i gul blankett för att få tillgång till labsalarna.  Om detta är första kursen på UmU:  Fyll i blå blankett också.

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Kursutvärdering  2 Kurser ifjol  Bästa föreläsaren /Byt ut föreläsaren…?  Byt bok/Grymt bra bok  Rimligare krav  Bättre ordning på OH-bilderna  Mer programmeringsövningar  Föreläsningarna drog ut på tiden

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Målsättningar  Rolig och viktig kurs  Kanske en Topp-3 kurs?  Bli en bättre programmerare och inse att man blivit det  Känna till kända lösningar på typiska problem  Konstruera robusta och korrekta program  Konstruera och beskriva algoritmer och datatyper  Förstå komplexitetsbegreppet  Tid och rum

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  Läs boken, förstå vad som står där  Delta på föreläsningar  Gör (grupp)övningar  Börja med laborationerna i tid  Utnyttja handledningen  Säg till om det är något som inte funkar

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

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

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  En gruppövning i datorlabbet

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

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Examination  Tre stycken obligatoriska uppgifter  Implementera tabeller  Implementera en router  Analysera tre algoritmer oExperimentellt oAsymptotiskt (gruppövning)  Alla löses individuellt  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”

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Innehållsöversikt  Algoritmer  Komplexitetsanalys, tid och rum  Designprinciper  Exekvering, implementering, underhåll  Abstrakta datatyper  Stack, Kö, Listor, Träd, Graf, Prioritetskö, Heap, Tabell, Sträng, Mängd, Sökträd, Tries, mm  Modell, Organisation, Specifikation, Gränsyta  Olika grundbegrepp  Implementation, komplexitetsanalys  Tillämpningar

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Innehållsöversikt forts…  Sökning och traversering  Olika metoder och hur dom passar i olika lägen  Kan sökmetoderna ställa krav på implementationen av ADT och i så fall vilka?  Sortering  Sorterad ADT vs sortering av data  5-6 olika algoritmer, analys  Design av algoritmer  Olika algoritmtyper som brute force, divide and conquer, greedy och dynamiska  Exempel och typiska användnings- områden  För- och nackdelar

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

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å

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++

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

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 ??? oSkruvmejslar med olika spetsar

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Gränssnitt  Separerar  Funktion och implementation  Användning och skapande  Specifikation och konstruktion  Finns i datavetenskapen  Mellan centralenheter och periferienheter  Mellan människan och maskinen  Mellan mjukvarukomponenter oFunktioner/metoder oDatatyper oetc…

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

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