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
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.
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.
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.
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.
Object-Oriented paradigm.
C++11, C++14, C++17, C++20 gcc/g++ VIM, Kate, Qt Creator, Visual Studio Code
Total assigned hours: 65
New material: 30
Elaboration and examples (recapitulation): 0
Auditory exercises: 20
Laboratory exercises: 0
Calculation tasks: 0
Seminar paper: 0
Project: 0
Consultations: 0
Discussion/workshop: 0
Research study work: 0
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
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
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