PCEP Test Syllabus

Level 0: Introduction to Python

  1. ** Module 0.1: Getting Started with Python**

    • Lesson 0.1.1: Logical Thinking

    • Lesson 0.1.2: Variables and Data Types

    • Lesson 0.1.3: Running Python from the IDE vs. Running Python through the Command Prompt (Optional)

    • Lesson 0.1.4

  2. Module 0.2: Basic Python Syntax and Data Types

    • Lesson 0.2.1: Variables and Data Types

    • Lesson 0.2.2: Operators in Python

    • Lesson 0.2.3: Strings and String Manipulations

    • Lesson 0.2.4: Lists and List Manipulations

    • Lesson 0.2.5: Tuples and Tuple Operations

    • Lesson 0.2.6: Dictionaries and Dictionary Methods

    • Lesson 0.2.7: Sets and Set Operations

    • Lesson 0.2.8: Comprehensive Data Manipulation with Standard Library Functions

Level 1: Functions and Scripting

  1. Module 1.1: Creating and Calling Functions

    • Lesson 1.1.1: Introduction to Functions

    • Lesson 1.1.2: Function Parameters and Return Values

    • Lesson 1.1.3: Scope and Lifetime of Variables

    • Lesson 1.1.4: Creating Functions

    • Lesson 1.1.5: Calling Functions

  2. Module 1.2: Working with Modules and Standard Library

    • Lesson 1.2.1: Introduction to Modules

    • Lesson 1.2.2: Creating and Importing Modules

    • Lesson 1.2.3: Standard Library Modules and Functions

  3. Module 1.3: Advanced Functions

    • Lesson 1.3.1: Lambda Functions

    • Lesson 1.3.2: Decorators

    • Lesson 1.3.3: Recursion in Python

Level 3: Scripting and Package Creation

  1. Module 3.1: Python Scripting

    • Lesson 3.1.1: Introduction to Scripting in Python

    • Lesson 3.1.2: Command-Line Arguments and Input

    • Lesson 3.1.3: Writing Robust and Reusable Scripts

  2. Module 3.2: Creating Python Packages

    • Lesson 3.2.1: Understanding Packages and Modules

    • Lesson 3.2.2: Organizing Code into Packages

    • Lesson 3.2.3: Distributing and Installing Packages

  3. Module 3.3: Special Methods and if __name__ == "__main__"

    • Lesson 3.3.1: Understanding __init__ and Special Methods

    • Lesson 3.3.2: Utilizing if __name__ == "__main__"

    • Lesson 3.3.3: Best Practices for Scripting and Package Development

Level 4: Object-Oriented Programming (OOP)

  1. Module 4.1: Introduction to OOP

    • Lesson 4.1.1: Understanding Objects and Classes

    • Lesson 4.1.2: Constructors and Destructors

    • Lesson 4.1.3: Inheritance and Polymorphism

  2. Module 4.2: Advanced OOP Concepts

    • Lesson 4.2.1: Encapsulation and Abstraction

    • Lesson 4.2.2: Method Overloading and Overriding

    • Lesson 4.2.3: Design Principles in OOP

  3. Module 4.3: Working with Files

    • Lesson 4.3.1: Reading and Writing Text Files

    • Lesson 4.3.2: Working with JSON and CSV

    • Lesson 4.3.3: Exception Handling in File Operations

Level 5: Web Development with Python (Django)

  1. Module 5.1: Introduction to Web Development with Django

    • Lesson 5.1.1: Django Framework Overview

    • Lesson 5.1.2: Setting Up a Django Project

    • Lesson 5.1.3: Creating Django Views and Templates

  2. Module 5.2: Django Models and Admin Interface

    • Lesson 5.2.1: Django Models and Database

    • Lesson 5.2.2: Django Admin Interface

    • Lesson 5.2.3: Model Relationships in Django

  3. Module 5.3: Building a Django Web Application

    • Lesson 5.3.1: URL Patterns and Routing in Django

    • Lesson 5.3.2: Django Forms and Form Handling

    • Lesson 5.3.3: Authentication and Authorization in Django

Level 6: Data Science and Machine Learning

  1. Module 6.1: Introduction to Data Science

    • Lesson 6.1.1: Basics of Data Science

    • Lesson 6.1.2: NumPy and Pandas

    • Lesson 6.1.3: Data Cleaning and Preprocessing

  2. Module 6.2: Data Visualization with Matplotlib and Seaborn

    • Lesson 6.2.1: Basic Plots with Matplotlib

    • Lesson 6.2.2: Advanced Plots and Customization

    • Lesson 6.2.3: Seaborn for Statistical Visualization

  3. Module 6.3: Machine Learning Basics

    • Lesson 6.3.1: Introduction to Machine Learning

    • Lesson 6.3.2: Scikit-Learn Library

    • Lesson 6.3.3: Building and Evaluating Models

Level 7: Full-Stack Web Development with React and Django-Ninja (Capstone Project)

  1. Module 7.1: Frontend Development with React

    • Lesson 7.1.1: Introduction to React

    • Lesson 7.1.2: Components and Props

    • Lesson 7.1.3: State and Lifecycle

  2. Module 7.2: Building a RESTful API with Django-Ninja

    • Lesson 7.2.1: Overview of Django-Ninja

    • Lesson 7.2.2: Creating API Endpoints

    • Lesson 7.2.3: Authentication and Authorization in Django-Ninja

  3. Module 7.3: Integrating React with Django-Ninja

    • Lesson 7.3.1: Connecting React with Django

    • Lesson 7.3.2: Fetching Data from API

    • Lesson 7.3.3: Handling Forms and User Interactions

  4. Module 7.4: Full-Stack Capstone Project

    • Lesson 7.4.1: Defining Project Scope and Requirements

    • Lesson 7.4.2: Designing the User Interface and Experience

    • Lesson 7.4.3: Planning Data Models and API Endpoints

    • Lesson 7.4.4: Building the Backend with Django-Ninja

    • Lesson 7.4.5: Developing the Frontend with React

    • Lesson 7.4.6: Testing and Debugging

    • Lesson 7.4.7: Deployment and Documentation

    • Lesson 7.4.8: Continuous Integration and Deployment (CI/CD)

Level 8: Advanced Topics (Optional)

  1. Module 8.1: Advanced Python Concepts

    • Lesson 8.1.1: Generators and Iterators

    • Lesson 8.1.2: Context Managers

    • Lesson 8.1.3: Metaclasses

  2. Module 8.2: Scalability and Performance Optimization

    • Lesson 8.2.1: Caching Strategies

    • Lesson 8.2.2: Asynchronous Programming in Python

    • Lesson 8.2.3: Profiling and Optimization Techniques

TODO

TODO:

  • Should there be a lesson on setting up an IDE?

  • Should there be a lesson on how to run a python script?

    • From IDE

    • From Terminal

  • Should there be a lesson on Virtual Environments?

    • Proposition: Introduce Virtual Environments Before or in the beggining of Level 5

      • This is when it might become necessary

    • Proposition: Intruduce in level 3

      • Because understanding how to use venvs in python is essential