Module also offered within study programmes:
General information:
Name:
Object-oriented programming
Course of study:
2016/2017
Code:
MIS-1-302-s
Faculty of:
Metals Engineering and Industrial Computer Science
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
3
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Responsible teacher:
prof. dr hab. inż. Głowacki Mirosław (glowacki@metal.agh.edu.pl)
Academic teachers:
prof. dr hab. inż. Głowacki Mirosław (glowacki@metal.agh.edu.pl)
Bachniak Daniel (bachniak@agh.edu.pl)
mgr inż. Smyk Grzegorz (gsmyk@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Student powinien być zdolnym do rozwiązywania konkretnych problemów z życia codziennego przy pomocy uzyskanej wiedzy i umiejętności praktycznych oraz umieć zaproponować ich rozwiązanie z wykorzystaniem narzędzi informatycznych IS1A_K03 Execution of laboratory classes
Skills
M_U001 Student powinien mieć zdolności do samodzielnego zaimplementowania aplikacji w języku C++, usunięcia błędów i przetestowania obiektowo zorientowanego kodu aplikacji IS1A_U03, IS1A_U11, IS1A_U12 Project
M_U002 Student powinien umieć zanalizować przedstawiony mu problem pod kątem wymagań programistycznych oraz zaprojektować odpowiedni system rozwiązania zadań z niego wynikających IS1A_U16, IS1A_U10, IS1A_U12 Project
Knowledge
M_W001 Student powinien znać podstawy teorii programowania obiektowego, rozumieć sposób podejścia do obiektów oraz ich metod i pól, a także sposoby wzajemnego powiązania klas obiektów i komunikowania się poszczególnych obiektów IS1A_W07, IS1A_W11, IS1A_W04 Examination
M_W002 Student być w stanie poprawnie zdefiniować hierarchię klas, przekazywanie komunikatów pomiędzy obiektami oraz zaprojektować sprawnie działającą aplikację opartą o teorię programowania obiektowo zorientowanego. IS1A_W07, IS1A_W11, IS1A_W04 Project
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Student powinien być zdolnym do rozwiązywania konkretnych problemów z życia codziennego przy pomocy uzyskanej wiedzy i umiejętności praktycznych oraz umieć zaproponować ich rozwiązanie z wykorzystaniem narzędzi informatycznych + - + - - - - - - - -
Skills
M_U001 Student powinien mieć zdolności do samodzielnego zaimplementowania aplikacji w języku C++, usunięcia błędów i przetestowania obiektowo zorientowanego kodu aplikacji - - + - - - - - - - -
M_U002 Student powinien umieć zanalizować przedstawiony mu problem pod kątem wymagań programistycznych oraz zaprojektować odpowiedni system rozwiązania zadań z niego wynikających - - + - - - - - - - -
Knowledge
M_W001 Student powinien znać podstawy teorii programowania obiektowego, rozumieć sposób podejścia do obiektów oraz ich metod i pól, a także sposoby wzajemnego powiązania klas obiektów i komunikowania się poszczególnych obiektów + - - - - - - - - - -
M_W002 Student być w stanie poprawnie zdefiniować hierarchię klas, przekazywanie komunikatów pomiędzy obiektami oraz zaprojektować sprawnie działającą aplikację opartą o teorię programowania obiektowo zorientowanego. + - + - - - - - - - -
Module content
Lectures:

1. Przegląd podstawowych paradygmatów programowania. Środowiska programistyczne zorientowane obiektowo.
2. Pojęcie obiektu, proste przykłady obiektów, analogia do obiektów rzeczywistych. Obiektowe modelowanie dziedziny. Cechy programowania obiektowego.
3. Typy obiektów, typy definiowane przez użytkownika, statyczna kontrola typów. Cechy obiektów – atrybuty, metody i zdarzenia, sterowanie oparte na cechach, przekazywanie komunikatów, asercje.
4. Klasy i kapsułkowanie, klasy jako typy i moduły, składniki klas, wskaźnik this, konstruktory i destruktory, statyczne składniki klas. Tryby dostępu do składników klas, ukrywanie informacji, funkcje zaprzyjaźnione.
5. Wskaźniki i referencje do obiektów, wskaźniki do atrybutów klas, wskaźniki do metod klas, tablice wskaźników do składników klas.
6. Automatyczne konwersje typów, konstruktor konwertujący i operatory konwersji.
7. Operatory i ich przeciążenia – funkcje operatorowe, argumentowość operatorów, operatory jako składniki klas i zwykłe funkcje.
8. Dziedziczenie klas i interfejsy, dostęp do składników klas podstawowych, dziedziczenie a zawieranie klas, ponowna definicja cech.
8. Dziedziczenie wielokrotne i wielopokoleniowe, ryzyko wieloznaczności, klasy wirtualne, klasy abstrakcyjne.
9. Wskaźniki do instancji klas, niejawna konwersja typów, wiązanie dynamiczne, funkcje wirtualne i polimorfizm.
10. Wyjątki i ich obsługa.
11. Generyczność – szablony klas, klasy specjalizowane, ograniczona generyczność.
12. Obiekty, kolekcje obiektów, własności i metody kolekcji, indeksowanie kolekcji.
13. Metody, dodawanie metod do klas, argumenty metod, własności i metody domyślne.
14. Zdarzenia, dodawanie zdarzeń do klas, dodawanie zdarzeń do formularzy, deklarowanie i wywoływanie zdarzeń, obsługa zdarzeń obiektu.

Laboratory classes:

1. Zajęcia wprowadzające – omówienie zasad zaliczenia przedmiotu, sposobu naliczania ocen, możliwych nieobecności oraz zasad poprawy oceny z ćwiczeń
2. Ćwiczenie zasad programowania obiektowo zorientowanego – różnice pomiędzy programowaniem proceduralnym a programowaniem obiektowym.
3. Obiekty jako przedstawiciele typów danych, funkcje, wskaźniki a referencje, wektory, tablice, statyczna oraz dynamiczna alokacja pamięci, dealokacja pamięci, tablice obiektów, tablice wskaźników do obiektów.
4. Klasa a struktura, obiekty, dane, funkcje składowe, funkcje typu inline, tryby dostępu do składników klas, ukrywanie informacji, obiekty typu stałego, wskaźniki typu stałego, dane składowe typu static.
5. Konstruktory domniemane, kopiujące, parametryczne, destruktor oraz ich rola w klasie, klonowanie klas, rola wskaźnika this.
6. Funkcje zaprzyjaźnione, klasy zaprzyjaźnione, funkcje składowe klas zaprzyjaźnione z inną klasą, deklaracja przyjaźni, możliwości oraz zastosowanie,
7. Operatory – zastosowanie, przeciążenie operatorów, definiowanie funkcji operatorowych jako składników klas i jako funkcji globalnych, operatory jedno- i dwuargumentowe, operator wieloargumentowy. Operatory pre- i postdekrementacji, operatory inkrementacji, operatory operacji arytmetycznych i logicznych, operator przypisania, porównania, różności. Deklaracja przyjaźni a operatory nie będące składnikami klas,
8. Operatory wywołania funkcji, tablicy, operatory strumienia, operatory tworzenia oraz kasowania obiektów w sposób dynamiczny, operator rzutowania. Projekt łączący dwa ostatnie zajęcia.
9. Zastosowanie i rola dziedziczenia, aplikacja obejmująca tematykę dziedziczenia oraz polimorfizmu.
10. Funkcje wirtualne, niejawna konwersja typów, kontynuacja projektu z poprzednich zajęć.
11. Szablony funkcji i klas.
12. Wyjątki oraz obsługa wyjątków.
13. Graficzny interfejs użytkownika – środowiska programistyczne, termin uzupełnień.
14. Termin uzupełnień 2, odrabianie zaległości przez studentów.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 148 h
Module ECTS credits 5 ECTS
Participation in lectures 28 h
Participation in laboratory classes 28 h
Preparation for classes 30 h
Realization of independently performed tasks 30 h
Examination or Final test 2 h
Contact hours 10 h
Preparation of a report, presentation, written work, etc. 20 h
Additional information
Method of calculating the final grade:

Ocena końcowa O (zaokrąglona do jednej z obowiązujących ocen):
O = 0,5 Oz + 0,5 Oe
Oz – ocena uzyskana w trakcie ćwiczeń,
Oe – ocena uzyskana w trakcie egzaminu.

Prerequisites and additional requirements:

Zgodnie z Regulaminem Studiów AGH podstawowym terminem uzyskania zaliczenia jest ostatni dzień zajęć w danym semestrze. Termin zaliczenia poprawkowego (tryb i warunki ustala prowadzący moduł na zajęciach początkowych) nie może być późniejszy niż ostatni termin egzaminu w sesji poprawkowej (dla przedmiotów kończących się egzaminem) lub ostatni dzień trwania semestru (dla przedmiotów niekończących się egzaminem).

Recommended literature and teaching resources:

1. B. Meyer, Programowanie zorientowane obiektowo, Helion, Gliwice 2005
2. J. Grębosz, Symfonia C++, Oficyna Kallimach, Kraków 2006
3. J. Grębosz, Pasja C++, Oficyna Kallimach, Kraków 2004
4. B. Stroustrup, Programowanie. Teoria i praktyka z wykorzystaniem C++, Helion, Gliwice 2010
5. D. Chapman, Visual C++ dla każdego, Helion, Warszawa 1999
6. Microsoft Visual C++. Professional edition – programmers guide, Microsoft Corporation, Ireland 1998.
7. R. Sedgewick, Algorytmy w C++, Oficyna Wyd. RM, 1999
8. C. Dellanoy, Ćwiczenia z języka C++: Programowanie obiektowe, WNT, Warszawa, 1993

Scientific publications of module course instructors related to the topic of the module:

KSIĄŻKI
1. Głowacki M., Modelowanie Matematyczne i Symulacje Komputerowe Odkształcania Metali – Teoria i Praktyka, Wydawnictwa AGH Kraków, 2012
FRAGMENTY KSIĄŻEK
2. Głowacki M., Hojny M., Development of a Computer System for High Temperature Steel Deformation Testing Procedure, In: Simulation, Design and Control of Foundry Processes AGH Kraków, 2006, 145- 156
3. Głowacki M., Inverse Analysis Applied to Mushy Steel Rheological Properties Testing Using Hybrid Numerical-Analytical Model, In: Numerical Modelling InTech Publisher, 2012, 278- 302
PUBLIKACJE W CZASOPISMACH
4. Dębiński T., Jędrzejczyk D., Gumuła A., Głowacki M., Durak J., Parallel Computing Algorithm for Three-dimensional Thermal Model of Rolling Process, Hutnik, Wiadomości Hutnicze, 75 (4), 2008, 193- 200
5. Dębiński T., Jędrzejczyk D., Gumuła A., Głowacki M., Durak J., Parallel Computing Algorithm for Three-dimensional Thermal Model of Rolling Process, Hutnik Wiadomosci Hutnicze, 74 (4), 2008, 193- 200
6. Głowacki M., Hojny M., Inverse Analysis Applied for Determination of Strain–stress Curves for Steel Deformed in Semi-solid State, Inverse Problems in Science and Engineering, 17 (2), 2009, 159- 174
7. Gumuła A., Dębiński T., Jędrzejczyk D., Głowacki M., Artificial Intelligence Methods, Image Recognition Theory and Parallel Computation in Engineering, Hutnik− Wiadomości Hutnicze, 76 (4), 2009, 297- 302
8. Dębiński T., Głowacki M., Jędrzejczyk D., Gumuła A., Algorytm Obliczeń Równoległych dla Przestrzennego Modelu Walcowania Stali ze Strefą Półciekłą, Hutnik, Wiadomości Hutnicze, 77 (4), 2010, 181- 185
9. Hojny M., Głowacki M., Kuziak R., Zalecki W., Development of Dedicated Computer System for Gleeble 3800® Thermo-Mechanical Simulator, Lecture Notes in Engineering and Computer Science, spec. ed.,1, 2011, 1507- 1512
10. Głowacki M., Czubernat A., Visualisation of Three-dimensional Scalar Fields Using Volume Rendering Technology, Technical Transactions – 4-M (7), 2010, 147- 155
11. Dębiński T., Głowacki M., Parallel Computing Algorithm for Rolling of Slabs With Semi-solid Zone, Technical Transactions – 4-M (7), 2011, 37- 42
12. Opalinski A., Turek W., Głowacki M., Hojny M., Information Detection in Polish Web Resources Crawling Based on Stamping Industry Example, Technical Transactions 4-M(7), 2011, 401- 408
13. Dębiński T., Głowacki M., Hojny M., Parallel Computation Model of Semi-solid Steel Deformation Process, Steel Research Int, spec. ed., 2012, 763- 766
14. Hojny M., Głowacki M., Badania Plastycznosci Stali Odkształcanej w Wysokich Temperaturach, Hutnik Wiadomosci Hutnicze, 79 (4), 2012, 275- 282
15. Gumuła A., Dębiński T., Głowacki M., Automatic Approach to Microstructural Image Recognition and Analysis, Steel Research Int, spec. ed., 2012, 1331- 1334
16. Dębiński T., Głowacki M., Increasing efficiency computing of simulation rolling process with semi-solid zone tests of parallel computing, Technical Transactions 1-M(5), 2013, 43-49
17. Opaliński A., Turek W., Głowacki M., Information monitoring based on WEB resources, Technical Transactions 1-M(5), 2013, 277–284
18. Dębiński T., Głowacki M., Hojny M., Gumuła A., Woźniak D., Web system dedicated to parallel computation for modeling of mushy steel deformation, Hutnik Wiadomosci Hutnicze, 81 (2), 2014, 115–121
19. Dębiński T., Głowacki M., Hojny M., Gumuła A., Woźniak D., Web system dedicated to parallel computation for modeling of mushy steel deformation, Archives of Metallurgy and Materials, 59, 2014, 865–870
20. Mrzygłód B., Olejarczyk-Wożeńska I., Głowacki M, Opaliński A., Extracting knowledge from integrated experimental data on the ADI manufacture, Computer Methods in Materials Science, 15(2015), 85–93
PUBLIKACJE W MATERIAŁACH KONFERENCYJNYCH
21. Głowacki M., Malinowski Z., Pietrzyk M., Hajduk Z., Wcisło J., Musiał A., Computer Program for Ring Rolling Simulation, Proc. KomPlasTech 2002, 2002, 309- 318
22. Kondek T., Pietrzyk M., Głowacki M., Computer Program for Identification of the Coefficients in Phase Transformation Models, Proc. KomPlasTech 2002, 2002, 127- 134
23. Nowak T., Głowacki M., Optimal Implementation of Collaboration Environment in Metal Forming Industry Driven by Non-linear Quality Function Deployment Model, Proc. ISPE International Conference on Concurrent Engineering, 2004, 683- 688
24. Dębiński T., Głowacki M., Utility Test of Parallel Computing for Increasing Efficiency Computing of Simulation Ring Rolling Process, Proc. KomPlasTech 2005, 2005, 163- 170
25. Gumuła A., Głowacki M., Metody Szybkiej Wizualizacji Wyników Symulacji Komputerowych, Proc. KomPlasTech 2006, 2006, 69- 75
26. Głowacki M., Regulski K., Dębiński T., Knowledge Platform for the Network of Plants Processing Solid Metallurgical Waste, Proc. Iron and Steelmaking 2008, 2008, 185- 189
27. Głowacki M., Hojny M., Jędrzejczyk D., Hybrid Analytical-numerical System of Mushy Steel Deformation, Proc. ICCES International Symposium on Meshless and Other Novel Computational Methods, 2009, 27
28. Opalinski A., Turek W., Głowacki M., Romanowska-Pawliczek A., Information Extraction Support System Applied in Data Search in the Domain of Biomedical Engineering, Proc. Human Language Technologies As a Challenge for Computer Science and Linguistics : 5th Language & Technology Conference, 2011, 471- 475
29. Romanowska-Pawliczek A., Siwek A., Głowacki M., Warmuzek M., Image Recognition, Identification and Classification Algorithms in Cast Alloys Microstructure Analysis, Proc. 15th World Multi-conference on Systemics, Cybernetics and Informatics, 2011, 1- 6
30. Romanowska-Pawliczek A., Pawliczek P., Głowacki M., Sołtys Z., Innovative 3D Histogram Equalization Algorithm As an Automatic Technique Improving Visual Information Quality in Stacks of Confocal Microscope Images, Proc. ICL 11, 2011, 1
31. Romanowska-Pawliczek A., Pawliczek P., Głowacki M., Sołtys Z., A Novel 3D Histogram Equalization Algorithm for Stacks of Confocal Microscope Images, Proc. IMETI 2011 : the 4th International Multi-conference on Engineering and Technological Innovation, 2011, 50- 55
32. Głowacki M., Regulski K., Białas T., Application of Queuing Theory in the Queuing Networks Modeling of the Events Supported by the Dean’s Office at WIMiIP AGH, Proc. KomPlasTech 2012, 2012, 1- 8
33. Głowacki M., Hojny M., Computer-aided Investigation of Mechanical Properties for Integrated Casting and Rolling Processes Using Hybrid Numerical-analytical Model of Mushy Steel Deformation, Proc. ADVCOMP 2012 The Sixth International Conference on Advanced Engineering Computing and Applications in Sciences, 2012, 83- 89
34. Głowacki M., Hojny M., An inverse analysis and hybrid numerical-analytical model applied to investigation of semi-solid steel properties, Proc. ICCES symposium on meshless & other novel computational methods, Budva Montenegro, September 2012, 30
35. Głowacki M., Dębiński, Olejarczyk-Wożeńska I., Fast parallel computation algorithm in application to simulation of semi-solid steel rolling and inverse analysis of its properties, Proc. 11th International conference of numerical analysis and applied mathematics, 2013, 2179–2182
36. Jędrzejczyk D., Hojny M., Głowacki M., Development of software for the simulation of rolling steel under the coexistence of liquid and solid state, PLASTMET’ 2014, Łańcut, 25–28 listopada 2014

Additional information:

None