Universität Wien

260027 VU Introduction to C/C++ programming for Physicists (2025S)

7.00 ECTS (4.00 SWS), SPL 26 - Physik
Continuous assessment of course work

Registration/Deregistration

Note: The time of your registration within the registration period has no effect on the allocation of places (no first come, first served).

Details

max. 25 participants
Language: English

Lecturers

Classes (iCal) - next class is marked with N

  • Monday 03.03. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 05.03. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 10.03. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 17.03. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 19.03. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 24.03. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 26.03. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 31.03. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 02.04. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 07.04. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 09.04. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 30.04. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 05.05. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 07.05. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 12.05. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 14.05. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 19.05. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 21.05. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 26.05. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 28.05. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 02.06. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 04.06. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 11.06. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 16.06. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Wednesday 18.06. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02
  • Monday 23.06. 15:00 - 16:30 Seminarraum 18 Kolingasse 14-16, OG02

Information

Aims, contents and method of the course

The course will provide an introduction to high-level programming in C/C++. These "siblings" languages remain the most popular choice for the development of scientific software involving intensive calculations, thanks to the combination of their high computational performance, flexibility and large available resources, which include development tools, documentation, algorithms and libraries. Therefore, C/C++ programming is an essential knowledge for any Physicist facing the development of demanding computing codes, either from scratch or by customization of existing libraries.

The course will provide a broad overview of fundamental aspects of software development in C/C++:
* Compilation, debugging, code documentation and version control
* C syntax and fundamentals of procedural programming
* C++ syntax and fundamentals of object-oriented programming and templates
* AI assisted programming

The contents will remain at an introductory level, providing the students with a broad perspective that will serve as a basis for further deepening into those topics more relevant for their specialty. Several basic aspects (e.g., working in a command-line shell, knowledge of elemental procedural flow structures) are covered in the winter semester course 260102 VO Programming for Physicists and will not be explained in detail here. Therefore, for students with no previous knwoledge of programming it is strongly recommended to complete that course prior to undertake this one.

The course will include two kinds of session blocks:
* Lectures on fundamental concepts, language syntax and programming techniques
* Practical hands-on sessions in which the students will perform coding exercises and develop small projects after the topics introduced in the lectures

The students are expected to work in their own laptops. The course lectures and exercises will be based on the usage of an up to date version of the free and open source integrated development environment Visual Studio Codium (fully compatible with Microsoft VS Code), the GNU C/C++ compilers (version 12 or later), the GNU debugger (gdb, version 13 or later) and up to date versions of Git and Doxygen.

Assessment and permitted materials

The assessment will be performed by two means:
* Lightning (short) tests on the concepts introduced in the lectures
* Programming exercises applying those concepts

Learning programming is mainly an accumulation of applied unconstrained practice. Therefore, limiting the aids will not be particularly enforced.

Minimum requirements and assessment criteria

Minimum requirements for positive assessment:
* Attendance to the first session (in case of not justified absence, the sudent will be de-registered)
* Less than 20% of unjustified absences from the sessions
* To achieve at least 50% of the points of the short tests
* To achieve at least 50% of the points of the coding exercises

The final grade will be given by the fraction of total points obtained from short tests and coding exercises:
* Grade 1: at least 87.5% of the points
* Grade 2: at least 75% of the points
* Grade 3: at least 62.5% of the points
* Grade 4: at least 50% of the points
* Failed: less than 50% of the points

Examination topics

Concepts introduced in the lectures. Eager practice of programming exercises.

Reading list

Slides/lecture notes used in the lectures. Many online references and resources will be provided during the course. Some examples:

* https://www.learncpp.com
* https://www.cprogramming.com
* https://www.cppreference.com

Association in the course directory

ERGB

Last modified: Fr 28.02.2025 11:06