Building Modern Systems: Theory and Implementation
Instructor:
Hamas ur Rehman
Visiting Faculty, UET Peshawar
Table of Contents
- Course Overview
- Prerequisites
- Course Outline
- Module 1: Advanced AI Systems
- Module 2: Generative AI and Large Language Models (LLMs)
- Module 3: APIs – Theory and Practical Implementation
- Module 4: Building a Chatbot with LLMs
- Module 5: Logging in Applications
- Module 6: Environment Variables and Secrets Management
- Module 7: Storing Chats in MongoDB
- Module 8: Vector Databases and ChromaDB
- Module 9: Local Server Setup and Hosting APIs
- Module 10: Docker for Modern Applications
- Module 11: Version Control with Git
- Module 12: API Testing with PyTest and Postman
- Module 13: Cloud Deployment with Azure
Course Overview
Building Modern Systems: Theory and Implementation is a comprehensive course that delves into the design and development of advanced computational systems. It bridges the gap between theoretical foundations and practical applications, equipping students with the knowledge and skills to build intelligent, scalable, and efficient systems.
Computational Intelligence techniques such as machine learning and artificial intelligence are integral to modern system design, enabling systems to make informed decisions, adapt to changing environments, and solve complex problems autonomously.
Prerequisites
Students enrolling in this course should have prior knowledge of:
- Object-Oriented Programming (OOP)
- General Programming Concepts
Course Outline
Module 1: Advanced AI Systems
- Theory:
- Introduction to Advanced AI systems
- Overview of AI technologies and applications
- Evolution of AI systems
Module 2: Generative AI and Large Language Models (LLMs)
- Theory:
- Introduction to Generative AI
- Understanding Large Language Models (LLMs) like GPT
- Applications of LLMs in real-world projects
- Practical:
- Case Study: Analyzing a project with integrated LLM (e.g., InstantAlfred on Insurancemarket.ae)
Module 3: APIs – Theory and Practical Implementation
- Theory:
- Introduction to APIs and their importance
- Types of APIs: REST, GraphQL, etc.
- Best practices for API design
- Practical:
- Implementing APIs in Python
- Creating and testing APIs using Postman
Module 4: Building a Chatbot with LLMs
- Theory:
- Components of a chatbot
- How LLMs are used in chatbots
- Practical:
- Python implementation of a small chatbot using an LLM
Module 5: Logging in Applications
- Theory:
- Why logging is crucial for applications
- The limitations of print statements for debugging
- Practical:
- Implementing logging in Python
- Logging best practices
Module 6: Environment Variables and Secrets Management
- Theory:
- Introduction to environment variables and secrets
- Importance of securely storing sensitive data in applications
- Practical:
- Setting up environment variables and secrets in Python
- Using
.env files securely in projects
Module 7: Storing Chats in MongoDB
- Theory:
- Introduction to NoSQL databases (MongoDB)
- Use cases of MongoDB in chat applications
- Practical:
- Storing chatbot conversations in a MongoDB database
- Retrieving stored chats from MongoDB
Module 8: Vector Databases and ChromaDB
- Theory:
- Introduction to vector databases
- The role of vector databases in AI-driven applications
- Overview of ChromaDB and its use cases
- Practical:
- Implementing ChromaDB in a project
- Exploring other vector databases and their capabilities
Module 9: Local Server Setup and Hosting APIs
- Theory:
- Understanding local servers and their role in development
- Hosting APIs locally for testing
- Practical:
- Setting up a local server
- Testing APIs on local environments
Module 10: Docker for Modern Applications
- Theory:
- Introduction to Docker and containerization
- Benefits of using Docker in development and production
- Practical:
- Creating and running a Docker container for the course project
Module 11: Version Control with Git
- Theory:
- Introduction to Git and Version Control
- Understanding branches, commits, and merges
- Practical:
- Hands-on experience with Git
- Managing project versions using GitHub
Module 12: API Testing with PyTest and Postman
- Theory:
- Introduction to automated testing with PyTest
- Importance of API testing
- Practical:
- Writing unit tests for APIs using PyTest
- Automating tests for APIs with Postman
Module 13: Cloud Deployment with Azure
- Theory:
- Introduction to cloud platforms (Azure, AWS, GCP)
- Benefits of cloud deployment
- Practical:
- Deploying Docker containers to Azure
- Exploring Azure services for scalable AI systems