Intermediate Python and OOP
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Intermediate Python and OOP
This course is part of The Complete Python and Data Science Bootcamp Specialization
Included with
Ask Coursera
Recommended experience
Recommended experience
What you'll learn
Master exception handling techniques, including raising and catching custom exceptions.
Understand recursion and apply it to solve problems like calculating Fibonacci numbers and factorials.
Learn common searching and sorting algorithms to handle and optimize data efficiently.
Dive deep into Object-Oriented Programming concepts like inheritance, polymorphism, and method overloading.
Skills you'll gain
Tools you'll learn
Details to know
April 2026
9 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate
There are 7 modules in this course
This course features Coursera Coach!
A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this course, you will deepen your understanding of Python and Object-Oriented Programming (OOP) concepts, expanding your skills beyond the basics. You’ll learn how to handle exceptions and errors, use recursion, and optimize algorithms, while also gaining proficiency in complex data structures like dictionaries, sets, and tuples. With hands-on exercises and examples, you will apply these concepts in practical ways that strengthen your Python programming expertise. The course begins by teaching exception handling, focusing on how to differentiate between syntax and runtime errors, catch multiple exceptions, and raise custom exceptions. You'll then dive into recursion, implementing algorithms like factorials and Fibonacci sequences. Following this, you'll explore searching and sorting algorithms such as linear search, binary search, and quicksort, as well as gain experience with data structures like dictionaries and sets. The course culminates in the application of OOP principles, such as classes, inheritance, polymorphism, and unit testing. This intermediate-level course is ideal for learners who already have a basic understanding of Python and want to refine their skills in error handling, recursion, algorithms, and object-oriented programming. You'll apply your learning through coding exercises, examples, and a project that prepares you for more advanced Python programming. By the end of the course, you will be able to handle exceptions effectively, design and optimize algorithms, work with complex data structures, apply OOP principles to Python programs, and create tests for your code using pytest.
In this module, we will cover the fundamentals of exception and error handling in Python. You’ll learn how to distinguish between syntax errors and exceptions, handle multiple errors gracefully, and raise custom exceptions to ensure that your code is robust and reliable.
What's included
10 videos2 readings1 assignment
10 videos•Total 47 minutes
- Syntax vs. Run-Time Errors•14 minutes
- TypeError in Average Function•7 minutes
- Catch All Errors•3 minutes
- Catch Multiple Exceptions•6 minutes
- Handling Exceptions Separately•2 minutes
- Using else and finally•2 minutes
- Safe Division Example•3 minutes
- Raising a Built-In Exception•3 minutes
- Example of Raising an Exception•5 minutes
- Raising a Custom Exception•3 minutes
2 readings•Total 20 minutes
- Introduction to the Course 'Intermediate Python and OOP'•10 minutes
- Full Specialization Resources•10 minutes
1 assignment•Total 15 minutes
- Exception and Error Handling - Assessment•15 minutes
In this module, we will dive into recursive programming. You’ll explore how recursion works and compare it with iterative approaches for solving problems like calculating factorials and Fibonacci sequences. We will also focus on optimizing recursive solutions for improved performance.
What's included
6 videos1 assignment
6 videos•Total 43 minutes
- Factorial Recursive vs. Non-Recursive Implementation•7 minutes
- Implementing the Exponential Function Using Recursion•10 minutes
- Simple Recursive Fibonacci•5 minutes
- Counting Number of Calls in Simple Recursive Fibonacci•5 minutes
- Assignment Expressions and Efficient Fibonacci•10 minutes
- Comparing the Run-Time of Fibonacci Implementations•7 minutes
1 assignment•Total 15 minutes
- Recursive Programming - Assessment•15 minutes
In this module, we will explore searching and sorting algorithms. You’ll learn how to search efficiently using linear and binary search and master sorting techniques, including BubbleSort, QuickSort, and MaxSort. We will also examine the computational complexity of each approach.
What's included
8 videos1 assignment
8 videos•Total 64 minutes
- Linear Search Boolean•5 minutes
- Linear Search Return Index•5 minutes
- Searching a Sorted List—Bird's-Eye View of Binary Search•6 minutes
- Searching a Sorted List—Implementing Binary Search•9 minutes
- Worst-Case Run-Time Complexity: Linear vs. Binary Search•8 minutes
- MaxSort•14 minutes
- BubbleSort•8 minutes
- QuickSort•7 minutes
1 assignment•Total 15 minutes
- Searching and Sorting Algorithms - Assessment•15 minutes
In this module, we will introduce more advanced data structures beyond lists, including dictionaries, tuples, and sets. You’ll learn how to use these structures effectively, manipulate their data, and apply them to real-world problems like counting word frequencies and checking anagram relationships.
What's included
22 videos1 assignment
22 videos•Total 96 minutes
- Introducing Dictionaries•13 minutes
- Safely Accessing Dictionaries Using the get Method•4 minutes
- Real-World Example Using Nested Data Structures and the get Method•8 minutes
- Dictionary Methods•15 minutes
- Introducing Tuples•5 minutes
- More on Tuples•3 minutes
- Tuple Methods index and count•5 minutes
- Introducing Sets•7 minutes
- Set Methods•5 minutes
- Exercise—Numbers to Superscripts•2 minutes
- Solution—Numbers to Superscripts•4 minutes
- Exercise—Word Frequency Counter with Optional Case Sensitivity•2 minutes
- Solution—Word Frequency Counter with Optional Case Sensitivity•4 minutes
- Exercise—Generate Square Dictionary•1 minute
- Solution 1—Square Dictionary•3 minutes
- Solution 2—Square Dictionary•4 minutes
- Exercise—Anagrams•1 minute
- Solution 1—Anagrams Using Character Frequency Counter•4 minutes
- Functions Within Functions•2 minutes
- Solution 2—Anagrams Using Sorting•1 minute
- Exercise—Unique Characters•2 minutes
- Solution—Unique Characters•3 minutes
1 assignment•Total 15 minutes
- Data Structures Beyond Lists - Assessment•15 minutes
In this module, we will dive deep into Object-Oriented Programming in Python. You’ll learn how to create and manage classes, implement inheritance and polymorphism, and use encapsulation to protect object data. We will also cover advanced features like operator overloading and dunder methods to customize object behavior.
What's included
14 videos1 assignment
14 videos•Total 116 minutes
- Classes, Instance Attributes, Class Attributes, and Methods•10 minutes
- Encapsulation•13 minutes
- Inheritance•8 minutes
- Polymorphism•7 minutes
- Constructors and Destructors•10 minutes
- The hasattr Function•10 minutes
- The str and repr Methods•7 minutes
- Class Methods vs. Static Methods vs. Instance Methods•11 minutes
- Complex Numbers and Class, Static, and Instance Methods•11 minutes
- Custom Equality and Comparison Operators for Classes in Python•10 minutes
- Dunder (Magic) Methods•3 minutes
- Coding Exercise—Fraction Class and Magic Methods•9 minutes
- Coding Solution Part 1—Fractional Addition and Subtraction•4 minutes
- Coding Solution Part 2—Subtraction Alternative, str, repr•4 minutes
1 assignment•Total 15 minutes
- Object-Oriented Programming - Assessment•15 minutes
In this module, we will focus on unit testing using pytest. You’ll learn how to write and execute tests, utilize parameterization to run multiple test cases efficiently, and organize your codebase for effective testing. Unit testing will ensure that your code is functioning as expected and help maintain code quality.
What's included
5 videos1 assignment
5 videos•Total 42 minutes
- Introduction to Unit Testing with pytest•1 minute
- Creating Our First Tests Using pytest•9 minutes
- Using pytest.mark.parametrize for Efficient Test Cases•6 minutes
- Solution to pytest.mark.parametrize Exercise•14 minutes
- Folder Structure•11 minutes
1 assignment•Total 15 minutes
- Unit Testing with pytest - Assessment•15 minutes
In this module, we will cover file handling and modular programming in Python. You’ll learn how to read and write text files, handle file exceptions, and use the with statement to ensure proper file management. Additionally, we will explore how to import built-in and custom modules to modularize your code effectively.
What's included
13 videos1 reading3 assignments
13 videos•Total 76 minutes
- Getting Started—Reading Text Files•7 minutes
- The Methods read, readline, readlines•9 minutes
- Coding Exercise—Remove Comments•2 minutes
- Coding Solution—Remove Comments•4 minutes
- Writing to Text Files•4 minutes
- Writing to Files Using F-Strings•4 minutes
- Writing to Files Using Print•1 minute
- Leveraging the with Statement for Safe and Efficient Code•3 minutes
- File Access Mode•16 minutes
- File Exceptions•2 minutes
- File Methods•7 minutes
- Importing Modules and Custom Modules•7 minutes
- Importing Modules and Custom Modules Continued•10 minutes
1 reading•Total 10 minutes
- Conclusion to the Course 'Intermediate Python and OOP'•10 minutes
3 assignments•Total 90 minutes
- Full Course Practice Assessment•15 minutes
- File-Handling and Modules - Assessment•15 minutes
- Full Course Assessment•60 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Explore more from Software Development
- Status: Free Trial
- Status: Free Trial
Course
- P
Packt
Course
Why people choose Coursera for their career
Frequently asked questions
Intermediate Python and OOP (Object-Oriented Programming) is a programming course focused on expanding your knowledge of Python beyond the basics and delving into more advanced topics. It covers essential concepts such as exception handling, recursion, sorting algorithms, advanced data structures, and OOP principles. This course is relevant because Python is one of the most widely used programming languages, and mastering these advanced concepts opens the door to building more complex and efficient software, especially in fields like software development, data science, and automation.
This course teaches you how to handle exceptions, implement recursive functions, use sorting and searching algorithms, and work with advanced data structures like dictionaries, tuples, and sets. You will also learn the core principles of Object-Oriented Programming (OOP), including classes, inheritance, and polymorphism. With practical examples and exercises, the course will help you master these advanced Python techniques and make you proficient in object-oriented programming, which is fundamental for developing large-scale software systems.
After completing this course, you will be proficient in handling errors, optimizing code with recursion and advanced algorithms, and using advanced Python data structures to manipulate and store data effectively. You will also have a strong understanding of Object-Oriented Programming, enabling you to design and implement reusable, maintainable code. You'll be able to write Python programs that are more efficient, scalable, and suitable for complex applications.
More questions
Financial aid available,
