| Individual course details | ||||||||||
| Study programme | Applied and Computer Physics | |||||||||
| Chosen research area (module) | ||||||||||
| Nature and level of studies | Undergraduate Studies | |||||||||
| Name of the course | Object oriented and application programming | |||||||||
| Professor (lectures) | Prof Zoran Nikolić | |||||||||
| Professor/associate (examples/practical) | Prof Zoran Nikolić, Miloš Skočić | |||||||||
| Professor/associate (additional) | ||||||||||
| ECTS | 5 | Status (required/elective) | Required | |||||||
| Access requirements | Programming | |||||||||
| Aims of the course | Introduction to modern methods of object-oriented and applied programming in interactive graphical environment. | |||||||||
| Learning outcomes | Acquiring practical knowledge necessary for the development of complex applications, based on the development and re-use of their own code, as well as the use of functional libraries. Application of STL library in solving complex problems in processing large quantities of complex data types, with limited hardware resources. Development of algorithms based on STL library that manipulate complex data types in the data processing in physics. | |||||||||
| Contents of the course | ||||||||||
| Lectures | 1. Overview of the C ++ language. C ++ in the development of numerical applications in physics. 2. Functions. Recursion. Examples of numerical iterative procedures with and without recursion 3. Dynamically allocated objects and their significance. Data processing in physics using dynamically created objects. 4. Overloading functions. Function Templates. 5. Management of Exceptions. Exceptions and problems of program design. Control the execution of iterative and simulation processes in physics. 6. Program-based programming. Class. Initialization and destruction. 7. Overloaded operators and user-defined conversions. Class templates. The importance of working with class templates in computer physics. 8. Virtual functions. Multiple and virtual inheritance. Multiple inheritance in the development of complex applications in computer physics. 9. STL library and its generic algorithms. 10. Abbreviated types of containers. Vector, list, map, and set. Iterators. 11. Application of the STL Library in Physics. 12. WIN32 SDK - API. Creating windows and the accompanying API function. Keyboard input. Standard controls. Common controls. 13. Memory management. Files and memory mapping files. Graphics Device Interface. 14. Processes and threads. Data exchange between programs. Automation of work in packages Euler, GnuPlot and Tex. 15. Libraries with run-time access. Developing applications in physics using GSL, FFTW, SymbolicC ++, and OpenCV libraries. | |||||||||
| Examples/ practical classes | Computational exercises follow the lectures. | |||||||||
| Recommended books | ||||||||||
| 1 | S. B. Lippman, J. Lajoie, C++ Primer, Addison-Wesley, (2000) – Prevod: C++ Izvornik, CET Computer Equipment and Trade, Beograd, (2000). | |||||||||
| 2 | C. Petzold, Programming Windows, Microsoft Press, (1998). | |||||||||
| 3 | J. Richter, Advanced Windows : the developer’s guide to the Win32 API for Windows NT and Windows 95, Microsoft Press, (1995). | |||||||||
| 4 | ||||||||||
| 5 | ||||||||||
| Number of classes (weekly) | ||||||||||
| Lectures | Examples&practicals | Student project | Additional | |||||||
| 2 | 2 | |||||||||
| Teaching and learning methods | Lectures and exercises, consultations, homeworks. | |||||||||
| Assessment (maximal 100) | ||||||||||
| assesed coursework | mark | examination | mark | |||||||
| coursework | 10 | written examination | 20 | |||||||
| practicals | oral examination | 40 | ||||||||
| papers | ||||||||||
| presentations | 30 | |||||||||