Programmerimise algkursus JAVA keeles | Estonia | BT Ärikool

Õppejõud:

Vadim Semenov, kõrgharidus, tarkvarainsener

Oleg Pasechnik, tarkvaraspetsialist

 

Kursuse programm

1. Java virtuaalmasin, süntaks (30 ak t)

1.1. Ülevaade keelest, keskkonna seadistamine.

1.2. Virtuaalmasin. Kompileerimine, mäluhaldus.

1.3. Konstandid, muutujad, literaalid. Andmete hoidmine virtuaalmasina mälus.

1.4. Java-elutsükkel. Klasside, objektide loomine, nende väärtused ja konstandid.

1.5. Süntaks: main object, primitiivsed andmetüübid.

1.6. Süntaks: objekti meetodid, meetodi loomise põhitõed (clean code, DRY, KISS jne)

1.7. Süntaks: laused, tingimuslaused, switch-käsud.

1.8. Süntaks: for- ja while-tsüklid

1.9. Süntaks: boolean loogika, loogilised operaatorid ja nende hierarhia.

1.10. Süntaks: calculations, aritmeetilised operaatorid ja nende hierarhia.

1.11. Süntaks: try .. catch, Exception class

1.12. Standardsed objektid. Primitiivsed vs mähitud objektid (wrapped objects): Long, Boolean. String

1.13. Standardsed objektid. Sisend-väljund: InputStream, OutputStream

1.14. Standardsed objektid. Date. Java 1.8: Clock, ZoneId, LocalTime, LocalDateTime

1.15. javadoc, annotations, coding conventions

 

2. Objektorienteeritud programmeerimine 1. osa. (22 ak t)

2.1. Objektide konstruktorid. Java 1.8: suppliers

2.2. Baasklass Object ja selle meetodid clone, equals, hash, toString

2.3. Kohandatud objektide loomine: class, enum

2.4. Klasside rühmitamine - package. Ligipääsupiirangud.

2.5. Java 1.8: lambda-avaldised. Ligipääs muutujatele lambda-avaldistes.

2.6. Pärilus. Ligipääs ülemklassi meetoditele.

2.7. Kapseldus. Private, package-private klassi väljad.

2.8. Polümorfism. Meetodi käitumise muutumine, tüüpide teisendamine.

2.9. Iteraator, Komparaator. Komparaatori võimalused Java 1.8

2.10. Java 1.8: vood. Voogude lõpp- ja vahemeetodid.

2.11. Graafika võimalused Javas, GUI.

 

3. Java baasalgoritmid (20 ak t)

3.1. rekursioon vs tsüklid. Katkestamise tingimus.

3.2. Sorteerimine, Java 1.8: parallelStream().sorted()

3.3. Andmestruktuurid: muutuva suurusega ja massiivid

3.4. Andmestruktuurid: Array vs List, Set

3.5. Andmestruktuurid: ahelad ja puud

3.6. Otsing, puu läbimine

3.7. Andmestruktuurid Maps, Multi-maps

3.8. Assotsiatiivsete struktuuride räsimine võtmetega, Java 1.8: putIfAbsent, getOrDefault

3.9. Algoritmi keerukus

3.10. Algoritmide optimeerimine

 

4. Objektorienteeritud programmeerimine 2. osa. (26 ak t)

4.1. abstraktsed klassid

4.2. liidesed + interface default (1.8)

4.3. geneerilised tüübid - generic types

4.4. Reflection API: getDeclaredField, setAccessible

4.5. Reflection API: decorators

4.6. Java 1.8: Funktsionaalsed liidesed

4.7. Java 1.8: Viited meetoditele ja konstruktoritele

4.8. Objektide koostoime süsteemis: Composition & Aggregation

4.9. Objektide koostoime süsteemis: Injection, sõltuvuse süstimise võimalused

4.10. Objektide koostoime süsteemis: Threads, Runnable

4.11. Objektide koostoime süsteemis: Voogude sünkroniseerimine

4.12. Objektide koostoime süsteemis: Networking. URL, HttpClient

4.13. Objektide koostoime süsteemis: Serialiseerimine ja deserialiseerimine. XML, Json. Endpoints.

 

5. Programmeerimise põhimustrid (20 ak t)

5.1. Objektide mustrid: Singleton

5.2. Objektide mustrid: Factories + Abstract Factory

5.3. Objektide mustrid: Prototype

5.4. Objektide mustrid: Builder

5.5. Struktuuri mustrid: Adapter

5.6. Struktuuri mustrid: Facade

5.7. Struktuuri mustrid: Composite

5.8. Struktuuri mustrid: Decorator

5.9. Struktuuri mustrid: Proxy, Bridge

5.10. Antimustrid.

 

6. Õpilaste lõputööde esitlused (2 ak t)