Programming II 390-FS1-2PRO2
Study profile: general academic
Form of studies: full-time
Module: computer science tools
Level of education: first-cycle studies
Year of study / semester: 2nd year / 4th semester
ECTS credits: 5
Prerequisites: completed course Programming I, basic knowledge of procedural programming in C++
Student workload balance:
- participation in lectures (15 hours),
- participation in laboratory classes (45 hours),
- participation in consultations (15 hours),
- independent work at home (25 hours).
Quantitative indicators:
- student workload related to classes requiring direct teacher involvement – 3 ECTS;
- student workload related to independent work – 2 ECTS.
Rules for the use of artificial intelligence (AI):
During classes, the use of AI systems is permitted within the following scope:
1. Machine translation of source texts from foreign languages.
2. Searching for and organizing scientific sources.
3. Creating simulations and models of physical phenomena discussed in the lectures.
In the event of violations of the above rules, the student may be held accountable under separate disciplinary regulations.
Course program (lecture):
- Introduction to object-oriented programming.
Programming paradigms: procedural and object-oriented.
Concepts of object and class.
Class structure in C++.
Class fields and methods.
Access modifiers:public,private,protected.
Object creation.
Member methods and access to object components. - Constructors and destructors.
Object initialization.
Default and parameterized constructors.
Initialization lists.
Destructors and resource management.
RAII concept.
Copy semantics.
- Passing objects to functions.
Returning objects from functions.
References and object constness (const).
Operator overloading.
Static methods and static data members.
Namespaces. - Inheritance.
Base and derived classes.
Access control in inheritance.
Method overriding.
Virtual functions.
Polymorphism.
Base-class pointers and references. - Abstract classes.
Pure virtual methods.
Interfaces in C++.
overrideandfinalmechanisms.
Role of virtual destructors. - Memory management in object-oriented programming.
Dynamic allocation of objects.
Smart pointers (unique_ptr,shared_ptr).
Basics of the C++ Standard Library (STL).
Containers and iterators.
Basics of exception handling. - Object-oriented program design.
Encapsulation and class responsibility principles.
Basic design patterns.
Code organization in larger projects.
Introduction to creating simple windowed or console applications.
Course program (laboratory):
- Computer programs implementing topics and algorithms presented in the lecture will be written and analyzed.
|
Term 2024:
Study profile: general academic Program of classes (lecture and laboratory, C ++): |
Type of course
optional courses
Prerequisites (description)
Course coordinators
Requirements
Mode
Term 2024: Blended learning (in Polish) w sali (in Polish) zdalnie | Term 2025: Blended learning (in Polish) w sali (in Polish) zdalnie | General: (in Polish) zdalnie Blended learning (in Polish) w sali |
Learning outcomes
Knowledge – the graduate knows and understands:
KP6_WG4 – has knowledge of advanced computational methods used to solve typical physical problems and examples of their practical implementation using appropriate computational tools; has knowledge of elements of programming and software engineering within the scope defined by the study programme.
Skills – the graduate is able to:
KP6_UW4 – apply numerical methods to solve mathematical problems; is able to use basic software packages and selected programming languages within the scope defined by the study programme.
KP6_UK5 – perform a critical analysis of the results of measurements, observations, or theoretical calculations, including a quantitative assessment of the accuracy of the results.
KP6_UU1 – learn independently.
Social competences – the graduate is ready to:
KP6_KR2 – apply and promote the principles of intellectual integrity in their own activities and in those of others; resolve ethical issues in the context of research integrity; promote the decisive role of experiment in the verification of physical theories; apply the scientific method in the acquisition of knowledge.
Assessment criteria
Laboratory assessment: a written test assessing practical programming skills or a computer-based practical test
Lecture assessment: oral examination
During assessments, the use of electronic communication devices and artificial intelligence (AI) tools is prohibited.
Depending on the applicable regulations, the possibility of conducting the final assessment or final examination using electronic communication tools is reserved.
Bibliography
[1] Programming: Principles and Practice Using C++, B. Stroustrup, Addison-Wesley
[2] The C++ Programming Language, B. Stroustrup, Addison-Wesley
[3] C++ Primer, S. B. Lippman, J. Lajoie, B. E. Moo, Addison-Wesley
[4] Accelerated C++: Practical Programming by Example, A. Koenig, B. E. Moo, Addison-Wesley
[5] Internet resources
|
Term 2024:
[1] W. Porębski, Język C++ : wprowadzenie do programowania, wyd. 2, Komputerowa Oficyna Wydawnicza "Help", Warszawa 1999 |
Additional information
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: