Uppsala UniversitetDoCS

Algoritmer och datastrukturer med objektorienterad programmering

Sommar 96

Fortlöpande ändringars för in här

Syfte

Kursen skall ge studenterna en färdighet att från en analys av aktuellt problem välja lämpliga lösningsalgoritmer och sätt att representera data.

Innehåll

Kursen täcker områden som elementära datatyper och algoritmer som använder dessa såväl som dataabstraktion. Programmeringsmetodologi introduceras med hjälp av exempel på olika programmeringsstilar, t.ex. imperativa och objektorienterade.

Omfattning

5 poäng. Kursen kan på begäran examineras såsom 1TT330 Algoritmer och datastrukturer, TF3Sy, 4 poäng.

Lärare

Anders Berglund, kursansvar, examinator, föreläsningar enligt föreläsningsplan, viss handledning Anders.Berglund@DoCS.uu.se

Johan Bengtsson, föreläsningar enligt föreläsningsplan, lektioner om veckouppgifter, uppgiftsrättning, handledning Johan.Bengtsson@DoCS.uu.se

Fredrik Larsson, viss handledning (under perioden 5-10 aug), viss uppgiftsrättning Fredrik.Larsson@DoCS.uu.se

Litteratur

Esakov - Weiss: Datastructures, An Advanced Approach using C, Prentice-Hall 1989.

Lippman, C++ Primer, 2nd edition, Addison-Wesley, 1991, eller annan lärobok i C++
Kan ersättas med annan bok med motsvarande stoff.

Anders Berglund, Föreläsningsanteckningar i Algoritmer och datastrukturer med objektorienterad programmering, Institutionen för datorteknik, 1996

Referenslitteratur

Stroustrup, The C++ Programming Language, second edition, 1991

Budd, Classic Data Structures in C++, Addison-Wesley, 1994

Kursmaterialets tillgänglighet

Alla övningar, programmeringsuppgifter, schemaändringar etc kommer att finnas tillgängliga på WWW. Inga, eller mycket få, papper kommer att delas ut på kursen. Kursinformation ligger på: http://www.docs.uu.se/~andersb/kurs/AoD_som96/AoD_som96.html

Vissa av dokumenten kan vara i Postscript-format, som kan kräva ändringar i dina init-filer för Netscape, för att kunna läsas.

Skapa en fil (om du inte redan har den) som heter .mailcap i ditt hembibliotek. I denna fill lägger du sedan följande rad:

application/postscript; ghostview %s;

Vi rekommenderar att du använder Netscape 2.x.

Undervisning

På kursen kommer försök med nya undervisnings- och examinationsformer att göras.

Föreläsningar

Föreläsningarna kring C++ (som i första hand är avsedda för studenter som ej tidigare har studerat C++) har en klassisk uppläggning, men täcks av anteckningarna i kompendiet.

Föreläsningen om Unix, Emacs, Netscape och ddd har en klassisk uppläggning, men täcks inte av anteckningarna i kompendiet. Denna föreläsning rekommenderas varmt för studenter som inte är vana användare av dessa program.

Föreläsningarna (förutom om C++) avser att ge en introduktion till och översikt av kursens innehåll. De kommer att hålla ett högt tempo. Föreläsningarna följer i stort anteckningarna i kompendiet, eller kompletteras med OH-bilder, som i så fall kommer att göras tillgängliga på WWW.

Lektioner

Veckouppgifterna kommer att lösas och diskuteras den dag de ska lämnas in (se vidare avsnittet examination) på en lektion som varar cirka 45 minuter.

Vid detta tillfälle kan du diskutera dina lösningar, alternativ till dina lösningar, eller lyssna, oavsett om du själv har lämnat in veckouppgifter eller inte.

Vid dessa lektioner kommer också föregående veckas veckouppgifter att delas ut. Detta är det enda tillfälle när du kan ställa frågor om rättningen på veckouppgifter. Inget nytt stoff eller andra uppgifter än veckouppgifterna kommer att diskuteras på lektionerna.

Laboration

En laboration, en frivillig komma-igång-övning enligt ordinarie schema i halv- eller tredjedelsgrupp. Notera att detta är enda gången du kan räkna med hjälp med inloggning etc.

Handledning

För frågor är du välkommen med frågor till kursledningen på dessa tider. Vi ger stöd såväl lösningen av de frivilliga eller obligatoriska uppgifterna som teorifrågor.

Notera att ingen handledning förekommer under tiden 7 juli - 4 aug.

Datorsystem

