Algoritmer och datastrukturer TF3 Sy
samt
Algoritmer och datastrukturer med objektorienterad programmering

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.

Kursinnehå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 för civilingenjörsstudenter, 5 poäng för övriga.

Lärare:

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

Fredrik Larsson, föreläsningar enligt föreläsningsplan, lektioner om veckouppgifter, handledning.

Babak E. Zahiri, viss 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.

Nya Datorhandboken, Institutionen för ADB och Datalogi

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

Försäljning av "Föreläsningsanteckningar ..." och "Datorhandboken" sker vardagar i rum 1403, kl 10.00-10.15 och 12.45-13.15. Övriga böcker kan köpas i bokhandeln.

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/tf98/aod_tf98.html

Schemaförtydliganden

Föreläsning 12 feb kl 8.15 - 10.00 utgår.

Laborationen 22 jan hålls i sal 1357 och 1515 (samling i 1515), och sker tredjedelsgruppvis i tvåtimmarspass.

Undervisning

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

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 är avsedda för studenter som ej tidigare har studerat C++) har en klassisk uppläggning, men täcks 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.

Alldeles efter detta tillfälle kan du diskutera dina lösningar privat med handledaren. Inget nytt stoff eller andra uppgifter än veckouppgifterna kommer att diskuteras på lektionerna.

Laboration

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

Handledning

Studenter på kursen är välkomna att utnyttja Datortekniks jourhavande handledare. Klicka för tider och lokaler.

För frågor där Datortekniks jourhavande handledare inte kan hjälpa till, är du välkommen med frågor till Fredrik Larsson. Respektera hans mottagingstider, som kommer att finnas anslagna på WWW. Han kan ge stöd med alla frågor kring kursen, såväl lösningen av 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 Fredrik Larsson under hans mottagningstider.

Programmeringsuppgifter

Följande programmeringsuppgifter ges på kursen:
  1. Aftonbladet eller Expressen. Listor, abstraktion, objektorientering.
  2. Matte? Binära träd, polymorfi.
  3. Projekt. Objektorientering, tillämpning.
Programmeringsuppgifterna görs tillgängliga på uppgiftssidan när det stoff de behandlar är genomgånget på föreläsningarna. Sista inlämningsdagar anslås på uppgiften.

Projektet har en viss betygspåverkan. Se avsnittet examination.

Examination

På kursen kommer vi att använda alternativa examinationsformer.

Examinationens uppläggning

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

Den ordinarie tentamen är ersatt med veckouppgifter enligt nedanstående. Omtentamen i juni och augusti ges enligt klassisk uppläggning.

Under kursen finns sex tillfällen att läman in veckouppgifter. Projektet bedöms i betygsammanhang såsom en sjunde veckouppgift enligt följande skala:

Om en uppgift rättas, och får betyget "komplettering", kan detta betyg aldrig höjas tillVG.

I nedanstående beskrivning är poäng för projekt inräknat i poäng för veckouppgifterna.

För betyg baserat på veckouppgifter, fordras närvao vin minst fyra lektioner.

För betyget 3 fordras:

eller

För betyget 4 fordras:

eller

För betyget 5 fordras:

eller

För betyget G fordras:

eller För betyget VG fordras: eller

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 via email senast vid början av påföljande måndagslektion. Uppgifterna kommer att lösas på lektionen samma dag. Resultatet meddelas senast påföljande måndag.

Varje veckouppgift ger maximalt 10p (uppgiften för v 5 och v 10, som är mindre 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 en frågestund alldeles efter lektionerna.

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 uppgifter

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

För försent inlämnade programmeringsuppgifter 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.

Tentamen

Omtentamen ges enligt ordinarie uppläggning.

Anmälan till omtentamen ska göras enligt teknisk fysik-programmets ordinarie rutiner, även för de studenter som inte följer TFP.

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

Alla uppgifter 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. Var och en ska kunna svara på frågor från handledaren om uppgiftens lösning.

Alla uppgifter redovisas elektroniskt genom att skicka e-mail till Fredrik Larsson, fredrikl@docs.uu.se. Hela lösningen, dvs källkod, dokumentation och körexempel, skickas i ett e-mail. Inga papperskopior behövs på dessa filer. Glöm inte att ge läs- och exekveringsrättigheter till 'övriga'.

Ett ifyllt försättsblad lämnas i Babaks postfack (nr 106), plan 4 i hus 1. Glöm inte att ange filpekare till aktuella filer.

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

Resultaten kommer att anslås på WWW. Eventuella kommentarer på programmeringsuppgifterna redovisas genom ett e-mail från Fredrik. Resultatet kommer att fyllas i på försättsbladet, som kommer att finnas i tidskriftssamlare i bokhyllan utanför DoCS studerandeexpedition, plan 2, hus 1.

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.

Preliminär föreläsningsplan

F1 Inledning. Kurspresentation. Begreppen abstraktion och objektorienterad programmering.
Översikt av C++, Anders
C++: Repetion Fredrik
F2 C++: Repetition, forts Fredrik
F3 C++: Repetition, forts Fredrik
F4 C++: Repetition, forts Fredrik
F5 Rekursion. Vissa OH-bilder Anders
F6 Klasser Anders
F7 Klasser, forts Anders
F8 Dataabstraktion Anders
F9 Listor Anders
F10 Listor, forts Anders
F11 Objektorientering Anders
F12 Listor, Arv Anders
F13 Stackar och köer, objektorientering Anders
F14 Dynamisk bindning Anders
F15 Träd Anders
F16 Träd Anders
F17 Reserv Anders/Fredrik
F18 Reserv Anders/Fredrik



Anders Berglund
Last modified: Thu Jan 29 12:12:37 MET 1998

  Anders Berglund			office	    + 46 (18) 471 31 67
  Department of Computer Systems        mobile	    + 46 (70) 425 02 11
  P.O. Box 325				fax, direct + 46 (70) 610 24 58
  S-751 05 Uppsala			fax, dept   + 46 (18) 55 02 25
  Sweden				
  e-mail: Anders.Berglund@docs.uu.se