1. Számítástechnikai alapismeretek
1.1 Bevezetés az számítástechnikába
- Informatikai alapfogalmak (jel, adat, információ)
- Informatikai eszközök működésük és jellemzőik
- Az informatika története
- Az informatika területei
- Számítási problémák és feladatok
1.2. Operációs rendszerek
- Operációs rendszer alapvető feladatai, tulajdonságai, típusai, felületei.
- Számítógép kezelése az operációs rendszer grafikus interfészével.
- Fájlrendszerek, prartíciók, alrendszerek.
- Processzusok, fonalak, erőforrások, ütemezés.
- Shell, kapcsolók, paraméterek, környezeti változók.
- Konzol alkalmazások, ssh, ftp, ...
- Shell parancsok
- fájl és könyvtárstruktúra és kezelése (cd, ls, mkdir, rm, chmod, chown, ...)
- processek és kezelésük (&, ps, top, kill, )
- jogosultságkezelés, felhasználók kezelése
- linkek, környezeti változók, szűrük
- ssh, ftp
- Shell Scripting
1.3. Felhasználói adatfájlok
- Szövegfájlok, karakterkódolás (ASCII, ISO-8859-2, UTF-8).
- Formázott szöveg (Markdown, KaTeX, HTML, ...)
- Dokumentumkészítés ( Markdown, LaTex, ... )
- Prezentációkészítés ( reveal.js )
- Képformátumok ( pixeles és vektor-grafikus képek )
- Hang digitalizálása, hangformátumok
- Video formátumok + multi formátumok
1.4. Informatikai alkalmazások
- Program futtatása, grafikus ablak felépítése, felhasználói intefész elemei, kezelésük
- Internetes alkalmazások:
- hírportálok
- felhő alapú szolgáltatások
- közösségi médiák, profilok, álprofilok
- elektronikus banki és ügyfélkapcsolati szolgáltatások
- digitális térképek és alkalmazásai
- Számítógépes játékok:
- Keretrendszerek (Steam, EPIC, Battle.net, ...)
- Arcade játékok: Pacman, Super Mario, ...
- Stratégiai játékok (StarCraft, Sims, Age of...)
- FPS (UT, CS:GO, Fortnite, ...)
- Racing (F1, NFS, ...)
- Saját játékok és digitális tartalom fejlesztése (Unreal Engine, Unity, ...)
- Virtuális valóság és alkalmazásai.
- Csoportunka szoftverek
- Felhő-alkalmazások, felhő-szolgáltatások
- Verziókezelők ( GitHub, GitLab, ... )
- Collaboration Hubs ( SLACK, ... )
- Kódszerkesztő programok (Visual Studio Code, Coda, ...)
- programozási környezet kialakítása, lint, beautify
- editor kezelése és pluginjai,
- CodeSandbox (codesandbox.io)
1.5. Hálózati alapismeretek
- hálózati struktúrák
- hálózati eszközök
- kliens-szerver architektúra
- peer-to-peer hálózatok
- az internet felépítése működése
- protokollok (http, ftp, tcp/ip, pop3/imap/smtp)
- címzések (ip-cím, dns)
- szerver típusok (tűzfal, proxy, NAT, DHCP)
- hálózati eszközök (router, switch, ...)
1.6. Digitális tartalmak létrehozása
- Szövegszerkesztés célszoftverrel
- Tábázatkezelés célszoftverrel
- Diagramtípusok, grafikonok készítése
- Animáció-készítés célszoftverrel
- Prezentáció-készítés célszoftverrel
- Képszerkesztés, grafikai programok használata
- Zene-szerkesztés célszoftverrel
- Film-vágás célszoftverrel
- Interaktív tartalmak létrehozása célszoftverekkel
1.7. Vizuális programozás
( Scratch, Lego Mindstorm, Unity, Unreal Engine, ... )
- Az első programunk.
- Objektum fogalma, jellemzők, adatok, metódusok.
- Események kezelése, interfészek.
- Kommunikáció az objektumok között.
- Komplex példaprogram.
1.8. A számítógép működése
- Számítógép felépítése, Neumann elvek.
- Hardver elemek és funkcióik
- CPU
- ALU
- regiszterek
- Memória
- Címbusz
- Adatbusz
- Vezérlőbusz
- Program elhelyezkedése a memóriában, program (gépi kód) futása, alapvető gépi utasítások, verem memória.
- Alapvető vezérlési szerkezetek (szekvencia, szelekció, iteráció, alprogram-hívás, rekurzió).
- Programozási nyelvek áttekintése (JS, Python, Java, C++).
- Operációs rendszer szerepe a programok futtatásában.
- Programok felépítése, felhasználói interfészek típusai.
- A böngésző kezelése, fejlesztői eszközök, bővítmények.
1.9 Információs társadalom
- informatikai biztonság
- adatvédelmi irányelvek
- szerzői joggal kapcsolatos alapfogalmak
- kommunikációs illemszabályok
- az információ és az informatika
- gazdaságra,
- környezetre,
- kultúrára,
- személyiségre,
- egészségre gyakorolt hatása.
2. Web alapismeretek
2.1. HTML
- HTML objektumok (div, br, hr, ...)
- jellemzők (id, class, ...)
- szelektorok
- fejléc
- felsorolás
- táblázatok
- hivatkozások
- képek beillesztése
- SVG
- Szintaxis diagramok
- HTML űrlapok
- HTML események (egér, billentyűzet, ...)
- DOM
2.2. CSS
- szintaxis
- színek
- doboz modell
- szegélyek
- szövegformázás
- igazítás
- színek
- ikonok
- grid
- animáció
- külső ikon- és fontkészletek
- Feather
- Font Awesome
- Ionicons
- scss, less
2.3 Statikus tartalmak hostingja
- GitHub Hosting
- Google analitics
3. JavaScript ( ECMAScript )
3.1. Javascript futtatása
- node konzol
- .js file futtatása (node index.js): console.log
- a böngészőben: document objektum
- write,
- getElementById,
- querySelector,
- querySelectorAll,
- title,
- oncontextmenu
3.2. JavaScript (ES9) és python (3.7)
3.2.1. Szintaxis (javascript és python)
- Blokkok és tabulálás
- Változók, utasítások, kifejezések, kommentek, változók. Operátorok és precedencia.
3.2.2. Típusok (sok gyakorlással és pédával node és böngészős futtatás is)
- JavaScript primitívek.
- Python primitívek
- Függvények, paraméterek, függvény paraméter, objektum paraméter.
- Objektumok, jellemzők, metódusok.
- Stringek, számok és tömbök mint objektumok: mezők, jellemzők, metódusok.
- Osztályok (class, new, constructor, this, ...).
- Consol objektum, ui.
3.2.3. Rekurzió
- a rekurzió működési mechanizmusa, a verem
- példák rekurzióra: faktoriális, fibonacci sorozat, hanoi tornyai
- rekurzióval megoldható további feladatok (6.3)
3.2.4. Standard built-in objekutumok
- Array
- fill, map, join, forEach, find, filter, sort, reverse,
- pop, push, shift, unshift, reduce, slice, splice, includes
- String
- template, literals
- slice, split, toLocaleLowerCase, toLocaleUpperCase,
- search, localeCompare, repeat, includes, replace
- Set
- Map
- Date
- JSON
- Math
- RegExp
- Buffer
3.2.5. Vezérlési szerkezetek
- { ... }
- if ... else
- for
- for ... in
- for ... of
- do ... while
- while
- switch
- brake
- continue
- try ... catch, throw
3.2.6. JS-Python és HTML kapcsolata
- JS Stringkezelés a gyakorlatban
- HTML generálás JS segítségével
- SVG generálás JS segítségével
3.2.7. Callback függvények (JS)
- Callback függvény. Promise objektum. Async Functions.
- Párhuzamos programozás, Worker
3.3. Böngésző funkciók
- HTML DOM elérése JS-ből
- HTML APIs (Geolocation, Drag&Drop, Local Storage, Web Workers, SSE )
- Böngésző local tárolók (Session Storage, IndexedDB, Web SQL, Cookies).
3.4. Vue.js
- Hello World!
- Feltételek és iterátorok, események, komponensek
- Adatok, Metódusok
- Életciklus, életciklus-diagram
- Template szintaxis
- Dinamukus argumentek
- Számított jellemzők, setter és getter
- v-if szintaxis
- v-for szintaxis, :key
- Vue.set, ForceUpdate
- Eseménykezelés, módosítók
- Form-input hozzárendelés, refs
- Komponensek, props
- Slot
- Single File Components
- Routing
4. Node.js
4.1. Node.js alapok
- nodejs telepítése
- command line interface
- js fájl futtatása
- online felületek (runkit, repl.it, codesandbox.io...)
4.2. Globals
- console ( log, time, table, ... )
- Internationalization
- eseményvezérelt programozás, events, EventEmitter
- __dirname, __filename, TextDecoder, util, stream
- process ( argv, execPath, chdir, env, exit, getid, stdout, ... )
- process.stdin.on( 'data', callback ), .setRawMode( true )
- readline
- setImmediate, setInterval, setTimeout
- Worker Threads, cluster, Child Processes *
- File System
- HTTP
4.3. JS könyvtárak és Node.js modulok
- module.exports
- require
- import ( mjs mudules )
- npm
- install
- semantic versioning (major, minor, patch)
- publish
- nodemon
4.4. Fejlesztés közbeni feladatok
- Debugolás
- Logolás
- Hibakezelés ( Jest, Nightwatch.js )
- Hibakeresés
- Tesztelés ( Mocha )
- Automatikus tesztelés
- Dokumentáció generálás ( JSDoc, ... )
4.5. Node Fejlesztői környezetek
- Webpack
- Grunt
4.6. MVC Frameworks ( Koa, Express, Adonis, Basys, Nuxt, ... )
- 'Hello world' app
- serving static files
- routing (get, post, put, del, all, ...)
- Middleware, params
- koa-body, kcors
- cookies, session variables
- hibakezelés
- adatbázis-integráció
- template engines (edge, swig, vue-server-renderer, ejs, ...)
4.7. Egyéb modulok és kezelésük
- Vue-CLI module
- Vue-CLI konfiguráció (vue.config.js, baseUrl, publicPath, outputDir, crossorigin)
- Vizualizációs könyvtárak (Chart.js, Vis, ...)
- Hasonlósági mértékek (damerau-levenshtein, fuzzy-matching, string-similarity)
- Titkosítás, digitális aláírás (crypto-js, bigint-crypto-utils, ...)
- Egyéb node package-k és alkalmazásuk
4.8. Tartalomkezelő rendszerek
- Ghost, KeystoneJS, ApostropheCMS, Strapi, Siberian CMS
- Install CMS
- Run CMS
- Configure and management
- Deploy
4.9. Webszerverek üzemeltetési kérdései
- Forever, PM2. Statikus webszerverek, Serve static files. http-server, VuePress.
5. Adatbáziskezelés
5.1. Áttekintés
- Kapcsolódás NoSQL és SQL adatbázisokhoz (NeDB, MongoDB, SQLite, MySQL, PostgreSQL...).
5.2 NoSQL adatbázisok speciális kérdései
- Kulcs-érték adatbázisok
- Gráf adatbázisok
- Dokumentumtárolók (NeDB, MongoDB, ...)
- Objektum-adatbázisok
6. WEB API-k
6.1 OAuth 2.0
6.2 Google API-k
6.3. Egyéb API-k
7. Full-stack alkalmazásfejlesztés
- Webes alkalmazások felépítése, működési elve, kliens és szerver oldal, RESTful API-k, axios.
- Vue UI-k ( Bootstrap-VUE, Semantic, Vuetify, ... ), VUEX, Vue Router.
- Vue Material Dashboard.
- Google API-k az alkalmazásfejlesztésben
- autentikáció folyamata (vue-google-oauth2)
- Google analitics (vue-analitics)
- Cloud platormok ( HEROKU, Firebase, ... ).
- Komplex skálázható webes rendszerek, webes kommunikációs interfészek ( ws, sse ).
- Esemény-alapú kliens-szerver kommunikáció (socket.io).
- Platformfüggetlen alkalmazásfejlesztés (NW.js, ElectronJS, Cordova, ...).
- Mobil alkalmazások fejlesztése: accelerometer, GPS, kamera, ... ( NativeScript, ... ).
- Server side rendering, ( koa-vue-ssr, express-vue, ... ).
- Starter kitek.
- Full stack web frameworks ( Basys, NUXT, Quasar ).
- Webes IOT és beágyazott rendszerek programozása, RPI-GPIO.
8. Algoritmizálás
(Informatikatanár szak)
- Pédaprogramok
- Régi honlap példaprogramokkal és előadás-anyagokkal (opens new window)
- Régi algoritmusok és adatszerkezetek II. előadások anyagai (opens new window)
8.1 Alapfogalmak, algoritmusok elemei
- Változó fogalma, adattípusok.
- Statikus és dinamikus memóriakezelés
- Elemi utasítások, a gépi kód működése. Szekvencia, ugrás, feltételes ugrás, szubrutin hívása.
- Algoritmusok elemei magas szintű programozási nyelvekben:
- szekvencia,
- szelekció,
- iteráció,
- rekurzió.
- A tömb fogalma és kezelése.
- Algoritmusok jellemzői, a futási idő és tárigény fogalma. Elemi kereső és rendező algoritmusok:
- beszúró- és buborék rendezés, lineáris- és logaritmikus keresés
- külső és helyben rendezések
- függvények növekedési üteme, jelölések
- rendezések futási idejének elemzése, rendezések típusai.
- A függvény fogalma, függvényhívás formái, bemeneti paraméterek, visszatérési érték és funkciói.
8.2 Alapvető adatszerkezetek, algortimusok tulajdonságai
- A verem és sor adatszerkezet és működése, a verem jelentősége a függvényhívások folyamán.
- Rekurzió működése az informatikában, rekurzióval megoldható feladatok.
- Kupacrendezés, gyorsrendezés, vödrös és radix rendezés, időigény elemzése.
- Rendező algoritmusok futási idejének elemzése.
- Struktúra és Osztály típus. Láncolt listák és megvalósításuk.
- Elemi és absztrakt adatszerkezetek, az interfész funkciója:
- verem, sor
- bináris kupac, prioritási sor, binomiális kupac és alkalmazásai
- halmaz és függvény absztrakt adatszerkezet (Map, Set)
- bináris keresőfák, önszervező keresőfák (Splay, AVL, 2-3, B, Piros-fekete)
- hasítótáblák, ugrólisták
- Amortizációs költségelemzés.
- Kettős adatszerkezetek.
8.3 Nevezetes informatikai problémák és algoritmusok
- Mintaillesztés: automatával, Knuth-Morris-Pratt algoritmus.
- Hátizsák feladat, tükörszó probléma.
- Eseménytér fogalma, dinamikus programozás, mohó stratégia.
- Optimális pénzváltás, hátizsák probléma, türedékes hátizsák probléma
- Csoportkép optimális időpontjainak meghatározása feladat.
- Hemming-távolság, Damerau–Levenshtein-távolság, Wagner–Fischer algoritmus.
- Számelméleti algoritmusok, nyilvános kulcsú tikosítás, RSA algoritmus.
- Gráf absztrakt adattípus, gráf tárolási módok, számított gráf fogalma és példák.
- Gráf-algoritmusok (gráf bejárás, Floyd-Warshall, PageRank algoritmus).
- Dijkstra- és A* algoritmus.
- Speciális gráfok, páros gráfok és párosítási problémák. Magyar módszer.
- Kruskal-algoritmus, halmazerdő adatszerkezet. Prím-algoritmus.
- Ajánlórendszerek. Számítási bonyolultság fogalma, Turing-gép, bonyolultsági osztályok.
- Gráfok tulajdonságai, gráf alapú adatbányászati módszerek. Adattudomány.
- A mesterséges intelligencia alapfogalmai.
- Visszalépéses keresés, alfa-béta vágás, gráfjátékok.
- Approximációs algoritmusok, utazóügynök probléma és időbonyolultsága, approximációs megoldások.
- Tanuló algoritmusok, genetikus algoritmusok.
- Neurális hálózatok, gépi tanulás. Tensorflow.
- Véletlenített algoritmusok.
- Online problémák és online algoritmusok:
- átlagos eset elemzés, versenyképességi elemzés
- online algoritmusok empírikus vizsgálata
- online klaszterezezési és ütemezési feladatok
- online nyugtázás, ládapakolás, k-szerver probléma
- véletlenített online algoritmusok
- online tanuló algoritmusok