Nyhetsflöde
Logga in till din kurswebb
Du är inte inloggad på KTH så innehållet är inte anpassat efter dina val.
Har du frågor om kursen?
Om du är registrerad på en aktuell kursomgång, se kursrummet i Canvas. Du hittar rätt kursrum under "Kurser" i personliga menyn.
Är du inte registrerad, se Kurs-PM för DD1346 eller kontakta din studentexpedition, studievägledare, eller utbilningskansli.
I Nyhetsflödet hittar du uppdateringar på sidor, schema och inlägg från lärare (när de även behöver nå tidigare registrerade studenter).
Den bör inte behöva skapa en egen lista, utan bara plocka element ur composite-trädet i rätt ordning.
I A3 i lab 6 så står det att ens klass ska vara jämförbar med LinkedList vid instoppning och ArrayList vid uttag men när jag testkör prestandan för LinkedList och ArrayList bara så är ArrayList bättre än LinkedList i båda avseendena. Är det tänkt att vara så? För då blev uppgiften helt plötsligt mycket svårare.
Arraylist kan vara snabbare än LinkedList för vissa tillämpningar, men inte alla. En av upgifterna ni ska lösa är att besvara den allra sista frågan i A3.2.
Jag la ursprungligen upp länkar till cachade versioner av sidorna när den av KTH:s webservrar som labbsidorna låg på crashade för ett tag sedan. Eftersom webservern kom upp igen efter någon timme behövs de inte längre. Jag vill uppmärksamma er på att Googles version var från en tidigare kursomgång, och det fanns ett fåtal mindre skillnader i labblydelse. Man får förstås godkänt även om man råkat göra en äldre version av labben.
Kommer det komma upp restlabtillfällen? Jag har t.ex. lab 6 kvar som jag gärna skulle redovisa.
Info om restlabbar kommer efter tentan. Vi siktar på att ha extra tilfällen i period 4.
Hej!
I uppgift A2 i labb 6, ska Fysiker och Datalog-klasserna ligga i Human-klassen eller i separata "dokument"?
Det avgör du själv.
Hej!
Jag undrar när de extra redovisningstillfällena kommer att vara?
Var kommer den infon upp ifall det inte är bestämt ännu?
Tack!
Jag har lite problem med uppgift A3 i labb 6. ArrayList är snabbare än LinkedList både på att sätta in och ta ut element.
Extra tillfällen för redovisning kommer att anslås på kurshemsidan.
Ledning för labb 6:
Visa ett scenario där er klass är minst 1000 gånger snabbare för att köra pseudokoden ovan (dvs en körning innehåller först N st insättningar och sedan N st utplockningar) än att använda endera av de två andra List-typerna. De enda metoder som bör anropas i någon lista är add och get. För vilka typer av a()-metoder får ni störst förbättring?
Finns några redovisningstillfällen inplanerade innan sommaren?
Nu är kompletteringsmöjligheterna färdiga för i år. De som fortfarande har labbar kvar är välkomna till de ordinarie passen i nästa kursomgång, som börjar i november.
Innebär det att passen för DD1346 i detta schema inte gäller? https://docs.google.com/spreadsheets/d/1hQIQtWRH00fe6mXEXTao5o57yTMPndpR1H7axyPQvFQ/edit#gid=0
Schemat för labbveckan gäller, jag fick precis info om att vi kommer att ha en av kursens assar med där.
Okej, ska man boka tid i så fall, eller är det bara att dyka upp?
Det verkar vara problem att läsa tentorna 2012-2013 på denna sida. Dessa tentor verkar ligga under CSC. Det är även problem att läsa föreläsningar 11 och 12.
Jag har inga problem att komma åt tentorna via länken ovan, jag ska se om jag kan ta reda på vad som går snett.
Jonathan: Testa en annan webbläsare. Jag lyckas komma åt dem med Firefox, men inte med Google Chrome.
Det här problemet har uppstått för andra kurser också. Jag har ingen aning om vad det beror på.
Jag har inga problem med någon kombination av system/webläsare/nerladdare som jag har kunnat testa, så det borde finnas någon version som fungerar för dig.
Angående nyckelordet "synchronized"..
Från din föreläsning och tenta-facit verkar det som att när en tråd anropar en synkroniserad metod tar den låset för just den metoden.
Däremot, enligt oracle docs (https://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html) tycker jag det verkar som att om en tråd anropar en synkroniserad metod tar den det "intrinsiska låset" för hela objektet, aka ett lås som verkar på alla synkroniserade metoder i det objektet.
Vilket av dem har jag tolkat fel?
Om du deklarerar en metod som synchronized används objektets egna lås, och alla metodanrop på synkroniserade metoder i samma objekt använder alltså samma lås.
Om du däremot deklarerar ett enskilt kodblock som synchronized kan du explicit ange vilket lås som ska användas, och det är möjligt att låsa olika kodblock med olika lås.
Tack för svaret!
Varför, i så fall, är 3b) på den här tentan https://www.kth.se/social/upload/536a1db3f2765409e5cccce9/DD1346_140320.pdf inte trådsäker?
I 3b har vi en klassvariabel (static), som alltså är gemensam över alla instanser. Om tråd 1 anropar incA() på objekt A, och tråd 2 anropar incA() på objekt B, så kommer respektive anrop att låsas med olika lås, och kan alltså ske samtidigt, med interferens som en möjlig följd.
I 3c har vi sett till att alla objekt delar på samma lås, och det går alltså inte att komma runt låset genom att anropa t.ex incA() på ett annat objekt.
Hej,
När man i lab 6 ska skapa en iterator som ger element i Djupet-först ordning, är det då tänkt att iteratorn först skapar en intern lista som är sorterad i djupet-först ordning och returnerar element ur den listan, eller ska den istället, då next() anropas, leta upp nästa element enligt djupet-först algoritmen?
// Robert