The objective of the course is to introduce students to the (i) basis of scientific programming and UNIX environments (ii) to the writing of programs and scripts in the Python programming language and (iii) to the application of scientific programming to case research studies in Chemistry.

The first part of the course (10 hours) aims at setting the basis for the design of algorithms for simple programs. The basic concepts treated are listed below.

  • The bash terminal and basic instructions: listing files, creating and exploring directories, running programs etc.

  • Flowcharts and basic instructions: I/O, processes, decisions.

  • Logical connectors.

  • Loops, counters and accumulators.


The second part of the course (18 hours) is devoted to the application of the concepts acquired in the first part to the writing and execution of python scripts and programs. Below a list of key concepts.

  • Variables, expressions and statements.

  • Strings, lists, dictionaries and indexes.

  • Principles of object programming.

  • Functions and classes.

  • File management.

  • Libraries for the management of matrices and tables (e.g. NumPy).

  • Techniques for data visualization and data analysis (the pandas library).


The third part of the course (8 hours) is devoted to the application of the programming skills acquired to scientific case studies. The subject may change from year to year to match the needing of other teaching units.

At the end of the course, the students are expected to be able to design and write programs and scripts in Python, applying them to case studies of scientific interest.