Algoritmer och datastrukturer TF3 Sy

samt
Algoritmer och datastrukturer med objektorienterad programmering, fristående kurs

Här förs inga ändringar in

Vill du ha en aktuell kursplan?

Syfte

Ur studiehandboken: The aim of this course is that students should be able to from analysis of a problem choose proper algorithms and ways to represent data.

Innehåll

Ur studiehandboken: The course covers topics as basic data types and algorithms for them, as well as dataabstraction. Programming methodology is also introduced together with examples of different styles of programming, e.g. imperative and object oriented.

Omfattning

4 poäng

Lärare

Anders Berglund, kursansvar, examinator, föreläsningar enligt föreläsningsplan.

Johan Bengtsson, föreläsningar enligt föreläsningsplan, lektioner om veckouppgifter, handledning.

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/AoD_tf96/AoD_tf96.html

Vissa av dokumenten kan vara på ett format som kräver ä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;

Undervisning

På kursen kommer försök med nya undervisningformer att göras.

Schemaförtydliganden

Utöver de lektioner som finns på det gula schemat finns två lektionstillfällen:
26/2 kl 17.15 sal 2245 (den 26/2 kl 10 utgår)
4/3 kl 17.15 sal 2245

Lektionen den 22/1 kl 17.15 utgår

Undervisningen den 23, 24, 25 jan är laborationer, tredjedelsklassvis, samling i sal 1412.

Föreläsningar

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.

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 (prel 22 jan), men täcks inte av anteckningarna i kompendiet.

Lektioner

Veckouppgifterna kommer att lösas och diskuteras den måndag 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.

Inget nytt stoff eller andra uppgifter än veckouppgifterna kommer att diskuteras på lektionerna.

Laboration

En laboration, en frivillig komma-igång-övning, hålls den 23/1 - 25/1 enligt ordinarie schema i tredjedelsgrupp. Notera att detta är enda gångnen du kan räkna med hjälp med inloggning etc.

Handledning

Studenter på kursen är välkomna att utnyttja Datortekniks jourhavande handledare, må - to 17 - 20, främst i sal 1412. Handledningen börjar den 31 jan kl 17.

För frågor där Datortekniks jourhavande handledare inte kan hjälpa till, är du välkommen med frågor till Johan Bengtsson. Respektera hans mottagingstider, som kommer att finnas anslagna på hans dörren till hans arbetsrum (1310). Han kan ge stöd med alla frågor kring kursen, såväl lösningen av de frivilliga eller obligatoriska uppgifterna som teorifrågor.

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.

Du finner övningar på detta material här.

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. Omtentamen ges enligt klassisk uppläggning.

För betyget 3 fordras: eller För betyget 4 fordras: eller För betyget 5 fordras: eller Gränserna x, y och z fastställs senare.

Veckouppgifter

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

Veckouppgifterna görs tillgängliga på uppgiftssidan varje fredag senast kl 12.00, för att lösas under nästkommande vecka och lämnas in senast påföljande måndag kl 10.15 enligt anvisningarna nedan. Uppgifterna kommer att lösas på en lektion samma dag, se ovan.

Veckouppgifter ges för att lösas under veckorna 4 - 10, dvs lämnas in veckorna 5-11. Uppgiften för veckorna 4,9, 10 är mindre än de övriga.

Varje veckouppgift ger maximalt 10p (uppgiften för v 4, 9, 10 ger 5p), eventuellt fördelat 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%) skala (på någon uppgift möjligtvis 5-gradig) och utan kommentarer. För kommentarer kring uppgiftsrättningarna hänvisas till lektionerna (se ovan).

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.

Försenade veckouppgifter kommer att slängas av examinator.

Inlämningsuppgifter

Följande inlämningsuppgifter ges på kursen:
  1. Listor och klasser. Klassbegreppet, listbegreppet.
  2. Aftonbladet eller Expressen. Listor, abstraktion, objektorientering.
  3. Matte? Binära träd, polymorfi.
  4. Projekt. Objektorientering, tillämpning.
Inlämningsuppgifterna görs tillgängliga på uppgiftssidan när det stoff de behandlar är genomgånget på föreläsningarna. Sista inlämningsdag är 1. må 19 feb kl 10.15
2. må 26 feb kl 10.15
3. må 4 mars kl 10.15
4. må 18 mars kl 17.00

För försent inlämnade inlämningsuppgifter gäller: För den händelse du av sjukdom, utlandsresa 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.

Samtliga uppgifter 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 4: kl 17.00 angiven dag)

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

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

Tentamen

Omtentamen ges enligt ordinarie uppläggning.

Anmälan till omtentamen ska göras enligt teknisk fysik-programmets ordinarie rutiner. Detta även gäller de studenter som inte följer TFP. Så kallad plusning är inte tillåten. I detta sammanhang betraktas godkända veckouppgifter såsom en godkänd tentamen.

Preliminär föreläsningsplan

F1 Inledning. Kurspresentation. Begreppen abstraktion och objektorienterad programmering.
Översikt av C++, Anders
C++: Grundläggande datatyper och styrstrukturer Johan
F2 C++: Grundläggande datatyper och styrstrukturer, forts Johan
F3 C++: Funktioner och härledda typer Johan
F4 Unix, Emacs, Netscape och ddd Johan
Denna föreläsning rekommenderas för alla studenter
F5 C++: Funktioner och parameteröverföring Johan
F6 C++: Funktioner och parameteröverföring
Klasser, inledning Johan
F7 C++: Klasser, forts Johan
F8 Rekursion Anders
F9 Dataabstraktion Anders
F10 Listor Anders
F11 Listor, forts Anders
F12 Objektorientering Anders
F13 Listor, Arv Anders
F14 Stackar och köer, objektorientering Anders
F15 Träd Anders
F16 Träd Anders
F17 Reserv Anders/Johan

Anders Berglund
Last modified: Mon Jan 15 17:58:18 1996