SylabUZ
Course name | Object oriented programming |
Course ID | 13.2-WF-FizP-OP-S17 |
Faculty | Faculty of Physics and Astronomy |
Field of study | Physics |
Education profile | academic |
Level of studies | First-cycle studies leading to Bachelor's degree |
Beginning semester | winter term 2020/2021 |
Semester | 3 |
ECTS credits to win | 6 |
Available in specialities | Computer Physics |
Course type | obligatory |
Teaching language | english |
Author of syllabus |
|
The class form | Hours per semester (full-time) | Hours per week (full-time) | Hours per semester (part-time) | Hours per week (part-time) | Form of assignment |
Lecture | 15 | 1 | - | - | Exam |
Laboratory | 45 | 3 | - | - | Credit with grade |
The aim of this course is to introduce the Object Oriented Programming techniques required to develop and create modern applications related to the „every day” and science problems. This is an active course where students solve realistic problems from beginning. Students learn how to analyse problem in the object oriented way and how to implement code according to the standards.
The efficient use of the Linux system (both in the terminal and in the graphical environment), knowledge of the basics of programming including procedural programming.
1. Introduction
- object and procedural programming
- class, object and methods
- constructor and destructor
- encapsulation
- pointers
- operators overloading
- friend function
2. Using standard class
- IO operations
- short introduction to the STL containers and algorithms
3. Pointers
- objects and dynamic memory allocation
- copy constructor
- destructor
- „intelligent” pointers
4. Inheritance, polymorphism and code reuse
- inheritance
- virtual and abstract classes and methods
- interfaces
- polymorphism
- the idea of „code reuse”
5. Clean code
- name standards
- header files
- namespaces
- makefile
- code comment and documentation
- version control systems
6. Templates in C++
7. Exception
8. Object oriented modelling and programming
- defining and analysing problem and model creation
- UML diagrams
- coding UML diagrams in C++
9. Design patterns
- the idea
- creational patterns
- structural patterns
- behaviour patterns
10. Frameworks
- the idea
- Qt as as sample
Lecture:
Convencional lecture, work with problems, discusiion, workshop
Laboratory:
Laboratory exercise, project, work in group, presentation, work with documentation, independed work, brain storm
Outcome description | Outcome symbols | Methods of verification | The class form |
Lecture:
A practical exam consisting in solving a given problem (chosen from the list of problems). Final evaluation is subject to problem analysis, presentation of problem solving algorithms, source code as well as evaluation and verification of obtained results
Laboratory:
The final grade consists of: average marks obtained during laboratories with activity and short tests to check learning progress (50% of final grade), semester project assessment (50% of final grade). The condition for passing the semester project is its implementation, preparation and delivery of the project report and its presentation within the prescribed period. Before taking the exam the student must get a pass from the exercises.
Final grade: weighted average of exam grades (60%) and exercises (40%).
[1] Bruce Eckel, Thinking in C++ Edycja Polska, Helion Gliwice, 2002.
[2] Bruce Eckel, Thinking in C++ Edycja Polska, Tom 2, Helion Gliwice, 2004.
[3] Steve Holzner, Design patterns for dummies, Willey Publishing Ing. Indianapolis 2006.
[1] Internet
The lecture should take place in a room with Internet access. Computer laboratories should take place in groups enabling independent work at the computer of every student and not more than 12 people.
Modified by dr hab. Piotr Lubiński, prof. UZ (last modification: 03-06-2020 17:00)