Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 73 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,73 @@
# https-github.com-python-ai-engineering-course-code
# 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.
30 changes: 30 additions & 0 deletions pillar-01/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-02/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-03/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-04/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-05/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-06/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-07/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-08/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-09/README.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 30 additions & 0 deletions pillar-10/README.md
Original file line number Diff line number Diff line change
@@ -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.
Loading