Introduktionsmöte Innehåll Introduktion till kursen Kursens mål och innehåll Undervisning Datavetenskap (LTH) Introduktionsmöte ST 2019 1 / 14
EDAA01 Programmeringsteknik - fördjupningskurs Ingen sommarkurs men stöd för din egen inläsning möten för handledning och frågor, juni augusti (ordinarie kurs ges lp 1+2, därefter en gång till i lp3) 7.5 hp patrik.persson@cs.lth.se cs.lth.se/edaa01/sommar Förkunskapskrav: Godkänd på de obligatoriska momenten i EDAA45 Programmering, grundkurs eller godkänt betyg på tentamen i denna kurs eller i EDAA20, EDAA50, EDAA55, EDAA65, EDA011, EDA016, EDA017 eller EDA501 Datavetenskap (LTH) Introduktionsmöte ST 2019 2 / 14
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 Datavetenskap (LTH) Introduktionsmöte ST 2019 3 / 14
Detta ska du lära dig... Kursens mål mer om programmering och objektorientering interface, exceptions, generik... formulera och använda olika algoritmer för att effektivt lösa problem sökning, sortering, rekursiva algoritmer... Känna till olika abstrakta datatyper viktigaste operationerna, användningsområden lista, stack, kö, mängd, map, prioritetskö använda olika datastrukturer vektorer, länkade listor, binära sökträd, hashtabeller, heapar dels genom att använda färdiga klassbibliotek och dels genom att göra egna implementeringar skriva program med grafiska användargränssnitt (JavaFX) testa klasser (junit) analysera och jämföra algoritmers tidsåtgång Datavetenskap (LTH) Introduktionsmöte ST 2019 4 / 14
Mål Förklaring av termer Algoritm Beskrivning hur man stegvis löser ett problem. Ex: matrecept, linjärsökning Abstrakt datatyp En abstrakt modell tillsammans med de operationer man kan utföra på den. Ex: lista med operationer för att sätta in och ta bort element Datastruktur En samling variabler (ofta med samma datatyp) som hör ihop. Ex: vektor Klassbibliotek Färdiga klasser som är tänkta att användas i andra program. Fungerar som en utvidgning av programspråket. Ex: Java Collections Framework Datavetenskap (LTH) Introduktionsmöte ST 2019 5 / 14
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 läsbar kod 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 Datavetenskap (LTH) Introduktionsmöte ST 2019 6 / 14
Exempel 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?... Datavetenskap (LTH) Introduktionsmöte ST 2019 7 / 14
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 EDAF60, OMD Behandlas i denna kurs Parallellt: dokumentation Datavetenskap (LTH) Introduktionsmöte ST 2019 8 / 14
Kursmoment Laborationer 6 st, obligatoriska Kräver förberedelser. Kan lösas i grupper om två, eller individuellt. Inlämningsuppgift Kan lösas i grupper om två, tre, eller individuellt. Finns på webbsidan. Det finns två alternativ att välja mellan. Övningsuppgifter Viktigt komplement till laborationerna. Löses på egen hand. Datavetenskap (LTH) Introduktionsmöte ST 2019 9 / 14
Examination Skriftlig tentamen Kursen inrapporteras i Ladok i två delar Obligatoriska moment (laborationer + inlämningsuppgift) 3 hp Tentamen 4.5 hp Datavetenskap (LTH) Introduktionsmöte ST 2019 10 / 14
Rekommenderad lärobok E. Koffman och A. T. Wolfgang: Data Structures: Abstraction and Design Using Java, 3rd Edition, Wiley 2016. Det går även bra att använda den andra upplagan (med Java 7). Den första upplagan heter Objects, Abstraction, Data Structures and Design Using Java Version 5.0 och fungerar också. Litteraturanvisningar ges för alla tre upplagorna. Datavetenskap (LTH) Introduktionsmöte ST 2019 11 / 14
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å webbsidan. I övrigt gäller att nästan alla valfria kurser i datavetenskap kräver godkänt i EDAA01. Datavetenskap (LTH) Introduktionsmöte ST 2019 12 / 14
Om att lära sig programmera Programmering är kul! Programmering tar tid (fundera ut lösningar, hitta fel...). Man lär sig programmera genom att träna. Skriv program, testa, hitta på egna program, experimentera... Men inte bara - glöm inte bort teorin. Starten är viktig. Häng med från början! Det man lär sig kommer att byggas på och användas genom hela kursen. De olika undervisningsmomenten (övningsuppgifter, labbar, föreläsningar...) finns av en anledning och kompletterar varandra. Datavetenskap (LTH) Introduktionsmöte ST 2019 13 / 14
Sommarinläsningen bygger på ditt eget arbete Webbsida: cs.lth.se/edaa01/sommar Länk till kursmaterial (senaste ordinarie kursomgång) Här finner du alltså laborationer, övningar, inlämningsuppgift och kursprogram Använd föreläsningsbilderna och ev. kursboken Många av ämnena (binära sökträd, sorteringsalgoritmer,...) finns det även bra beskrivningar av på nätet Gör laborationerna + inlämningsuppgiften För handlednings- och redovisningstillfällen, se kurssidan ovan Anmälningslänk skickas ut ca en vecka innan varje tillfälle Du kan tentera i augusti E-post: Mail kommer vid behov att skickas till din student-mail. I nödfall går det bra att maila kursansvariga, men svaret kan dröja. Men kom ihåg: du förbinder dig inte till något, utan får gärna slutföra kursen under en senare kursomgång! Datavetenskap (LTH) Introduktionsmöte ST 2019 14 / 14