PROGRAMMING FOR COMPUTATIONAL CHEMISTRY
1° Year of course - First semester
Frequency Not mandatory
- 6 CFU
- 52 hours
- INGLESE
- Trieste
- Opzionale
- Oral Exam
- SSD CHIM/02
At the end of the course, the student must be able to: Understand the fundamentals of Python and Fortran programming, scientific libraries, and the role of programming in computational chemistry (D1 - Knowledge and understanding); Write, debug, and execute Python code for solving linear algebra and simple computational chemistry tasks, interpret and modify simple Fortran code (D2 - Ability to apply knowledge and understanding); Analyze outputs from computer calculations with Python as well as interpret any error that might arise during code execution (D3 - Autonomy of judgment); Apply appropriate methods to computational chemistry problems; Explain Python and Fortran code clearly, communicate its function and outcome (D4 - Communication skills); Apply the acquired programming skills to different tasks in computational chemistry, integrate scientific computing tools into their research or study (D5 - Learning skills).
Basic familiarity with computers. Prior experience with the UNIX environment is preferred but not essential.
- Practical introduction to the UNIX environment. - Basics of Fortran (variables, arrays, subroutines and functions, simple input/output). - Fundamentals of Python and scientific computing with Python (data types, control structures, functions and modules, Jupyter notebooks, Numpy, Matplotlib, debugging and profiling). - Brief introduction to Python project structure (packaging, version control, and development environments). - Writing code to solve simple problems in linear algebra as well as computational chemistry tasks for molecular modelling and quantum chemistry calculations.
Material provided by the lecturer. Programming for Computations - Python, 2nd edition, S. Linge and H. P. Langtangen, Springer (Open Access). Python for Chemists, C. Hill, Cambridge University Press. Fortran 90/95 for Scientists and Engineers, S. J. Chapman, Mc Graw Hill Education.
- Practical introduction to UNIX environment: Working with the terminal, basic command-line usage, environment variables. - Basic elements of Fortran: Overview of the language structure, variables, arrays, subroutines and functions, simple input/output operations. - Fundamentals of Python programming: Core concepts including data types and structures (strings, numbers, lists, dictionaries), control structures (loops, conditionals), functions and modules. - Elements of scientific computing with Python: Use of Jupyter notebooks for interactive coding, numerical computing and array operations with NumPy, data visualization and plotting with Matplotlib, basic debugging and code profiling for performance evaluation. - Brief introduction to Python project structure: Practices for organizing Python projects, version control with Git, using interactive development environments. - Applications in computational chemistry: Implementing simple algorithms for linear algebra and computational chemistry tasks for molecular modelling and quantum chemistry calculations.
Lectures and numerical exercises in a computer lab. Hands-on programming sessions will focus on implementing simple algorithms to solve linear algebra and basic computational chemistry problems.
To be eligible for the final exam, students must complete and submit at least 70% of the course assignments, which are based on the numerical exercises of the hands-on sessions. The final exam consists of two parts: a written test where students are required to write and execute a Python program to perform a specific task, and an oral examination focused on discussing the results of the written test and topics covered in the lectures (including Fortran programming). The final grade is expressed on a scale of thirtieths (out of 30).
Questo insegnamento approfondisce argomenti strettamente connessi a uno o più obiettivi dell’Agenda 2030 per lo Sviluppo Sostenibile delle Nazioni Unite.