# Application of AI

Welcome to the **Application of AI** course materials. This course focuses on practical applications of Artificial Intelligence, with emphasis on **Computer Vision** and **AI Agents**.

## Course Philosophy

This course takes a hands-on, application-focused approach to AI. Rather than diving deep into mathematical theory, we prioritize:

- **Practical implementation** with industry-standard tools
- **Real-world use cases** across multiple domains
- **Progressive skill building** from fundamentals to advanced applications
- **Active learning** through exercises and experimentation

Students are encouraged to run the code, experiment with parameters, and adapt the examples to their own projects.

## Technology Stack

The course uses Python as the primary programming language, along with:

- **Pillow & OpenCV** - Image processing and computer vision fundamentals
- **TensorFlow/Keras** - Deep learning and CNN architectures
- **Ultralytics YOLO** - State-of-the-art object detection, segmentation, and tracking
- **Python standard library** - Framework-free agent concepts and patterns

## Prerequisites

- **Python 3.8+** with Jupyter Notebook or JupyterLab
- Basic understanding of **machine learning concepts** (regression, classification, metrics)
- Familiarity with **neural networks** (helpful but not required)
- Interest in practical AI applications

## Course Structure

### Part 1: Computer Vision Applications

This part covers the complete journey from basic image processing to advanced computer vision tasks:

1. **Foundations** - Understanding images as data, color spaces, and file formats
2. **Image Processing** - Practical tools with Pillow and OpenCV
3. **Deep Learning** - CNN architectures and transfer learning with Keras
4. **Advanced CV** - Object detection, segmentation, pose estimation, and tracking with Ultralytics YOLO

### Part 2: AI Agents

This part introduces the conceptual foundations of AI agents (framework-free):

1. **LLMs & Prompting** - Understanding LLMs, prompt engineering patterns, and effective communication
2. **Agent Architectures** - Reactive, deliberative, and hybrid agent designs
3. **Tools & Memory** - How agents use external tools and maintain context
4. **CV + Agents** - Using computer vision models as perception tools in agent systems

## Getting Started

### How to Run These Notebooks

You have several options for working with the course materials:

**Option 1: Google Colab (Easiest)**
- Click the notebook you want in the sidebar, then use the rocket icon (🚀) at the top to launch in Colab
- No local setup required; runs in your browser with free GPU access
- Images load directly from the GitHub repository

**Option 2: Local Environment**
- Clone the repository: `git clone https://github.com/ezponda/ai-application-course-materials.git`
- Install dependencies: `pip install -r requirements.txt`
- Launch Jupyter: `jupyter notebook` or `jupyter lab`

**Option 3: Download Individual Notebooks**
- Use the download button (⬇️) at the top of any notebook page to get the `.ipynb` file
- Upload to your preferred environment (Colab, local Jupyter, etc.)

### Learning Path

1. Work through the notebooks in order (sidebar navigation)
2. Complete the TODO exercises to reinforce learning
3. Experiment with your own images and use cases

Each notebook is self-contained with explanations, code examples, and exercises. Notebooks marked with ✅ are complete, while *(Placeholder)* notebooks contain outlines for upcoming content.

---

*Course materials developed for Master's level "Application of AI" program.*
