Python Curriculum

This course is designed for individuals who want to learn Python from scratch, starting with the basics and progressing to more advanced concepts. The course is divided into ten modules, each containing a project to help students apply what they have learned. One can choose to take all or just a few of these modules depending on their current knowledge, learning goals and respective requirements.

For students taking one lesson per week, it is recommended to complete the entire course in a couple of years. This pace is well-suited for primary or secondary school students who are taking coding as an extracurricular activity.

For adults who are learning Python to develop their skills for a career in the IT industry, it is recommended to take at least three lessons per week. The lessons are fast-paced, while maintaining a high standard of quality and providing one-on-one attention to ensure students fully understand the material. 

There is no strict deadline for completing the course as the progress depends on each student's learning speed and individual capabilities. We understand that each student's schedule and pace of learning is unique, and we strive to provide flexible learning solutions that best meet the needs of our students. 

    • Introduction to coding in Python: Learn the basics of coding in Python, including the syntax and structure of Python code, and how to write and execute simple Python programs.

    • Primitive data types: Learn about Python's built-in primitive data types, including integers, floating-point numbers, and strings, and how to work with them in Python programs.

    • Variables: Learn how to create and use variables in Python programs to store and manipulate data. You will also learn about variable naming conventions.

    • Arithmetic operators: Learn how to use arithmetic operators such as +, -, *, /, and % to perform mathematical operations on data.

    • Assignment operators: Learn how to use assignment operators such as =, +=, and *= to assign values to variables and update their values.

    • Comparison operators: Learn how to use comparison operators such as ==, !=, <, >, <=, and >= to compare values and test conditions.

    • Conditional statements: Learn how to use conditional statements such as if, else, and elif to control the flow of a program based on certain conditions.

    • Logical operators: Learn how to use logical operators such as and, or, and not to combine multiple conditions in a single statement.

    • Nested-if-else statements: Learn how to use nested conditional statements to test multiple conditions and perform different actions based on the results.

    • Project: Rock Paper Scissors

    Overview of the Project:

    In this project, you will use your knowledge of operators and conditionals to create a simple game of rock paper scissors. You will prompt the user to enter their choice, generate a random selection for the computer, and determine the winner based on the game's rules. You will use conditional statements and logical operators to determine the winner and handle any errors arising from invalid user input.

    This project will allow you to apply your knowledge of operators and conditionals to a practical application. You will also gain experience working with user input, random number generation, and error handling, as well as with designing and implementing a simple algorithm.

    • String concatenation and indexing: Learn how to concatenate strings together and access individual characters within a string using indexing.

    • String methods: Learn how to use various built-in string methods, such as split(), strip(), upper(), and replace(), to manipulate strings and perform common string operations.

    • String formatting with f-strings: Learn how to use f-strings to insert values into a string and format it in a readable way.

    • String slicing: Learn how to extract a subset of characters from a string using slicing.

    • Typecasting: Learn how to convert between strings and other data types using type casting, such as converting a string to an integer or a float.

    • Project: Age Calculator:

    Overview of the Project

    In this project, you will use your knowledge of strings and typecasting to create a simple age calculator. You will prompt the user to enter their birth year and use the current year to calculate their age. You will use string formatting to display their age readably and handle any errors that might arise due to invalid user input.

    This project will allow you to apply your knowledge of strings and typecasting to a practical application. You will also gain experience working with user input, mathematical operations, and error handling, as well as with designing and implementing a simple algorithm.

    • For loops: Learn how to use for loops to iterate over sequences of data, such as lists and strings, and perform a specific task for each item in the sequence.

    • While loops: Learn how to use while loops to repeatedly execute a block of code as long as a certain condition is true.

    • Nested loops: Learn how to use nested loops to perform complex iterations over multiple sequences of data.

    • Project: Number Guessing Game

    Overview of the Project:

    In this project, you will use your knowledge of loops and conditional statements to implement a simple number-guessing game. You will define a range of numbers for the user to guess from, and use a while loop to repeatedly prompt the user for a guess until they correctly guess the number. You will also use if statements to provide feedback to the user about whether their guess is too high or too low.

    This project will provide you with an opportunity to apply your knowledge of loops and conditional statements to create an interactive game in Python. You will also gain experience working with user input, random numbers, and control flow st

    • Parameters and arguments: Learn how to define and use parameters in your functions to make them more flexible and reusable.

    • Return values: Learn how to use return statements to return data from your functions, and how to use the returned values in your code.

    • Scope: Learn about the scope of variables in your code, and how to avoid common errors when working with variables in functions.

    • Lambda functions: Learn about lambda functions, which are small, anonymous functions that can be defined on-the-fly.

    • Project: GREED Game

    Overview of the Project

    In this project, you will use your knowledge of functions to implement the classic dice game GREED. You will define functions to roll the dice, score each roll, and keep track of player scores. You will also use parameters and return values to make your functions more flexible and reusable, and use loops and conditional statements to create a game loop that allows players to take turns and compete for the highest score.

    This project will provide you with an opportunity to apply your knowledge of functions to create a fun and engaging game in Python. You will also gain experience working with loops, conditional statements, and user input, as well as with parameters and return values in functions.

    • Introduction to lists, tuples, and sets: Learn about these different types of complex data structures in Python, including their syntax, properties, and use cases.

    • List concatenation and indexing: Learn how to concatenate lists and access elements in a list using indexing.

    • List methods: Learn about various methods that can be used to manipulate lists, such as sorting, appending, inserting, and removing elements.

    • 2-D lists: Learn how to create and work with 2-D lists, which are useful for representing tables or matrices of data.

    • Applications of 2-D lists: Learn how to apply 2-D lists to real-world problems, such as representing game boards or storing data in a spreadsheet format.

    • Introduction to Python dictionaries: Learn about dictionaries, which are used to store data in key-value pairs, and how they differ from other data structures.

    • Manipulating dictionaries: Learn how to manipulate dictionaries, including adding and removing key-value pairs, iterating over keys or values, and sorting.

    • Applications of dictionaries: Learn how dictionaries can be used to solve real-world problems, such as analyzing text data or tracking inventory.

    • Project: CONNECT 4

    Overview of the Project

    In this project, you will use your knowledge of complex data types to implement the classic board game CONNECT 4. You will create a 2-D list to represent the game board, use loops and conditional statements to check for a win condition, and allow players to take turns by updating the game board. You will also use dictionaries to keep track of player scores and game statistics.

    This project will provide you with an opportunity to apply your knowledge of complex data types to create a fun and engaging game in Python. You will also gain experience working with loops, conditional statements, and user input, as well as with dictionaries for storing and manipulating data.

    • Reading from text files: Learn how to read data from a text file in Python, and how to store the data in a variable for further processing.

    • Writing and appending to text files: Learn how to write data to a text file, and how to append data to an existing text file.

    • Reading from CSV files: Learn how to read data from a CSV file in Python, and how to store the data in a pandas data frame for further processing.

    • Writing and appending to CSV files: Learn how to write data to a CSV file, and how to append data to an existing CSV file.

    • Introduction to common exceptions: Learn about common exceptions that can occur when working with files in Python, and how to handle them using exception handling.

    • Using try-except to handle exceptions: Learn how to use the try-except statement to handle exceptions in your code, and how to customize error messages for different types of exceptions.

    • Project: Analyzing Quarterly Sales

    Overview of the Project:

    In this project, you will use your file-handling and exception-handling skills to analyze quarterly sales data for a small business. You will read data from a CSV file, calculate the total sales for each quarter, and write the results to a new CSV file. You will also handle common exceptions that may occur during the data analysis process, such as missing or invalid data.

    This project will provide you with an opportunity to apply your file handling and exception handling skills using a real-world dataset, and to gain insights into the sales performance of a small business.

    • Introduction to Object-Oriented Programming: Overview of OOP concepts and their importance.

    • Classes and Objects: Defining classes, creating objects, class attributes, instance attributes, and methods.

    • Inheritance: Types of inheritance, parent and child classes, overriding methods, super function.

    • Polymorphism: Overview of polymorphism, using abstract classes, duck typing, function overloading, and operator overloading.

    • Project: Business Inventory System: Implementing a business inventory system using OOP principles.

    Overview of the Project:

    In this project, you will be creating a Business Inventory System using object-oriented programming principles. The system should have the following functionality:

    The ability to add and remove products from the inventory

    The ability to search for products by name or ID number

    The ability to update the quantity and price of products

    The ability to generate a report of all products in the inventory and their quantities and prices.

    You will need to define a Product class and use inheritance to create more specific types of products, such as electronic products or food products. You will also need to use polymorphism to implement different methods for each type of product. Finally, you will need to create a main program that allows the user to interact with the inventory system and perform the necessary operations.

    This project will provide you with an opportunity to apply the OOP concepts learned in the module to a real-world scenario, and to practice designing and implementing complex systems using Python.

    • NumPy: NumPy is a fundamental library for scientific computing with Python. It provides fast and efficient array operations and supports mathematical functions such as linear algebra, Fourier transform, and random number generation.

    • Pandas: Pandas is a library that provides data structures and functions for data manipulation and analysis. It provides easy-to-use tools for data cleaning, merging, and reshaping, and supports reading and writing data from and to various file formats.

    • Matplotlib: Matplotlib is a plotting library that provides a wide range of static visualization options for 2D and 3D data. It allows you to create a variety of plots, including lines, bars, scatter, histograms, and pie charts.

    • Seaborn: Seaborn is a library built on top of Matplotlib that provides more advanced visualization options and statistical graphics. It allows you to create heat maps, cluster maps, violin plots, and other advanced plots.

    • Project Idea: Visualizing the Impact of COVID-19 on Global Tourism

    Overview of the Project:

    In this project, you will use data from the United Nations World Tourism Organization to analyze the impact of COVID-19 on global tourism. You will use Matplotlib and Seaborn to create visualizations that help to illustrate patterns and trends in the data. You will use Pandas to clean and manipulate the data, and NumPy to perform statistical analyses.

    This project will provide you with an opportunity to apply your data analysis and visualization skills using a real-world dataset, and to gain insights into the impact of the COVID-19 pandemic on the global tourism industry.

    Steps:

    Obtain the data: Download the dataset from the United Nations World Tourism Organization website. The dataset should contain information about international tourist arrivals and receipts for different countries over a specific time period (e.g., one year).

    Clean and prepare the data: Use Pandas to clean and prepare the data for analysis. This may include handling missing data, converting data types, and merging data from multiple sources.

    Explore the data: Use Matplotlib and Seaborn to create visualizations that help to illustrate patterns and trends in the data. For example, you could create a line chart that shows the change in international tourist arrivals over time, or a scatter plot that shows the relationship between tourism receipts and GDP.

    Analyze the data: Use NumPy to perform statistical analyses on the data. For example, you could calculate the mean, median, and standard deviation of international tourist arrivals for each country in the dataset.

    Draw conclusions: Use the insights gained from your data analysis to draw conclusions about the impact of COVID-19 on global tourism. You could also make predictions about the future of the tourism industry based on the trends you observe in the data.

    This project will provide you with an opportunity to apply your data analysis and visualization skills using a real-world dataset, and to gain insights into the impact of the COVID-19 pandemic on the global tourism industry.

    • Introduction to Turtle Graphics

    • Drawing basic shapes with Turtle

    • Using loops and functions to draw complex shapes with Turtle

    • Introduction to Tkinter

    • Creating windows and widgets with Tkinter

    • Binding events and handling user input with Tkinter

    • Project: Drawing Application with Turtle and Tkinter

    Overview of the Project:

    For the project, students will create a simple drawing application using Turtle and Tkinter. The application will allow the user to draw shapes on a canvas using the mouse, change the color and size of the brush, and save their drawings to a file. This project will require students to use their knowledge of Turtle and Tkinter to create a functional user interface and handle user input in real-time. Students will also have the opportunity to be creative with their designs and add additional features to their application.