Valfria datorsystem får användas för uppgifterna. Handledning och problemlösningshjälp kommer endast att ges för studenter som arbetar på DoCS system. Studenter som arbetar vid andra system ska på begäran kunna visa exekveringen av program.

Konton distribueras vid laborationen och finns därefter för avhämtning hos Johan Bengtsson under hans mottagningstider.

Intro till utbildningssystemen

En föreläsning (se föreläsningsplanen) berör Unix, Emacs, WWW och ddd för dig som inte är bekant med DoCS utbildningssystem.

Det finns övningar på detta material.

Examination

På kursen kommer att göras försök med alternativa examinationsformer.

Examinationens uppläggning

På kursen krävs godkänd teoriexamination (veckouppgifter eller tentamen) och godkända inlämningsuppgifter.

Den ordinarie tentamen är ersatt med veckouppgifter enligt nedanstående. En omtentamen ges, preliminärt 13 augusti 1996. Denna tentamen har en klassisk uppläggning.

För studenter som vill tentera senare, kommer att finnas vissa möjligheter att samtentera med de kurser som ges under läsåret 96/97. Eventuellt kommer dessa kurser att förändras något, jämfört med sommarkursen. Studenter som väljer att tenta senare än augusti, kommer då att få tentera den tenta som ordinarie ges för dessa studenter. Varken vid tentamenskonstruktion eller tentamensrättning kommer någon hänsyn tas till skillnaderna i kursuppläggning.

Anmälan till augustitentamen sker senast 10 augusti före tentamen per e-mail till examinator. För övriga omtentamenstillfällen ska anmälan göras på samma sätt minst 14 dagar före tentamenstillfället.

Betygsgränser

För betyget G fordras: eller För betyget VG fordras: eller

Tillgodoräkning på civilingenjörsprogrammet

Kursen kan, efter individuellt beslut av examinator, tillgodoräknas som 1TT330, Algoritmer och datastrukturer.

För betyget 4 fordras:

eller För betyget 5 fordras: eller

Veckouppgifter

Veckouppgifter kommer att ges som ett led i den alternativa examinationen.

Veckouppgifterna görs tillgängliga på uppgiftssidan enligt tider som anges i kurskalendern för att lämnas in på given tidpunkt enligt anvisningarna nedan. Veckouppgifterna för v 24 och v 28-31 ska dessutom senast samtidigt postas elektroniskt till adresss aodsom@inlupp.docs.uu.se Inga andra inlämningssätt eller tillfällen kommer att accepteras. Inlämning via ombud är dock tillåten.

Studenter som inte lämnar in sina uppgifter på elektronisk form, där det krävs kommer att få uppgifterna rättade, senare än agivet, dock senast 31 oktober. Uppgifterna kommer att lösas på en lektion samma dag, se ovan.

Varje veckouppgift kan vara fördelad på deluppgifter.

Rättningen av uppgifter och deluppgifter kommer att ske med en 3-gradig (0%, 50% 100%) eller 4-gradig (0%, 33%, 66%, 100%) och utan kommentarer. Uppgifterna kommer att lämnas åter vid angivet lektionstillfälle. Du kan då ställa frågor om rättningen. Vid inga andra tillfällen kommer frågor om rättning och bedömning av veckouppgifter att besvaras.

För full poäng på uppgifterna/deluppgifterna krävs mycket goda lösningar. Därför är provkörning av lösningarna av programmeringsuppgifter att rekommendera.

Inlämningsuppgifter

Följande inlämningsuppgifter ges på kursen:
  1. Aftonbladet eller Expressen. Listor, abstraktion, objektorientering.
  2. Matte? Binära träd, polymorfi.
  3. Projekt. Objektorientering, tillämpning.
Inlämningsuppgifterna görs tillgängliga på uppgiftssidan enligt tider som anges i kurskalendern för att att lämnas in enligt anvisningarna nedan.

Inlämningsuppgifterna lämnas in skriftligt tillsammans med ett exemplar av kursens försättsblad i Johan Bengtssons postfack på plan 4, hus 1, senast kl 10.15 angiven dag. Inlämningsuppgift 2 postas dessutom eletroniskt, senast vid samma tidpunkt till aodsom@inlupp.docs.uu.se

För försent inlämnade inlämningsuppgifter gäller:

För den händelse du av sjukdom eller dylikt skulle få problem att slutföra uppgifterna före ordinarie inlämningsdatum bör du snarast kontakta examinator.

Allmäna anvisningar för inlämnings- och veckouppgifter

Uppgifterna får lösas individuellt eller, vilket rekommenderas, i grupper om två. Om arbetet utförs i grupp, krävs att båda gruppdeltagarna aktivt deltar i hela arbetet.

