Course title, code: Programming 2, GAINBAN-PROGRAM2-1

Name and type of the study programme: Computer science engineering, BSc
Curriculum: 2021
Number of classes per week (lectures+seminars+labs): 2+0+2
Credits: 4
Theory: 50 %
Practice: 50 %
Recommended semester: 2
Study mode: full-time
Prerequisites: Programming 1
Evaluation type: term mark
Course category: compulsory
Language: english
Responsible instructor: Dr. Pásztor Attila
Responsible department: Department of Information Technologies
Instructor(s): Prof. Dr. Johanyák Zsolt Csaba , Dr. Pásztor Attila
Course objectives:
The goal of the course is to deepen students' C++ knowledge acquired during the Programming 1 course, as well as to introduce the concepts and principles of object-oriented programming in C++.
Course content - lectures:

1. Recapitulation: arrays, structure, pointers, file IO, functions. 2. Ref type, parameter passing techniques. 3. Default function arguments, Vector type. 4. Introduction to classes and objects. 5-6. Basic Principles of OOP (Object-Oriented Programming): Abstraction, Encapsulation, Inheritance, Polymorphism. Access modifiers 7. Written test 1 8. Inheritance under the loop. 9-10. The friend mechanism, class scope. 11. Written exam 2 12. Constructor types. 13. Replacement/Make-up written exam


Course content - labs:

1. Recapitulation: arrays, structure, pointers, file IO, functions. 2. Ref type, parameter passing techniques. 3. Default function arguments, Vector type. 4. Introduction to classes and objects. 5-6. Basic Principles of OOP (Object-Oriented Programming): Abstraction, Encapsulation, Inheritance, Polymorphism. Access modifiers 7. Written test 1 8. Inheritance under the loop. 9-10. The friend mechanism, class scope. 11. Written exam 2 12. Constructor types. 13. Replacement/Make-up written exam

Acquired competences:
Knowledge:

- He/she is familiar with the important software development methodologies, and the notation systems for IT designs and documentation. - He knows the vocabulary and special terms of the engineering profession in the Hungarian and English languages at least on the basic level.

Skills:

He/she can apply his/her knowledge acquired during his/her study to acquire deeper knowledge in the field of information engineering and to process special literature and solve problems related to information technology. - He/she constantly improves his/her knowledge and keeps up with the development of the computer engineering profession.

Attitude:

- He/she genuinely represents the professional principles of engineering and information technology fields. - He/she is open to acquire new methods, programming languages and develop skills to use them. - He/she makes an effort to work efficiently and to high standards.

Autonomy and responsibilities:

- He/she feels responsible for IT systems analysis, development and operation, both individually and as part of a team.

Additional professional competences:


Requirements, evaluation, grading:
Mid-term study requirements:
There will be two written tests in lecture classes and two written tests during the lab classes. Each written tests count 25% in the final mark.
Exam requirements:

Study aids, laboratory background:

Lecture notes.

Compulsory readings:

A. Pásztor, Z.C. Johanyák: Basics of the C++ programming language, available in the TEAMS group of the course

Recommended readings:

C++ Programming by Wikibooks, https://upload.wikimedia.org/wikipedia/commons/4/4b/C++_Programming2008-4-18.pdf Stroustrup, Bjarne: The C++ Programming Language (4th Edition), Addison-Wesley, 2013