PCEP Test Syllabus¶
Level 0: Introduction to Python¶
** 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
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¶
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
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
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¶
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
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
Module 3.3: Special Methods and
if __name__ == "__main__"
Lesson 3.3.1: Understanding
__init__
and Special MethodsLesson 3.3.2: Utilizing
if __name__ == "__main__"
Lesson 3.3.3: Best Practices for Scripting and Package Development
Level 4: Object-Oriented Programming (OOP)¶
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
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
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)¶
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
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
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¶
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
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
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)¶
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
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
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
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)¶
Module 8.1: Advanced Python Concepts
Lesson 8.1.1: Generators and Iterators
Lesson 8.1.2: Context Managers
Lesson 8.1.3: Metaclasses
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