Scientific Python

Academic Year: 
Course Code: 
MATH 5016
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 proje ct 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 student s 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: 

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 exploratio n 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 visualization with Matplotlib

- Performing basic data mining and machi ne learning analysis with Scipy

- Basic concepts of Natural Language Processing (NLP)


Course Requirements/Assessment

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: 40% of the final grade

Assignment : 20% of the final grade

Final project: 40% of the final grade

Final Project

For the final project, students will have to apply and show proficiency with the tools studied during the course. Possible projects will include, but will not be limited to: the analysis of a dataset, implementation and application of an algorithm, development of an interactive tool. A number of options for projects will be suggested in class. The students will also be free to design their own project within the guidelines that will be provided in the lecture.


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