BMETETMP030

Course title: 
Programming 2
Primary programme: 
Fizikus mérnök BSc
ECTS credits: 
6
Course type: 
compulsory
Number of lectures per week: 
2
Number of practices per week: 
0
Number of laboratory exercises per week: 
2
Further knowledge transfer methods: 
Computer laboratory
Grading: 
Coursework grade
Special grading methods: 
midterm exams (2), homework
Semester: 
2
Prerequisites: 
Programming 1
Responsible lecturer: 
Dr. Bertalan Forstner, assoiate professor, PhD
Lecturers and instructors: 
Course description: 
1. C++ as a Revised Version of C Recapitulation of curriculum provided in the previous term. Reference type. Function name overload. Default function parameters. Inline functions instead of macros. Constants and constant parameters. 2. Fundamentals of the Object-Oriented Programming in 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, derived class, base class. Influence of inheritance on visibility. Constructors and 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. Casting. Exception handling. The role of the generic data structures. Function and class templates. Standard Template Library (STL): containers and algorithms. Complexity considerations.
Reading materials: 
Bjarne Stroustrup "The C++ Programming Language", Addison-Wesley, 1997 (3rd edition), 2013 (4th edition). Available in many languages. Scott Meyers "Effective C++", Addison-Wesley, 1998 (2nd edition), 2005 (3rd edition). In English. Nicolai M. Josuttis "The C++ Standard Library - A Tutorial and Reference", Addison-Wesley, 1999.
List of competences: 
Please find the detailed list, as quoted from the Hungarian training and outcome requirements of the Physicist Engineer program, in the Hungarian version of the course description.