Skip to main content

«Chemistry unITed»: Strengthening of the Computational Competencies at D-CHAB

Computational competencies Degree programme developments
Different programming languages are currently used in the chemical study programs at D-CHAB. To improve the computational competencies of the students in a long-term manner, we aim to align and strengthen the teaching of informatics by converting to Python as the programming language and introducing a new course on cheminformatics.

Abstract

With the increasing digitalization and the fast rise of artificial intelligence, programming is becoming more and more important in the natural sciences, with Python being one of the most popular languages in many areas. Python has the added advantage that it was designed to be easy to teach and learn. To account for these developments and to prepare the students optimally, we will convert the teaching of informatics in the chemical curricula at D-CHAB from C++ / R to Python, such that the courses build upon in each other and the gained know-how can be applied and deepened in the practical courses. With this, the advanced courses that use Python can directly build upon this knowledge (i.e., an introduction is no longer needed). In addition, we will strengthen the computational competencies in chemistry via a new elective course about cheminformatics at the Bachelor level, which will include practical applications of Python for chemistry tasks. The programming language C++, which is still highly relevant for method development in computational chemistry, can be learned in a new specialized elective course at the Master level.

Project goals

(1) Unification of the programming language (Python) in the different courses and practical courses such that programming skills are building up across the courses and the students can profit from the knowledge from the early (practical) courses for the advanced courses. This will save time in the advanced courses as introductions are no longer needed.
(2) Strengthening of informatics in chemistry: New elective course about cheminformatics with practical applications (for 5th semester Bachelor students). This course will be designed for a broader audience than the current course «Algorithms and Programming in Chemistry». The focus will be on the application of Python to tasks in chemistry.
(3) The current elective course «Algorithms and Programming in Chemistry» will be moved to the Master level and will be designed primarily for students specializing in computational chemistry. C++ will be kept as the programming language as it is highly relevant for method development in computational chemistry and cheminformatics. The focus of the course will be even more on algorithms and learning of advanced programming skills (e.g., with more time for practical exercises). Knowledge of Python will serve as a good basis for learning C++ as a second programming language.
(4) Once the students have the necessary knowledge in Python programming, Python based exercises (with Jupyther Notebooks) can also be introduced in non-informatics related courses (e.g., organic chemistry, physical chemistry, mathematics).

Effects of the project

– For the students: Thanks to the conversion and unification to Python, students will build up their programming skills directly from the first semester onwards. The students can profit from the knowledge and training gained in the early courses and practica for the advanced courses. By focusing on Python, it will be possible for a large number of students, who do not specialise in computational chemistry, to gain deeper knowledge in this programming language.
– For lecturers and teaching assistants: Using Python in all courses and practica will save time in the advanced courses because an introduction into the programming language is no longer needed. Thanks to the availability of Jupyter notebooks it is possible to introduce Python based exercises also in non-informatics related courses in a straightfoward manner (e.g., organic chemistry, physical chemistry, mathematics).
– For the study program: Continues build-up of programming skills and computational competencies throughout the study program with application of the gained knowledge in the practical courses.