Python Resource Guide

Data Lab Resources

  • Live Workshops – The Data Lab offers a wide range of live workshops, including several Python-related offerings.
  • Notebooks on GitHub – Developed by the Data Lab for use in live workshops or as self-guided tutorials.

Tufts University Courses

These are courses that have been known to either teach or use Python.
Please see departmental listings for details and SIS for current or future offerings.

  • CEE-0132/DS-0143/ME-0173: Data Science for Sustainability
  • CHBE-0039: Applied Numerical Methods
  • CS-0010: Computer Science for All
  • CS-0052/CLS-0091: Intro to Digital Humanities
  • CS-0205/DS-0205: Principles of Data Science in Python
  • DATA-0201A: Introduction to Python for Data Analysis
  • DATA-0201B: Python for Machine Learning
  • EM-0206: Introduction to Data Analytics
  • EM-0213: Advanced Topics in Data Analytics
  • ES-0002: Introduction to Computing in Engineering
  • MATH-0087: Mathematical Modeling
  • PSY-0110: Computer Programming for Psychology
  • UEP-0237: Urban Analytics and Visualization
  • UEP-0239: Geospatial Programming with Python
  • UEP-0294: Data Science for Urban Sustainability

Udemy Courses

Tufts provides all students, faculty, and staff with free access to Udemy, an online learning platform with high-quality on-demand video-based courses. To access the platform, navigate to tufts.udemy.com, click on Continue with SSO, and then log in with your Tufts credentials.

  • Python Complete Masterclass for Beginners – A very extensive Python course that contains over 25 hours of on-demand video lectures and 50 coding exercises. The course starts off with the absolute basics and slowly progresses to cover more advanced topics.
  • Automate the Boring Stuff with Python Programming – A very practical introduction to Python that is based on a namesake book and taught by the author. Covers all basic Python features, but focuses heavily on string manipulation, working with files, and automation.

External Resources

The following resources are not affiliated with or endorsed by Tufts University.

Comprehensive Guides 🔝

Self-Guided Tutorials 🔝

  • Kaggle Micro-Courses – An extensive set of self-guided courses designed to teach you everything you need to know about Python for data science, from basic Python commands to advanced machine learning techniques. The courses include programming exercises with hints, answers, and validation.
  • The Python Tutorial – The official Python tutorial. Designed to give you a thorough overview of the built-in capabilities of Python.
  • Google’s Python Class – A set of written materials, lecture videos, and numerous coding exercises designed to introduce Python to people with some previous coding experience.
  • W3Schools Python Tutorial – While intended for people looking to use Python for web development, this extensive straight-to-the-point tutorial is suitable for everyone looking to get a thorough introduction to Python. Includes a lot of options to run and modify demo code right from your web browser.
  • Software Carpentry Lessons – The Software Carpentry Foundation provides open access to the materials used to teach various Software Carpentry workshops. While these materials are intended to be covered in an instructor-led workshop, they are also quite useful for independent learning.

Free Online Books 🔝

  • A Whirlwind Tour of Python – A fast-paced introduction to essential features of Python, aimed at researchers and developers with some previous programming experience, intending to use Python for data science and/or scientific programming. Serves as an introduction to the Python Data Science Handbook.
  • Python Data Science Handbook – A deep dive into using Python for data science that covers everything from data manipulation and visualization to machine learning. Serves as a sequel to A Whirlwind Tour of Python and requires a solid understanding of Python basics.
  • Automate the Boring Stuff – A very practical introduction to Python intended for those who wish to make their computer do things for them. Covers all basic Python features, but focuses heavily on string manipulation, working with files, and automating tedious daily tasks.
  • A Byte of Python – A brief beginner’s guide to Python that provides an introduction to the most basic built-in functionalities of Python.
  • Python for You and Me – An extensive introduction to Python intended for programmers new to the language with a focus on object-oriented programming and application development.

Environment Setup and Management 🔝

This section covers the setup and management of your Python computing environment, including initial installation and package management using virtual environments.

Command-Line Syntax 🔝

Use of various command-line interfaces is often required for installing Python packages, managing virtual environments, and troubleshooting common issues. Hence, it is highly recommended you familiarize yourself with the basic command-line syntax specific to your system.

  • Windows:
    • Windows Command Prompt in 15 Minutes – Although originally written as a quick introduction to Windows command-line syntax for a Java course at Princeton University, this resource is useful for anyone looking to get started with the Windows Command Prompt. Just try to do your best to ignore the Java-specific aspects where needed.
    • Windows Command Line Cheat Sheet [PDF] – A comprehensive pocket reference guide from the SANS Institute that covers all the most useful Windows commands.
    • Command Prompt Cheat Sheet [PDF] – A very compact cheat sheet covering the basics of Windows Command Prompt syntax.
  • MacOS/Linux:

Downloading and Installing Python 🔝

  • Anaconda Distribution – If you are planning on using Python for data science, you should definitely install the Anaconda Distribution. It is a comprehensive data science toolkit that includes Python, Project Jupyter, a graphical user interface (GUI), and an easy-to-use package manager. Furthermore, it comes with most data-science-related Python packages preinstalled and supports virtual environments.
  • Thonny and Python Bundle – If you are planning on using Python for programming and application development, this bundle might be the best starting point for you. It includes a self-contained Python distribution and an easy-to-use IDE (integrated development environment) called Thonny that is specifically designed for beginners.
  • Official “Vanilla” Python – In the world of data science, the official Python distribution is often referred to as vanilla Python. It is just Python without all the additional features that data scientists and researchers use most often and that are included by default in Anaconda. Hence, it is not recommended if you are looking to use Python for data science. However, for up-and-coming programmers and application developers, it might be of interest. Because a lot of computer applications actually rely on and use Python in the background, you might already have vanilla Python installed on your computer. In that case, it is advisable you do not use it for your projects as messing with it might cause errors in other applications on your system.

Using Anaconda 🔝

Using Conda (Advanced) 🔝

Conda is the package manager included in Anaconda. You can access most functionalities of Conda using Anaconda Navigator. However, advanced users might prefer to use Conda directly from the command line.

Installing Packages 🔝

There are two major Python package managers available – Pip and Conda. Pip is the default Python package manager available for all Python distributions. Conda in a more advanced package manager included in the Anaconda Distribution. Whenever possible, it is recommended for novice users to use Conda because it has many advantages over Pip. Primarily, Conda automatically checks for and attempts to resolve dependency issues. Furthermore, Conda packages never require compilation from source code.

Collaborative Data Science (Notebooks)

  • Data Science Notebooks – A link to a comparison of the data science notebook applications available to enhance your Python and R programming.