- Lärare: Markus Saers
- Examinator: Mats Dahllöf
Programmering för Språkteknologer I, VT 2010
Schema
| dag | tid | plats | innehåll | |
|---|---|---|---|---|
| tis | 6/4 | 10–12 | 16-0041 | Introduktion, grunder (kap. 1 och 2). [pdf] |
| 13–15 | Chomsky | Övningar till kap. 2TextIO [java] [html] | ||
| tor | 8/4 | 10–12 | 16-0041 | Typer och kontrollstrukturer (kap. 2 och 3). [pdf] |
| 13–15 | Chomsky | Övningar till kap. 2 och 3 | ||
| tis | 13/4 | 10–12 | 16-0041 | Kontrollstrukturer och programmeringsmetodik (kap. 3). [pdf] |
| 13–15 | Chomsky | Övningar till kap. 2 och 3 | ||
| tor | 15/4 | 10–12 | 16-0041 | Subrutiner [pdf] |
| 13–15 | Chomsky | Övningar till kap. 3 och 4 | ||
| tis | 20/4 | 09.00 | SVN | Inlämning 1 [html] |
| 10–12 | 16-0041 | Subrutiner, programmeringsmetodik och Javadoc [pdf]ThreeNPlusOne [java] [html]
|
||
| 13–15 | Chomsky | lab | ||
| tor | 22/4 | 10–12 | 16-0041 |
SkrivRad [java] [html]SkrivRad2 [java] [html]GUITest [java] [html] |
| 13–15 | Chomsky | lab | ||
| tor | 29/4 | 23.59 | SVN | Inlämning 2 [html] |
| tis | 4/5 | 10–12 | 16-0041 | Pappersprogrammering |
| tor | 6/5 | 10–12 | 16-0041 |
Objekt [pdf]Test [java]SkrivRad [java]Args [java] |
| 13–15 | Chomsky | Övningar till kap. 4, 5 och 7 Mittkursutvärdering [html] | ||
| tis | 11/5 | 10–12 | 16-0041 | Objektorienterad programmeringsmetodik [pdf] |
| tis | 18/5 | 10–12 | 16-0041 |
Arrayer och Gränssnitt [pdf] Tärning [java] SexSidigTärning [java] TolvSidigTärning [java] Yatzy [java] Test [java] |
| tor | 20/5 | 10–12 | 16-0041 | lektion |
| 13–15 | Chomsky | Övningar till kap. 5 och 7 | ||
| mån | 24/5 | 23.59 | SVN | Inlämning 3 [html] |
| tis | 25/5 | 10–12 | 16-0041 | lektion |
| 13–15 | Chomsky | Övningar till kap. 5 och 7 | ||
| tor | 27/5 | 13–15 | Chomsky | Övningar till kap. 5 och 7 Kursutvärdering [html] |
| ons | 2/6 | 8–12 | Gimo1 | Tenta |
| ons | 9/6 | 23.59 | SVN | Inlämning 4 [html] |
| fre | 27/8 | 8–12 | Ekum/A153 | Omtenta |
Jag använder Google Calendar, och har skapat en med alla lektionstider. Ni får gärna använda den, men kom ihåg att ovanstående gäller om det skulle vara någon konflikt mellan dem. För att importera den i er egen kalender, följ länken, och tryck på knappen längst ner till höger: ”+ Google Calendar”.
Inlämningsuppgifter
Kursen omfattar totalt fyra inlämningsuppgifter.
- Inlupp 1: Grundläggande typer [html]
- Inlupp 2: Fraktaler (funktioner) [html]
- Inlupp 3: Tri/n-gram (objekt) [html]
- Inlupp 4: Tecken-tri/n-gram (objekt, gränssnitt) [html
Att skriva i latex
I shared/latex (se ”Kursmaterial” för information om hur man checkar ut shared-katalogen ur repositoriet) finns en dokumentklass för LaTeX som gör det lättare att skriva snygga rapporter med programlistningar.
Filen shared/latex/inlupp_mall.tex innehåller exempel på hur man kan göra.
Om du behöver friska upp minnet om hur man skriver i LaTeX så finns en del om det i IDS-kompendiet. [pdf]
Sektion 5.15 innehåller information om hur man gör tabeller i LaTeX.
Att lämna in via SVN
Börja med att checka ut er kurskatalog (se ”Kursmaterial”). Kopiera de filer ni vill lämna in till er kurskatalog. Om filen är ny behöver den läggas till repositoriet, det gör ni genom att ge kommandot
När repositoriet vet att filen existerar kan ni ”committa” ändringarna i den med kommandot
Har du lagt till fler filer behöver du inte göra commit för varje enskild fil, utan kan göra det på hela katalogen:
Ofta kräver SVN att man ger ett meddelande med flaggan -m, men det går bra att lämna en tom sträng som meddelande.
Efter att ni checkat in de filer ni vill lämna in kan ni lista de filer som finns i repositoriet för att kontrollera att allt blivit som ni tänkte er.
Det kommandot list eller ls (nedan utfört i shared-mappen):
Utvärderingar
Mittkursutvärdering [html]
Kursutvärdering [html]
Examination
Kursen examineras genom att ett antal obligatoriska uppgifter ska lösas och rapporteras skriftligen, samt genom en avslutande tentamen.
För betyget godkänd (G) krävs G på samtliga moment (alla fyra inlämningsuppgifter samt tentan). För betyget väl godkänd (VG) krävs (utöver kraven för G även) VG på tentan samt en inlämningsuppgift eller VG på tre inlämningsuppgifter.
Övningstenta
För att ge en bild av hur en typisk tenta på kursen kan se ut har jag skapat en övningstenta åt er. [pdf]
Lärandemål
Enligt läroplanen har följande lärandemål fastställts.
Kursen ger grundläggande kunskaper och färdigheter i objektorienterad programmering.
Efter avslutad kurs ska studenten minst kunna:
- på ett elementärt plan redogöra för och tillämpa en god programmeringsmetodik;
- förklara innebörden av följande begrepp och kunna skriva fungerande Javaprogram som exemplifierar och drar nytta av dem:
- datatyper, objekt, klasser, variabler (instans- och klass-) och metoder (instans- och klass-);
- logiska och aritmetiska operatorer, jämförelseoperatorer;
- villkorssatser (if-satser) och satser för iterativ kontroll (for- och while-satser);
- standardklasser, särskilt viktiga exempel på sådana t.ex. String;
- skriva program som utför elementära beräkningar utifrån förekomsten av tecken och ord-n-gram i texter;
- använda dokumentationen av Java med viss självständighet;
- förklara, dokumentera och kommentera kod på ett användbart sätt.
Kursmaterial
Jag kommer att använda Subversion för att distribuera material som ni kan komma att behöva: hjälpklasser, föreläsningsanteckningar etc. Ni förväntas också lämna in uppgifter via SVN.
Kursens repositorium heter pst1vt10, och ska finnas tillgängligt genom följande kommandon:
Katalogen shared kommer jag att använda för att sprida filer till er, medan ni ska använda katalogen med ert användarnamn för att lämna in filer.
När ni väl checkat ut shared räcker det med att uppdatera er lokala kopia genom att ställa er i samma katalog som ni checkade ut shared i, och ge följande kommando:
För er som glömt bort, inte gått, eller behöver friska upp minnet, finns kurskompendiet till Introduktion till Datateknik för Språkvetare fortfarande tillgängligt på nätet. Det innehåller en del om SVN. [pdf]
Att installera Java Development Kit
För att kunna kompilera Javaprogram krävs att Java Development Kit (JDK) är installerat på datorn. På våra datorer finns det redan, men om ni vill jobba från någon annan dator, till exempel hemma, kan ni bli tvugna att instalelra det själva. Sun, som utvecklar Javaspråket, tillhandahåller allt som behövs gratis. Det ni behöver är Java Standard Edition (Java SE) JDK, följ länken och välj den senaste versionen (för närvarande JDK 6 update 19). [html]
Klasser i shared-mappen
Det finns en samlad dokumentation av de klasser som ligger i shared-mappen, som kan vara bra att ha nära till hands som referens [html].
Jag har använt javadoc för att generera den, och länkat in Javas on-line API, så att länkar till t.ex. String fungerar.
Det exakta kommando jag använde var:
Flaggan -d doc används för att ange målkatalogen för dokumentationen.
Jag har en katalog som heter just doc där jag vill att alla genererade html-sidor hamnar.
Flaggan -charset utf8 gör att webbläsaren tolkar det som utf8, vilket är nödvändigt om källkoden är skriven i utf8 (villket den i regel är, eftersom det är standardteckentabellen på vårt system).
Flaggan -link http://java.sun.com/javase/6/docs/api/ gör de genererade dokumentationssidorna medvetna om vart de kan hitta dokumentationen för alla standradklasserna.
Slutligen anger jag vilka filer dokumentation ska genereras för, vilket är alla Java-filer i shared-mappen (shared/*.java).
Litteratur
Kursbok
Eck, David J. Introduction to Programming Using Java. 5e utgåvan. [html]
Boken finns tillgänglig som web-version, samt som pdf. Även om man teoretiskt sett kan skriva ut alla 700 sidorna och få en kursbok gratis, avråder jag starkt från att göra det. Detta av flera skäl: boken finns att köpa till självkostnadspris via print-on-demand, vi undersöker ifall universitetstryckeriet kan göra det ännu billigare för er, samt att fenomenet fria utskrifter fungerar på grund av att folk i regel inte skriver ut böcker (skulle det ske i stor skala kan vi bli tvugna att ompröva policyn).
För er som inte vill läsa från skärmen så finns boken tillgänglig via print-on-demand från lulu.com [html]. Utöver detta har universitetstryckeriet erbjudit sig att trycka upp spiralbundna kopior av boken i A4 format. Kontakta mig om ni är intresserade av det alternativet.
Referenslitteratur
Skansholm, Jan. Java direkt med Swing. Studentlitteratur.
Liknande upplägg som kursboken, fast på svenska.
Java Platform SE 6 API (Documentation av standardklasserna). [html]
På Suns sidor finns en hel drös med ”tutorials” (nybörjarhandledningar) i Java. [html]
