We may earn an affiliate commission when you visit our partners.
Dr. Fred Baptiste

This Course in a Nutshell

Aimed at beginner Python developers, this course will provide you a fundamental understanding of how to program in Python. Your journey will take you from a total Python beginner to an intermediate level Python developer more than ready to tackle your own professional projects.

Although not technically required, limited prior experience in any coding language, and a basic understanding of concepts such as looping, branching, etc will prove useful.

Read more

This Course in a Nutshell

Aimed at beginner Python developers, this course will provide you a fundamental understanding of how to program in Python. Your journey will take you from a total Python beginner to an intermediate level Python developer more than ready to tackle your own professional projects.

Although not technically required, limited prior experience in any coding language, and a basic understanding of concepts such as looping, branching, etc will prove useful.

This course will provide you the solid foundation you will need to continue moving forward in your Python development endeavors. This course is not a "here's how I do it, just type along please" type of course - its goal is to make you understand each and every line of code we are going to write together, why we write it and why it works, giving you the knowledge to apply the same coding techniques to your own situation and problems.

Like any good college level course, this course is fairly lengthy and will require time, not only for watching the videos, but also working on your own to explore the various topics, trying things out, and at the end of each section working on increasingly complex problems. It takes a certain amount of time to master a programming language, and this course is no exception. If you are looking for a quick and superficial intro to Python, then this course is probably not for you.

This means how to open a prompt/shell on your computer, navigating the file structure using cd, creating and deleting directories, copying files/directories from one location to another, listing files in the current directory, etc. There are plenty of 20-30 minute tutorials available online that will teach you those simple basics.

Course Overview

This course balances theory and coding practice. Most subjects are two-part: a theory (or lecture) video where we cover a specific topic, explain how things work, followed by a practice (or coding) video which takes the lecture material and applies it using real code. I highly encourage you to take notes during the lectures, and code along with me during the coding videos - that's the beauty of online videos - you can pause, rewind, speed up, slow down as you need.

All the course slides (over 900 of them. ) are available for download if you prefer that approach over taking your own notes - however I recommend you take your own notes, preferably after watching the corresponding code video - you'll remember things better that way.

We use Jupyter notebooks as the perfect tool for teaching and learning Python.

Jupyter notebooks support both Python code as well as interspersed markdown documentation. You will find that every code video in this course has a corresponding Jupyter notebook available in the course downloads, that not only reproduces all the code we do in the coding videos, but is fully annotated with explanations of the code, basically what I cover in the coding videos, and sometimes more.

All the notebooks and the data files we will work with, are available in the course downloads in the first section of this course as well as in GitHub.

At the end of each section, you will find a set of exercises with solutions. It is imperative that you work through these exercises, and only move on to the next section once you are able to do these exercises on your own. Each section of this course builds on top of the previous one.

The course is broadly broken down into three main parts:

Python Basics

  • What is Python

  • How to install Python

  • How to create and use virtual environments

  • How to run Python and Jupyter notebooks

  • Basic data types including integers, floats, booleans

  • Boolean operators

  • Arithmetic and comparison operators, as well as operator precedence

  • Conditional execution

  • Looping (for and while)

  • Sequence types such as lists, tuples and strings

  • Working with sequence types (iterating, slicing, manipulating, copying, unpacking)

  • More on strings and Unicode

  • Dictionaries and sets

  • Python's list, dictionary and set comprehensions

  • Exceptions and exception handling

  • Iterables and iterators, including generators

  • Writing user defined functions and different ways of defining and passing arguments

  • Lambda functions

  • Some of Python's built-in functions (such as zip, sorted, min, max, and round)

Intermediate Python

  • Higher order functions (passing and returning functions from functions)

  • Maps (dictionaries)

  • Closures

  • Advanced sorting and filtering

  • Decorators - what they are, and how to write your own

  • Reading and writing text files

  • Python's module and import system

  • How to work with dates and times

  • How to read and write CSV files

  • Random numbers and sampling

  • A look at Python Math and Stats modules

  • Decimal data type - for when floats aren't precise enough

  • How to write your own custom Classes (OOP)

3rd Party Libraries

  • the pytz library for dealing with timezones and daylight savings

  • the dateutil library for parsing date/time strings

  • What is JSON data, and how to read and write JSON

  • What are REST APIs

  • How to use the requests library for HTTP/s requests (and how to interact with a REST API)

  • Fundamentals of the NumPy library for fast numerical computations

  • Fundamentals of the Pandas library for working with data sets (including indexing)

  • Fundamentals of the matplotlib library for charting data

Enroll now

What's inside

Learning objectives

  • Learn python fundamentals
  • Basic to advanced data types
  • Functional and object oriented programming
  • Closures and decorators
  • Datetime and timezone handling
  • Reading and writing text, csv and json files
  • Making rest api requests
  • Fundamentals of numpy
  • Fundamentals of pandas
  • Fundamentals of matplotlib

Syllabus

Introduction
Installation - Mac & Linux

Although a basic knowledge of the Windows command prompt (or Mac/Linux shell) is a pre-requisite for this course, here is a quick primer for Windows users who may not be entirely familiar with basic usage of the Windows command prompt.

Read more
Running Python
What is Python?
Installing Python
Installation - Windows
Using the Windows Python Launcher
Course Materials (Jupyter Notebooks)
Course Materials (Slides)
Virtual Environments
Creating Virtual Environments - Mac & Linux
Creating Virtual Environments - Windows
Installing Packages - Lecture
Installing Packages - Coding
Running Python - Lecture
Running Python - Coding
Python Basics
Introduction - Python Basics
Basic Data Types - Lecture
Basic Data Types - Coding
Objects - Lecture
Objects - Coding
Variables - Lecture
Variables - Coding
Arithmetic Operators - Lecture
Arithmetic Operators - Coding
Operator Precedence - Lecture
Operator Precedence - Coding
Integer Division and Modulus - Lecture
Integer Division and Modulus - Coding
Comparison Operators - Lecture
Comparison Operators - Coding
Boolean Operators - Lecture
Boolean Operators - Coding
Exercises
Conditional Execution
Introduction - Conditional Execution
if...else... - Lecture
if...else... - Coding
elif - Lecture
elif - Coding
Ternary Conditional Operator - Lecture
Ternary Conditional Operator - Coding
Sequence Types
Introduction - Sequence Types
Lists - Lecture
Lists - Coding
Tuples - Lecture
Tuples - Coding
Strings - Lecture
Strings - Coding
Slicing - Lecture
Slicing - Coding
Manipulating Sequences - Lecture
Manipulating Sequences - Coding
Copying Sequences - Lecture
Copying Sequences - Coding
Unpacking Sequences - Lecture
Unpacking Sequences - Coding
Strings
Introduction - Strings
Unicode - Lecture
Unicode - Coding
Common String Methods - Lecture
Common String Methods - Coding
String Interpolation - Lecture
String Interpolation - Coding
Iteration
Introduction - Iteration
The range Function - Lecture
The range Function - Coding
For Loops - Lecture
For loops - Coding
While Loops - Lecture
While Loops - Coding
Continue, Break and Else - Lecture
Continue, Break and Else - Coding
Dictionaries
Introduction - Dictionaries
Associative Arrays and Dictionaries - Lecture
Associative Arrays and Dictionaries - Coding
Iterating Dictionaries - Lecture
Iterating Dictionaries - Coding
Working with Dictionaries - Lecture
Working with Dictionaries - Coding
Sets
Introduction - Sets
Python Sets - Lecture
Python Sets - Coding
Common Set Operations - Lecture
Common Set Operations - Coding

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Balances theory and coding practice, which reinforces learning and helps beginners grasp fundamental concepts effectively
Uses Jupyter notebooks, which are ideal for interactive coding and documentation, making it easier to learn and experiment with Python
Includes exercises with solutions at the end of each section, which allows learners to test their understanding and reinforce their knowledge
Covers installing packages, which is essential for expanding Python's capabilities and using third-party libraries
Requires a basic knowledge of the command prompt, which may be a barrier for some absolute beginners who are not familiar with it
Teaches fundamentals of NumPy, Pandas, and Matplotlib, which are essential libraries for data analysis and visualization in Python

Save this course

Save Python 3: Fundamentals to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Python 3: Fundamentals with these activities:
Review Basic Programming Concepts
Reinforce fundamental programming concepts like looping and branching to prepare for Python's syntax and application of these concepts.
Browse courses on Looping
Show steps
  • Review the definitions of variables, data types, and control flow.
  • Practice writing simple algorithms using pseudocode or a flowchart.
  • Complete online quizzes or exercises on basic programming concepts.
Read 'Python Crash Course'
Supplement course material with a comprehensive guide to Python fundamentals, providing additional examples and exercises.
Show steps
  • Read the chapters covering basic data types, operators, and control flow.
  • Complete the exercises at the end of each chapter.
  • Compare the book's explanations with the course material.
