Program - Datastrukturar og Algoritmer

(Sist oppdatert: $Date$)

Veke for veke

Veke 2: praktiske oppplysingar

Innhald
Praktiske opplysingar, repetisjon frå hausten, Netbeans, sjølvstendige program, jar-filer
Læringsmål
Studentane skal kunna ta i bruk Netbeans og skriva sjølvstendige program som køyer uavhengig av BlueJ
Lesestoff
Objects First kap. 8. Foilar til kap. 8 (sjå Fronter).
Øving
  1. Installer Netbeans.
  2. Opprett eit nytt prosjekt «HelloWorld»
  3. Skriv eit program som skriv «Hello World» på skjermen. Kompiler og test programmet.
  4. Kopier øvinga frå i haust inn i Netbeans.
  5. Om du ikkje har gjort det, skriv ei main-rutine som startar det grafiske brukargrensesnitt.
  6. Kompiler og test programmet

Veke 3: Arv

Innhald
Arv, polymorfi
Læringsmål
Studentane skal skjøna kva arv er, kvifor det vert brukt og vera i stand til å starta på å utforma objektorienterte design som krev og nyttar arv.
Lesestoff
Objects First kap. 8-9. Foilar til kap. 8-9 (sjå Fronter).
Øving
  1. Teikna klasse- og objektdiagram for neste versjon av spelprogrammet. (Det er lov å bruka eit dataverkty, men eg ville ha gjort det for hand for å spara tid.)
  2. Vurder designet frå minst éin medstudent.
  3. Få kommentarar på designet frå minst éin medstudent.

Tenk grundig gjennom designet før du startar å koda. Neste veke må du ha ein klar idé om kva som skal kodast.

Det er ein god idé å samarbeide om design, men ein svært dårleg idé å samarbeida om kodinga. Innleveringane er individuelle, kopiering er fyfy, og det er eit absolutt krav at ein forstår og kan forklara si eiga løysing uavhengig av eventuell likskap. Dersom du er nøye på å skriva koden sjølv kan du forsikra deg om at du forstår han, og skriv dine eigne kommentarar og javadoc.

Veke 4: Meir om arv

Innhald
Polymorfi, abstrakte klasser, java interfaces
Læringsmål
Studentane skal ha kjennskap til alle dei mest sentrale konsepta knytte til arv, og vera i stand til å bruka arv effektivt for å løysa praktiske problem.
Lesestoff
Objects First kap. 9-10. Foilar til kap. 9-10 (sjå Fronter).
Øving
Arbeid med den obligatoriske innleveringa. I dag bør de koma godt i gang med kodinga.

Utkast til vidare program

Merk at programmet er fleksibelt og vert justert etter framgangen.

Veke 5: Frå arv til GUI

Innhald
Oppsummering av arv, introduksjon til hendingsbasert programmering og GUI
Læringsmål
Studentane skal ha eit oversyn over dei objektorienterte strukturane og metodane som vert brukte i GUI, som eit grunnlag for å forstå tekniske detaljar neste veke.
Lesestoff
Objects First kap. 11. Foilar til kap. 11 (sjå Fronter).
Øving
Avslutt den obligatoriske innleveringa. Hugs å kommentera og dokumentera koden.

Veke 6: GUI

Innhald
GUI, GUI-API-en i java
Læringsmål
Studentane skal kunna programmera fornuftige og oversiktlege grafiske brukargrensesnitt.
Lesestoff
Objects First kap. 11. Foilar til kap. 11 (sjå Fronter).
Øving
Teikna (for hand) skjermbilete som viser korleis de ynskjer at brukargrensesnittet til spelprogrammet skal sjå ut.

Veke 7: Design og GUI

Innhald
Fleirlags arkitektur, Layout Managers, hendingshandsaming, m.m.
Læringsmål
Studentane skal kunna programmera fornuftige og oversiktlege grafiske brukargrensesnitt.
Lesestoff
Objects First kap. 11. Foilar til kap. 11 (sjå Fronter).
Materiell
Kodedøme frå førelesinga.
Øving
Avhengig av kor langt de er komne. Dei som er heilt i rute kan starta med å skriva dei fyrste GUI-klassene basert på teikningane frå forrige veke.

Veke 8: Feilhandsaming (og modale/ikkje-modale vindaugo)

Innhald
Modale og ikkje-modale dialogboksar, viewklasser og dataklasser, unntak og feilkontroll.
Læringsmål
  1. Studentane skal ha eit praktisk oversyn over bruk av dialogboksar i Swing.
  2. Studentane skal kunna designa og koda for å unngå køyretidsfeil, og bruka unntaksmekanismen i Java.
Emne
  1. To komponenthierarki i AWT/Swing: eigar og container
  2. Modalitet
  3. Top-level components: (J)Frame, (J)Dialog, (J)Applet
  4. View-objekt, og data-representasjon
  5. Exceptions (Chapter 12)
Lesestoff
Objects First kap. 12. Foilar til kap. 12 (sjå Fronter).
Øving
No er det viktig å koma godt i gang med GUI ASAP zulu.

Veke 9: Feilhandsaming og unntak

Innhald
unntak og feilkontroll.
Læringsmål
Studentane skal kunna designa og koda for å unngå køyretidsfeil, og bruka unntaksmekanismen i Java.
Lesestoff
Objects First kap. 12. Foilar til kap. 12 (sjå Fronter).
Øving
Når du har kontroll på GUI, er det på tide å tenkja på feilkontroll. Er der plassar i programmet der det er stor risiko for feil? I so fall er det grunn for å leggja inn ein kontroll og evt. reisa eit unntak.

Veke 10: Filhandsaming

Innhald
filhandsaming
Læringsmål
Studentane skal ha eit oversyn over bruken av straumar i Java sitt API, kunna skriva og lesa tekstfiler samt serialisera objekt.
Lesestoff
Objects First kap. 12. Foilar til kap. 12 (sjå Fronter).
Øving
Held fram med dei obligatoriske innleveringane.

Veke 11: Objektorientert design

Innhald
repetisjon og tips: designprosessen, utviklingsprosessen, samarbeid, grensesnitt
Læringsmål
Studentane skal finna løysingar på problem og feil som dei har opplevd i øvingsoppgåvene.
Lesestoff
Objects First kap. 13. Foilar til kap. 13 (sjå Fronter).
Øving
Held fram med dei obligatoriske innleveringane.

Veke 12: Liste; array list og array

Veke 13: Rekursjon

Veke 14-15: Påskeferie

Veke 16: Avlyst pga. permisjon

Veke 17: Andre datastrukturar

Innhald
Stabel (stack), kø (queue), tre (tree) og dynge (heap).
Læringsmål
Studentane skal ha eit oversyn over vanlege datastrukturar og kva eigenskapar dei har.
Lesestoff
Data Structures and Algorithms in Java kap. 5, 7, 8.
Øving
Held fram med dei obligatoriske innleveringane.

Veke 18: Avlyst pga. 1. mai

Veke 19: Repetisjon og oversyn

Innhald
Kva treng ein dataingeniør/programmerar/programutviklar/IT-leiar/automasjonsingeniør å kunna om programutvikling?

Hans Georg / hasc@hials.no