EDAA01 Programmeringsteknik - fördjupningskurs

Relevanta dokument
Introduktionsmöte Innehåll

Mål Förklaring av termer

Mål Förklaring av termer

Föreläsning 1 Innehåll

EDAA30 Programmering i Java - fortsättningskurs

Föreläsning 1 Innehåll. EDAA01 Programmeringsteknik - fördjupningskurs. Detta ska du lära dig... Kursens mål. Detta kan du...

Programmeringsteknik II

Föreläsning 14 Innehåll

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

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

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

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

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Föreläsning 15: Repetition DVGA02

Kursanalys DD1312 hösten 2008

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

Föreläsning 13 Innehåll

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

Design och konstruktion av grafiska gränssnitt

Programmering, grundkurs

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

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

Kursplanering Objektorienterad programmering

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

Föreläsning 9 Innehåll

Kursanalys DA2003 sommar 2017

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.

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

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

Grundläggande Datalogi

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Föreläsning 1 & 2 INTRODUKTION

Kursinformation Grundkurs i programmering med Python

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT14

Objektorienterad programmering

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Design och konstruktion av grafiska gränssnitt

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

Objektorienterad Systemutveckling Period 3

Objektorienterad Programkonstruktion

Kursanalys. Douglas Wikström 15 juni Problemlösning och programmering under press (DD2458) Högskolepoäng (hp): 9 Kursen gavs: Period 1-2, 2008

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

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

Föreläsning 1: Introduktion till kursen

CEQ-kommentarer Kurser år 2. CEQ-kommentarer Kurser år 2

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

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

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Föreläsning REPETITION & EXTENTA

Föreläsning 11 Innehåll. Sortering. Sortering i Java. Sortering i Java Comparable. Sortering. O(n 2 )-algoritmer: urvalssortering insättningssortering

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

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Föreläsning 1 & 2 INTRODUKTION

Objektorienterad programmering

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

Datastrukturer och algoritmer

Thomas Padron-Mccarthy. Databasteknik, 7.5 hp (DT105G ) Antal svarande = 13. Svarsfrekvens i procent = 21. Undersökningsresultat

Föreläsning 8 Innehåll

Föreläsning 13 Datastrukturer (DAT037)

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

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Föreläsning 11 Innehåll

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

Programmeringsteknik F1/TM1

Programmering och datastrukturer

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17

Kursanalys DA2003 höst 2017

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Sökning och sortering

32IIÅ1 HT17 Masterprogram i Biblioteks- och informationsvetenskap, distansutbildning (BMBD116h) Johan Eklund Johan Eklund

Ökad valbarhet för Systemvetenskapliga programmet. Möjlighet till inriktning

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

Föreläsning 1-2 innehåll

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Datavetenskapligt program, 180 högskolepoäng

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Teoretisk del. Facit Tentamen TDDC (6)

Föreläsning 9 Innehåll

1DV432 ST14. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

Länkade strukturer, parametriserade typer och undantag

FK Numeriska metoder

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2010

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

Kursprogram VT Konstruktionsteknik VBKF15 (9hp)

Föreläsning Datastrukturer (DAT037)

SKOLFS. beslutade den XXX 2017.

Introduktion till kursen och MATLAB

MATLAB-modulen Programmering i MATLAB. Höstterminen hp. Vad är MATLAB

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Sätt att skriva ut binärträd

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

Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Välkomna till DIT012 IPGO

Interfacen Set och Map, hashtabeller

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Transkript:

EDAA01 Programmeringsteknik - fördjupningskurs Läsperiod lp 1+2 (Ges även lp 3) 7.5 hp anna.axelsson@cs.lth.se sandra.nilsson@cs.lth.se http://cs.lth.se/edaa01ht Förkunskapskrav: Godkänd på obligatoriska moment och/eller på tentamen i någon av grundkurserna EDA016, EDA011 eller EDA017 eller Godkänt betyg på grundkursen EDA501 eller EDAA20 PFK (Introduktion) HT 2015 1 / 15

Detta kan du... Förkunskaper en hel del om programmering och objektorientering begrepp som klass, objekt, attribut, metod, parameter skriva mindre program i programspråket Java skriva och debugga program i utvecklingsverktyget Eclipse använda vektorer, matriser och (delvis) klassen ArrayList enkla algoritmer som t.ex. linjärsökning, insättning i en redan sorterad vektor använda arv superklass, subklass, abstrakt metod PFK (Introduktion) HT 2015 2 / 15

Detta ska du lära dig... Kursens mål mer om programmering och objektorientering interface, exceptions, generik... använda olika algoritmer och datastrukturer för att effektivt lösa problem sökning, sortering... listor, binära sökträd, hashtabeller, heapar... dels genom att använda färdiga klassbibliotek och dels genom att göra egna implementeringar testa klasser (junit) analysera och jämföra algoritmers tidsåtgång formulera rekursiva algoritmer skriva program med grafiska användargränssnitt PFK (Introduktion) HT 2015 3 / 15

Mål Förklaring av termer Algoritm Beskrivning hur man stegvis löser ett problem. Ex: matrecept, linjärsökning Datastruktur En samling variabler som hör ihop på något sätt. Ex: vektor, länkad lista, träd Biliotek En samling färdiga klasser som är tänkta att användas i andra program. Fungerar som en utvidgning av programspråket. Ex: Javas standardbibliotek för samlingar - Java Collections Framework PFK (Introduktion) HT 2015 4 / 15

Varför är detta viktigt att kunna? Till skillnad mot övningsprogram är riktiga program stora, skrivs av flera personer, har lång livstid, kräver underhåll.... Därför är följande viktigt: bra design att man kan välja lämpliga algoritmer, datastrukturer och färdiga byggstenar (klasser ur bibliotek) bra verktyg för programutveckling, felsökning och testning PFK (Introduktion) HT 2015 5 / 15