Practice with Data Types and Operators
Solidify understanding of Python's data types (integers, floats, strings, booleans) and operators through coding exercises.
Show steps
  • Write code snippets that use different data types and operators.
  • Experiment with operator precedence and type conversions.
  • Solve coding challenges that require manipulating data types.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow Online Tutorials on List Comprehensions
Deepen understanding of list comprehensions through guided tutorials, improving code conciseness and efficiency.
Show steps
  • Search for online tutorials on Python list comprehensions.
  • Follow the tutorials and try out the code examples.
  • Apply list comprehensions to solve coding challenges.
Build a Simple Calculator
Apply learned concepts by building a calculator that performs basic arithmetic operations, reinforcing conditional execution and operator usage.
Show steps
  • Design the calculator's user interface and functionality.
  • Implement the arithmetic operations using Python's operators.
  • Incorporate error handling for invalid inputs.
  • Test the calculator thoroughly with various inputs.
Create a Cheat Sheet for Python Basics
Synthesize and organize key concepts into a cheat sheet for quick reference, improving retention and recall of Python fundamentals.
Show steps
  • Identify the most important concepts from the course.
  • Organize the concepts into a logical structure.
  • Write concise explanations and examples for each concept.
  • Design the cheat sheet for easy readability and navigation.
Read 'Automate the Boring Stuff with Python'
Explore practical applications of Python to automate tasks, reinforcing understanding of core concepts through real-world examples.
Show steps
  • Read the chapters relevant to the course topics.
  • Try out the code examples and modify them to suit your needs.
  • Apply the automation techniques to your own tasks.

Career center

Learners who complete Python 3: Fundamentals will develop knowledge and skills that may be useful to these careers:
Data Scientist
A data scientist uses programming skills, often in Python, to analyze large datasets. This role involves cleaning data, building models, and visualizing results. This course on Python fundamentals is valuable for aspiring data scientists, as it provides a foundation in core Python concepts, along with exposure to NumPy, Pandas, and Matplotlib, which are critical for data analysis. The course's focus on practical coding and understanding each line of code ensures the learner can apply these skills effectively in data science projects.
Machine Learning Engineer
Machine learning engineers develop and implement machine learning models. This career path requires deep knowledge of programming languages, particularly Python, and the ability to handle complex datasets. This Python fundamentals course helps a machine learning engineer by providing a solid foundation in Python, including its core syntax, data structures, and object-oriented programming features. Additionally, it covers third-party libraries like NumPy and Pandas, which are integral to machine learning tasks. The course's hands-on approach enables learners to apply these concepts confidently to machine-learning projects.
Software Developer
Software developers design, code, and test software applications. This role requires a strong understanding of programming languages, and this course in Python fundamentals is particularly helpful to become a successful software developer. The course covers key programming concepts like conditional execution, looping, data structures, and object-oriented programming (OOP), which are essential in software development. The course's approach, which emphasizes understanding why code works, not just how, means developers will be equipped to build more robust and maintainable applications. It also covers key skills such as reading and writing text files, module and import systems, and working with dates and times.
Web Developer
Web developers build and maintain websites. While Python is often used for backend development, a web developer can benefit from taking this Python fundamentals course. Web developers who know Python are positioned to work on server-side logic, and with web frameworks. The course's emphasis on core Python concepts, data handling, and working with JSON and REST APIs prepares developers to build dynamic, data-driven web applications. The course's coverage of how to write files and make API requests are particularly relevant to web development.
Data Analyst
Data analysts examine data to identify trends and insights. This work requires skills in data manipulation, analysis, and visualization. This Python fundamentals course may be useful to a person seeking a career in data analysis, as it introduces basic-to-intermediate Python programming, which is central to effective data analysis. The course covers crucial tools like Pandas, which can be used to clean and analyze data, and Matplotlib, which can help visualize findings. The course also introduces file handling, which is a core skill for data extraction and analysis.
Quantitative Analyst
Quantitative analysts, often working in finance, build and implement mathematical and statistical models. These analysts must have strong programming skills, and this course on Python fundamentals may be useful. The course introduces core programming concepts, and covers many topics that are useful for quantitative analysis, such as NumPy, which is crucial for numerical computations, and the Python Math and Stats modules. A focus on data types and structures, which are covered in this course, is also valuable to a role in quantitative analysis.
Automation Engineer
Automation engineers design and implement systems that automate processes. This role requires robust programming skills, including a mastery of Python. This course on Python fundamentals may be helpful for an aspiring automation engineer by teaching them how to apply Python-based solutions to automation challenges. The course covers essential Python constructs, as well as topics such as writing files, interacting with APIs, and working with dates and times. Understanding how to use these fundamental tools is key to an automation engineer's daily work.
Research Scientist
Research scientists conduct experiments and analyze data to advance scientific knowledge. This often requires a strong understanding of programming for data analysis and simulation. While this course does not cover the advanced topics that research science requires, this Python fundamentals course may be helpful. The foundational knowledge of Python syntax, data handling, and mathematical libraries taught in this course are valuable for research applications. The introductory lessons on NumPy, Pandas, and Matplotlib may be especially useful in scientific computing. Often research positions require advanced degrees.
Database Administrator
Database administrators manage and maintain databases. This role often requires knowledge of scripting and automation tools, which is where this course in Python fundamentals may be useful. While the role isn't primarily focused on Python, the course's content covering file handling and data manipulation can be applied to database tasks. Furthermore, the course's ability to teach the user how to make calls to APIs can help with integrating databases with other systems. The course teaches key programming skills to learners who wish to pursue a career in database administration.
Systems Administrator
Systems administrators manage computer networks and systems. This job often involves scripting and automation. This course in Python fundamentals may be useful for learners interested in this field. The course covers essential Python concepts and teaches many skills needed in systems administration, such as file handling and the ability to interact with the operating system. The knowledge of scripting provides a foundation for automating tasks and improving efficiency. This may allow systems administrators to be more efficient.
Business Intelligence Analyst
Business intelligence analysts use data to provide insights that improve business operations. Python is now a common tool in business intelligence, and therefore this Python fundamentals course may be useful. This course provides skills in data analysis, as it teaches developers how to work with Python, and how to use libraries such as Pandas and Matplotlib for data analysis and visualization. The course's focus on data handling and analysis is useful for a business intelligence analyst. The ability to read JSON, taught in the course, is also useful in business settings.
Financial Analyst
Financial analysts examine financial data and provide recommendations for investment decisions. Although it can be a more advanced task, financial analysts can use Python to handle data. Therefore this fundamentals course in Python may be useful. This course covers crucial Python concepts, and teaches users how to use mathematical and statistical libraries in the Python ecosystem. The ability to manipulate data, taught in this course through Pandas, can also be useful. The course's introduction to the Python math and stats modules provides a basis for more specialized analysis.
Technical Writer
Technical writers create documentation for software and technical products. While this role does not require programming, this Python fundamentals course may be useful for writers who want to better understand the technology they document. The course's emphasis on understanding code and data structures provides valuable insight. The course also introduces Jupyter notebooks, which is a technology used in the field, giving a technical writer a better understanding of software development practices. This course can aid in the creation of detailed and accurate documentation.
Project Manager
Project managers plan, execute, and oversee projects. While project management isn't directly related to programming, this Python fundamentals course may be useful to certain project mangers, particularly those who work in tech companies. Understanding the fundamentals of Python can give project managers a better sense of the technical challenges and possibilities of a software project. The course, in introducing a standard tool in tech projects, can help project managers communicate more effectively with their teams. This course provides a broader understanding of software development.
Technical Support Specialist
Technical support specialists assist customers with technical issues related to software. While programming isn't a core function of this role, this Python fundamentals course may be useful. Understanding basic programming concepts and how software is built can help a technical support specialist better diagnose issues and communicate solutions to customers. The course provides insight into the Python ecosystem, which makes up a large part of current software infrastructure. This better enables support specialists to support technical users.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Python 3: Fundamentals.
Python Crash Course fast-paced, thorough introduction to Python that will have you writing programs, solving problems, and making things that work in no time. In the first half of the book, you'll learn about basic programming concepts, such as lists, dictionaries, classes, and loops, and practice writing clean and readable code with exercises for each topic. You'll also learn how to make your programs interactive and how to test your code safely before adding it to a project. is commonly used as a textbook at academic institutions.
Automate the Boring Stuff with Python teaches you how to use Python to write programs that do in minutes what would take you hours to do by hand. You don’t need to know anything about programming to get started. Each chapter explores a different project and concludes with practice programs to help you hone your new skills. is more valuable as additional reading than it is as a current reference. It provides practical examples of how Python can be used to automate everyday tasks.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser