Object-Oriented Programming

ID: 7094
Course type: vocational and applied
Course coordinator: Radojević Lj. Slobodan
Lecturers: Radojević Lj. Slobodan
Contact: Radojević Lj. Slobodan
Level of studies: B.Sc. (undergraduate) Academic Studies – Information Technologies in Mechanical Engineering
ECTS: 5
Final exam type: written+oral
Department: Department of Information Technologies in Mechanical Engineering

Lectures

Goal

Course participants must accept and use the idea of ​​containers. Using their own class system or a pre-set system in the programming process is assumed. Course participants control memory usage with methods in the container, turning to an explanation of what needs to be done. Templates, as well as patterns, will be the basis of advanced programming in this course.

Outcome

Course participants will effectively use basic containers as well as special containers in controlling class system objects. They will adopt the use of templates and patterns and distinguish and solve left and right assignment problems.

Theoretical teaching

1. Input & Output basics. Basic types. Introduction to std::vector. 2. auto type inference. Functions and overloading. Using const. 3. Memory management. Dynamic memory allocation in std::vector. 4. std::string. References. Shallow and deep copying. 5. <fstream>. Overloading << and >>. getline( istream&, string&, stopat ). 6. Classes. Object creation constraints. Constructor and destructor creation constraints. 7. Generic programming basics, templates. Function templates and class templates. 8. ADL and consequences. 9. GUI menu case study 10. Database connection case study.

Practical teaching

1. Simple readers. std::vector and its methods. A vector element is an object. 2. auto. Functions and overloading. Use of const. 3. Memory management. Std::vector behavior, control and error avoidance. 4. std::string. References. Show both copying. 5. ofstream and ifstream. Use of getline( istream&, string&, stopat ). 6. Classes. Show limitations in object formation. When constructors and destructors fail. 7. Examples of function templates. Examples of class templates. 8. Avoiding ADL and applying some other principles of argument identification. 9. Plain simple menu 10. Connecting to SQL.

Attendance requirement

Object-Oriented paradigm.

Resources

C++11, C++14, C++17, C++20 gcc/g++ VIM, Kate, Qt Creator, Visual Studio Code

Assigned hours

Total assigned hours: 65

Active teaching (theoretical)

New material: 30
Elaboration and examples (recapitulation): 0

Active teaching (practical)

Auditory exercises: 20
Laboratory exercises: 0
Calculation tasks: 0
Seminar paper: 0
Project: 0
Consultations: 0
Discussion/workshop: 0
Research study work: 0

Knowledge test

Review and grading of calculation tasks: 0
Review and grading of lab reports: 0
Review and grading of seminar papers: 0
Review and grading of the project: 0
Test: 10
Test: 0
Final exam: 5

Knowledge test (100 points total)

Activity during lectures: 0
Test/test: 70
Laboratory practice: 0
Calculation tasks: 0
Seminar paper: 0
Project: 0
Final exam: 30
Requirement for taking the exam (required number of points): 70

Literature

Bjarne Stroustrup; Programming: Principles and Practice Using C++; Addison-Wesley; Bjarne Stroustrup; Tour of C++; Addison-Wesley; Stanley Lippman, Josée Lajoie, Barbara Moo; C++ Primer; Addison-Wesley; C++ Notes for Professionals; GoalKicker.com