diff --git a/README.md b/README.md index d6b77af..c5b66cf 100644 --- a/README.md +++ b/README.md @@ -1 +1,73 @@ -# https-github.com-python-ai-engineering-course-code \ No newline at end of file +# Python AI Engineering Course + +Welcome to the Python AI Engineering Course! This comprehensive course is designed to equip you with the skills and knowledge needed to excel in AI engineering using Python. + +## Course Overview + +This course covers the fundamental and advanced concepts of Python programming with a focus on AI engineering applications. Through hands-on examples, labs, and projects, you'll learn to build robust AI solutions using industry-standard tools and best practices. + +## Course Structure + +The course is organized into 12 pillars, each focusing on a specific aspect of Python and AI engineering: + +- **pillar-01**: Python Fundamentals +- **pillar-02**: Data Structures and Algorithms +- **pillar-03**: Object-Oriented Programming +- **pillar-04**: Functional Programming +- **pillar-05**: Data Processing with NumPy and Pandas +- **pillar-06**: Testing with Pytest +- **pillar-07**: Type Checking with MyPy +- **pillar-08**: Data Validation with Pydantic +- **pillar-09**: API Development with FastAPI +- **pillar-10**: Machine Learning Basics +- **pillar-11**: Deep Learning Fundamentals +- **pillar-12**: AI Engineering Best Practices + +Each pillar contains: +- **examples/**: Practical code examples demonstrating key concepts +- **labs/**: Hands-on exercises to practice what you've learned +- **project/**: A comprehensive project to apply your knowledge +- **solutions/**: Solutions to labs and exercises +- **README.md**: Detailed overview of the pillar's content + +## Getting Started + +### Prerequisites + +- Python 3.8 or higher +- Basic understanding of programming concepts + +### Installation + +1. Clone this repository: + ```bash + git clone https://github.com/piatrips/https-github.com-python-ai-engineering-course-code.git + cd https-github.com-python-ai-engineering-course-code + ``` + +2. Install the required dependencies: + ```bash + pip install -r requirements.txt + ``` + +## Dependencies + +This course uses the following Python packages: +- **numpy**: Numerical computing library +- **pandas**: Data manipulation and analysis +- **pytest**: Testing framework +- **mypy**: Static type checker +- **pydantic**: Data validation using Python type annotations +- **fastapi**: Modern web framework for building APIs + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. + +## Contact + +For questions or feedback, please open an issue in this repository. \ No newline at end of file diff --git a/pillar-01/README.md b/pillar-01/README.md new file mode 100644 index 0000000..a23fb52 --- /dev/null +++ b/pillar-01/README.md @@ -0,0 +1,30 @@ +# Pillar 01: Python Fundamentals + +## Overview + +This pillar covers the foundational concepts of Python programming, including: +- Python syntax and semantics +- Variables and data types +- Control flow (if/else, loops) +- Functions and modules +- Basic input/output operations + +## Contents + +- **examples/**: Code examples demonstrating Python fundamentals +- **labs/**: Hands-on exercises to practice basic Python skills +- **project/**: A comprehensive project applying fundamental concepts +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Write and execute basic Python programs +- Understand and use Python's built-in data types +- Implement control flow logic +- Create and use functions +- Work with Python modules + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-02/README.md b/pillar-02/README.md new file mode 100644 index 0000000..26c603a --- /dev/null +++ b/pillar-02/README.md @@ -0,0 +1,30 @@ +# Pillar 02: Data Structures and Algorithms + +## Overview + +This pillar explores Python's data structures and fundamental algorithms: +- Lists, tuples, sets, and dictionaries +- List comprehensions +- Common algorithms (sorting, searching) +- Time and space complexity +- Algorithm optimization + +## Contents + +- **examples/**: Code examples demonstrating data structures and algorithms +- **labs/**: Hands-on exercises to practice implementing algorithms +- **project/**: A comprehensive project applying data structures +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Effectively use Python's built-in data structures +- Implement common algorithms +- Analyze algorithm complexity +- Choose appropriate data structures for different problems +- Optimize code performance + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-03/README.md b/pillar-03/README.md new file mode 100644 index 0000000..5e5bce0 --- /dev/null +++ b/pillar-03/README.md @@ -0,0 +1,30 @@ +# Pillar 03: Object-Oriented Programming + +## Overview + +This pillar covers object-oriented programming (OOP) concepts in Python: +- Classes and objects +- Inheritance and polymorphism +- Encapsulation and abstraction +- Magic methods and operator overloading +- Design patterns + +## Contents + +- **examples/**: Code examples demonstrating OOP concepts +- **labs/**: Hands-on exercises to practice OOP principles +- **project/**: A comprehensive project using OOP design +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Design and implement classes and objects +- Apply inheritance and polymorphism +- Use encapsulation to protect data +- Implement common design patterns +- Write maintainable object-oriented code + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-04/README.md b/pillar-04/README.md new file mode 100644 index 0000000..880aaf3 --- /dev/null +++ b/pillar-04/README.md @@ -0,0 +1,30 @@ +# Pillar 04: Functional Programming + +## Overview + +This pillar introduces functional programming concepts in Python: +- Lambda functions +- Map, filter, and reduce +- Decorators +- Generators and iterators +- Functional programming paradigms + +## Contents + +- **examples/**: Code examples demonstrating functional programming +- **labs/**: Hands-on exercises to practice functional concepts +- **project/**: A comprehensive project using functional programming +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Write and use lambda functions +- Apply higher-order functions +- Create and use decorators +- Implement generators and iterators +- Combine functional and object-oriented approaches + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-05/README.md b/pillar-05/README.md new file mode 100644 index 0000000..1d9d9b1 --- /dev/null +++ b/pillar-05/README.md @@ -0,0 +1,30 @@ +# Pillar 05: Data Processing with NumPy and Pandas + +## Overview + +This pillar covers data processing using NumPy and Pandas: +- NumPy arrays and operations +- Pandas DataFrames and Series +- Data cleaning and transformation +- Data analysis and aggregation +- Working with different data formats + +## Contents + +- **examples/**: Code examples demonstrating NumPy and Pandas usage +- **labs/**: Hands-on exercises for data processing tasks +- **project/**: A comprehensive data analysis project +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Perform numerical computations with NumPy +- Manipulate and analyze data with Pandas +- Clean and transform datasets +- Perform data aggregation and grouping +- Import and export data in various formats + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-06/README.md b/pillar-06/README.md new file mode 100644 index 0000000..0680436 --- /dev/null +++ b/pillar-06/README.md @@ -0,0 +1,30 @@ +# Pillar 06: Testing with Pytest + +## Overview + +This pillar focuses on testing Python applications using Pytest: +- Writing unit tests +- Test fixtures and parametrization +- Mocking and patching +- Code coverage +- Test-driven development (TDD) + +## Contents + +- **examples/**: Code examples demonstrating testing practices +- **labs/**: Hands-on exercises for writing tests +- **project/**: A comprehensive project with full test coverage +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Write effective unit tests with Pytest +- Use fixtures and parametrization +- Mock external dependencies +- Measure and improve code coverage +- Apply test-driven development practices + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-07/README.md b/pillar-07/README.md new file mode 100644 index 0000000..31ce5c0 --- /dev/null +++ b/pillar-07/README.md @@ -0,0 +1,30 @@ +# Pillar 07: Type Checking with MyPy + +## Overview + +This pillar covers static type checking in Python using MyPy: +- Type annotations and hints +- Generic types and type variables +- Protocol classes +- Type checking configuration +- Gradual typing strategies + +## Contents + +- **examples/**: Code examples demonstrating type annotations +- **labs/**: Hands-on exercises for adding type hints +- **project/**: A comprehensive typed Python project +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Add type annotations to Python code +- Use MyPy for static type checking +- Work with generic types and protocols +- Configure MyPy for different projects +- Apply gradual typing to existing codebases + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-08/README.md b/pillar-08/README.md new file mode 100644 index 0000000..5f3d730 --- /dev/null +++ b/pillar-08/README.md @@ -0,0 +1,30 @@ +# Pillar 08: Data Validation with Pydantic + +## Overview + +This pillar explores data validation using Pydantic: +- Pydantic models and fields +- Data validation and parsing +- Custom validators +- Settings management +- JSON schema generation + +## Contents + +- **examples/**: Code examples demonstrating Pydantic usage +- **labs/**: Hands-on exercises for data validation +- **project/**: A comprehensive project using Pydantic +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Create Pydantic models for data validation +- Implement custom validators +- Parse and validate complex data structures +- Manage application settings with Pydantic +- Generate JSON schemas from models + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-09/README.md b/pillar-09/README.md new file mode 100644 index 0000000..5548efb --- /dev/null +++ b/pillar-09/README.md @@ -0,0 +1,30 @@ +# Pillar 09: API Development with FastAPI + +## Overview + +This pillar covers building modern APIs using FastAPI: +- FastAPI basics and routing +- Request and response models +- Dependency injection +- Authentication and authorization +- API documentation with OpenAPI + +## Contents + +- **examples/**: Code examples demonstrating FastAPI features +- **labs/**: Hands-on exercises for building APIs +- **project/**: A comprehensive API project +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Build RESTful APIs with FastAPI +- Implement request validation and response models +- Use dependency injection +- Add authentication and authorization +- Generate automatic API documentation + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-10/README.md b/pillar-10/README.md new file mode 100644 index 0000000..10d8348 --- /dev/null +++ b/pillar-10/README.md @@ -0,0 +1,30 @@ +# Pillar 10: Machine Learning Basics + +## Overview + +This pillar introduces fundamental machine learning concepts: +- Supervised and unsupervised learning +- Feature engineering +- Model training and evaluation +- Cross-validation techniques +- Common ML algorithms + +## Contents + +- **examples/**: Code examples demonstrating ML concepts +- **labs/**: Hands-on exercises for building ML models +- **project/**: A comprehensive machine learning project +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Understand fundamental ML concepts +- Prepare data for machine learning +- Train and evaluate ML models +- Apply cross-validation techniques +- Choose appropriate algorithms for different problems + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-11/README.md b/pillar-11/README.md new file mode 100644 index 0000000..b2ecc0c --- /dev/null +++ b/pillar-11/README.md @@ -0,0 +1,30 @@ +# Pillar 11: Deep Learning Fundamentals + +## Overview + +This pillar covers deep learning concepts and neural networks: +- Neural network architectures +- Forward and backward propagation +- Activation functions +- Optimization algorithms +- Deep learning frameworks + +## Contents + +- **examples/**: Code examples demonstrating deep learning concepts +- **labs/**: Hands-on exercises for building neural networks +- **project/**: A comprehensive deep learning project +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Understand neural network architectures +- Implement forward and backward propagation +- Choose appropriate activation functions +- Apply optimization algorithms +- Use deep learning frameworks effectively + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/pillar-12/README.md b/pillar-12/README.md new file mode 100644 index 0000000..4ab663b --- /dev/null +++ b/pillar-12/README.md @@ -0,0 +1,30 @@ +# Pillar 12: AI Engineering Best Practices + +## Overview + +This pillar focuses on best practices for AI engineering: +- Code organization and project structure +- Version control for ML projects +- Model versioning and deployment +- Monitoring and logging +- MLOps principles + +## Contents + +- **examples/**: Code examples demonstrating best practices +- **labs/**: Hands-on exercises for implementing best practices +- **project/**: A comprehensive end-to-end AI project +- **solutions/**: Solutions to lab exercises + +## Learning Objectives + +By the end of this pillar, you will be able to: +- Structure AI projects effectively +- Version control code and models +- Deploy ML models to production +- Implement monitoring and logging +- Apply MLOps principles + +## Getting Started + +Navigate to the `examples/` directory to see practical demonstrations of the concepts covered in this pillar. diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..9fbd624 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +numpy +pandas +pytest +mypy +pydantic +fastapi