Programmeerimise algkursus Java keeles
Programmeerimine algkursus Java keeles
- Üldine teave
- Eesmärk
- Sihtgrupp
- Õpiväljundid
- Õppe sisu
Üldine teave. Programmeerimise algkursus Java keeles
Õppe kogumaht
200 akad. tundi, sealhulgas auditoorset ja praktilist tööd maht 120 akad. t. ja iseseisvat tööd maht (kodune) 80akad.t.
Õppekavarühm: Tarkvara ja rakenduste arendus ning analüüs
Õppekeel: vene
Rühm kuni 8 inim
Kursuse programm põhineb kutsestandardil Noorem tarkvaraarendaja, tase 4
Üksikisiku tuludeklaratsiooni esitamisel on võimalik 20% kursuse maksumusest tagasi saada.
Õppejõud
Aleksander Gritsevski, kogemused IT valdkonnas
üle 20 aasta, üle 10 aasta kogemusi peaspetsialistina IT ettevõttedes, IT-kursuse koolitaja
Sasha Kulcha, kõrgharidus, tarkvarainsener
Juri Aksjonov, tarkvaraspetsialist
Sellel kursusel osaleda soovijatel peavad olema järgmised oskused ja teadmised:
– osav arvutikasutaja (oskab iseseisvalt installeerida
tarkvara, kasutada käsurida);
– skriptide baasprogrammeerimise kogemus.
Õppemetoodika kirjeldus
Kursus põhineb reaalse tarkvaraarenduse simulatsioonil. Kursuse jooksul osalevad õpilased kogu tarkvaraarendusprotsessis: “kasutusjuhtumite” esitamine, analüüsimine ja dokumenteerimine, kasutajaliideste prototüüpimine kasutajaliidese ja rakenduse interaktsiooni kohta, back-end ja front-end osade ettevalmistamine. Põhirõhk on back-end osal, nimelt jõudlusel, kvaliteedil ja optimaalsel koodi koostamisel. Õpilased Üliõpilased kasutavad täiel määral kaasaegseid meeskonnatöö vahendeid
nagu Git, Jira, Confluence.
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, mastaabitavus, 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 olevatest 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 avaldamisprotsessile;
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 dokumenteerimisstandardid ja vahendid) ja ettevõttes kehtestatud nõuetest.
Õppematerjalide loend. Programmeerimise algkursus Java keeles
Õpilased on varustatakse konspektidega igal koolituse teemal. Praktilistele teemadele vastavad praktilised ülesanned. Õpilastele pakutakse kursuse teemadel kasulikke linke Internetis olevatele saitidele ja portaalidele.
Õppekeskkonna kirjeldus
Koolituse jooksul püütakse luua võimalikult õppimist toetav keskkond.
Koolitustegevus toimub selleks otstarbeks sobilikel ja tervisekaitse nõuetele vastavatel pindadel aadressil Peterburi tee 50D, Tallinn.
Kõik kasutatavad õppeklassid vastavad tervisekaitse nõuetele.
Õppeklassid on varustatud tänapäevaste koolitusvahenditega (mugavad õppelauad ja toolid, tahvlid, dataprojektorid, printerid, lauaarvutid, video-ja audiotehnika jm).
Kursuse lõppedes õppija:
- loob Java baasmooduleid, kasutades selleks kaasaegseid koodimisstandardeid ja Java (1.8) keele võimalusi;
- rakendab objektorienteeritud programmeerimise põhimõtteid;
- optimeerib rakenduste tööd, valides selleks õigeid algoritme;
- loob skaleeritavaid rakendusi, kasutades ergonoomilisi koodi projekteerimise mustreid;
- suudab tagada rakenduse stabiilsust ja turvalisust ka suure arvu lõimete korral.
kursus on mõeldud neile, kes:
- kes soovivad omandada programmeerimise algteadmised keeles Java; - 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 kogenud isikud, kes soovivad oma oskusi täiendada, uusi teadmisi omandada või tegevusvaldkonda muuta.
Kursuse lõppedes õppija:
loob Java baasmooduleid kasutades selleks kaasaegseid koodimisstandardeid ja Java (1.8) keele võimalusi;
rakendab objektorienteeritud programmeerimise põhimõtteid;
optimeerib rakenduste tööd, valides selleks õigeid algoritme; loob skaleeritavaid rakendusi, kasutades ergonoomilisi koodi projekteerimise mustreid;
on omandanud professionaalse pädevusi vastavalt tase: junior software developer, programing language Java;
omab oskused: Java Core, tunneb projekti koostamise tööriistu: maven;
valdab rakendustehnoloogiaid: Spring Core, Spring Data, Spring Web, Spring Security, Hibernate, JDBC tunneb versioonikontrollisüsteem: GIT;
kasutab tarkvaraarenduse alusmetoodeid: Agile, Kanban.
Kursuse õppekava. Programmeerimise algkursus Java keeles
1. Java virtuaalmasin, süntaks (30 akad. tundi)
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: Clock, ZoneId, LocalTime, LocalDateTime
1.15. javadoc, annotations, coding conventions
2.Objektorienteeritud programmeerimine 1. osa. (22 akad. tundi)
2.1. Objektide konstruktorid. Java: 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: 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
2.10. Java: vood. Voogude lõpp- ja vahemeetodid.
2.11. Graafika võimalused Javas, GUI.
3. Java baasalgoritmid (20 akad. tundi)
3.1. Rekursioon vs tsüklid. Katkestamise tingimus.
3.2. Sorteerimine, Java: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: putIfAbsent, getOrDefault
3.9. Algoritmi keerukus
3.10. Algoritmide optimeerimine
4. Objektorienteeritud programmeerimine 2. osa. (26 akad. tundi)
4.1. Abstraktsed klassid
4.2. Liidesed + interface default
4.3. Geneerilised tüübid - generic types
4.4. Reflection API: getDeclaredField, setAccessible
4.5. Reflection API: decorators
4.6. Java: Funktsionaalsed liidesed
4.7. Java: 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 akad. tundi)
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.