This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Rolig och viktig kurs Bli en bättre programmerare och inse att man blivit det
Känna till kända lösningar på typiska problemKonstruera robusta och korrekta programKonstruera och beskriva algoritmer och datatyperPlanera sitt arbete så att projekt blir klar i tid
Ge kursen en ärlig chansKom i tid till föreläsningarnaLäs boken, förstå vad som står därGör övningarBörja med laborationerna i tidUtnyttja handledningenSäg till om det är något som inte funkar
Lite mindre än hälften tyckte att kurslitteraturen var bra. Majoriteten tyckte att de obligatoriska uppgifterna, undervisningen och handledningen var bra. Kursens svårighetsgrad var lagom till svårt Man fick ut jättemycket till en del nytt i form av ny kunskap. Majoriteten deltog i schemalagda aktiviteter alltid till mer än hälften av tillfällena. Man jobbade kontinuerligt med kursmaterialet nästan alltid till nästan aldrig. Arbetsinsatsen som krävdes på kursen uppskattades som mycket högre till lika stor som tidigare kurser.
Referenslitteratur:Mark Allen Weiss, "Datastructures and Algorithm Analysis in Java", 2 ed, Pearson, Addison Wesley ISBN 0-321-37319-7 Mark Allen Weiss, "Datastructures and Algorithm Analysis in C” Addison Wesley Longman ISBN 0-321-18995-7
Ev. ytterligare material som delas ut under kursenHemsidan: http://www.cs.umu.se/kurser/TDBA36/VT07/Mycket information skickas via mail. Läs dina cs-mail minst en gång om dagen!
Gör forward: https://support.cs.umu.se/userinfo/info/index.html
Syftet: Du skabörja få en förståelse varför man använder sig av abstrakta datatyper, analysera för- och nackdelar med olika implementationer av den abstrakta datatypen tabell, öva dig i att hantera referenser och dynamiska strukturer, öva dig i skriftlig presentation.
Läsa och förstå vad OU4 går ut på samt skapa ett testfall för OU4
Parvis, Inlämnas 17/4 klockan 12.00
Syftet: Ni ska läsa in er på det avslutande programmeringsprojektet påkursen skaffa er en förståelse för vad en router är och hur programmet som ni ska skriva senare borde fungera skapa testfall som tillsammans med alla andra studenters testfall bildar en bank med uppgifter som gör det enklare att klara av det avslutade programmeringsprojektet.
Implementera en router Parvis, samma par som OU2Dokumentation inlämnas 16/5 klockan 12.00Implementationen inlämnas 25/5 klockan 12.00
Syfte: Ni skafå goda kunskaper inom vanligt använda datatyper och algoritmer. praktiskt få prova på att tillämpa tidigare tillgodosedda kunskaper i en verklig och aktuell miljö. praktisera arbete i mindre grupper utföra ett arbete under tidspress och lära er planera ert arbete och prioritera bland olika lösningar för att få en färdig produkt som uppfyller kundens (handledarnas) krav. öva er att redovisa ett större arbete skriftligt.
Man måste anmäla sig för att få skrivatentamen i datavetenskap
Man går till sidanhttps://www.cs.umu.se/information/tenta/ ochfyller i sin användare och lösenord.Sen letar man reda på rätt kurs (kurskodTDBA36) och registrerar sig. Man måste anmäla sig senast 10 dagar innantentan ges, på denna kurs absolut senast onsdag16 maj.
Öningar från boken tillsammans med en eller flera programmeringstävlingsuppgifterVissa utvalda räknar vi på gruppövningarnaKursen indelad i tre grupper
Sitter i smågrupper och hjälper varandra fram till förståelse.
Kursdeltagarna ska förvärva förtrogenhet med grundläggande element och konstruk-tioner/tekniker för att organisera data och lösa problem. Detta inbegriper
formell och informell beskrivning av grundläggande abstrakta datatyper,grundläggande algoritmer och effektivitetsanalys paradigmer/tekniker för algoritmkonstruktion.
Efter avslutad kurs ska studenten kunna: känna till grundläggande begrepp relaterade till datastrukturer och algoritmerkänna till grundläggande abstrakta datatyper såsom lista, stack, kö, träd, mängd, graf och tabellvälja datatyper för ett givet problemvälja implementation av datatyperkänna till grundläggande algoritmer, deras komplexitet och karakteristiska egenskaper för typiska problemanalysera algoritmer praktiskt och teoretiskt med avseende påprestandaanvända sig av grundläggande problemlösningsstrategier, som till exempel divide and conquer, brute force, greedy, dynamisk programmering, på nya problemtillämpa den objektorienteringsparadigmen på ett större programmeringsprojektstrukturerat dokumentera algoritmer och datatyper
Manipulativa ansatsenHantverksmetafor, man har ett (passivt) objekt som bearbetas steg för steg tills man nått målet.Imperativa språk som C, Pascal, Modula, Ada
Funktionella ansatsenMatematisk funktionsmetafor, man ändrar aldrig ett objekt. Resultatobjekten är avbildningar av startobjekten.Funktionella/relationella språk som ML, Lisp, Prolog
Objektorienterade ansatsenObjekten har själv egenskaper och beteenden och interagerar med andra objekt. Händelsestyrd programmering.Objektorienterade språk som Java, C++
Beskriva datastrukturer och ansatser så neutralt och språkoberoende som möjligt.
Kunskaperna mer generella och allmänt tillämpbara.
Flesta studenterna har Java som bakgrund, några har C som bakgrund.
Läser du DV, ID, eller TDV eller har läst TDBA63, TDBA62 ska du implementera koden i Java. Annat studieprogram, eller läst TDBA66, TDBA39 så fårdu lösa uppgiften i C även om vi rekommenderar att den görs i Java.
OrganisationDen grundläggande naturen på objekten, linjärt ordnade, före och efter relation etc.
Informell beskrivningGränsytan (nödvändig och minimal, kraftfull)Informell beskrivning av operationernas funktionSignaturdiagramOfta den mest omfattande beskrivningen
o Ändligt antal linjärt ordnade elemento Första / sista elemento Före / efter relation av element (inte värden)o Alla element (utom det sista) har en efterföljareo Alla element (utom det första) har en föregångare
Nu kan vi skapa algoritmer för listor utan att behöva bry oss om hur listan verkligen implementeras.Ex, Söka efter elementet med värdet v i listan list:
If not isEmpty(list) Thenp:= first(list)While Not (Next(p,list) = End(list)
Länkade strukturer+ Insättning / borttagning går snabbt + Minnesutrymmet är proportionellt mot storleken+ Allokera minne när det behövs- Länkarna behöver också minnesutrymme- Kommer bara åt listelement genom att traversera
från listans börjanHuvudlös eller med huvudCirkulär eller linjär
Man tar bort operationer ur gränsytan, utan att mängden objekt som kan konstrueras förändras.Två objekt som är lika, ska vara lika också i specialiseringen.
Objekt som refererar till annat objektKonstrueras oftast som index i fält (kursor)Billigare kopiera länkar till objekt än objekten självaJava: Inget objekt utan länk