
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore the foundations of programming by learning sequence, selection, and iteration, and understand how computers execute code step by step through loops and if statements to form algorithms.
Explore Visual Studio Code, a cross-platform source code editor and IDE by Microsoft, featuring debugging, syntax highlighting, intelligent code completion, snippets, refactoring, version control, and customizable plugins.
Install and explore Visual Studio Code, install the Python extension, and enable fast editing, code navigation, autocomplete, debugging, and source control to start a new Python project.
Create and save a Python file with a .py extension, write a hello world program, and run it in the terminal to see the interpreter execute the script.
Explore variables as the foundational data type, binding a symbolic name to a mutable storage location whose value can change at runtime, with simple C-style examples.
Explore how python handles variables as memory locations, assign values with =, print results, and use multiple assignment, string slicing, concatenation, and basic data types like numbers and strings.
Explore common data types: bool, int, char, float, double, and string, and how memory allocation and default values shape variables. Compare assignment and equality, and distinguish strong versus weak typing.
Learn Python data types by working with lists, tuples, and dictionaries; master indexing, slicing, accessing keys and values, and printing to illustrate type conversion and data structure behavior.
Learn how to convert data types in Python using built-in functions like int, float, list, dict, and chr/ord, with practical examples turning strings into numbers and collections.
Explore how variables store user and computed values, and apply arithmetic, relational, and logical operators including modulo and boolean results to solve problems in Python.
Master if statements and conditional logic using boolean conditions to run code blocks, understand if, else if, and else structures, and explore a simple calculator example.
Master Python if statements, elif and else, and nested conditionals to control code execution. Learn how boolean expressions, indentation, and tabbing determine which statements run.
Explore loops and iteration in programming, using while and do-while constructs to repeat statements like printing hello world, guided by conditions and increments.
Explore loops and iteration in Python, including while and for loops. See do while and nested loops with the i variable increments and i < 5.
Master loops and iteration in Python with for and while constructs, else clauses, and nested loops through practical examples using ranges and lists.
Discover how arrays store a fixed-size collection of same-type elements, declare and initialize them, access elements by indices, and print values with a loop in C.
Compare one and two dimensional arrays, demonstrate indexing across classes and schools, and show how three dimensional arrays capture multiple dimensions of students.
Explore multidimensional arrays with two dimensional indexing for rows and columns, using zero-based indexes, and build a 3x4 rating matrix to compute per-row averages and note out-of-bounds errors.
Explore functions as reusable blocks of code with defined inputs and outputs, learn about function signature, parameters, return types, and how to call built-in functions from main for modular programs.
Define and call Python functions with def to perform specific actions, reuse code, and observe parameters, printing, returning values, and reference-based list modification.
Learn to use file input and output to read from and write to files, using read-only, write-only, append, and read-write modes across C++, Java, and Python.
Explore Python's basic input and output, including print and input, and learn file operations with open, read, write, and close to handle standard input, keyboard input, and text files.
Explore object oriented programming through objects, attributes, and methods, and learn how they interact to model data, behavior, analysis, and modular, reusable software design.
Explore the fundamentals of object oriented programming by defining objects and classes, distinguishing instances from classes, and identifying attributes, data members, and member functions.
Explore the five method concepts in python's object oriented programming: class variables, instance variables, member variables, class methods, and instance methods; learn how each relates to class or object data.
Master encapsulation and data hiding in object oriented programming by binding data and methods, restricting external access, and enabling safe refactoring and decoupled code.
Explore message passing and dynamic dispatch, where a method call lets an object select and execute the appropriate code, enabling unidirectional communication and class method invocation across processes.
Explore inheritance, the mechanism to create new classes from existing ones by extending and refining capabilities, reusing base data and methods. Learn about single, multiple, multilevel, hierarchical, and hybrid inheritance.
Polymorphism, a key concept in object oriented programming, lets the same operation name behave differently for objects from a parent class or its descendants. Circle and square implement draw differently.
Explore how generalization merges common characteristics of subclasses into a higher-level superclass, forming is-a relationships. Explain how specialization uses distinguishing features to form specialized subclasses from existing classes.
Explore associations and links in object-oriented design, detailing one-to-one, one-to-many, and many-to-many cardinalities, and how these relationships connect classes, objects, and databases.
Set up a test email workflow in Python by composing from, to, subject, and body, configure the SMTP server, log in, and send the message.
Explore how to parse XML documents in Python using the document object model (DOM), extract elements and attributes, and iterate through products to retrieve names and prices.
Explore multi-threaded programming in Python by creating threads that share the main thread's data space for easy communication, and compare kernel and user threads with the thread and threading models.
Master SQL through a three-step process, learning the basics and advanced concepts that apply across MySQL, MariaDB, Microsoft SQL Server, Oracle, PostgreSQL, Informix, and MS Access.
Discover why SQL is essential as a structured query language. Learn to store, manipulate, and retrieve data in relational databases, and to create or drop databases and tables.
Install and configure XAMPP with Apache and MySQL, then use SQLYOG as a database client to set up a local web server, file transfer, and optional email features.
Use the control panel to start and stop modules, launch the Apache web server to serve pages, and start the MySQL/MariaDB database service on port 3306, confirming the server status.
Create a new database with a sql query, verify a successful connection on port 3306 with root and an empty password, and view the new database in the object browser.
Learn to drop and recreate a database via SQL queries, view databases, and understand the risk of data loss without a backup.
Create tables in a database by defining an integer id, a varchar name, and a not null constraint, then set a primary key and view the students table.
Master dropping tables with the drop table statement, observe effects on selects, and learn inserting new rows with insert into to manage database data.
Master the basic sql insert syntax by using insert into with a table, its columns, and corresponding values to populate records.
Create a new table from an existing one using a select statement, duplicating all data from the students table and understanding result sets.
Master the basics of the select statement, learning its syntax, how to retrieve all columns with select *, or fetch specific columns like name and age from a table.
Use the where clause to filter records in select statements, returning rows that meet a condition. Apply quotes for text comparisons and extend the clause to update or delete statements.
Master SQL operators by using greater than, greater or equal, less than, and less or equal in select statements; combine conditions with and and or to narrow results.
Master update queries to modify existing table records, update selected rows with where conditions, or update all rows without a where clause, using set assignments for one or multiple columns.
Learn to delete data with SQL delete statements, such as delete from students where name = Chris, and remove all records with a simple delete from table.
Learn how the like operator in a where clause uses wildcards to match patterns, such as names starting with Chris or containing mal, using % as the wildcard.
Master how to limit data across MySQL, MSSQL, and Oracle using limit, top, and rownum clauses. Learn practical syntax and database-specific nuances to retrieve the top N records.
Learn how the order by clause sorts data in ascending or descending order by one or more columns, ensuring the sorting column appears in the column list.
Learn how to use the group by clause with a select statement to group data by name, sum ages, and count records, then order by name.
Learn how to eliminate duplicate records and return only unique values using the distinct keyword. Understand the basic syntax of select distinct column from table where conditions are true.
Discover how to remove data from an existing table using truncate table, delete from, and drop table, while preserving or recreating table structure. See practical examples and basic SQL concepts.
Start programming in Python 3 with lessons and small coding activities that make your reasoning visible. This course takes you from introductory program flow into variables, decisions, repetition and structured data, with additional object-oriented and SQL material for a broader foundation.
Follow the environment demonstrations, then explore the core Python concepts in sequence. Practise recognising which values a program stores, which condition controls a branch and how repeated work is organised. Later sections introduce object-oriented ideas, additional Python topics and database operations.
Turn a concept into a small result
Describe a task before deciding which statements to write.
Trace a loop and explain when it should stop.
Organise data and separate a calculation into reusable behaviour.
Compare an expected output with the result of a changed input.
The final reading activities use fictional task labels to practise cleaning and counting text. Decide how whitespace, repeated labels and empty input should be handled before implementing a summary. Another lesson examines why a list used as a default argument can retain information from an earlier call, giving you a concrete behaviour to investigate.
This course suits beginners and learners who want to revisit Python foundations through explanations and practice. Basic computer skills and a willingness to test your own examples will help you make progress. It is an introduction to programming, not comprehensive training in every Python application area.
Review the curriculum for the full balance of language, object-oriented and database lessons. Recorded tool setup may differ from current interfaces; use current documentation to prepare your practice environment. Choose the course for a structured starting point and allow time to experiment between lessons.
Learning Python as a way to express a process
Python's readable syntax can make a first example approachable, but readability alone does not guarantee understanding. This course helps you connect the statements with the process they describe. You begin with variables and control flow, then encounter collections, object-oriented concepts, additional Python topics and an SQL extension. The practical reading work gives you focused questions about cleaning data and function behaviour. The goal is a broad beginner foundation, with enough structure to identify which idea needs more practice when a result is unexpected.
Starting with values that have a purpose
A variable should represent something you can explain. The early lessons give you a place to consider data types, operators and conversions in that context. If text enters a calculation, ask what transformation is required and what assumption supports it. Keep intermediate values in your notes. This makes it easier to locate a misunderstanding before it spreads through a longer program. It also turns a small example into evidence of reasoning, rather than a line of code remembered only because it ran successfully once.
Conditions as explicit choices
A decision rule should divide inputs in a way that matches the task. Write the cases before choosing the Python expression. Which inputs are accepted? Which lead to a different result? What happens at the boundary? The conditional lessons support this kind of investigation. A few deliberate test values can reveal more than many arbitrary ones. You are learning to state and check an interpretation, not merely to obtain an output that resembles a demonstration.
Loops and collections
Repeated processing needs both data and a rule for progress. The course's loop and collection material helps you examine how values are visited and changed. Follow a small example manually before running it. Record which values are read, which are updated and when repetition finishes. This is particularly useful when a result depends on the order of operations. If your trace and the output disagree, locate the first difference. That gives you a narrower and more productive question than deciding that the entire program is confusing.
Objects and broader Python ideas
The object-oriented section introduces a way to organise state and behaviour, while later topics extend the foundation. Treat each extension according to the depth shown in the curriculum. A class should have a responsibility you can describe; a method should have an understandable effect. You do not need to introduce a large hierarchy to begin learning those ideas. The course is not an exhaustive reference to every Python library or professional development pattern. Its purpose is to make a collection of introductory concepts more connected and usable.
Cleaning and counting task labels
The reading lab gives data preparation a concrete purpose. A collection of task labels can contain inconsistencies that affect a count. Before changing the text, define what should count as the same label and what information must be preserved. Then compare expected and observed totals. This connects earlier work on strings, collections and conditions with a small investigation. The activity does not promise a production data-cleaning pipeline. It gives you a focused problem in which the rule can be explained and its effect checked.
Why a default argument can remember
The article on mutable default arguments examines behaviour that can surprise someone familiar only with isolated calls. A list used as a default may retain information between calls in a way the author did not intend. The learning opportunity is to ask when a value is created and which calls share it. Keep the example small and compare two calls rather than inspecting only the first. This makes a language detail meaningful through an observed result and encourages more deliberate reasoning about function inputs.
Files, databases and the wider view
The curriculum also introduces further Python and SQL-related topics. These help connect a short program with information outside its immediate calculation. A file and a database record serve different roles, so identify what each example is trying to demonstrate. Additional setup may be needed if you reproduce the database work. The extension is introductory; it does not turn the course into complete database administration or specialist backend training. Use it to recognise a possible next direction after the core Python concepts are clearer.
A realistic practice routine
Choose a small example after each concept and change one assumption. Predict the result, run the code and explain any difference. This routine works whether you are new to programming or returning to an early topic you never fully understood. The course suits someone who wants breadth at a beginner level and concrete reading exercises. It does not promise instant expertise, a job outcome or mastery of every Python use case. A useful result is a foundation you can explain independently, plus a clear list of topics for deeper practice or a later focused project.
Curriculum at a glance
Introduction to Programming & Sequence and Python Programming Language
Variables & Data Types
If-Statements and Conditional Logic
Loops and Iteration
Arrays
Object-oriented Programming
Advanced Concepts in Python
Beyond Python: From Python to SQL - Using Databases to Store Data