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

    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Basics of Programming 2

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

    Last updated: 2008. február 3.

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

    Budapest University of Technology and Economics

    Faculty of Electrical Engineering and Informatics

    Electrical Engineering



    Course ID Semester Assessment Credit Tantárgyfélév
    VIAUA116   2/0/2/f 4  
    3. Course coordinator and department Dr. Forstner Bertalan, Automatizálási és Alkalmazott Informatikai Tanszék
    4. Instructors



    Department, Institute

    László Lengyel

    Assistant Lecturer

    Department of Automation and Applied Informatics, Faculty of Electrical Engineering and Informatics

    5. Required knowledge

    C programming language

    6. Pre-requisites
    (TárgyEredmény( "BMEVIHIA106" , "jegy" , _ ) >= 2
    VAGY TárgyEredmény( "BMEVIET1015" , "jegy" , _ ) >= 2
    VAGY TárgyEredmény( ahol a TárgyKód = "BMEVIMH1506", ahol a Típus = "JEGY", ahol a Ciklus = tetszőleges, ahol a KépzésKód = tetszőleges) >= 2 )
    ÉS NEM ( TárgyEredmény( "BMEVIAUAA00" , "jegy" , _ ) >= 2
    TargyEredmeny("BMEVIAUAA00", "FELVETEL", AktualisFelev()) > 0)

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

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

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    vihia106 Basics of Programming 1.
    7. Objectives, learning outcomes and obtained knowledge

    This course, as a basic BSc. course, based on the previous term, continues the exposition of the methods and tools of the computational problems. The main goal of the term is the introduction of object-oriented programming. Based on the C programming language skills, the object-oriented techniques are introduced with the help of the C++ programming language. The curriculum of the computer laboratories continuously follows the lectures.

    8. Synopsis

    C++ as a Revised Version of C

    • Recapitulation of curriculum provided in the previous term. Low-level function calls. Reference type.
    • Function name overload. Default function parameters. Inline functions instead of macros.

    Bases of the Object-Oriented Programming Using C++

    • Principles of object-oriented programming, the concept of the object. Concepts of class, encapsulation, visibility, and information hiding.
    • Constructors and destructors. Dynamic memory management: new, new[], delete, delete[]. Maintaining dynamic attributes.
    • Attribute initialization. Constants and static members. Mitigation of visibility: friend mechanism. Namespaces. Introduction into C++ I/O.
    • Concept of operator overloading. Realizing operator overloading with local operations and global operations. Restrictions.
    • The role of the inheritance in object-oriented programming. Inheritance, inherited class, base class. The influence of the inheritance on visibility. Constructors and the inheritance.
    • Replacement possibilities. Virtual functions, abstract classes. Restricting inheritance. Virtual destructors.
    • Multiple inheritance, virtual base classes. Automatic tasks of constructors and destructors.
    • Type conversion. C++ conversion operators.
    • Exception handling.
    • The role of the generic data structures. Function and class templates.
    • Standard Template Library (STL): containers and algorithms. Complexity considerations.
    9. Method of instruction Lecture, computer laboratory
    10. Assessment

    In lecture term:

    (1) The continuity of learning is checked by in-class tests at computer laboratories.

    (2) An in-class term test.

    (3) A project assignment that requires the application of system and algorithm design, testing, and documentation skills.

    (4) The practice is supported by homework assignments published at the computer laboratories. The deadline of the homework assignments is the date of the next computer laboratory.

    The course is finished successfully, if

    · the average of the in-class tests is greater than 2.0,

    · the project assignment is prepared based on the specification, and it is personally accepted by the computer lab lecturer. Furthermore, (a) the full documentation is prepared, and (b) the software is approved by the lab lecturer,

    · the student has submitted at least 9 homework assignments (published at the computer laboratories) with executable software and its source code,

    · the student is a regular attendant at the computer laboratories (the absence cannot be more than it is defined in TVSz 13.§ (8)).

    All of these conditions must be fulfilled, otherwise the term mark is unsatisfactory (1) /TVSz 13.§ (5a)/. If all these four conditions are fulfilled the mark is calculated as follows:

    The average of the in-class tests is the average of the three best in-class tests. If anybody has less than three in-class tests, then the not written in-class tests are counted with mark 0.

    The mark is the weighted average of the in-class tests, the project assignment, and the in-class term test. The in-class term test has doubled weight but others simple.

    The mark, calculated based on these rules can be modified by the lab lecturer by +/- 0.5. Lab lecturer can make this decision based on the students’ performance at the laboratories and the quality of the submitted homework assignments.

    11. Recaps

    · The unsatisfactory in-class term test can be substituted only one occasion.

    · There are 9 homework assignments, from which only 3 can be submitted after the deadline. The last replacement time of the homework assignments is equal to the last replacement time of the project assignment.

    · The project assignment can be substituted till the end of the replacement week (12.00 AM on the last weekday of the replacement week). In this case the student must pay extra treatment fee. On the replacement week only those project assignments can be substituted, which were not accepted because of the operational failure or documentation shortcomings.

    · In case of failed in-class term test or/and the failed average of the in-class tests, the term mark can be accomplished with an in-class test that contains the whole curriculum of the semester / TVSz 13.§ (5) /. This opportunity is valid only if the project assignment is accepted till the end of the week for missing assignments.

    12. Consultations Based on the demand, appointed with the lecturer
    13. References, textbooks and resources
    • B. Stroustrup: The C++ programming language Addison-Wesley, 3rd Edition, 2000
    • Bruce Eckel: Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)
    • Bruce Eckel, Chuck Allison: Thinking in C++, Vol. 2: Practical Programming, (2nd Edition)
    • Jossutis, Nikolai M.: The C++ Standard Library - A Tutorial and Reference, 1999
    14. Required learning hours and assignment
    Lecture and computer laboratory 56
    Preparation for lectures and computer laboratory20
    Preparation for in-class test 20
    Project assignment24
    15. Syllabus prepared by




    Dr. László Jereb


    Department of Telecommunication

    Dr. Pál Németh

    Senior Lecturer

    Department of Electronics Technology

    Dr. Imre Szeberényi

    Associate Professor

    Department of Control Engineering and Information Technology

    Dr. Gábor Tevesz

    Associate Professor

    Department of Automation and Applied Informatics

    András Vitéz

    Senior Lecturer

    Department of Telecommunication

    Dr. Tihamér Levendovszky

    Senior Lecturer

    Department of Automation and Applied Informatics

    László Lengyel

    Assistant Lecturer

    Department of Automation and Applied Informatics