Informatika 2

A tantárgy angol neve: Informatics 2

Adatlap utolsó módosítása: 2022. február 14.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Villamosmérnöki szak BSc képzés
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAUAB01 4 3/0/1/v 5  
3. A tantárgyfelelős személy és tanszék Dr. Csorba Kristóf,
A tantárgy tanszéki weboldala https://www.aut.bme.hu/Course/VIAUAB01
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Dr. Csorba Kristóf

egyetemi docens

Automatizálási és Alkalmazott Informatikai Tanszék

5. A tantárgy az alábbi témakörök ismeretére épít Nincs
6. Előtanulmányi rend
Kötelező:
(TargyEredmeny( "BMEVIAUAA01" , "jegy" , _ ) >= 2
VAGY TargyEredmeny( "BMEVIAUAA00" , "jegy" , _ ) >= 2
VAGY TargyEredmeny( "BMEVIAUA116" , "jegy" , _ ) >= 2
VAGY
((TárgyEredmény("BMEVIAUAA00", "FELVETEL", AktualisFelev()) > 0
VAGY TárgyEredmény("BMEVIAUAA01", "FELVETEL", AktualisFelev()) > 0 )
ÉS (StudentTraining.Startingdate < Datum(2014, 8, 20)
VAGY EgyenCsoportTagja("VILL régi tanterv")) ) )


