Institutionen för informationsteknologi

Grundläggande programmering i C

en del av AD1 och PK2

För att lära sig C måste man öppna ögonen.

Föreläsare: Jesper Wilhelmsson Rum: 1335 Tel: 471 1046

Kort kursbeskrivning
Inlämningsuppgifter
Resultat -- Om du inte kommer åt sidan kontakta Jesper W.
Föreläsningsanteckningar -- Kompendiet är så klart det kommer att bli under den här kursen. Är ni intresserade av senare versioner så kontakta mig.
Kodstandard
Resurser

Noteringar

  • (070306) Kompletteringsdeadline för uppgift fyra och alla eventuella andra rester är Tisdag 13/3 -07 (kl 13:10 som vanligt). Efter denna deadline blir det mycket svårt att motivera bonus till tentan. Jag kommer naturligtvis att rätta inlämningar som kommer in även senare, men det kan ta ett tag innan jag gör det.
  • (070228) Kursutvärdering. Har du inte fyllt i kursutvärderingen redan finns blanketten att ladda hem här: Utvärderingsblankett Det går bra att lämna den till mig på någon av de kvarvarande labbarna eller i mitt postfack (PB hus 1, vån 4, fack nr 93). Jag kommer även att ha med mig blanketter till labbarna för er som inte vill skriva ut den själva och det ligger en bunt utanför min dörr också. (Sista sidan ska inte fyllas i av er.)
  • (070226) En version av COURSE_cardpile.o för Windows Vista finns nu för den som känner ett behov av en sådan.
  • (070224) På grund av sjukdom har jag inte hunnit rätta så mycket ännu, så kompletteringsdeadline för uppgift två är framflyttad en vecka. Många av er har redan hittat och fixat fel i koden så en del kommentarer kommer kanske att vara inaktuella när ni väl får dem.
  • (070222) Två av de tre deluppgifterna i inlämningsuppgift fyra har gjorts om till bonusuppgifter. Det är de två funktionerna initdeck och cleanupdeck som inte längre krävs för att få godkänt på kursen. Godkända lösningar på dessa funktioner kommer istället att ge bonuspoäng på den tenta som ligger i slutet av kursen AD1 respektive PK2. (Tentan i övrigt kommer inte att ha något med C-delen att göra.)
  • (070218) Det är flera som undrat varför det inte finns något schemalagt labbtillfälle inför stopptid 2. Det enkla svaret är att jag bara får ett begränsat antal timmar att lägga på denna kurs så jag har prioriterat att förbereda föreläsningar och kursmaterial istället. Uppgift tre och fyra är såpass luriga att jag tror att det behövs labbtid för dem, men ettan och tvåan är inte lika svåra. Jag ville ha ett labtillfälle inför uppgift ett för att se att alla kom igång med gcc och fick alla filer att fungera. Inlämningsuppgifterna som vi har i kursen ska inte jämföras med labbuppgifter som är tänkta att göras på schemalagd labbtid. Det är examinerande uppgifter och ska snarare jämföras med en hemtenta. Ni har inga separata frivilliga labbuppgifter eftersom min erfarenhet säger att ingen vill lägga tid på dem i alla fall när man har obligatoriska uppgifter att göra. Det finns inte en chans för en oerfaren C-programmerare att lösa uppgift tre och fyra på den schemalagda labbtiden - och det är inte meningen heller. Ni har 40 timmar att lägga på denna kursdel, 10 går till föreläsningar. Resten, 30 timmar, ska gå åt till att läsa kursmaterialet och lösa uppgifterna. Endast 12 av dessa timmar är schemalagda labbtimmar.
  • (070215) Det fanns en liten bugg i printcards i klondike.c som gör att allt blir inverterat om man byter ut COURSE_printcardpile. En ny version finns på uppgiftssidan.
  • (070213) Nu finns det en resultatsida. Den ska vara skyddad så att endast ni som läser kursen kan se den. Om ni inte kommer åt sidan kontakta Jesper W.
  • (070212) Testverktyget ska nu vara uppdaterat för att hantera exit vid felaktigt indata. Notera att allt som skrivs ut med röd text av testprogrammet betraktas som fel vid kommande inlämningar. (Men som tidigare sagts så kan inte testprogrammet hitta alla fel än.)
  • (070208) Föreläsningsanteckningarna är nu uppdaterade med en ny version av föreläsning två.
  • (070208) Inlämningsuppgift ett har uppdaterats i föreläsningsanteckningarna och en liten beskrivning av kommandot exit har lagts till i 2.4 för att undvika ett annars ganska svårlöst kompileringsfel.
  • (070206) Nu finns filerna som behövs till inlämningsuppgifterna att ladda hem. Även föreläsningsanteckningar från dagens föreläsning finns klara. Observera att dokumentet innehåller material för hela kursen, men det är BARA föreläsning ett som är renskriven och klar för att läsas.

Har du frågor?

Jag har inte satt upp några kontorstider för denna kurs eftersom erfarenheten visar att dessa tider är de enda tillfällen som ingen har några frågor (oavsett när tiderna ligger). Passa på att fråga mig på föreläsningar och raster. Fråga kurskamrater och diskutera problemen. Om det skulle finnas obesvarade frågor kvar efter det så kan ni boka en tid med mig för att få hjälp eller skicka era funderingar till mig via nätet på godtyckligt sätt. Jag förbehåller mig dock rätten att inte besvara frågorna via nätet om det rör sig om icke trivial kodförståelse eller ren felsökning. I dessa fall vill jag hellre besvara frågorna ansikte mot ansikte eftersom det är allt för stor risk för missförstånd när man försöker förklara via skrift. När det gäller felsökning vill jag dessutom att ni ska vara närvarande och se hur jag går till väga för att hitta felen - så att ni kan göra det själva nästa gång.

Schema

Allt föreläsningsinnehåll i schemat är preliminärt och kan förändras beroende på vad ni ställer för frågor.
Samtliga föreläsningar är i 1311 och samtliga laborationer är i 1549D.

Tid Vad Innehåll
Tis 6/2 10-12 Föreläsning 1 Introduktion till språket. Typer/Variabler, If-else, Loopar, I/O. C vs ML. Att kompilera.
Ons 7/2 10-12 Föreläsning 2 Funktioner - scope, argument och returvärden.
Tor 8/2 8-12 Lab IT B
Tor 8/2 13-17 Lab IT A / DVP A
Fre 9/2 13-17 Lab DVP B
Tis 13/2 13:10 Stopptid 1
Ons 14/2 13-15 Föreläsning 3 Pekare, strängar, arrayer.
Tis 20/2 13:10 Stopptid 2
Ons 21/2 10-12 Föreläsning 4 Minneshantering.
Ons 21/2 13-17 Lab IT B
Tor 22/2 13-17 Lab IT A / DVP A
Fre 23/2 13-17 Lab DVP B
Tis 27/2 13:10 Stopptid 3
Ons 28/2 10-12 Föreläsning 5 Makron och lite annat.
Ons 28/2 13-17 Lab IT B
Tor 1/3 13-17 Lab IT A / DVP A
Fre 2/3 13-17 Lab DVP B
Tis 6/3 13:10 Stopptid 4

Utnyttja den möjlighet till hjälp som finns! Var närvarande på föreläsningar och laborationer och ställ frågor till mig och alla kurskamrater. Utnyttja även nätet och de givna föreläsningsanteckningarna för att hitta svar på era frågor. (Dock inte för att hitta lösningar till uppgifterna!)

Uppdaterad  2007-03-06 14:23:16 av Jesper Wilhelmsson.