bild
Skolan för
elektroteknik
och datavetenskap

Programsystemkonstr. m. C++, cprog07

Information för cprog07

Sista redovisningar

Det blir redovisningar 25:e och/eller 26:e med bibehallen bonus. Uppdatering, det blir redovisningar både måndag och tisdag eftermiddag. Jag tar redovisningar via sima-lista (endast eftermiddag) och kommer dit ni sitter. Eventuellt får jag hjälp på tisdag och kan lägga bokningsbara tider.

Redovisningar augusti

Jag tar emot redovisningar för lab3 (+lab3 extrauppgifter) mån 18:e och tis 19:e augusti ensam. Jag har en simakö öppen och går till er när någon skriver upp sig. Jag kan även ta emot redovisningar efter 18 för de som jobbar och vill redovisa efter jobbet.

I år verkar det vara flera som vill utnyttja augusti-redovisning, skulle det visa sig ohanterligt många lägger jag upp tider måndag och/eller tisdag 25-26.

Resultat från labbveckan klara

Labbredovisningarna från labbveckan är inrapporterade till ladok.

Labbvecka i juni

Det finns en labbvecka i juni för de flesta labbkurser på CSC, anmäl intresse för att redovisa lab3 här

Rättade tentor

Tentorna är rättade men inte anslagna. Tal 2 och 3 har inte gått så bra och de är viktiga tal.

Omtenta

Tisdag 15/1 är det omtenta, det är inte så många anmälda och det finns 20 platser kvar. Nästa tenta är ordinarietentan i oktober. Jag har förlängt anmälningstiden för omtentan.

Tider för lab3

Deadline för lab3 flyttas till mitten på januari p.g.a. handledarbrist. Jag lägger upp tider för onsdag 16 januari.
Tider kan bokas via denna knapp. .

Kursenkät

Tryck här för att hämta kursenkäten:

Om deadlines

  • Deadline för bonus på lab3 flyttas till ett labbpass tidigt i januari. Datum bestäms senare. Man kan då även redovisa grunduppgiften på lab1 och lab2
  • Övriga redovisningstider är under allmäna redovisningsveckan i juni samt i augusti en vecka före kursstart. Då kan man redovisa grunduppgiften på labb ett, två och tre samt extrauppgifterna till lab3.
  • Deadline för redovisningar av lab1 och lab2 extrauppgifter är imorgon

AFS nere

I morse var afs servern nere. Jag har fått brev från tre grupper och bekräftat dessa brev. Kontrollera att ni fått undansparning bekräftat av mig.

Ny gästföreläsning

Tid: 4:e december kl 13 sal E2

Daniel Aarno från Virtutech kommer att prata om virtualisering och hur virtualisering kan hjälpa mjukvaruutvecklare; speciellt med avseende på de nya utmaningar som ställs på utvecklare i en tid då multicoreplattformar blir allt vanligare och parallellismen i programmen ökar. Läs mer här

Jag kommer prata om hur man skriver parallella program generellt och visa exempel på hur man kan wrappa pthreads i C++ för att få ett mer objektorienterat API. Kommer även visa exempel på lås och hur man kan använda RAII för att stoppa ett låsobjekt på stacken och automatiskt låsa upp det då funktionen returnerar eller höjer undantag. Kommer även ta upp de vanligaste felfallen med parallela progra, races och dead-locks.

Tider för komplettering

Jag har provat ett nytt bokningssystem men återgick till ett gammalt. Alla tider är upplagda och fås via knapp på tentasidan.

Jag lägger knappen här också .

Gästföreläsning påminnelse

Måns Vestin från Dice gästföreläser onsdag 21/11 15-17 i sal D2.

Några allmäna reflektioner om tentan

Jag har skrivit ner några allmäna reflektioner som det är bra om alla tar del av.

Om överlagring

Om man överlagrar en funktion så blockeras alla gamla medlemsfunktioner med annan signatur. Det är ett designbeslut. Man ska inte behöva underhålla basklassens inaktuella (deprecated) metoder. För att få tillgång till dem kan man använda using. Man skulle kunna tänkt sig en annan designlösning där man alltid får med basklassens alla metoder och explicit skrev en instruktion, t.ex. ärv_inte, för att exkludera dem.
struct A {
    void foo(int x) { std::cout << "K"; }
    void foo()      { std::cout << "J"; }
}
struct B : public A {
    void foo() { std::cout << "A"; }
}

