
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore why programming sharpens problem solving and enables real life apps, from data science to web development, using Python’s simplicity, rich libraries, and vast community.
Determine whether you have no programming background, want to learn from scratch, or are refreshing concepts; this course saves time while building programming skills with many exercises, quizzes, and projects.
Discover four unique Python skills: programming, problem solving, project building, and OOP design, that prepare you for data structures, algorithms, and software engineering in your next steps.
Discover programming fundamentals and object-oriented programming in Python, covering variables, loops, control flow, lists, tuples, dictionaries, functions, files, exceptions, decorators, and generators, with design patterns, modules, quizzes, and projects.
Learn to install Python on Windows and Mac by visiting python.org/downloads, downloading a python3.x installer, and following platform-specific steps, including 64-bit or 32-bit choices, path setup, and optional shortcuts.
Learn how to print in python using the print function, comments, and escape sequences. Understand the interpreter parses code, handles single or double quotes, multi-line comments, and comma-separated outputs.
Explore tracing runtime output, printing exact lines, and creating shapes, then compare with provided solutions to deepen your debugging and problem-solving skills in python.
Learn to write a python program that prints a target message using proper quotes and escapes, demonstrating line by line output and printing tricks.
Discover how to name Python variables using valid identifiers, underscores, and case sensitivity, follow readability and Google Python style guidelines, and practice with errors and code reviews.
Explore how Python's dynamic typing lets you change a variable's value and even its type at runtime, and compare it to static languages like C++ and Java.
Learn how functions encapsulate code and enable reuse, return values, and usage like min, max, type, and len, while avoiding naming conflicts during type conversion with int, float, and str.
Practice Python input handling across four tasks: arithmetic on two numbers, student grade data with averages, sums of odd and even positions, and repeated outputs from three inputs.
Master Python basics by reading two numbers as floats, performing plus, minus, multiply, and divide, avoiding division by zero, then collect student info and compute average grade.
Read eight numbers in line with variables (odd1, even1, odd2, even2, odd3, even3, odd4, even4); compute odd_sum and even_sum, print. Concatenate A, B, C and repeat ten times with multiplication.
Explore Python assignment operators, including simple and compound forms, and learn how multiple assignments evaluate right-hand side expressions before updating left-hand sides to avoid errors.
Master relational operators in Python, including >, <, >=, != and ==, booleans, not, bool(), and how strings compare by dictionary order, case, empty strings, and floating point precision.
This lecture is borrowed from my C++ course. The same concepts in C++ and python
Practice simplifying boolean expressions using and, or, and parentheses to master true and false reductions. Explore short circuit evaluation and deep nesting effects on the final true result.
Master Python's membership operators by understanding prefix, suffix, substring, and subsequence, and use in and not in to test string containment.
This lecture is borrowed from my C++ course. The same concepts in C++ and python
Extract the 4th digit from the end by dividing the number by 1000 to remove the last three digits, then applying modulus 10 to reveal the digit.
Master selection practice in Python by using parity and range-based digit extraction with modulo and division, plus test-driven coverage strategies.
Explore while loops by summing numbers from 1 to 5, tracing initialization, condition, and increment, and apply break and continue with unreachable code.
Explore writing nested loops in python, using for and while loops to solve tasks like summing 1 to N, processing T test cases, and printing a left-angled triangle of stars.
Learn to solve while loop problems by enumerating 'no'/'on' cases, handling line continuations, converting strings to lowercase, and reversing digits with modulus and division to compute triple.
Use for loops to iterate 1 to N inclusive, compute each digit sum with mod 10 and division, and add numbers with sum between A and B to result list.
Master debugging fundamentals by identifying bugs as errors, exploring approaches like print statements, logging, and the debugger, which traces code line by line with a breakpoint.
Master the use of positional and keyword arguments in Python, including default values, correct ordering, and mixing techniques, with Python 3.8 positional-only and keyword-only syntax.
Mastering four Python function challenges: build a special_multiplication, max functions, is_prime and nth_prime, and an iterative nth Fibonacci generator.
Learn to implement Python functions using enumerate for indices, create one-based indexing, repeat strings with the multiplication operator, and build nested max functions for three to six numbers.
Rewrite a console calculator using a functional style in Python, implementing modular functions like print_menu, read_choice, compute_from_1_to_n, divide, parse expressions, and calculator_interface.
Define and use methods inside a class with self to access attributes and manage objects. Learn encapsulation and how methods and attributes organize data and functions in Python.
Create a my_range class in Python that mimics range with start, end, and step, uses has_next and get_next for iteration, and supports negative steps with index-value returns.
Almost all other courses focus on knowledge. In this course, we focus on 4 critical skills.
Overall:
The course covers basic to advanced modern Python 3 syntax. Beginners will learn a lot!
The course helps you master the 4 most important skills for a programmer
Programming skills
Problem-solving skills: rarely covered by other courses
Project building skills: partially covered by other courses
Design skills: rarely covered by other courses
7+ times practice & homework compare to other courses + many (real & challenging) projects
Special Teaching style: iterative, easy, and short
In a few minutes, I cover clearly what many others need 2-3 times to explain
This is an English Course only. Full manual English subtitles will also be provided soon.
Content
Fundamentals: Variables, Loops, Control Flow, Lists, Tuples, Sets, Dictionary, Functions, Recursive Functions
Object-Oriented Programming (OOP):
Objects, Classes, Abstraction, Inheritance, Polymorphism, Operator Overloading
Embedded in homework: Several design principles & patterns
Special Topics: Files, Exception Handling, Modules and Packages
A huge set of Quizzes, Practice, Homework, and Projects
2 styles of homework: Algorithmic (problem-solving) and applications
Several software design concerns are embedded in the homework.
So you are getting introduced to Software Engineering & Design Patterns
Several quizzes to master the concepts
Building Skills: Practice, Homework, and Projects
One unique feature in this course is my education strategy:
Explain, Administrate & Challenge
Each video smoothly explains a simple concept(s)
Typically followed by easy to medium practice to administrate the concept
Then typically followed by an easy-medium-hard set of homework questions to challenge you
Extensive homework from easy to medium to hard to help to build the skills.
Most of the practice/homework questions are unique in this course
Programming questions are mainly from my competitive programming experience
OOP questions are mostly invented to achieve several goals:
Mastering the OOP concepts
Enforcing a lot of design heuristics & OOD
Preparing you for design principles and patterns
Small-to-large set of projects to build up project building and design skills
Solutions to all of them.
By the end of the journey
Solid understanding of programming concepts and its Python syntax
Mastering the target 4 skills
With the administered problem-solving skills
You can start competitive programming smoothly in Div2-A/B Codeforces
Smooth start in Data Structure course
Smooth start in Algorithms course
With the administered project-building and design skills
Smooth start in Software Engineering course
Later, smooth start in one of the technology tracks in frontend or backend
Don't miss such a unique learning experience!