Objektorienteeritud disain * Programmide abstraktsustase. Masinkood, assembler, makroassembler, funktsioonid, teegid, objektid, paketid, komponendid. * UMLi vahendid programmide kavandamisel. Kasutuslood, Use Case diagramm, klassidiagramm, jadadiagramm. * C++ ja Java tutvustus, ajaloo ja võimaluste võrdlus. Kirjutamine, kompileerimine, käivitamine. * Liht- ja struktuurandmetüübid. Viidad ja viited. Massiivid, kirjed, ahelad. Klass ja eksemplar. Konstruktor. * Mäluhaldus. Operaatorid new ja delete. Prahikoristus. * Meetodid andmete töötlemiseks. Ülelaadimine, Tüübimuundused. Matemaatika- ja tekstifunktsioonid. * Kapseldamine. Piiritlejad private, protected, public, friend nii muutujate kui meetodite puhul. * Alamklassid: eesmärk, loomine, kasutusvõimalused. Ülekate, virtuaalmeetodid. Omistamine ülemklassi muutujatele. Harjutused. * Abstraktsed klassid ja meetodid. Liidesed, mitmene pärimine. Rakenduse kavandamine ja kirjeldamine nende vahenditega. * Staatilised väljad ja meetodid. Kasutusvaldkonnad. * Sisemised klassid. Staatilised siseklassid. Anonüümsed klassid. * Andmekollektsioonid, nimistud, põhioperatsioonid. JCF ja STL. * Mallid (template). Eesmärgid, näited, koostamine. * Erindid. Eesmärgid, heitmine ja püüdmine. Erinditüübid. * Suuremate projektide haldamine. Paketid, nimeruumid. * Kolmekihised rakendused: vaade, äriloogika, andmepöördus. * Singleton. Ühiskasutatav ainueksemplar. * Factory. Objektiloomisvabrik. * Pool. Bassein piiratud hulga objektide/ressursside jagamiseks rakenduse osade vahel. * Objektide kaugkasutus. RMI, CORBA. RPC. * XML. Eesmärgid, ülesehitus, töötlemine. SAX. Document Object Model.