Om tillstånd

Ur programeringsteknisk synvinkel är ett tillstånd lika med en variabel. I objektorienterade språk förespråkas att tillstånd ska ligga som medlemsvariabler i objekt hellre än tvi, tve en global variabel. Tillstånd är ett centralt objekt i objektorienterad programmering och bör ha nämnts i tidigare kurser. D-linjen har det lite mer förspänt som har en hel kurs som fokuserar på programmeringsparadigm med mer eller mindre tillstånd.

En ytterlighet är funktionella språk som inte ens accepterar tillstånd i for-loopar. Att kod kan bete sig annorlunda beroende på tillståndet i loop-variablen (ofta benämnd i) anses så fult att man inte tillåter for/while-slingor utan använder rekursion istället.

Om polymorfi

Arv och polymorfi har definitiv med varandra att göra men en väl så bra beskrivning av arv visar inte nödvändigtvis att man förstått vad polymorfi är. Ord som virtual, run-time, pekare/referens och anrop kan vara bra att ta med i sammanhanget.

Det är extra viktigt att förstå polymorfi i C++ eftersom virtual är valbart vilket det inte är i java.

Tentaresultat i ladok (och mina sidor)

Tentaresultat i ladok finns det av okänd anledning bara två sorter av, underkänd eller godkänd. Vill man veta mer får man använda res show cprog07.

Problem med calendar i kattis

Jag kan inte se mycket mer än vad ni själva kan se i svaren från kattis. Om ni fastnar på något calendar problem som tar flera timmar så kan ni prova skriva till Mattias (zalenski at csc ...) som har möjlighet att spåra vad som händer internt i kattis.

Lab 3 är uppe

Tentor rättade

Men de är inte inrapporterade. De kommer att läggas in i res först och sedan i ladok varefter de syns i mina sidor. Ganska många kommer att få kompletteringsbetyg Fx. Instruktioner och kommentarer till tentan kommer upp på tentasidan. Fr.o.m. att tentan är inrapporterad i ladok har man tre veckor på sig att komplettera.

Fel i lab2 pek

Det ska vara fram till och med 2558 inte fram till. Jag var inte medveten om att det fanns testfall år 2558.

Om signal 6

En av orsakerna till signal 6 kan vara att en konstruktor kastat ett exception den inte borde och att det smäller när testprogrammet försöker nå det som inte konstruerats. Prova testfallen jag lagt upp, har man tur får man samma felbeteende där.

Tentan inte färdigrättad

Nya tider för komplettering kommer att annonseras.

Illegal function

Kan man få när kattis gör systemanrop som den inte tycker om. Här står hur ni kan använda kattistime.

Tentarättningen

Tentarättningen är försenad. Det är ca 30 tentor kvar att rätta och sedan måste alla tentor sorteras. För komplettering gäller att man har tre veckor efter att tentarättningen är klar men det måste koordineras med någon (mig, Mattias eller Kristoffer) som kan ta emot kompletteringen. Om ni hinner, utnyttja denna veckas kompletteringstid. Jag har lagt upp tentan att titta på.

Testfall till lab2

Jag har lagt upp två testfiler (cprog23.in och cprog22c.in) med sammanlagt 37000 testrader till lab2. Om ni har problem med kattis kan ni prova felsöka med dessa testfall.
cat cprog23.in | dittprogram > ditt_utdata
diff ditt_utdata cprog23.ans 
dittprogram byggs med cprog07lab22c.cpp respektive cprog07lab23.cpp

Anmäl er till tentan

Anmäl er till tentan via mina sidor. Ni loggar in via kth.se. För er som inte tro sig ha ett kth-login, prova med nadalogin.

Inspelade föreläsningar

Är inte alls enkelt. Powerpoint fungerade olika på Mac, tills det löst sig har jag lagt upp powerpointinspelningar om ca 40 Mb var.

Lab2

