K-INFO
HU
EN
Login

Programming 2

A programozás alapjai 2
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
A programozás alapjai 2
Programming 2
Subject code BMEVIIIAA03
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 2 0 2
type (linked/independent) derived course
Assessment type félévközi érdemjegy
Credits 6
Subject coordinator
Somogyi Péter
position: egyetemi docens
Responsible department
Irányítástechnika és Informatika Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website https://www.aut.bme.hu/Course/bop2
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme
  1. Lecture: Summary of the previous semester. "Repair" of the C language: value type struct, enum, bool type. Low-level Function call. The need for prototypes, the introduction of a reference type. Using function as by left value. Introduction to isostream.

    Lab: Summary of Basic Operating System knowledge. Practice with the development environment - usage of the development tools.
  2. Lecture: Function name overloading. Default function parameters, inline functions, namespaces. A short introduction to memory allocation and the exception handling mechanism of C++

    Lab: Exercising with const and reference. Rewriting code written in C to C++ using C++ elements. Discovery of memory leaking.

Fundamentals of the object-oriented programming.

  1. Lecture: Object-oriented programming: Basic concepts, principles, object definition. Classes, encapsulation, concept of information hiding and visibility. Member variables and member functions. Getters and setters. The „this" pointer. Constructors, destructors.

    Lab: A simple class implementation. Getter/setter functions.
  1. Lecture: Constructors and destructors. Copy constructor, assignment operator. The initialisation of member variables. Constant and static members.

    Lab: Constructors, destructors, operator<< overload.
  2. Lecture: Visibility. The concept of operator overload. The realisation of operation overload by the member and global functions. Restrictions.

    Lab: Classes width dynamic data. Copy constructor, assignment operator.

  3. Lecture: The role of the inheritance in object-oriented programming. Inheritance, derived class, base class. Influence of inheritance on visibility. Constructors and inheritance.

    Lab: Implementation of more complex objects (e.g. Dynamic array). Operator overload., Homework specification.

  4. Lecture: Virtual functions, abstract classes. Restricting inheritance. Virtual destructors. Heterogeneous collections.

    Lab: Inheritance, Impact of inheritance on visibility and overloading.

  5. Lecture: Multiple inheritance, virtual base classes. Concept and implementation of persistence.

    Lab: Heterogeneous collections. Homework: skeleton

  6. Lecture: Type conversion, conversion (cast) operators, exception handling.

    Lab
    : Multiple inheritance and persistence related tasks.
  1. Lecture: The role of the generic data structures. Function and class templates.

    Lab: Type conversion (cast), and exception handling exercises.

  2. Lecture: Introduction of Standard Template Library (STL).

    Lab:
    Generic data structures and algorithms.

  3. Lecture: STL containers and algorithms, iterators.

    Lab:
    STL containers and algorithms. Homework presentation.

  4. Lecture: Presentation of complex example. Language tools.

    Lab:
    Homework presentation.

  5. Lecture: Summary. Introduction to design patterns.

    Lab: Spare lab
The fundamental goal of the course, as a foundation course, to continue to raise awareness (knowledge) about computerised problem-solving methods and basic tools, started last semester, at a level that would enable the students to apply their knowledge in their further studies effectively. The primary objective of this semester to deepen the knowledge of the C programming language, and introduce the fundamentals object-oriented programming. The aim of the course is gained by familiarising C ++, based on the C knowledge from the previous semester. The exercises and labs material continues to follow the syllabus of lectures. The exercises help to deepen the knowledge of the C++ programming language.

Learning outcomes

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

There are two lectures and two computer laboratory practices every week. 

Tanulástámogató anyagok

Online források
Bjarne Stroustrup "The C++ Programming Language", Addison-Wesley. Available in many languages.Scott Meyers "Effective C++", Addison-Wesley. In English.Tóth Bertalan "Programozzunk C++ nyelven", ComputerBooks, 2003. In Hungarian.Programming problems with solutions: http://www.aut.bme.hu/cpppeldatar. In Hungarian.C and C++ programming resources: http://www.cprogramming.com/. In English.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Knowledge of C programming language
Skill type competencies
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Recommended (non-compulsory) preliminary competencies
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Knowledge of C programming language
General rules
Requirements: During the semester: Presence: It is compulsory to visit lectures and lab practices. The presence is checked every time. The absence of a student at the lectures and laboratory practices must be less than 30%, for each type individually. Reaching this limit in either of the lecture or lab practice results in an incomplete. Tutors are entitled to check the required knowledge of the students prior to the lab, or during the lab. The lab is registered as absence for students failing this check.Small tests. There are three small tests on laboratory practices. Two of the tests score must reach 40%. A missed test is treated as 0 points. Mid-semester tests. There are two mid-semester tests. These have no minimum limit one by one, but the sum of the score of the two tests must reach 50%. A missed test is treated as 0.Beside the small tests, there is a long-term individual homework assignment for each student to solve. The specification is published on week 6, the solution is to be delivered on week 13. Mid-semester mark is given to those students who completed all assessments. The mark is based on the sum of the score of the two mid-semester tests (2×40), and the score of the best two small tests (2×10). The maximum, therefore, is 110 points. If the assessments are completed, the student passes the course. Additional possibilities: There is no repeat possibility neither for the presence. The small tests are repeated during the semester, as the maximum score of two is taken automatically. The mid-term tests can be repeated at the repeat week. Only one of the two mid-term tests can be repeated, and it must be the one with the lower score. The new score will overwrite the old one. For the homework assessment, late delivery is accepted by 12:00 of the last day of the semester (Friday of week 14) while paying a late delivery fee. Beyond week 14 there is no way to deliver homework.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses
Received credits from Basic of Programming 1 course is compulsory
Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.