Från problem till program Specifikation av problemet Design Val av lösningsmetoder (algoritmer, datastrukturer) för delproblem Implementering (programskrivning) Testning Underhåll (korrigeringar och uppdateringar) 2 Behandlas i EDA061/F10, OMD Behandlas i denna kurs Parallellt: dokumentation PFK (Introduktion) HT 2015 6 / 15

Exempel 1 Skriv program för att hantera kontakter (namn, mobil nr...). Att fundera på: Ska vi använda en vektor eller finns det andra, bättre sätt att lagra posterna? Finns det färdiga klasser som kan användas? Hur sker kommunikationen med användaren (utskrifter i konsolfönstret eller snyggare grafiskt användargränssnitt)? Hur designar man programmet så att man lätt kan byta sätt? Hur söker man snabbt om antal poster är stort är stor?... PFK (Introduktion) HT 2015 7 / 15

Exempel 2 Problem: Givet n tal, tag reda på de k största. Ex: Talen är 4, 1, 9, 5, 2, 6 och k = 3 ger svaret 5, 6, 9 Lösning: Lagra talen i en vektor och sortera dem med en enkel algoritm. Sedan är det enkelt att avläsa de k största: 1, 2, 4, 5, 6, 9 Fungerar detta om n och k är stort? Är algoritmen tillräckligt snabb? Finns det någon annan datastruktur än vektor som passar bättre? PFK (Introduktion) HT 2015 8 / 15

Kursens struktur f 1-2 f 3-4 f 5 f 6 f 7 f 8-10 f 11 f 12 ö1-3, ö 4-5 ö 6 ö 7 ö 8-11 ö 12 ö 13 lab1 lab 2 lab 3 lab 6 lab 4-6 Interface, exceptions, generik, JCF, iteratorer Listor, stackar köer, länkade strukturer Algoritmers effektivitet, tidskomplexitet Rekursion Grafiska användargränssnitt Set, map. Träd, binära sökträd, hashtabeller Prioritetsköer, heapar Sortering PFK (Introduktion) HT 2015 9 / 15

Kursmoment Laborationer 6 st lp 1 läsvecka 3, 5, 7 och lp 2 läsvecka 2, 4, 6, obligatoriska Kräver förberedelser. Ska lösas i grupper om två. Anmälan till önskad labbgrupp görs på kursens hemsida senast ons 2/9. Inlämningsuppgift andra halvan av kursen obligatorisk Ska lösas i grupper om två. Finns på hemsidan. Det finns två alternativ att välja mellan. Redovisas i läsvecka 7 i lp 2. Övningsuppgifter Viktigt komplement till laborationerna. Löses på egen hand. Uppgifter och lösningsförslag finns på kursens hemsida Föreläsningar 13 st, lp 1 läsvecka 1-7 och lp 2 läsvecka 1-4, 6-7 Bilder läggs ut på hemsidan och används delvis under föreläsningarna. Tillsammans med de bilder som inte visats blir de publicerade bilderna en sammanfattning av kursinnehållet som kan användas för repetition. PFK (Introduktion) HT 2015 10 / 15

Examination Skriftlig tentamen Kursen inrapporteras i Ladok i två delar Obligatoriska moment (laborationer + inlämningsuppgift) 3 hp Tentamen 4.5 hp PFK (Introduktion) HT 2015 11 / 15

Lärobok E. Koffman och A. T. Wolfgang: Data Structures: Abstraction and Design Using Java, Second Edition. Den gamla upplagan heter: Objects, Abstraction, Data Structures and Design Using Java Version 5.0. Det går bra att använda både den nya och den gamla upplagan Litteraturanvisningar i kursmaterialet ges för båda upplagorna. Ny upplaga är på gång (jan 2016). PFK (Introduktion) HT 2015 12 / 15

Relation till andra kurser För C och D ingår kursen i kurskedjor. Det är viktigt att känns till förkunskapskraven i kedjan. Finns på hemsidan. I övrigt gäller att nästan alla valfria kurser i datavetenskap kräver godkänt i EDAA01. PFK (Introduktion) HT 2015 13 / 15

CEQ-synpunkter Överlag nöjda studenter Några synpunkter från tidigare kursomgångar: Laborationerna har varit intressanta och har haft ett första intryck av att vara väldigt avancerade men sedan varit lättare än vad man kunnat tro. Laborationerna var för svåra för att klara av på endast ett tillfälle. Labbarna kräver förberedelser. Det var bra att jobba i par på uppgifterna så man har någon att diskutera med hela tiden. Jobbigt att behöva köa för att få hjälp med inlämningsuppgiften. Börja i god tid. Saknar övningstillfällena. Övningsuppgifterna finns kvar som självstudieuppgifter. Viktiga! Lös dem. PFK (Introduktion) HT 2015 14 / 15

Nytt sedan förra kursomgången: Senaste versionen av Java, Java 8, innehåller en del nyheter med anknytning till kursen. I kursboken och i det mesta av kursmaterialet används Java 7. Vissa föreläsningsbilder med Java 8 kommer dock att smygas in. JavaFX kommer att användas (istället för Swing-paketet) för att skriva grafiska användargränssnitt. Påverkar labb 3, 6 och inlämningsuppgiften. Det kommer (troligen) att finnas möjlighet att skriva inlämningsuppgiften för Android. Tentorna påverkas ej av detta. Extentorna är alltså fortfarande aktuella. PFK (Introduktion) HT 2015 15 / 15