The School of Information is UC Berkeley’s newest professional school. Located in the center of campus, the I School is a graduate research and education community committed to expanding access to information and to improving its usability, reliability, and credibility while preserving security and privacy.

The School of Information's courses bridge the disciplines of information and computer science, design, social sciences, management, law, and policy. We welcome interest in our graduate-level Information classes from current UC Berkeley graduate and undergraduate students and community members. More information about signing up for classes.

Data ScienceW200

Python Fundamentals for Data Science

3 units

Course Description

This fast-paced course gives students fundamental Python knowledge necessary for advanced work in data science. Students gain frequent practice writing code, building to advanced skills focused on data science applications. We introduce a range of Python objects and control structures, then build on these with classes on object-oriented programming. A major programming project reinforces these concepts, giving students insight into how a large piece of software is built and experience managing a full-cycle development project. The last section covers two popular Python packages for data analysis, Numpy and Pandas, and includes an exploratory data analysis.

Student Learning Outcomes

Be able to design, reason about, and implement algorithms for solving computational problems.

Be able to generate an exploratory analysis of a data set using Python.

Be able to navigate a file system, manipulate files, and execute programs using a command line interface.

Be able to test and effectively debug programs.

Be fluent in Python syntax and familiar with foundational Python object types.

Be prepared for further programming challenges in more advanced data science courses.

Know how to read, manipulate, describe, and visualize data using the Numpy and Pandas packages.

Know how to use Python to extract data from different type of files and other sources.

Understand how to manage different versions of a project using Git and how to collaborate with others using Github.

Understand the principles of functional programming.

Understand the principles of object-oriented design and the process by which large pieces of software are developed.