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