Förhör kommer att hållas på inlämnade uppgifter eller under arbetets gång. Eventuella förekomster av fusk, kommer, såsom högskoleförodningen fastställer, att anmälas till rektor.

Uppgifter som lämnas in på fealaktigt sätt kommer inte att beaktas.

Rättade uppgifter etc finns i tidskriftssamlare i bokhyllan utanför DoCS studerandeexpedition, rum 1406.

Tentamen

Augustitentamen ges enligt ordinarie uppläggning.

Anmälan till omtentamen ska göras enligt ovan. Så kallad plusning är inte tillåten. I detta sammanhang betraktas godkända veckouppgifter såsom en godkänd tentamen.

Lokaler

Alla förelsäningar sker i sal 1211 om annat ej anges. Vid handledningstillfällen med bokade datorer, sker i sal 1413 eller på handledarens tjänsterum, om inte annat meddelats.

Our old Aristotle Preliminärt kursschema Platon

F1 11 jun 10-12 (lokal 1311) Inledning. Kurspresentation. Begreppen abstraktion och objektorienterad programmering. Översikt av C++ Anders
F2 11 jun 13-15 C++: Grundläggande datatyper och styrstrukturer Johan
11 jun 10 Veckouppgift 24 ut.
Glöm inte den elektroniska inlämningen av denna uppgift.
F3 12 jun 10-12 C++: Funktioner och härledda typer Johan
F4 13 jun 10-12 Unix, Emacs, Netscape och ddd Johan
Denna föreläsning rekommenderas för alla studenter
Lab 13 jun 13-16 Laboration, grupp 1
Lab 13 jun 17-20 Laboration, reservtid
14 jun 10 Veckouppgift 25 ut
F5 14 jun 10-12 C++: Funktioner och parameteröverföring Johan
Lab 14 jun 13-16 Laboration, grupp 2
F6 17 jun 13-15 C++: Funktioner och parameteröverföring. Klasser, inledning Johan
F7 18 jun 10-12 C++: Klasser, forts Johan
L1 18 jun 13-14 Inlämning och genomgång Vecka 24-uppgiften Johan
Glöm inte den elektroniska inlämningen av denna uppgift.
F8 19 jun 10-12 Rekursion Anders
19 jun 10 Veckouppgift 26 ut
F9 19 jun 13-15 Dataabstraktion Anders
21 juni Midsommar. Vi struntar i datorer.
F10 25 jun 10-12 Listor Anders
L2 25 jun 13-14 Inlämning och genomgång vecka 25-uppgiften. Återlämning av vecka 24-uppgiften. Johan
26 jun Inlämningsuppgift 1 ut. Veckouppgift v 27 ut
F12 26 jun 10-12 Objektorientering Anders
F13 26 jun 13-15 Listor, Arv Anders
27 jun 10 Inlämningsuppgift 2 och 3 ut. Glöm inte den elektroniska inlämningen av inlämningsuppgift 2
F14 1 jul 10-12 Stackar och köer, polymorfi Anders
L3 1 jul 13-14 Inlämning och genomgång vecka 26-uppgiften. Återlämning av vecka 25-uppgiften Johan
2 jul 10 Veckouppgift 28-31 ut
Glöm inte den elektroniska inlämningen av denna uppgift. Uppgiften kan lämnas in vid önskad tidpunkt före dead-line.
L4 2 jul 11-12 Dead-line Inlämningsuppgift 1. Genomgång av lösning till Inlämningsuppgift 1 Johan
Denna lektion är enbart tillgänglig för studenter som har lämnat in inlämningsuppgift 1
F15 2 jul 13-15 Träd Anders
F16 3 jul 10-12 Träd Anders
F17 3 jul 13-15 Reserv Anders, Johan
L5 4 jul 13-14 Inlämning och genomgång vecka 27-uppgiften. Återlämning av vecka 26-uppgiften. Johan
5 aug kl 13
Senaste tid för inlämning av vecka 28-31 in. Deadline Inlämningsuppgift 2. Glöm ej den elektroniska inlämningen av dessa uppgifter
9 aug kl 18
Vecka 28-31 rättad. Inlämningsuppgift 2 rättad. Finnas att hämta utanför datortekniks studerandeexpedition.
16 aug kl 10
Deadline Inlämningsuppgift 3.
3 sept kl 10
Inlämningsuppgift 3 rättad. Finnas att hämta utanför datortekniks studerandeexpedition.

Anders Berglund
Last modified: Mon Jun 10 21:17:11 MET DST 1996