Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Software Informatics

    A tantárgy angol neve: Software Informatics (in English)

    Adatlap utolsó módosítása: 2006. július 1.

    Tantárgy lejárati dátuma: 2015. január 31.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Gépészmérnöki Kar

    Integrált Mérnökképzés Modul

    Választható tárgy

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAU0172 9 1/0/2/v 4 1/1
    3. A tantárgyfelelős személy és tanszék Dr. Járdán R. Kálmán,
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Sütő Zoltán

    egyetemi adjunktus

    Automatizálási és Alkalma-zott Informatikai

    5. A tantárgy az alábbi témakörök ismeretére épít

    A strukturált programozási technikák ismerete nem szükséges, de mindenképpen előnyös a tárgy anyagának hatékony elsajátításához.

    6. Előtanulmányi rend
    Ajánlott:

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

    A tantárgy célja a gépészmérnök hallgatók megismertetése a modern szoftvertervezés legfontosabb kérdésköreivel, a szoftvertechnológia elméletével és gyakorlatával. A tárgy teljesítése után a hallgatók megfelelő jártasságra tesznek szert a terület legfontosabb fogalmainak és szaknyelvének használatában, lehetővé téve a szoftvertervezés szakértőivel való hatékonyabb együttműködést. A fő hangsúlyt az objektum-orientált szoftverfejlesztés, a párhuzamos (konkurens) rendszerek és az elosztott rendszerek megismertetésére helyeztük. A tárgy keretében bemutatásra kerülő példaprogramok a Java nyelvet használják.

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

    1. Introduction to Software Design

    week 1. General software requirements, software quality. The phases of a software project, the Classic Life-cycle Model and the Object-oriented Life-cycle Model. Introduction of the Java programming environment.

    2. The Object Oriented Approach

    week 2. Basic concepts of object oriented approach, classes and objects, instantiation, encapsulation, information hiding, message passing. Java classes.

    week 3. Inheritance. Polymorphism.

    week 4. Abstract classes, interface classes.

    week 5. Programming of the World Wide Web, Java applets.

    week 6. OOP design. Abstraction, specialization, generalization, classification. Visual development, the Unified Modeling Language (UML). Object diagram, collaboration diagram, class diagram, sequence diagram, use case diagram. Association of objects, parent-child relationship, whole-part relationship (aggregation), acquaintance relationship, use relationship, obligatory or optional relationship.

    3. Data Structures, Algorithms

    week 7. Static and dynamic data structures. Arrays, multi-dimensional arrays. Linked lists, double linked lists, operation with linked lists, searching items, inserting, appending new items. Queues, stacks, heaps.

    week 8. Hierarchical data structures, graphs, trees, binary trees. Graph searching algorithms, depth-first, breadth-first, best-first. Recursion.

    4. Concurrent Systems

    week 9. Multiprogramming in Java, multithreading. Lightweight processes - threads. Creating, starting and stopping threads. The life cycle of threads, thread states. Switching between threads, scheduling algorithms, thread priorities, time-sharing.

    week 10. Cooperating threads, synchronization. Shared resources, critical sessions, mutual exclusion, the monitor concept. The producer-consumer example.

    week 11. Communication between threads, piped streams. Deadlock and starvation.

    5. Distributed Systems

    week 12. Motivations. Communication networks, network topologies, routing, switching modes. Network models, the TCP/IP and the ISO/OSI model, network layers, communication protocols.

    week 13. Connection-oriented and connectionless communications, the TCP and UDP protocols. The client-server communication model.

    week 14. Remote Method Invocation (RMI).

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    (előadás, gyakorlat, laboratórium):

    A tárgy előadásokra épül, melyet az ismeretek elsajátítása és a gyakorlatibb hozzáállást segítendő számítógépes laboratóriumi gyakorlatok egészítenek ki. Utóbbiak részben programozási példák bemutatásából részben problémamegoldó önálló feladatok megoldásából állnak.

    10. Követelmények

    a. A szorgalmi időszakban: A tárgy érvényességének előfeltétele a kontakt órákon való részvétel a Tanulmányi és Vizsgaszabályzatban előírtak szerint. A szorgalmi időszakban a hallgatóknak lehetőségük van fakultatív Java programozási feladat elkészítésére. A feladatok a 4. tanulmányi héten kerülnek kiadásra, és az utolsó előadásig kell azokat beadni. A feladat megfelelő szintű elvégzése a vizsga 50%-os gyakorlati részét helyettesítheti.

    1. A vizsgaidőszakban: A tárgy lezárása a vizsgaidőszakban írásbeli/szóbeli vizsgával történik. Az írásbeli vizsga 50%-ban elméleti, 50%-ban gyakorlati kérdésekből áll, összesen 8 kérdésre kell válaszolni. A feladatok kidolgozására 120 perc áll rendelkezésre, az elérhető pontszám 100.
    2. Érdemjegy megajánlás:

      0-39 pont:

      elégtelen (1)

      40-55 pont:

      elégséges (2)

      56-70 pont:

      közepes (3)

      71-85 pont:

      jó (4)

      86-100 pont:

      jeles (5)

      Amennyiben a fenti pontszámok alapján megajánlott jegyet a hallgató nem fogadja el, lehetősége van ugyanazon a vizsganapon szóbeli vizsgát tenni a megajánlott jegy javítása érdekében. A szóbeli vizsga a megajánlott jegyet ronthatja is. Amennyiben a vizsgán résztvevők száma öt főnél kevesebb, lehetséges, hogy csak szóbeli vizsgára kerül sor.

    3. Elővizsga: megegyezés szerint.
    11. Pótlási lehetőségek

    Sikertelen vizsgák pótlása a Tanulmányi és Vizsgaszabályzatban előírtak szerint.

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

    A szorgalmi időszakban a tárgy oktatójának heti fogadóóráján, a vizsgaidőszakban a vizsga előtti munkanapon lehet konzultálni. A fogadóóra időpontja illetve a konzultáció helye és ideje a tanszéki hirdetőtáblán található.

    13. Jegyzet, tankönyv, felhasználható irodalom
    1. Angster Erzsébet: Az objektumorientált tervezés és programozás alapjai, 1998
    2. Nyékyné Gaizler Judit szerk.: Java 1.1 útikalauz programozóknak, ELTE TTK Hallgatói Alapítvány, Budapest 1998.
    3. Csizmazia Balázs: Hálózati alkalmazások készítése /CORBA, Java, WWW/, Kalibán Bt. 1998
    4. The Java Tutorial – A practical guide for programmers, on-line document at http://java.sun.com/docs/books/tutorial/
    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

    (a tantárgyhoz tartozó tanulmányi idő körülbelüli felosztása a tanórák, továbbá a házi feladatok és a zárthelyik között):

    Opció

    A

    B

    Kontakt óra

    42

    42

    Félévközi készülés órákra

    18

    18

    Házi feladat elkészítése (opcionális)

    30

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

    10

    10

    Vizsgafelkészülés

    20

    50

    Összesen

    120

    120

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

    Név:

    Beosztás:

    Tanszék, Int.:

    Sütő Zoltán

    egyetemi adjunktus

    Automatizálási és Alkalma-zott Informatikai