ÉS NEM ( TárgyEredmény( "BMEVIAUA203" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIAUA203", "FELVETEL", AktualisFelev()) > 0)

ÉS (Training.Code=("5N-A7") VAGY Training.Code=("5N-A7H") VAGY Training.Code=("5NAA7"))

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

(TargyEredmeny( "BMEVIAUAA00" , "jegy" , _ ) >= 2
VAGY TargyEredmeny( "
BMEVIAUA116" , "jegy" , _ ) >= 2 
VAGY
(TárgyEredmény("
BMEVIAUAA00", "FELVETEL", AktualisFelev()) > 0 
ÉS (StudentTraining.Startingdate < Datum(2014, 8, 20) 
VAGY EgyenCsoportTagja("VILL régi tanterv")) ) )

ÉS NEM ( TárgyEredmény( "
BMEVIAUA203" , "jegy" , _ ) >= 2 
VAGY 
TárgyEredmény("
BMEVIAUA203", "FELVETEL", AktualisFelev()) > 0)

7. A tantárgy célkitűzése

A tantárgy elsődleges célja az Internet és a webes alkalmazások működéséhez szükséges alapvető módszerek bemutatása. Az információ tárolásának egyik alapvető módszere a relációs adatbázisok használata, ezért cél, hogy a hallgatók megismerjék ezek működésének alapjait és az SQL programozási nyelvet. Az Internet működéséhez a számítógépes hálózatok felépítését, a TCP/IP protokollrétegek ismerete szükséges. Végezetül az elosztott rendszerek és protokollok fejlesztéséhez, leírásához szükséges a webes környezetben használt nyelvek (pl. HTML, szerveroldali programozási nyelvek – pl. PHP) és formális módszerek (pl. reguláris kifejezések) ismerete.

8. A tantárgy részletes tematikája

Előadás:

  1. Számítógép-hálózatok:
    1. Alapfogalmak bemutatása: számítógépes hálózat, Internet, protokoll fogalma, az Internet protokollrétegei (TCP/IP), hálózatok felépítése, csomag és vonalkapcsolás, elosztott alkalmazás, szolgáltatásmodellek.
    2. Az Internet protokoll rétegeinek bemutatása:

                                                              i.      Alkalmazási réteg: elosztott alkalmazások protokolljai, fontosabb alkalmazási rétegbeli protokollok működése (HTTP, Elektronikus levelezés, DNS).

                                                            ii.      Kapcsolata az alkalmazási és a szállítási rétegek között: alapszintű kliens és szerveroldali socket programozás.

                                                          iii.      Szállítási réteg: szolgáltatásmodell, nyalábolás/nyalábbontás, UDP működése, TCP működése (kapcsolatfelépítés és bontás, megbízható adatátvitel, forgalomszabályozás, torlódáskezelés), biztonságos átvitel (SSL/TLS).

                                                          iv.      Hálózati réteg: szolgáltatásmodell, kapcsolatalapú és kapcsolat nélküli hálózatok, virtuális áramkör és datagram alapú hálózatok, útválasztás. Az Internet hálózati rétege (IP), címzés, hierarchikus címzés, alhálózatok, címek kiosztása, DHCP, hálózati címfordítás (NAT), ICMP, IPv6, útválasztó algoritmusok, autonóm rendszerek (AS).

                                                            v.      Adatkapcsolati réteg és helyi hálózatok: hibajelzés, többszörös hozzáférési protokollok (csatornaosztásos, véletlen hozzáférési, adásjog-átvételi protokollok: TDMA, FDMA, CDMA, CSMA/CA, CSMA/CD). Fizikai címzés (MAC), ARP protokoll, Ethernet, Ethernet kapcsolók, vezeték nélküli hálózatok, CDMA, 802.11 (WiFi), mobilitás az IP hálózatokban.

  1. Adatbázis-kezelés:
    1. Alapfogalmak: adatbázis, adatbázis-kezelő rendszerek szolgáltatásai, relációs adatmodell.
    2. Az SQL programozási nyelv:

                                                              i.      Alapfogalmak, típusok, elsődleges és külső kulcsok, kényszerek.

                                                            ii.      Adatbázistáblák létrehozása (CREATE, DROP utasítások).

                                                          iii.      Lekérdezések relációs adatmodellen: vetítés, kiválasztás, halmazműveletek, illesztés (természetes, theta, külső), aggregálás, csoportosítás, rendezés, beágyazott lekérdezések (SELECT utasítás). Nézetek használata.

                                                          iv.      Adatmódosító utasítások (INSERT, UPDATE, DELETE).

    1. Tranzakciókezelés, tranzakciók alaptulajdonságai, izolációs alapproblémák, ütemezés, izolációs szintek.
    2. Adatbázis tervezés entitás-relációs diagramok segítségével. Chen / Crow’s feet jelölésmód, entitás-relációs diagram leképzése relációs sémára.
  1. Nyelvek és automaták:
    1. Webes szabványok, kliens oldali programozás: html, css, javascript, DOM (document object model). HTML: html alapjai, html dokumentum szerkezete, html elemek, blokk szintű és inline elemek. Űrlapok kezelése. CSS: css szerkezete, kiválasztók és tulajdonságok.
    2. Szerver oldali programozás például PHP-ban. Alapfogalmak, nyelvi elemek, webprogramozás: űrlapok, adatbázis programozás, munkamenet kezelése.
    3. Formális módszerek az információátvitelben: Nyelvek fogalma. Nyelvtan és automata. Chomsky féle nyelvosztályok. Reguláris nyelvek, reguláris kifejezések, véges automaták fogalma. Reguláris nyelvtanok, reguláris kifejezések és véges automaták kapcsolata.  Reguláris kifejezések használata a szoftverfejlesztésben. Környezetfüggetlen nyelvek. Levezetési fa, absztrakt szintaxisfa. LL(k) nyelvek fogalma és elemzése.

Számítógépes gyakorlat:

 

  1. Egyszerű TCP/IP kliens implementációja. TCP socket kezelése, HTTP protokoll vizsgálata.
  2. HTML oldal készítése és formázása CSS segítségével.
  3. Egyszerű adatbázisok tervezése és implementációja, alapvető SQL utasítások gyakorlása.
  4. Összetett lekérdezések készítése, táblák összekapcsolása, csoportfüggvények használata, tranzakciókezelés.
  5. Szerver oldali webes programozás PHP segítségével.
  6. Hálózat monitorozás.
9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

Páratlan és páros heteken felváltva 4, ill. 2 óra előadás (átlag heti 3 óra),  illetve  kéthetente 2 óra számítógépes laboratórium.

10. Követelmények

A szorgalmi időszakban:

-          Zárthelyi dolgozat: A félévben 1 db nagy zárthelyi dolgozatot írnak a hallgatók (javasolt időpontja a 10. oktatási hét). Az előadások az adatbáziskezelés résszel kezdődnek, a ZH anyaga az előadáson addig elhangzottak, de legfeljebb az adatbáziskezelés és PHP, HTML/CSS témaköre. Az elégséges szint 40%. A ZH-n 35 pont érhető el.

-          Házi feladat: a tantárgyból a házi feladat nem kötelező, de a tantárgyból elérhető maximális pontszám mellé bónusz pontok szerezhetők vele, valamint erre járnak az IMSc pontok is. A házi feladattal maximálisan 30 bónusz pont szerezhető, kiemelkedően jó munka esetén pedig megajánlott jegy is adható rá. A házi feladat leadási határideje a 14. héten esedékes, a félév elején kihirdetett időpontban.

-          Számítógépes laboratórium: A hallgatónak a félév során 7 laboratóriumi gyakorlatot is el kell elvégeznie.

o   A 7. gyakorlat témája a házi feladat bemutatása.

o   Az első 6 gyakorlatból 4-et sikeresen teljesíteni kell. A gyakorlatra a hallgatónak fel kell készülnie a kiadott segédletből, ennek ellenőrzése kb. 10 perces beugró formájában történhet.

o   Bizonyos laborokat távolról is el lehet végezni, ezekre külön, az órarendi időpont utáni leadási határidő is megadható.

o   Amennyiben egy labort jelenléti vagy távolléti formában is lehet teljesíteni, akkor a jelenléti részvétel 24 órával korábbi, online regisztrációhoz köthető.

-          A félév végi aláírás feltétele:

o   A zárthelyi dolgozat legalább elégséges szintű teljesítése és

o   a számítógépes laboratóriumból legalább 4 sikeres elvégzése

-          A tantárgy munkafolyamataitól történő eltérés (például github pull request hibás leadása a laboron) esetenként legfeljebb -2 „munkafolyamat hiba” ponttal büntethető. Ezek a pontok a félév végi értékelésnél csökkentik a pontszámot.

 

A vizsgaidőszakban: a vizsga írásbeli, 2 témakörből áll (számítógépes hálózatok és automaták és nyelvek), a ZH témaköre már nem szerepel benne. Témakörönként minimum 20% teljesítendő, összességében 40%. A vizsgáztató jogosult szóbeli kérdéseket is feltenni. A vizsga összességében 65 pontos.

 

A félév során a maximális pontszám a házi feladat nélkül is elérhető, a plusz pontok nem befolyásolják a ponthatárokat. A ponthatárok a következők:

 

-          85 ponttól: jeles (5)

-          70-84 pont: jó (4)

-          55-69: közepes (3)

-          40-54: elégséges (2)

 

 

Kreditpontok: A tárgyból csak az kapja meg az előírt kreditpontokat, aki sikeres vizsgát tett, vagy megajánlott jegyet kapott.

11. Pótlási lehetőségek

A sikertelen zárthelyit egy alkalommal lehet pótolni szorgalmi időszakban és a pótlási héten lehetőség van az eredménytelen zárthelyi újbóli pótlására.

Sikertelen számítógépes laboratórium az oktatóval egyeztetve más csoport óráján lehet pótolni évközben. Szorgalmi időszak után számítógépes labor pótlására nincsen lehetőség.

 

Mivel a házi feladat nem kötelező és bónusz- és IMSc pontokat ér, pótleadásra nincsen lehetőség.

12. Konzultációs lehetőségek

 

Igény szerint, az oktatóval egyeztetve.

 

13. Jegyzet, tankönyv, felhasználható irodalom

·       Vajk I, Asztalos M, Mészáros T: Informatika 2. Egyetemi jegyzet

·       Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom: Database Systems – The Complete Book, Prentice Hall, 2008

·       Jim Kurose, Keith Ross: Computer Networking: A Top-Down Approach, Addison-Wesley, 2012

·       Andrew S. Tanenbaum, David J. Wetherall: Számítógép-hálózatok. 3. kiadás. Panem Kiadó, Budapest, 2012.

·       Bach Iván: Formális nyelvek. Typotex. http://www.typotex.hu/download/formalisnyelvek.pdf


14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

Kontakt óra

56

Félévközi készülés órákra, kiadott anyagok önálló feldolgozása

21

Felkészülés zárthelyire

13

Házi feladat elkészítése

30

Kijelölt írásos tananyag elsajátítása

 

Vizsgafelkészülés

30

Összesen

150

15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

Dr. Vajk István DSc

egyetemi tanár

Automatizálási és Alkalmazott Informatikai Tanszék

Asztalos Márk PhD

egyetemi docens

Automatizálási és Alkalmazott Informatikai Tanszék

Dr. Csorba Kristóf PhD

egyetemi docens

Automatizálási és Alkalmazott Informatikai Tanszék

IMSc tematika és módszer

Az IMSc programban résztvevő hallgatók számára külön számítógépes laborgyakorlatot tartunk. A laborokon leadott törzsanyag azonos a programban nem részt vevő hallgatóknak oktatott anyaggal, azonban az IMSc-s hallgatókkal összetettebb, több mérnöki átgondolást igénylő feladatokat oldunk meg.

IMSc pontozás

A félév során maximálisan 25 IMSc pont szerezhető (5 kredites tárgy). IMSc pont csak akkor szerezhető, ha a tárgyból a hallgató jeles osztályzatot ér el. IMSc pont a házi feladattal szerezhető.

Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.