Programmeerimine algkursus JAVA keeles

(Junior Java developer)

Встреча между коллегами

Hind 2500 €

Õppe kogumaht:

200 akadeemilist tundi, sealhulgas auditoorse ja praktilise töö maht 120 ak. t. ja iseseisva töö maht (kodune) 80ak.t.

Majandustegevusteade 214280

Õppekavarühm: Arvutiteadused

Õppekeel:   муту

Rühm kuni 8 inim

Üksikisiku tuludeklaratsiooni esitamisel on võimalik 20% kursuse maksumusest tagasi saada

 

Eesmärk

Kursuse läbimise tulemusena tunneb õppija Javas programmeerimise aluseid.

Sihtgrupp

kursused on mõeldud neile, kes:

- kesk- ja keskeriharidusega IT-spetsialistid, kes soovivad oma kvalifikatsiooni tõsta või oma erialal uusi teadmisi omandada, tegevusala muuta;

- kõrgemate ja keskmiste tehniliste asutuste üliõpilased, kellel on IT-haridus;

- infotehnoloogia valdkonnas kogemustega isikud, kes soovivad oma oskusi täiendada, uusi teadmisi omandada või tegevusvaldkonda muuta;

- kursused "Programmeerimise alused keeles Java" on mõeldud neile, kes soovivad omandada algteadmised programmeerimises keeles Java.

 

Sellel kursusel osaleda soovijatel peavad olema järgmised oskused ja teadmised:

- ta peab olema osav arvutikasutaja (oskab iseseisvalt installeerida tarkvara, kasutada käsurida);                                                                

- tal peab olema skriptide baasprogrammeerimise kogemus (programmeerimise keel ei ole tähtis).

Õpiväljundid

Kursuse lõppedes õppija: loob Java baasmooduleid kasutades selleks kaasaegseid koodimisstandardeid ja Java (1.8) keele võimalusi; rakendab objektorienteeritud programmeerimise põhimõeid; opmeerib rakenduste tööd valides selleks õigeid algoritme; loob kasutades ergonoomilisi koodi projekteerimise mustreid skaleeritavaid rakendusi; suudab tagada rakenduse stabiilsust ja turvalisust ka suure arvu lõimede korral

Omab professionaalse pädevusi vastavalt tase: junior software developer, programing language Java;

Omab oskused: Java Core, 

Omab projekti koostamise tööriistu: maven;

Omab rakendatud tehnoloogiaga:  Spring Core, Spring Data, Spring Web, Spring Security, Hibernate, JDBC

Teab versioonikontrollisüsteem: GIT;

Omab tarkvaraarenduse metoodika põhimõisted: Agile, Kanban;

Õ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)

Kursuse programm põhineb kutsestandardil

Noorem tarkvaraarendaja, tase 4 (Junior Software Developer, EstQF Level 4)

 

B.2.1  Rakenduse projekteerimine (e-CF kompetents A.6.)

Tegevusnäitajad:
1. annab projekti kavandamiseks vajaliku sisendi aja ja muu ressursi vajaduste osas;
2. osaleb tehnoloogiate ja töövahendite valiku protsessis.

B.2.2 Lahenduse arhitektuuri analüüsimine ja valimine (e-CF kompetents A.5.)

Tegevusnäitajad:
1. osaleb arhitektuuri planeerimisel, lähtudes süsteemi arhitektuuri nõuetest (jõudlus, hooldatavus, laiendatavus, mastaabitavas, kättesaadavus, turvalisus ja juurdepääsetavus);
2. kasutab oma töös testimisest ja prototüüpimisest saadud sisendit;
3. osaleb kasutajaliidese kavandamisel.

 

B.2.3 Tehnoloogia arengu jälgimine (e-CF kompetents A.7.)

Tegevusnäitajad:
1. hoiab end kursis IKT uusimate tehnoloogiliste saavutustega, kasutades asjakohaseid informatsiooniallikaid.

B.2.4 Kavandamine ja väljatöötamine (e-CF kompetents B.1. ja B.2)

Tegevusnäitajad:
1. hindab vastuvõtu tingimuste realiseeritavust kooskõlas olemasolevate piirangutega,
2. kavandab oma töö, lähtudes vastuvõtu tingimustest;
3. töötab välja ja integreerib tarkvarakomponente, lähtudes ettevõttes kasutusel olevast metoodikatest ja parimatest praktikatest (sh koodistandardid, agiilsed ja klassikalised metoodikad, automaattestimine, tarkvaraarenduse mustrid, mittefunktsionaalsed nõuded);
4. tagab, et tema tehtud töö tulemid on hoiustatud ja dokumenteeritud ettevõtte poolt kasutatavas versioonihaldussüsteemis;
5. tagab loodud tarkvarakomponentide ühilduvuse teiste kasutatavate riist- ja tarkvarakomponentidega;
6. kasutab arendusvahendeid eesmärgipäraselt ja efektiivselt.

B.2.5  Testimine (e-CF kompetents B.3.)

Tegevusnäitajad:
1. kirjutab (automaat)teste enda kirjutatud/kirjutatavale koodile;
2. testib enda loodud tarkvarakomponentide põhifunktsionaalsust ja nõuetele vastavust, kasutades sobivat ja efektiivset testimise metoodikat.

B.2.6 Lahenduse juurutamine/paigaldamine/kasutuselevõtt (e-CF kompetents B.4.)

Tegevusnäitajad:
1. tagab, et loodud tarkvarakomponendid on paigaldatavad (sh kasutades automaatpaigaldussüsteeme);
2. paigaldab loodud tarkvarakomponendid nõutavasse keskkonda (sh test-, eeltootmis- ja tootmiskeskkond) vastavalt ettevõttes kasutatavale reliisiprotsessile;
3. osaleb juurutusprotsessis.

B.2.7 Dokumentatsiooni koostamine (e-CF kompetents B.5.)

Tegevusnäitajad:
1. tagab dokumentatsiooni olemasolu ja ajakohasuse kogu loodud lahenduse elutsükli jooksul;
2. dokumenteerimisel lähtub üldlevinud parimatest praktikatest (sh programmeerimiskeelte dokumenteerimis-standardid ja vahendid) ja ettevõttes kehtestatud nõuetest.

Mis on kutsestandard?

 

Kutsestandard on dokument, mis kirjeldab kutsetegevust ning vastaval kutsel tegutsemiseks vajalikku kompetentsust ehk töö edukaks tegemiseks vajalike oskuste, teadmiste ja hoiakute kogumit.

 

Milleks on kutsestandardit vaja?

 

Kutsestandard on

  • aluseks tööturu nõudmistele vastavate õppekavade, koolitusprogrammide koostamisel;

  • aluseks kompetentsuse hindamisel;

  • abiks tööandjale ametite kirjeldamisel-tutvustamisel, töötajate värbamisel, ametijuhendite koostamisel, töötajate kutsenõuete määratlemisel, koolituse planeerimisel;

  • abiks töötajale, kes soovib saada selgust olemasolevate ja puuduvate oskuste vahel, annab võimaluse planeerida oma arengut ja karjääri ning loob aluse elukestavale õppimisele;

  • abiks koolitajale, õppurile, lapsevanemale, nõustajale ja teistele info hankimisel selle kohta, millist töötajat tööturul vajatakse;

  • aluseks kutsetunnistuste rahvusvahelisel võrdlemisel.