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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|