| Individual course details | ||||||||||
| Study programme | Theoretical and experimental physics | |||||||||
| Chosen research area (module) | ||||||||||
| Nature and level of studies | Undergraduate Studies | |||||||||
| Name of the course | Computer programming for physicists | |||||||||
| Professor (lectures) | Prof Zoran Nikolić | |||||||||
| Professor/associate (examples/practical) | ||||||||||
| Professor/associate (additional) | ||||||||||
| ECTS | 2 | Status (required/elective) | Required | |||||||
| Access requirements | ||||||||||
| Aims of the course | Getting acquainted with basic numerical algorithms. Learning the C ++ programming language and graphic display of results | |||||||||
| Learning outcomes | Solving numerical problems in physics. Creating graphical tools for automatic processing of measurement results | |||||||||
| Contents of the course | ||||||||||
| Lectures | 1. Basics of the C ++ programming language; 2. Operations with input and output data streams; 3. Create and control graphic templates for windows and user dialogues. System dialogues and their use and control; 4. Elements of object-oriented programming. Creating classes for numerical calculations in physics; 5. Systems of linear algebraic equations; 6. Iterative procedures and zero functions; 7. Flows in the program - threads; 8. Numerical Differentiation, Integration and Differential Equations; 9. Data processing basics - smooth, interpolation and approximation; 10. Monte Carlo methods in physics; 11. Elements of computer graphics in the Windows environment; 12. GDI programming - graphical presentation of measurement results; 13. Algorithms for solving basic equations in physics; 14. Processes. 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 | W. H. Press, S.l A. Teukolsky, W. T. Vetterling, B. P. Flannery, Numerical Recipes in C, The Art of Scientific Computing, Second Edition, Cambridge University Press, (1992); | |||||||||
| 3 | C. Petzold, Programming Windows, Microsoft Press, (1998). | |||||||||
| 4 | ||||||||||
| 5 | ||||||||||
| Number of classes (weekly) | ||||||||||
| Lectures | Examples&practicals | Student project | Additional | |||||||
| 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 | |||||||||