loader image
Skip to main content

Section outline

        • In this course, we will teach you how to use a tool that is called "Jupyter Notebook". The reason to learn this tool is that it is a web-application that we will use throughout the learning on how to do data analysis with Python (the programming language that we will learn in the next lesson). Once you know how to use Jupyter Notebook at a basic level, we can go on to teach you programming for data analysis. Let's start

          Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code (that means that you write programming code and then run or execute it in the browser and see the results), equations, visualisations, and narrative text. It was originally developed as part of the IPython project and has since become a cornerstone tool in data science and interactive computing.

          Key Features and Benefits:

          1. Interactive computing: Jupyter Notebooks allow you to write and execute code in an interactive environment. This means you can run code cells one at a time and immediately see the results, making it easier to debug and understand code.
          2. Support for multiple languages: Although Jupyter was initially designed for Python, it supports over 40 programming languages, including R, Julia, and Scala (other programming languages that are being used in data science), through various kernels. This makes it a versatile tool for different types of projects.
          3. Rich text capabilities: Notebooks support Markdown, which is a form of writing text that the computer can interpret and turn to formatted text, images, links, and equations alongside your code. This is particularly useful for creating comprehensive documentation of the work that you carried out and tutorials (like this one!).
          4. Visualisation integration: Jupyter integrates well with popular data visualisation libraries like Matplotlib, Seaborn, and Plotly (we will learn some of them in our 5th lesson), allowing you to create interactive and static plots directly within the notebook.
          5. Extensibility: The Jupyter ecosystem includes a variety of extensions and plugins that can enhance functionality, such as interactive widgets, code formatting tools, and more.
          6. Sharing and collaboration: Jupyter Notebooks can be easily shared and published. They can be exported to different formats such as HTML, PDF, and slideshows. Additionally, platforms like GitHub (for storing code) and nbviewer provide straightforward ways to share notebooks with others.
          7. Reproducibility: Because notebooks combine code, data, and narrative text in a single document, they promote reproducible research. Anyone with access to the notebook can reproduce the analysis and results step-by-step.
          8. Educational use: Jupyter Notebooks are widely used in education for teaching programming, data science, and other subjects. Their interactive nature makes them an excellent tool for creating hands-on learning experiences. This also means that you can find other people around who know these tools and can help you if you are stuck. 

          Screenshot of a real Jupyter Notebook

          This dynamic and interactive environment is particularly powerful for educational purposes, especially in programming and data visualisation courses.

          One of the primary advantages of using Jupyter Notebooks in education is the interactive learning experience they provide. Unlike static documents or textbooks, Jupyter Notebooks allow learners to write and execute code in real-time. This immediate feedback loop is crucial for learning programming, as it helps learners quickly identify and correct mistakes, enhancing their understanding and retention of the material.

          The ability to use Markdown cells alongside code cells allows for comprehensive documentation within the notebook. You can integrate explanations, notes, and visual aids directly into their notebooks, making learning materials more engaging and easier to follow. Additionally, Jupyter Notebooks support a wide range of multimedia content, including images, videos, and interactive visualisations, which can help illustrate complex concepts more effectively. Moreover, another significant benefit is resource efficiency. Since Jupyter Notebooks can be accessed and run through a web browser, learners only need internet access to use them. They do not require powerful personal computers, as the computational resources are provided by the server hosting the JupyterHub. This accessibility ensures that all learners, regardless of their hardware capabilities, can participate fully in the coursework.

          For data visualisation courses, as in our case, Jupyter Notebooks are invaluable. They integrate seamlessly with libraries like Matplotlib, Seaborn or GGPlot, allowing learners to create and interact with visualisations in real-time. This hands-on approach to learning data visualisation techniques not only enhances understanding but also helps learners develop practical skills they can apply in real-world scenarios.