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.
Kursenkät
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.
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å.
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