# Pedagogy and Technology#

The technology used was chosen to support the needs and goals of the division Computing, Data Science and Society (CDSS). In order to make the courses accessible to students of all majors, we wanted to use technology that was simple but powerful. We did not want students to deal with the frustrations of setting up and maintaining a development environment, which are often experienced in introductory computing courses. In Data 8, students do not have to waste any time on installation or setup, which means they are able to write and run code from the start.

## Jupyter Notebooks and JupyterHub#

Jupyter Notebooks and JupyterHub are the tools that enable this student experience. You may have experience using Jupyter Notebooks on your own computer. Students in CDSS run their notebooks on a JupyterHub in the cloud. Python and common packages are preinstalled on each student’s account, which is created when the student first logs in. A lot of work goes into the maintenance of the infrastructure and many students, TAs, and staff members are regularly monitoring and fixing issues that come up.

## The datascience Package#

In addition to the computing infrastructure, another piece of the technology is the datascience package. While traditional libraries such as pandas and matplotlib are powerful, they are also quite complicated, and the verbose code and documentation can intimidate those who are new to programming. The datascience Python package was written for use in Berkeley’s Data Science courses and aims to provide a simple but powerful set of tools for introductory students. Students that are in or have taken Data 8 will be familiar with this package as it is used throughout the course.

The package contains useful functionality for investigating and graphically displaying data. One key component of the datascience package is the Tables abstraction, which is similar to a pandas dataframe. The package also contains useful functionality for drawing maps and plotting.

## Other Tools#

Other tools used in CDSS courses, such as OK, interact links, and the interactive Data 8 textbook, were also designed with the goal of reducing the technical burden on students. These tools simplify steps of the student workflow, such as downloading and uploading files, which can often be tedious. Using these tools, especially in introductory classes, allows students to focus on the core concepts in the class. These tools also act as a stepping stone, allowing students to build up the confidence to use more advanced tools, such as Git and pandas.

We are very excited about the technology used in CDSS courses and have shared our approach with larger development and educational communities. Most recently, we spoke at JupyterCon 2017 about some of this technology.

## Other Technology#

For notes on class website tools, please see Logistics, rooms, and technology.