Scientific Python Fall 2017/2018

Course Description: 

IMPORTANT: This course can accommodate a maximum of 30 students. Priority is given to Mathematics students (Master and PhD) and Network Science PhD students. All other students are selected based on the entry test score. Students that take the course for grade have priority over auditors. All students, both registered and in the waiting list must take the entry test on the first day.

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. As this is currently the only Python course offered at CEU, it tries to fit the needs of students at different programming levels. If you are already a good programmer, this course will be probably too easy for you. If you have never programmed in your life, this course might be very fast-paced, so consider complementing it with tutorials from other sources, like those of code-academy. However, we will do our best to adapt classes and exercises based on the student feedback during the tutorials and hands-on sessions.

We expect you to come to lectures and labs, ask questions when you get stuck, do teamwork (yes, even if you are the best in the class and able to complete tasks on your own!) and develop a project taking advantage of tutorials. The course will have an intensive schedule, taking place mostly during the first six weeks 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

- Basic web scraping

- Use of web APIs

- Use of special python packages, like networkx

- Performing basic data mining and machine learning analysis with Scipy and Scikit-learn




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

The entry test applies to everyone who wants to take the course, for grades or audits. As a summary, this is the priority list that needs to be implemented:

1) students in the PhD in network Science and in Mathematics (Master and PhD), taking the course for grade

2) All other students that take the course for grade, based on the entry test, up to 30 students in total

3) If there places left, all students that take the course for audit, based on the entry test.

File attachments: