Syllabus - Artificial Intelligence

  • Course Description. It teaches various concepts in artificial intelligence. It covers building recommend-er systems, logic programming, heuristic search techniques, genetic algorithms, natural language programming, object detection and tracking, artificial neural networks and deep learning with convolutional neural network.
  • Coursework. Coursework will consist of weekly project, midterm, and a final exam. The overall grade will be determined %10 from the project, 30 % from midterm, and 60% from the final exam.
  • Exam policy. No collaboration is permitted during the exam . If any collaboration with the intention of copying is caught, the student will get a failing grade.
  • Smartphone policy. Smartphones are not allowed during lectures.
  • Text. The course textbook is "Artificial Intelligence with Python", First Edition, by Prateek Joshi.
  • 1. Week 1 - Introduction to Artificial Intelligence
      1. What is Artificial Intelligence?
      2. Why do we need to study AI?
      3. Applications of AI
      4. Branches of AI
      5. Defining intelligence using Turing Test
      6. Making machines think like humans
      7. Building rational agents
      8. General Problem Solver
      9. Solving a problem with GPS
      10. Building an intelligent agent
      11. Types of models
      12. Loading data
  • Week 2 - Classification and Regression Using Supervised Learning
      1. Supervised versus unsupervised learning
      2. What is classification?
      3. Preprocessing data
      4. Binarization
      5. Mean removal
      6. Scaling
      7. Normalization
      8. Label encoding
      9. Logistic Regression classifier
      10. Naïve Bayes classifier
      11. Confusion matrix
      12. Support Vector Machines
      13. Classifying income data using Support Vector Machines
      14. What is Regression?
      15. Building a single variable regressor
      16. Building a multivariable regressor
      17. Estimating housing prices using a Support Vector Regressor
  • Week 3 - Predictive Analytics with Ensemble Learning
      1. What is Ensemble Learning?
      2. Building learning models with Ensemble Learning
      3. What are Decision Trees?
      4. Building a Decision Tree classifier
      5. What are Random Forests and Extremely Random Forests?
      6. Building Random Forest and Extremely Random Forest classifiers
      7. Estimating the confidence measure of the predictions
      8. Dealing with class imbalance
      9. Finding optimal training parameters using grid search
      10. Computing relative feature importance
      11. Predicting traffic using Extremely Random Forest regressor
  • Week 4 - Detecting Patterns with Unsupervised Learning
    1. What is unsupervised learning?
    2. Clustering data with K-Means algorithm
    3. Estimating the number of clusters with Mean Shift algorithm
    4. Estimating the quality of clustering with silhouette scores
    5. What are Gaussian Mixture Models?
    6. Building a classifier based on Gaussian Mixture Models
    7. Finding subgroups in stock market using Affinity Propagation model
    8. Segmenting the market based on shopping patterns
  • Week 5 - Building Recommender Systems
    1. Creating a training pipeline
    2. Extracting the nearest neighbors
    3. Building a K-Nearest Neighbors classifier
    4. Computing similarity scores
    5. Finding similar users using collaborative filtering
    6. Building a movie recommendation system
  • Week 6 - Logic Programming
    1. What is logic programming?
    2. Understanding the building blocks of logic programming
    3. Solving problems using logic programming
    4. Installing Python packages
    5. Matching mathematical expressions
    6. Validating primes
    7. Parsing a family tree
    8. Analyzing geography
    9. Building a puzzle solver
  • Week 7 - Heuristic Search Techniques
    1. What is heuristic search?
    2. Uninformed versus Informed search
    3. Constraint Satisfaction Problems
    4. Local search techniques
    5. Simulated Annealing
    6. Constructing a string using greedy search
    7. Solving a problem with constraints
    8. Solving the region-coloring problem
    9. Building an 8-puzzle solver
    10. Building a maze solver
  • Week 8 - Genetic Algorithms
    1. Understanding evolutionary and genetic algorithms
    2. Fundamental concepts in genetic algorithms
    3. Generating a bit pattern with predefined parameters
    4. Visualizing the evolution
    5. Solving the symbol regression problem
    6. Building an intelligent robot controller
  • Week 9 - Building Games With Artificial Intelligence
    1. Using search algorithms in games
    2. Combinatorial search
    3. Minimax algorithm
    4. Alpha-Beta pruning
    5. Negamax algorithm
    6. Installing easyAI library
    7. Building a bot to play Last Coin Standing
    8. Building a bot to play Tic-Tac-Toe
    9. Building two bots to play Connect Four™ against each other
    10. Building two bots to play Hexapawn against each other
  • Week 10 - Natural Language Processing
    1. Introduction and installation of packages
    2. Tokenizing text data
    3. Converting words to their base forms using stemming
    4. Converting words to their base forms using lemmatization
    5. Dividing text data into chunks
    6. Extracting the frequency of terms using a Bag of Words model
    7. Building a category predictor
    8. Constructing a gender identifier
    9. Building a sentiment analyzer
    10. Topic modeling using Latent Dirichlet Allocation
  • Week 11 - Probabilistic Reasoning for Sequential Data
    1. Understanding sequential data
    2. Handling time-series data with Pandas
    3. Slicing time-series data
    4. Operating on time-series data
    5. Extracting statistics from time-series data
    6. Generating data using Hidden Markov Models
    7. Identifying alphabet sequences with Conditional Random Fields
    8. Stock market analysis
  • Week 12 - Building A Speech Recognizer
    1. Working with speech signals
    2. Visualizing audio signals
    3. Transforming audio signals to the frequency domain
    4. Generating audio signals
    5. Synthesizing tones to generate music
    6. Extracting speech features
    7. Recognizing spoken words
  • Week 12 - Object Detection and Tracking
    1. Installing OpenCV
    2. Frame differencing
    3. Tracking objects using colorspaces
    4. Object tracking using background subtraction
    5. Building an interactive object tracker using the CAMShift algorithm
    6. Optical flow based tracking
    7. Face detection and tracking
    8. Using Haar cascades for object detection
    9. Using integral images for feature extraction
    10. Eye detection and tracking
  • Week 13 - Artificial Neural Networks
    1. Introduction to artificial neural networks
    2. Building a neural network
    3. Training a neural network
    4. Building a Perceptron based classifier
    5. Constructing a single layer neural network
    6. Constructing a multilayer neural network
    7. Building a vector quantizer
    8. Analyzing sequential data using recurrent neural networks
    9. Visualizing characters in an Optical Character Recognition database
    10. Building an Optical Character Recognition engine
  • Week 14 - Reinforcement Learning
    1. Understanding the premise
    2. Reinforcement learning versus supervised learning
    3. Real world examples of reinforcement learning
    4. Building blocks of reinforcement learning
    5. Creating an environment
    6. Building a learning agent
  • Week 14 - Deep Learning with Convolutional Neural Networks
    1. What are Convolutional Neural Networks?
    2. Architecture of CNNs
    3. Types of layers in a CNN
    4. Building a perceptron-based linear regressor
    5. Building an image classifier using a single layer neural network
    6. Building an image classifier using a Convolutional Neural Network