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

Relevanta dokument
Datastrukturer och algoritmer

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

Introduktionsmöte Innehåll

EDAA01 Programmeringsteknik - fördjupningskurs

Datastrukturer och algoritmer

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

Programmeringsteknik II

Datastrukturer och algoritmer

Föreläsning 1 Datastrukturer (DAT037)

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

Datastrukturer och algoritmer

PROGRAMMERINGSMETODIK

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

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

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

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

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

Föreläsning 15: Repetition DVGA02

729G06 Föreläsning 1 Objektorienterad programmering

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

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

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

Föreläsning 1: Introduktion till kursen

Föreläsning 14 Innehåll

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

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

Föreläsning 13 Datastrukturer (DAT037)

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

Design och konstruktion av grafiska gränssnitt

Föreläsning 2 Datastrukturer (DAT037)

Välkomna till DIT012 IPGO

Föreläsning 13 Datastrukturer (DAT037)

Datavetenskapligt program, 180 högskolepoäng

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

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

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

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

Design och konstruktion av grafiska gränssnitt

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

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

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

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

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

Imperativ programmering

Schemaunderlag för Programmering, grundkurs (TDDB18)

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Tentamen Datastrukturer D DAT 035/INN960

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

Objektorienterad Systemutveckling Period 3

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Objektorienterad programmering

Imperativ programmering. Föreläsning 4

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Kursplanering Objektorienterad programmering

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

Datastrukturer och algoritmer

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

Programmering = modellering

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

SKOLFS. beslutade den -- maj 2015.

SKOLFS. beslutade den XXX 2017.

PROGRAMMERINGSMETODIK

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Programmering, grundkurs

Föreläsning 3 Datastrukturer (DAT037)

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

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

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

Föreläsning Datastrukturer (DAT037)

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

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Poäng. Start v. Människadatorinteraktion 7.5. Antal registrerade (män/kvinnor) 44 (26/18)

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

Objektorienterad programmering, allmänt

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

Kursinformation Grundkurs i programmering med Python

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

Grundläggande Datalogi

Programmering för språkteknologer II, HT2011. Rum

Facit Tentamen TDDC (7)

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

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Hur tycker du kursen har varit? Tycker du att kursens upplägg har underlättat för dig att uppnå lärandemålen?

Poäng. Start v. DV2: Algoritmer och problemlösning 7.5. Antal registrerade (män/kvinnor) 23 (23/0)

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Datastrukturer och algoritmer

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

Transkript:

ÿþýüûúùø øö ô Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Innehåll 2 ÿ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 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 2 Inblandade personer ÿföreläsare Anders Broberg Lena Kallin Westin (kursansvarig) Ulrika Hägglund ÿhandledare Mattias Flodin David Olsson 3 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 3

Administration ÿpersoner som inte haft en datoranvändare (xxx@cs.umu.se) på datavetenskap tidigare: 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å. 4 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 4 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 5 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 5 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 6 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 6

Vad krävs för att nå dit? ÿge kursen en ärlig chans 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 7 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 7 Förkunskaper ÿkunna implementera en godtycklig algoritmbeskrivning i JAVA/C 8 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 8 Websajten ÿhttp://www.cs.umu.se/kurser/tdba47/vt03/ Schema Uppdateringar Formalia Resultatredovisning Gruppövningar Föreläsningar o Introduktion, OH-bilder, läsanvisningar Gamla tentor 9 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 9

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 ÿfrivillig gruppövning 0, fredag 10-12 För de som tänker programmera i C ÿfrivillig legoprogrammeringsövning Måndag eftermiddag 10 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 10 11 Gruppövningar ÿ Gruppövning 0 (för de som läst C): Att programmera stora C-program ÿ 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 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 11 Examination ÿ Tre stycken obligatoriska uppgifter Implementera tabeller Implementera en router Analysera tre algoritmer o Experimentellt o Asymptotiskt (gruppövning) Alla löses individuellt ÿtvådelad tentamen (Måste vara godkänd på båda delarna). En begreppsdel o Förklara kortfattat ett antal begrepp En förståelsedel o Frågor där man får visa att man förstått kursen hur saker och ting hänger ihop 12 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 12

13 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 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 13 14 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ändningsområden För- och nackdelar Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 14 Att bygga program ÿ bygga hus/broar ÿprogrammering ÿhusbygge Problembeskrivning Specifikation/Beskrivning Systemdesign Material Modelleringsverktyg Verktyg o Datatyper representera datat i programmet Utvärdering/uppföljning 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 15 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 15

16 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 16 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++ 17 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 17 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 2/3 av studenterna har Java som bakgrund och 1/3 har C som bakgrund. Kan själv välja språk på labbarna Oftast pseudokod på föreläsningarna 18 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 18

Gränssnitt 19 ÿ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 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 19 20 Gränssnitt ÿseparerar Funktion och implementationen Användning och skapandet Specifikationen och konstruktionen ÿfinns i datavetenskapen Mellan centralenheter och periferienheter Mellan människan och maskinen Mellan mjukvarukomponenter o Funktioner/metoder o Datatyper o etc Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 20 21 Begrepp ÿdata - objekten som bär information ÿdatatyp - värdemängd samt operationer Enkel (heltal) Sammansatt (Lista av heltal) o Homogen vs. Hetrogen 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 Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 21

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