Introduction to Data Analytics and Machine Learning with Python  Short Courses

Course Information

Start DateStart TimeDurationCostCourse CodeApply
Wednesday 4 October 2017 18:30 - 20:30 10 weekly classes £490.00 CS3611 Course Full
Wednesday 17 January 2018 18:30 - 20:30 10 weekly classes £490.00 CS3611 Course Full
Wednesday 2 May 2018 18:30 - 20:30 10 weekly classes £490.00 CS3611 Course Full

Course Content

For students who already have a sound working knowledge of Python, this Introduction to Data Analytics and Machine Learning with Python 3 short course is aimed at opening the vast world of data analytics and machine learning to non-technical people without prior experience of that field, using the Python 3 programming language.

You will learn about the state of the art in data analytics and machine learning by leveraging the most widely used Python libraries, which are developed and maintained by big companies like Google, Facebook and Twitter. As both data analytics and machine learning fields are quite vast and fast expanding, we will focus our efforts on grasping the foundations. The foundations which we will go through could enable you to get a junior position as a data analyst and/or machine learning engineer.

We are happy to be teaching this course in Python 3 as this is the last iteration of the Python language and thus all future updates to the language will come to this release. It will therefore be useful to learn the tools and techniques we teach in this course in Python 3.

Libraries that will be taught in this course:

  • Jupyter Notebook
  • NumPy
  • SciPy
  • matplotlib
  • pandas
  • Scikit-learn

The course is taught over 10 weeks in the evenings, allowing you to continue with full-time employment. Studying one of our short courses is a fantastic way to learn new skills and can be used as a great way to further your career.

By becoming a short courses student, you will also gain access to City's student services including our library facilities.

Tutor Info

Cosmin Stamate started programming on a ZX Spectrum clone when he was 8. Self taught, he has been consulting in several areas of software engineering, from programming to architecture, and web development for over 10 years. He has a MSc in Intelligent Technologies from Birkbeck, University of London where he took a particular interest in in artificial neural networks and evolutionary algorithms.

Some of his industry roles include data analyst (on a consulting basis) for Tesco and Schroders. Currently he is working towards a hybrid PhD which bridges the Department of Computer Science and the Department of Psychological Sciences at Birkbeck; the PhD is focused on developing novel deep learning algorithms that model certain cognitive and behavioural processes.

He is also an active member of the Centre for Brain & Cognitive Development and Birkbeck Babylab where he applies state of the art machine learning on electroencephalogram data.


- Applicants must have successfully completed the Introduction to programming with Python or have Python to a similar standard.

- As this is an introductory course students are not expected to have any data analytics or machine learning experience.

- Knowledge of mathematical concepts such as those presented in the website ( is essential.

English Requirements

Applicants must be proficient in written and spoken English.

What will I learn?

  • Jupyter notebook: a quick tour of the data engineers IDE of choice.
  • Introduction to numpy: N-dimensional arrays, broadcasting functions, linear algebra abstractions and random number generators.
  • Exploratory data analysis with pandas: manipulating data: loading, storing, cleaning, transforming, merging, reshaping.
  • Visualising and plotting with matplotlib: generate plots, histograms, power spectra, bar charts, errorcharts, scatterplots. Visualize and understand different types of data.
  • Introduction to scipy with statistics, is mainly focused at providing a quick introduction to the scipy.stats package. We will be looking at distributions, fitting distributions and random numbers.
  • Introduction to machine learning concepts with scikit-learn, training and evaluating learning algorithms. We will be looking at: decision trees, perceptrons, support vector machines, and neural networks.
  • Scikit-learn delving deeper: using data validation and cross-validation. Also some other methods to improve the accuracy of your learning algorithms

Information about the libraries taught in this course:

  • Jupyter Notebook: a web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more
  • NumPy: the fundamental package for scientific computing with Python, which contains useful things like: a powerful N-dimensional array object; sophisticated (broadcasting) functions; useful linear algebra, Fourier transform, and random number capabilities. We will also be using it as an efficient multi-dimensional container of generic data.
  • SciPy: provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization. This library builds on top of NumPy and makes heavy use of all the features that we will be learning in NumPy.
  • matplotlib: a plotting library which produces publication quality figures and can also be used to do image manipulation. You can generate plots, histograms, power spectra, bar charts, error charts, scatter plots, with just a few lines of code.
  • pandas: is an easy to use data structuring and data analysis library which we will be using. It has advanced data manipulation capabilities and can use data objects in the same way we use databases. It can also import and export data from a vast number of formats.
  • Scikit-learn: built on top of NumPy, SciPy, and matplotlib this is one of the most widely used machine learning libraries in industry and research. It covers a truly impressive number of machine learning techniques and methods, some of which include: classificatio, regression, clustering, dimensionality reduction, model selection, data preprocessing, etc.

Teaching and Assessment

Informal assessment through optional weekly assignments, which will build into a final project that will solve a real world problem using real world data, applying state of the art techniques taught during the course.

Application Deadline: