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ó    

    Programming 3

    A tantárgy neve magyarul / Name of the subject in Hungarian: A programozás alapjai 3

    Last updated: 2016. szeptember 30.

    Budapest University of Technology and Economics
    Faculty of Electrical Engineering and Informatics
    Course ID Semester Assessment Credit Tantárgyfélév
    VIIIAB00 3 2/0/2/f 5  
    3. Course coordinator and department Dr. Goldschmidt Balázs,
    Web page of the course https://www.iit.bme.hu/~prog3/en
    4. Instructors Dr. Balázs Goldschmidt, Dr. Balázs Simon
    5. Required knowledge Programming skills in C++
    6. Pre-requisites
    Kötelező:
    (TárgyEredmény( "BMEVIIIAA00" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény( "BMEVIIIA114" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény( "BMEVIIIAA03" , "jegy" , _ ) >= 2)

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

    ÉS (Training.Code=("5N-A8") VAGY Training.Code=("5NAA8"))

    VAGY EgyenCsoportTagja("Kreditpótlás_2023/24/2")

    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:
    Basics of programming 2
    7. Objectives, learning outcomes and obtained knowledge

    The goal of the course is to deepen students' understanding in the field of object orientation (Java programming language) and the use of class and function libraries (collections, IO, threads, XML handling, graphics and GUI). The course builds heavily on C and C++ skills gained in courses Basics of programming 1 and 2. The programming language environment of the course is Java. Laboratories provide practical exercises in the fields introduced by the lectures. 

    8. Synopsis

    Lecture

    1. Basics of Java. Introduction, types, operators, statements. Objects, classes, interfaces, packages. Exception handling, coding style.

    2. Java I/O. System Class. I/O Basics. I/O filters. Special classes: pipe, file. Serialization.

    3. Utilities.(Scanner, Random, BigInteger, BigDecimal, text processing).

    4.  Java generics, generics and inheritance. Comparison to C++ generic solutions. Heterogeneous collections, casting, template.

    5. Java collections. Collection framework: Collection, Iterator, List, ListIterator, Set, SortedSet, Map, SortedMap. Handling of collections (java.util.Collections).

    6. UML and Java. Associations, aggregations, their implementation and notation. C++ flashback (composition, destructor, deep and shallow copy, cloning, copy constructors).

    7. Thread handling. Mutual exclusion, synchronization, signalling. Thread safe collections, special concurrent classes (java.util.concurrent)

    8. Java GUI basics. Components and containers. Layouts. Event-handling. Low level graphics (java.awt.Graphics)

    9. Swing components: menu, dialogs, etc. MVC in swing, JList, JTable, JTree.

    10. Automatic and unit testingin Java, JUnit.

    11. XML processing in Java: SAX, DOM, JDOM.

    12. Logging, log4j, logging levels. Internationalization, localization.

    13. Outlook: object-relational mapping in JPA, networking, RMI.

    Laboratory

    1. Basics of eclipse, intellisense, help, projects.

    2. Hello world, command line compilation, eclipse and Java, package handling.

    3. Java inheritance, exceptions: C++ heterogeneous collection test problem solved in Java

    4. Java IO. Reading from files, handling the file system, printouts, serialiazation, command line arguments.

    5. Java Util: collections, sorting, iterators.

    6. Java-UML connection, UML modelling tools and code generation

    7. Java thread handling: producer-consumer, synchronization.

    8. Swing basics. Simple swing example: caesar coder.

    9. Swing MVC: JTable task: sorting, display, special rendering.

    10. Low level graphics: simple vector graphics.

    11. JUnit task. Creating unit tests for a predefined Java source code.

    12. XML tasks: processing, generation.

    13. Home work presentation.

    9. Method of instruction Lectures and laboratories.
    10. Assessment

    Attendance is mandatory for laboratories. The lecturer may check the preparation of the students. Preparation must be acceptable in at least 7 laboratory classes.

    During semester 6 midterm tests are written. The best 4 of them counts in the final mark. Missed tests count as 0.

     

    During the semester a home work project is assigned to each student. Assignment is on the 6th week. On the 8th week a detailed plan for the application has to be presented. On the laboratory of the 13th week the final application must be presented. Repeated presenation is on the 14th week laboratory, if necessary.

    The final mark is counted from the best 4 midterm tests. Final mark is only given, if the preparedness was accepted on 7 occasions, the home work was accepted, and the average of the best 4 tests is at least 2.0.

     

     

    11. Recaps

    Missed laboratories can not be repeated. Unacceptable preparedness can not be repeated.

    Unaccepted home work can be repeatedly presented only at the laboratory class of the 14th week.

     

    12. Consultations During laboratory classes.
    13. References, textbooks and resources

    Course slides on course web page

    Java tutorials on Oracle-s web page

    Introductory Java textbooks

    14. Required learning hours and assignment Kontakt óra
     56
    Félévközi készülés órákra34
    Felkészülés zárthelyire18
    Házi feladat elkészítése42
    Kijelölt írásos tananyag elsajátítása0
    Vizsgafelkészülés0
    Összesen150
    15. Syllabus prepared by

    Dr. Goldschmidt Balázs

    docens

    Irányítástechnika és Informatika Tanszék

    Dr. László Zoltán

    docens

    Irányítástechnika és Informatika Tanszék

    Simon Balázs

    tanársegéd

    Irányítástechnika és Informatika Tanszék