Software and data make the world go round. Learn programming, to analyse and visualise open data, with this free online course. This hands-on course will teach you how to write your own computer programs, one line of code at a time. You’ll learn how to access open data, clean it and analyse it and to produce visualisations. You will also learn how to write up and share your analyses, privately or publicly.
You will learn to code in Python, a widely used programming language across all disciplines, due to its support for scientific and engineering libraries and visualisation tools, and wide range of development tools.
You will write up analyses and do coding exercises using the popular Jupyter Notebooks platform, which allows you to see immediately the result of running your code and helps you identify – and fix – any errors more easily.
You will look at real data from the World Health Organisation, the World Bank and other organisations. You’ll be encouraged to discuss the data and your analyses with your fellow learners, and to build a community of researchers around these and other datasets.
What topics will you cover?
- Python: variables, assignments, expressions, basic data types, if-statement, functions
- Programming: using Jupyter Notebooks, writing readable and documented code, testing code
- Data analysis: using pandas to read CSV and Excel files, to clean, filter, partition, aggregate and summarise data, and to produce simple charts
What will you achieve?
- Demonstrate an understanding of basic programming concepts.
- Develop an awareness of open data sources as a public resource.
- Using a programming environment to develop programs.
- Produce and write simple programs to analyse large bodies of data and produce useful results.
The course does not require any knowledge of statistics, but you need to have basic numeracy skills, like writing arithmetic expressions, using percentages and understanding scientific notation. If you wish to brush up on your numeracy skills, we recommend the FutureLearn course Basic Science: Understanding Numbers from The Open University.
Please note: you will need access to a desktop or laptop computer on which you can install software. The software is free and there are versions available for Windows, Mac and Linux platforms. You will receive installation instructions via email before the course starts.
You will need about 3 GB of free disk space to download and install the software, and to store datasets that will be provided in the course.
You will need to be proficient in basic computer tasks, like creating folders, downloading files and copying them to specific folders, etc. In terms of accessibility, you will be asked to use your web browser and to type code.
Learn everything you need to know to get started building a MongoDB-based app. This course will go over basic installation, JSON, schema design, querying, insertion of data, indexing and working with the Java driver. In the course, you will build a blogging platform, backed by MongoDB.
Learn everything you need to know to get started building a MongoDB-based app. This course will go over basic installation, JSON, schema design, querying, insertion of data, indexing and working with the Python driver. We will also cover working in sharded and replicated environments. In the course, you will build a blogging platform, backed by MongoDB. A brief Python introduction is included in the course.
Learn Ruby programming language basics, the Ruby on Rails Model-View-Controller (MVC) development framework and software engineering fundamentals. This intermediate computer programming course uncovers how to code long-lasting software using highly-productive Agile techniques to develop Software as a Service (SaaS) using Ruby on Rails.
In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.
Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing.
In this course you will learn how to apply the functional programming style in the design of larger applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world.
The primary topics in this part of the specialization are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), and randomized algorithms (QuickSort, contraction algorithm for min cuts).
MOOCs – Massive Open Online Courses – enable students around the world to take university courses online. This guide, by the instructors of edX’s most successful MOOC in 2013-2014, Principles of Written English (based on both enrollments and rate of completion), advises current and future students how to get the most out of their online study, covering areas such as what types of courses are offered and who offers them, what resources students need, how to register, how to work effectively with other students, how to interact with professors and staff, and how to handle assignments. This second edition offers a new chapter on how to stay motivated. This book is suitable for both native and non-native speakers of English, and is applicable to MOOC classes on any subject (and indeed, for just about any type of online study).