Scientific Python

ECTS credits: 
Course Description: 

Brief introduction to the course:

This course will provide a comprehensive, fast-paced introduction to Scientific Python. The course will run with theoretical classes, hands-on sessions and tutorials. We expect you to come to lectures and labs, ask questions when you get stuck, and develop a project taking advantage of tutorials. The course will have an intensive schedule, taking place mostly during the first month of the term.


The goals of the course:

The overarching goal is to equip students with enough programming experience to start working in any area of computation and data-intensive research. This course will lay a foundation from which new tools and techniques can be explored.

Learning Outcomes: 


The learning outcomes of the course:

By the end of the course, students will have experience with techniques which are vital to effective scientific research, including:

- The basic syntax and use of Python as a scientific tool, including writing and executing scripts to automate common tasks, using the IPython interpreter for interactive exploration of data and code, and using the Jupyter notebook to share and collaborate.

- Loading data from a variety of common formats

- Manipulating data efficiently with Numpy

- Visualizing data with Matplotlib

- Performing basic data mining and machine learning analysis with Scipy

- Basic concepts of Natural Language Processing (NLP)


Students are expected to attend lectures and hands-on sessions, to hand in one assignment during the course and to develop a project, alone or in pairs, during the entire term.



-          Attendance of the classes and hands-on sessions: 30% of the final grade

-          Assignments: 30% of the final grade

-          Final project: 40% of the final grade


Basic programming skills in any programming language (e.g. familiarity with logical statements, for loops, with different variables), Basic statistics