
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore how variables serve as store locations with symbolic names and values. Learn how assignments change x, y, and z during runtime.
Explore variables, arithmetic and logical operators, and relational checks in Python basics; learn how to store values, perform calculations, use remainder, concatenation, and boolean logic to drive decisions.
Explain data types such as bool, int, char, float, double, and string; show how value types store data and how assignment differs from equality.
Learn to implement if statements and conditional logic using boolean conditions to execute code blocks, choose between if, if-else, and else branches, and see a simple calculator example.
Learn how while and do-while loops enable repeating statements in programs, with examples that print hello world five times and increment a counter.
Learn how arrays store a fixed-size collection of elements of the same data type and are accessed by zero-based indices. Create, initialize, and print array elements with indices using loops.
Explore the concept of functions as reusable code blocks that take inputs and return outputs, enabling modularity and code reuse across languages, with examples like hello world and max.
Learn how to use file input and output to read from and write to files, including read, write, append, and read/write modes, with practical examples in C++, Java, and Python.
Explore the fundamentals of object-oriented programming, including objects, attributes, methods, and data, and learn how objects interact to form modular, reusable designs across languages like Java and Python.
Learn the core concepts of object oriented programming by defining classes and objects, their fields and methods, and how instances model real or conceptual entities.
Explore methods in object-oriented programming, including class variables, instance variables, member variables, class methods, and instance methods. Learn how these terms define data and behavior for classes and their objects.
Encapsulation binds data and methods into a class, shielding internal state and enabling data hiding; use public, private, or protected access and methods to access and modify values.
Explore dynamic dispatch and message passing in object-oriented programming, showing how objects communicate by invoking class methods, with unidirectional messages and cross-process interactions.
Discover how inheritance drives object oriented programming, linking base and derived classes with object composition. Explore single, multiple, multilevel, hierarchical, and hybrid inheritance with practical examples.
Polymorphism lets code treat objects from a class hierarchy uniformly while each subclass implements methods differently, such as circle and square drawing and area computation.
Explore generalization and specification: combine common characteristics into a superclass and create specialized subclasses, using is-a relationships to guide team coding decisions on extending or refining classes.
Define links and associations in object-oriented programming, explaining how objects of one or more classes relate through one-to-one, one-to-many, and many-to-many cardinalities, with practical examples.
Visual Studio Code is a source code editor and integrated development environment developed by Microsoft for Windows, Linux, and Mac OS, supporting debugging, syntax highlighting, autocomplete, snippets, and code refactoring.
Install Visual Studio Code from the download link, install the Python extension, and explore features like editing, debugging, code navigation, and source control for Python projects.
Learn to write and run Python programs in Visual Studio Code, saving files with a .py extension, using autocomplete, and printing Hello world to the terminal.
Explore how variables allocate memory in Python, assign values with =, and print results. Learn about numbers and strings, multiple assignment, slicing, concatenation, and simple syntax errors.
Explore Python data types by comparing lists, tuples, and dictionaries, showing how to create, access, slice, and print elements, with practical examples.
Explore data type conversion in python using built-in functions to convert values to int, float, long, complex, list, dict, and unicode, with practical print examples.
Explore if statements and nested conditional logic in Python, mastering single and multiple if statements, elif and else blocks, and indentation to control which code runs.
Explore loops and iteration in Python by implementing while and for loops, nested constructs, and loop variables, with examples that show termination and common infinite-loop errors.
Learn how to use while and for loops in Python, including range-based iteration, the else clause, and nested loops, with practical examples that print values and iterate over sequences.
Learn Python file input and output using print, input, and open, then write and read with f.write and f.read while inspecting f.name, f.mode, and f.closed.
Define and call Python functions using def, create user-defined functions, pass parameters by reference, and return values while exploring scope, list modification, and code reuse.
Learn to send a test email with Python by composing from, to, subject, and body, configuring an SMTP server, logging in, and sending the message.
Parse XML documents in Python using the document object model (DOM) to extract product data, attributes, and categories with practical code examples.
Explore multi-threaded programming in Python 3, creating threads that share data with the main thread for easy communication, and compare kernel and user thread models.
Build programming logic first, then apply it in Python 3. This course connects general concepts with language examples and coding exercises, helping you turn a written requirement into steps that can be traced and checked.
The foundation lessons introduce variables, operators, conditions, loops, arrays, functions, files and object-oriented ideas. Python sections then demonstrate types, conversions and program flow. Additional topics include sending email, XML parsing and threading, giving you examples of where the fundamentals can lead.
What to practise
Break a small task into an input, a sequence of decisions and a result.
Trace the first and last iterations of a loop.
Move a repeated calculation into a function with a clear responsibility.
Use an ordinary case and a boundary case to examine an assumption.
The final reading labs translate a temperature-summary algorithm into Python and investigate an off-by-one error. Decide which readings count as valid, describe the empty-input result and use a small trace table before implementing the calculation. This gives you a concrete connection between an algorithm and the behaviour of its code.
This course suits beginners who want both programming concepts and a practical language in which to apply them, as well as returning learners refreshing their reasoning skills. Basic computer skills and time for independent practice are helpful.
The curriculum is broader than a single small script, so select a manageable route and revisit the foundations when later examples become difficult. Recorded tool and integration details may differ from current services and libraries; check official documentation before reproducing setup-dependent activities. Choose the course for structured fundamentals, problem-solving practice and a clear transition from explanation to Python.
Learning an algorithm before choosing syntax
This course begins with programming ideas and then applies them in Python 3. That structure is useful if you want to understand the process behind a solution rather than start by memorising statements. A task can be described through values, decisions, repetition and results before it is written in a particular language. The recorded lessons, coding exercises and reading labs give you different ways to examine that process. The aim is a broad foundation you can use for further practice, not instant expertise across every area of programming.
Variables as part of a model
A variable should stand for information relevant to the task. The opening sections introduce values, operators and types so that you can begin describing that model. Ask which information enters the program and which value represents progress or a result. If a type conversion is needed, explain its purpose. This makes the later Python syntax easier to understand because the value already has a role. A small example with clear meanings is a better starting point than a longer program filled with names whose responsibilities are unclear.
Decisions that divide the problem
Conditional logic lets a program respond differently to different inputs. Before writing an if-statement, identify the cases and the rule separating them. A positive or negative classification exercise, for example, requires an explicit decision about the values at the boundary. The course's small coding tasks make those choices visible. Predict the result before running a solution and explain why the case belongs where you placed it. This develops reasoning that remains useful when a later problem uses different names or a more complicated setting.
Repetition and the stopping rule
Loops express work that repeats, but their usefulness depends on a clear progression. Identify the starting value, the repeated operation and the condition that ends the sequence. A numerical exercise can expose a mistake in any of those parts. Trace a short version by hand so that you can compare it with execution. The point is not to avoid running code. It is to make running it an informative check of a prediction instead of a search for an answer you have not yet defined.
Functions, collections and files
These concepts introduce different kinds of organisation. A collection holds related values, a function groups a responsibility and a file preserves information beyond an immediate calculation. The course moves from general explanations into Python examples so that you can see those roles expressed in code. Give a function a clear input and result, then test it separately where possible. For a file operation, describe what information should be read or written. This keeps the program's behaviour understandable as more than one concept is combined.
Object-oriented vocabulary
Classes, objects, methods, encapsulation, inheritance and other relationships appear in the conceptual material. Use them to describe responsibility and interaction rather than to make a beginner exercise unnecessarily elaborate. What does an object represent? Which operation belongs to it? Which information should another part of the program need to know? A clear explanation of a small relationship provides a useful foundation. The course introduces these ideas without claiming exhaustive instruction in every Python design technique or large-application architecture.
Learning through the number-based exercises
The Python coding sequence includes small tasks involving sums, factorials, number classifications and digit-related calculations. Their value is that the expected result can often be checked independently. Attempt an exercise before reviewing the worked solution. Then compare the reasoning, not only the printed answer. Choose an input that tests an assumption, such as the start or end of a range. This gives a wrong result a specific meaning and helps you decide whether to revisit a condition, a loop or a function's contract.
The temperature-summary reading lab
The algorithm-to-Python workshop uses a small collection of readings to connect a stated process with code. Define what the input represents and what the summary should measure. Then compare a manually checkable result with the implementation. This makes the earlier lessons on variables, loops and functions work together around one purpose. The exercise is a reading lab, not a complete scientific data-processing package. Its strength is that the example is small enough to inspect and explain without hiding the rule inside a large toolchain.
Finding an off-by-one error
The second reading article focuses on tracing the first and last iterations. A loop can look familiar and still include one unwanted step or omit a required one. Writing those boundary states makes the issue easier to see. This is a useful complement to the numerical exercises because it asks you to inspect the progression directly. The wider curriculum also introduces topics such as email, XML and threading as extensions. Treat those as further areas to explore after the foundation is clear. Choose this course if you want a structured route from general programming logic to Python practice, with small examples that make your reasoning testable.
Curriculum at a glance
Variables
If-Statements and Conditional Logic
Loops and Iteration
Arrays
Functions & Files
Object-oriented Programming
Visual Studio Code
Applying what you learned in Python
Coding Exercises in Python 3
Sending emails, XML Parsing and Multithreading in Python