You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 44 Next »

Denne siden gir en oversikt over pensum i faget TDT4100 - objektorientert programmering med Java. Treet og tankekartet gir en grovoversikt, mens lista under er mer detaljert. Noen av temaene er forutsatt kjent før en tar TDT4100 og er med for kompletthets skylds.

Temaene er delt i fire

  • Objektorientert programmering - begreper og -konstruksjoner som er viktig for objektorientert utviklingsmetodikk og som støttes av UML og de fleste objektorienterte språk. Dette utgjør teoridelen av TDT4100.
  • Java-programmering - bruk av Java for implementasjon av objektorienterte programmer, slik at en kan realisere det en har designet. Sammen med bruk av Eclipse utgjør dette praksisdelen av TDT4100.
  • Eclipse - bruk av Eclipse, som eksempel på moderne verktøy for programutvikling.
  • Prosedyreorientert programmering - programmeringsbegreper og -konstruksjoner som utgjør kjernen i de fleste programmeringsspråk, også de som ikke er objektorientert. Dette skal være kjent før en tar TDT4100.

Bruk tankekartet eller treet til høyre for å navigere til sider for de spesifikke temaene, evt. et generert grafisk wiki-tre.

Objektorientert programmering

Java-programmering

Bruk av Eclipse

Prosedyreorientert programmering

 

 

 

Faginnhold (forutsetninger/pensum)

  • datatyper
    • logiske (boolean, true/false)
    • tall
      • heltall (int/byte/short/long)
      • desimaltall (double/float)
      • tegn (char)
    • strenger (String)
      • Implisitt konvertering til String med String.valueOf og Object.toString
    • tabeller
  • variabler
    • deklarasjon
      • lokale (i metoder og blokker)
      • globale (i klasser)
      • konstanter (final)
    • initialisering
    • tilordning
    • blokker/skoping
    • levetid
  • uttrykk
    • konstantverdier
      • tabellkonstanter i initialisering vs. generelt i uttrykk
    • variabelreferanser
    • operatorer og operander
      • numeriske (+,-,*,/,%)
      • bit (&,|,<<,>>,~)
      • numerisk sammenligning (>,>=,<,<=)
      • sammenligning (==, !=)
      • logiske (!, &&, ||, ^)
      • strengspleising ( + )
      • tilordning evt. m/operator (<op>=)
      • pre/post-dekrement/inkrement (++,--)
      • betinget (? :)
      • presedens og parenteser
    • metodekall og parameteroverføring
    • konvertering av verdier
      • implisitt konvertering
      • eksplisitt avkutting av tallverdier
    • this-referansen
  • kontrollstrukturer
    • betingelser og valg (if/else, switch/case/default)
    • iterasjon (while, for)
      • starttilstand
      • stoppbetingelser
      • stegsetning
      • avbrudd/hopp ut eller over (break/continue)
      • navngitte løkker (labels)
  • metoder
    • parametre
    • returtype
    • overlasting (overloading)
    • kropp
    • applikasjonsmetoden main
      • signatur
      • kommandolinjeparametre
  • klasser
    • kategorier
      • dataklasser
      • grensesnitt
      • enum
    • medlem
      • felt
      • metoder
      • konstruktør
    • grensesnitt/innkapsling
      • synlighet(smodifikatorer): public, private, pakke/default, protected
      • konvensjoner: get/set-metoder, count/get/set, add(append/insert)/remove, contains/indexOf
    • arv
      • implements/extends
      • polymorfi
      • abstrakte klasser
    • parametriserte/generiske
      • kovarians/konvarians
      • brukt i Collection-rammeverket
      • egendefinerte
    • instanser/instansiering
  • unntakshåndtering
    • throw
    • try/catch
    • finally
    • throws
    • checked vs. unchecked
    • Exception: IOException, FileNotFoundException, RuntimeException, NullPointerException, IndexOutOfBoundsException, IllegalArgumentException, NumberFormatException, IllegalStateException, UnsupportedOperationException
  • iterasjon: standardløkker, tabeller, Collection-instanser (og tabeller), strenger, tekstinput, datainput, akkumulering av resultat
  • standard-klasser/objekter
    • bruk av fullt klassenavn med pakke vs. import
    • System.out: print/println, printf
    • System.in og Scanner
  • datastrukturer
    • Collection-rammeverket: Collection/List/ArrayList/LinkedList, Iterator, Set, Map/HashMap
    • egendefinerte: lenkede lister, stack/stabel, queue/kø, trær, tabell
  • tall/beregninger
    • Nummer-klassene
    • Math: PI, random(), diverse funksjoner (min/max/abs, avrunding, trig., exp., ...)
    • Random
  • IO
    • strømmer
      InputStream/OutputStream, bufring og close/flush, Reader/Writer, PrintStream/PrintWriter, konsoll-IO med System.in/System.out, ObjectStream
    • filer: File
    • nettverk: URI/URL, http, ftp, file, URLConnection
    • parsing: regulære uttrykk, Pattern, Matcher, Scanner, streng-til-tall-konverteringsmetoder, Integer.parseInt(String)/Integer.valueOf, (String)Double.parseDouble(String)/Double.valueOf(String)
  • GUI: hendelser, komponenter, data-komponenter, enkle verdier, lister/hierarkier, containere, layout, dialoger, javax.swing.JOptionPane, showInputDialog(String)-metode, showMessageDialog(null, String)-metode, showConfirmDialog(null, String)-metode, YES_OPTION, NO_OPTION, CANCEL_OPTION, toolkits, Swing/AWT, SWT, JavaFX, grafikk, Java2D, OpenGL
  • tråder: Thread/Runnable, monitorer, wait, notify/notifyAll, synchronized
  • patterns: delegering, factory, observert-observatør
  • testing: eyeballtesting (main og print), enhetstesting med JUnit, testklasser og -metoder, assert-metodene, setUp og tearDown, testing av unntak
  • No labels