Programmering för språkteknologer I. VT 2008.
Angående tentamen: Böcker och anteckningar får tas med på tentamen. Godkäntgräns 50 %. Väl godkäntgräns 75 %. Poängvärde anges vid uppgifterna.
Status vad gäller labbar meddelas i Studentportalens funktion Framsteg. Anmäl er till tentamen i Studentportalen!
| Schema och planering (dag, tid, lokal, tema) [per 2008-07-30] | ||||
| 1 | 2008-03-25 | 10-12 | Eng7/1013 | Elementära saker (Mats) |
| 2 | 2008-03-25 | 13-15 | Lab. | MD |
| 3 | 2008-03-26 | 13-15 | Lab. | MD |
| 4 | 2008-03-27 | 10-12 | Eng7/1013 | Elementära saker 2 (Mats) |
| 5 | 2008-03-27 | 13-15 | Lab. | Egen hand. |
| 6 | 2008-03-31 | 13-15 | Lab. | MD |
| 7 | 2008-04-01 | 10-12 | Eng16/0041 | Elementära saker 3 (Mats) |
| 8 | 2008-04-01 | 13-15 | Lab. | MD |
| 9 | 2008-04-03 | 10-12 | Eng16/0041 | Objekt och metoder (Markus) |
| 10 | 2008-04-03 | 13-15 | Lab. | Egen hand. |
| 11 | 2008-04-07 | 13-15 | Lab. | MS |
| 12 | 2008-04-08 | 10-12 | Eng7/1013 | Objekt och metoder (Markus) |
| 13 | 2008-04-08 | 13-15 | Lab. | MS |
| 14 | 2008-04-10 | 10-12 | Eng7/1013 | Objekt och metoder (Markus) |
| 15 | 2008-04-10 | 13-15 | Lab. | Egen hand. |
| 16 | 2008-04-14 | 13-15 | Lab. | MS |
| 17 | 2008-04-15 | 10-12 | Eng7/0015 | Orientering om arv, polymorfi, parametriserade typer, undantag (Markus) |
| 18 | 2008-04-15 | 13-15 | Lab. | MS |
| 19 | 2008-04-17 | 10-12 | Eng7/1013 | Orientering om arv, polymorfi, parametriserade typer, undantag (Markus) |
| 20 | 2008-04-17 | 13-15 | Lab. | Egen hand. |
| 21 | 2008-04-21 | 13-15 | Lab. | MS |
| 22 | 2008-04-22 | 10-12 | Eng7/1013 | Textanalys (Mats) |
| 23 | 2008-04-23 | 13-15 | Lab. | MD |
| 24 | 2008-04-24 | 10-12 | Eng7/1013 | Textanalys (Mats) |
| 25 | 2008-04-24 | 13-15 | Lab. | MD |
| 26 | 2008-04-25 | 10-12 | Extra frågestund (MS, i hans tjänsterum) | |
| 27 | 2008-04-25 | 15-19 | Gimogatan 4 sal 2 | |
| 28 | 2008-08-26 | 9-13 | Gimogatan 4 sal 2 | |
Mål
- redogöra för grundläggande begrepp rörande strukturen hos programmeringsspråk och principerna för deras användning [objekt-orienterade, deklarativa, funktionella, imperativa språk. MD/MS. Tentamen.]
- på ett elementärt plan redogöra för och tillämpa en god programmeringsmetodik [modularitet, testning, återanvändbarhet, MD/MS. Labbar.]
- förklara innebörden av följande begrepp och kunna skriva
fungerande Javaprogram som exemplifierar och drar nytta av dem
[MD/MS. Tentamen och labbar.]:
- objekt, klasser, attribut och metoder
- referensvariabler, enkla variabler (och datatyper), tilldelning, test
- logiska, jämförelse- och aritmetiska operatorer
- kontrollsatser [MD introd.]
- standardklasser, särskilt viktiga exempel på sådana t.ex. String. [samt t.ex. LinkedList, MD.]
- klassvariabler- och metoder [MS]
- fält och samlingar [t.ex. LinkedList, MD]
- läsning och skrivning i filer
- skriva program som utför elementära beräkningar utifrån förekomsten av av tecken- och ord-n-gram i texter [Lab. Bunt 3.]
- använda dokumentationen av Java med viss självständighet [Labbar.]
- förklara, dokumentera och kommentera kod på ett användbart sätt [Labbar.]
Lärande och undervisning
Att lära sig programmera handlar mycket om att skriva program som löser konkreta problem.
- Hur skall själva problemet lösas? Vi letar upp eller tänker ut "algoritmer", d.v.s. abstrakta procedurer för att lösa problem.
- Vilka principer skall vi följa för att organisera programmen. Hur bygger vi upp en överordnad algoritm från enklare procedurer? Hur kommunicerar dessa? Objektorienterad programmering är det "paradigm" vi skall följa i kursen. Detta handlar om en del teori och mycket om att öva upp ett sätt att tänka. Objekt-orientering är ett relativt komplicerat koncept, som det tar tid att begripa. Att bli van att använda det och tänka i termer av det kräver både övning och tankeansträngning.
- Hur skriver vi konkret i det programspråk vi valt? Hur ser syntaxen ut? Vad heter olika saker? Det handlar om att slå upp och titta på exempel. Mycket måste man lära sig utantill, för att kunna arbeta produktivt. Java är ett stort språk med massor av färdiga och synnerligen användbara klasser. Att programmera i Java handlar mycket om att leta upp det man behöver i dokumentationen. Det är mycket ofta givande att leta upp exempel och diskussioner på nätet.
- Hur ser vi till att vi själva och andra begriper vad vi har gjort? Vi namnger saker på ett systematiskt och genomskinligt sätt och kommenterar vår programkod. Då kan andra förstå hur vi tänkt och vi kan ta upp arbetet vid ett senare tillfälle.
- Hur övertygar vi oss själva och andra om att vi programmerat på ett korrekt sätt? Tar programmet hand om alla fall? Levererar programmet rätt svar? Här är begripligheten en viktig sak. Vi testar programmet, är en del av svaret. Om programmet är begripligt kan vi tänka igenom huruvida det fungerar som det skall. Då kan vi dessutom testa delar var för sig. Detta krävs i "riktiga" system.
Vi följer inte kursboken boken linjärt, utan boken tjänar mer som uppslagsbok. Du kan dock själv följa Skansholm, som tar med grafiska komponenter och intressantare gränssnitt från början.
Kom ihåg att programmering är tålamodsprövande! Det handlar ofta om ett trial-and-error-arbete. Det kan kräva eftertanke och experiment med olika lösningar för att komma på hur man bör lösa en uppgift.
Moment
- Elementära saker (Mats): Att studera: Föreläsningsanteckningar (hör ihop med exempelsvit 1). Översikt över begrepp. Exempelsviter: Nr 1, Nr 2 och Nr 3. Studieuppgifter, inkl. en för inlämning. Övningstentauppgifter, tenta 2007 och övningstenta 2007 finns även.
- Objekt och metoder (Markus): Inlämningsuppgift 2
- Textanalys (Mats): Inlämningsuppgift 3
Examination
Kursen examineras genom redovisning av programmeringsuppgifter och ett skriftligt prov, se kommentarer till lärandemålen ovan.
Litteratur
Jan Skansholm. Java Direkt med Swing. Lund: Studentlitteratur. Senaste upplaga.
Dokumentationen över Java.
Ytterligare material kan tillkomma.
Det finns stora mängder bra material på nätet!
För Windows
Testa gärna dessa möjligheter under Windows: Ladda ned Java. En trevlig utvecklingsmiljö: JCreator.
