Department of Theoretical Physics
FYTA11, Javaprogrammering
Föreläsare
Kurslitteratur
J. Skansholm, Java direkt — med Swing, femte upplagan eller senare, Studentlitteratur AB
Schema
Föreläsningarna är märkta med J i kursens schema. Preliminärt föreläsningsinnehåll:
- Datorintroduktion, första programmet
- Typer, variabler, uttryck och satser
- Klasser, objekt, referenser och metoder
- Fält (arrays) och diverse
- Objekorientering och arv
- Mer om arv
- Exceptionella händelser
- Generisk programmering
- Samlingar
- Tidskomplexitet och algoritmer
- Grafiska komponenter
- Händelsestyrda program
- Tumregler och råd
Kursivt:
- Mer AWT och Swing (kap. 14, 15)
- Aktiva objekt och trådar (13)
- Associativa datastrukturer (17.7)
- Strömmar och filer (16)
- Nätverkskommunikation (18)
Utdelat material
- Ett kompendium med föreläsningsanteckningar delas ut i omgångar i början av terminen.
Projekt
- De sista veckorna av kursen består av ett grupprojekt med mer eller mindre valfri inriktning. Redovisning sker onsdag 9/12 2015, 9.15-17.00 i datorsalen i astronomihuset.
Tentamen
- Tentamen fredag 18/12 2015, 10.15–14.15, Sal HUB, teoretisk fysik
- Övningstentor
- Ordinarie tentamen 18/12–2015 (lösningsförslag)
- Omtentamen 29/1–2015 (lösningsförslag)
- Ordinarie tentamen 19/12–2014 (lösningsförslag)
- Ordinarie tentamen 20/12–2013 (lösningsförslag)
- Omtentamen 9/1–2013 (lösningsförslag)
- Ordinarie tentamen 5/12–2012 (lösningsförslag)
- Ordinarie tentamen 9/1–2012 (lösningsförslag)
- Omtentamen 26/8–2011
- Ordinarie tentamen 10/1–2011 (lösningsförslag)
- Omtentamen 15/2–2010
(lösningsförslag
) - Ordinarie tentamen 11/1–2010 (lösningsförslag)
- Omtentamen 4/2–2009 (lösningsförslag)
- Ordinarie tentamen 9/1–2009 (lösningsförslag)
Kunskapsöversikt
Att behärska i detalj
- Enkla datatyper och typomvandlingar
- Operatorerna =, ==, !=, >, <, >=, <=, +, −, *, /, %, +=, −=, /=, %=, ||, &&, ++( ), −−( ), ( )++, ( )−−
- Objekt och referenser
- Klasser och arv
- Strängar och fält
- Wrapperklasser (såsom Integer och Double)
- Kontrollstrukturer: satser som if, for, while...
- Metoder och rekursiva anrop
- Kommentarer – syntax och användning
- Konstruktorer
- Gränssnitt och implementationer
- Nyckelorden
static
,final
,private
,public
,protected
,extends
,implements
,abstract
,this
ochsuper
- Exceptionella händelser
Att kunna hantera med hjälp av referensliknande ledning
- Händelsestyrda program
- Grafiska komponenter
- Generisk programmering
- Samlingar
- Strömmar och filer
- Formattering av tal och utskrifter
- Enum-deklarationer
Bra att känna till
- Operatorerna ?:, >>, << och så vidare
- AWT och Swing: grundläggande egenskaper, likheter och skillnader
- Garbage-collection
- Principerna bakom länkade listor, trädstrukturer och sortering
- Javadoc
- Begreppen URL, port och kommunikationsprotokoll
- Trådar
Några extra övningsuppgifter
- Deklarationer, uttryck och operatorer: Exercise1.java Vad hade du gjort med den här klassen om du varit en javakompilator? Om felaktiga rader kommenteras bort, vad skulle skrivas ut?
- Input och rekursion: Exercise2.java Skriv färdigt den här klassen så att den gör vad som står i kommentarerna.
- Fält, slumptal och algoritmer: Exercise3.java Skriv färdigt den här klassen så att den gör vad som står i kommentarerna.
- Arv, överskuggning och typomvandingar: Exercise4.java Vad hade du gjort med den här klassen om du varit en javakompilator? Om felaktiga rader kommenteras bort, vad skulle skrivas ut?
- Sort.java. Implementera
merge
- ochbubbleSort
-metoderna iSort
-klassen. Kolla att de verkligen fungerar. - I Sort.java finns lösningsförslag till förgående uppgift. Försök bekräfta att komplexiteten för de olika funktionerna är som förväntat. Notera att tidsmätningen är ganska inexakt, så kör gärna många gånger med samma antal element.
Länkar
- Kursbokens hemsida
- API-dokumentation för Java
- Oracles Java-sidor, där kan du ladda ner JDK (Java SE Development Kit).
- CygWin är ett paket som kan installeras på en Windows-dator och emulerar ett Unix-operativsystem.
- OpenSuSE och Ubuntu är exempel på Linux-operativsystem som du kan installera på din dator utan att för den delen ta bort Windows (varje gång du bootar din dator kan du välja mellan Linux och Windows).