Lab2 är publicerad som pdf

Föreläsningar, fördröjd inspelning

Den ibook jag skulle få låna hade fel OS så jag får vänta på den till imorgon. Morgondagens föreläsning kommer att blicka framåt mot lab2. De missade föreläsningarna ämnar jag spela in det mest centrala och lägga upp här.

En övning inställd idag

Uppdatering, en av övningsassistenterna har fått barn. Gratulerar! Så en av D-salarna går bort. Jag går till Q21 nu.

Lab 2

Lab 2 är ganska lik förra årets labb. Vi väntar på ett nyutvecklat rättningsprogram. till skillnad från lab1 så är tanken att man ska få historik på felen.

Missade föreläsningar

Jag kommer att spela in några korta powerpointföreläsningar för att poängtera det viktigaste av de missade föreläsningar. Att boka nya tider vet jag av erfarenhet är ganska meningslös eftersom kursdeltagarna har så olika scheman. Jag hoppas kunna publicera några redan idag, de blir i quicktimeformat.

Övning tisdag 2/10

Jag är tillbaka och komer att ha en övningsgrupp. Så vitt jag vet är alla övningsassistenter friska så förhoppningsvis blir det fyra grupper.

Lab1 deadline flyttas till onsdag 3/10

Jag ska uppdatera kvittenspapper och res. Kattisadministrationen meddelar att kattis kommer att vara nere ett par timmar under arbetstid någon gång nästa vecka oklart när. För deadline gäller hela onsdagen som giltig inskickningstid (fram till midnatt men prioritera inte bort sömn).

Redovisning av lab

Det är tänkt att ni ska redovisa efter deadline men skicka in en godkänd lösning dessförinnan. Labbtillfällen schemalagda i grön sal är tänkta som redovisningstider (se kurspm) medan övriga är i första han hjälp.

För de som har kattiskonton sedan tidigare

Ni får ingen separat epost från kattis utan kan använda ert tidigare konto. Om ni har glömt lösenordet så kan få ett nytt från kattis-support.

Inga föreläsning 26/9

Jag vill dessutom be om ursäkt till de som inte fick meddelande om att föreläsningen igår var inställd.

Inställda föreläsningar

Jag har varit hos en specialist och fått nya mediciner. Om de hjälper är prognosen god för nästa vecka. Det blir ingen föreläsning 25/9 och troligen inte 26/9. Jag lägger upp föreläsningsmaterial på nätet.

Tre övningssalar 18/9

Jag kan fortfarande inte prata. Hittar jag ingen vikarie blir det tre salar idag. Sal E52 stryks.

Kattiskonto och filer

Ni ska ha fått era kattiskonton nu. Det kommer instruktioner per epost till er nadaadress hur man använder kattis. De filer som ska skickas in med er lösning ligger på kurskatalogen.

Inställd föreläsning igen

Jag har varit till doktorn och fått diagnosen stämbandskatarr och kan inte föreläsa idag. Uppdatering följer ...

Kattistester och filer

cprog07lab14.cpp och cprog07lab15.cpp är inte upplagda ännu. De ska användas när ni fått kattiskonton.

Fredag 14/9

Det är osäkert om jag har någon röst imorgon, jag har ingen idag. Om föreläsningen ställs in skriver jag tidigt på morgonen.

Två övningssalar 11/9

Som tidigare meddelats är en av doktoranderna på konferens. Jag är fortfarande förkyld. Andra som kunnat vikariera har också insjuknat. Summa summarum är det bara två övningsgrupper idag. Förslagsvis i de två största salarna vilket torde vara E31 och E35.

Föreläsning 10/9 inställd

Jag har blivit ordentligt förkyld och måste tyvärr ställa in föreläsningen.

Läget fredag 7/9

Väldigt många har redan resistrerat sig i res. Jättebra! . Det går att kontrollera om man är registrerad med res show cprog07. Jag har gjort ett par rättelser i lab1 t.ex. funktionen offbyone heter must_follow_a.

Kursstart tisdag 4:e september sal V1

Copyright © Sidansvarig: Alexander Baltatzis <alba@nada.kth.se>
Uppdaterad 2008-08-24