Nanodegree key: nd898
Version: 5.0.0
Locale: enus
Become an expert in the core concepts of artificial intelligence and learn how to apply them to reallife problems.
Content
Part 01 : Introduction to Artificial Intelligence
Meet the instructional team including Sebastian Thrun, Peter Norvig, and Thad Starner who will be teaching you about the foundations of AI. Get acquainted with the resources available in your classroom & other important information about the program. Complete the lesson by building a Sudoku solver.

Module 01: Introduction to Artificial Intelligence

Lesson 01: Welcome to Artificial Intelligence
Welcome to the Artificial Intelligence Nanodegree program!
 Concept 01: Welcome to the Artificial Intelligence Nanodegree Program
 Concept 02: Meet Your Instructors
 Concept 03: Projects You Will Build
 Concept 04: Udacity Support
 Concept 05: Community Guidelines
 Concept 06: Weekly Lesson Plans
 Concept 07: References & Resources
 Concept 08: Get Started
 Concept 09: Lesson Plan  Week 1

Lesson 02: Mentor Help, Peer Chat, and Careers
You are starting a challenging but rewarding journey! Take 5 minutes to read how to get help with projects and content.

Lesson 03: Get Help with Your Account
What to do if you have questions about your account or general questions about the program.

Lesson 04: Intro to Artificial Intelligence
An introduction to basic AI concepts and the challenge of answering "what is AI?"
 Concept 01: Welcome to AI!
 Concept 02: Navigation
 Concept 03: Game Playing
 Concept 04: Quiz: Tic Tac Toe
 Concept 05: Tic Tac Toe: Heuristics
 Concept 06: Quiz: Monty Hall Problem
 Concept 07: Monty Hall Problem: Explained
 Concept 08: Quiz: What is Intelligence?
 Concept 09: Defining Intelligence
 Concept 10: Agent, Environment And State
 Concept 11: Perception, Action and Cognition
 Concept 12: Quiz: Types of AI Problems
 Concept 13: Rational Behavior And Bounded Optimality

Lesson 05: Solving Sudoku With AI
In this lesson, you'll dive right in and apply Artificial Intelligence to solve every Sudoku puzzle.
 Concept 01: Intro
 Concept 02: Solving a Sudoku
 Concept 03: Setting up the Board
 Concept 04: Encoding the Board
 Concept 05: Strategy 1: Elimination
 Concept 06: Strategy 2: Only Choice
 Concept 07: Constraint Propagation
 Concept 08: Harder Sudoku
 Concept 09: Strategy 3: Search
 Concept 10: Coding the Solution

Lesson 06: Workspaces
Review the basic functionality of Workspaces—preconfigured development environments in the Udacity classroom for projects and exercises.

Lesson 07: Setting Up Your Environment with Anaconda
If you do not want to use Workspaces, then follow these instructions to set up your own system using Anaconda, a popular tool to manage your environments and packages in python.
 Concept 01: Demonstration
 Concept 02: What is Anaconda?
 Concept 03: Installing Anaconda
 Concept 04: Managing Packages
 Concept 05: Managing Environments
 Concept 06: More Environment Actions
 Concept 07: Summary and Best Practices
 Concept 08: Python versions at Udacity
 Concept 09: AIND Conda Environment

Lesson 08: Build a Sudoku Solver
Use constraint propagation and search to build an agent that reasons like a human would to efficiently solve any Sudoku puzzle.

Lesson 09: Jobs in AI
Learn about common jobs in artificial intelligence, and get tips on how to stay active in the community.

Lesson 10: Optimize Your GitHub Profile
Other professionals are collaborating on GitHub and growing their network. Submit your profile to ensure your profile is on par with leaders in your field.
 Concept 01: Prove Your Skills With GitHub
 Concept 02: Introduction
 Concept 03: GitHub profile important items
 Concept 04: Good GitHub repository
 Concept 05: Interview with Art  Part 1
 Concept 06: Identify fixes for example “bad” profile
 Concept 07: Quick Fixes #1
 Concept 08: Quick Fixes #2
 Concept 09: Writing READMEs with Walter
 Concept 10: Interview with Art  Part 2
 Concept 11: Commit messages best practices
 Concept 12: Reflect on your commit messages
 Concept 13: Participating in open source projects
 Concept 14: Interview with Art  Part 3
 Concept 15: Participating in open source projects 2
 Concept 16: Starring interesting repositories
 Concept 17: Next Steps

Part 02 : Constraint Satisfaction Problems
Take a deep dive into the constraint satisfaction problem framework and further explore constraint propagation, backtracking search, and other CSP techniques. Complete a classroom exercise using a powerful CSP solver on a variety of problems to gain experience framing new problems as CSPs.

Module 01: Constraint Satisfaction Problems

Lesson 01: Constraint Satisfaction Problems
Expand from the constraint propagation technique used in the Sudoku project to the Constraint Satisfaction Problem framework that can be used to solve a wide range of general problems.
 Concept 01: Lesson Plan  Week 2
 Concept 02: Introduction
 Concept 03: CSP Examples
 Concept 04: Map Coloring
 Concept 05: Constraint Graph
 Concept 06: Map Coloring Quiz
 Concept 07: Constraint Types
 Concept 08: Backtracking Search
 Concept 09: Why Backtracking?
 Concept 10: Improving Backtracking Efficiency
 Concept 11: Backtracking Optimization Quiz
 Concept 12: Forward Checking
 Concept 13: Constraint Propagation and Arc Consistency
 Concept 14: Constraint Propagation Quiz
 Concept 15: Structured CSPs

Lesson 02: CSP Coding Exercise
Practice formulating some classical example problems as CSPs, and then to explore using a powerful open source constraint satisfaction tool called Z3 from Microsoft Research to solve them.

Lesson 03: Additional Readings
Reading list of applications and additional topics related to CSPs.

Part 03 : Classical Search
Learn classical graph search algorithmsincluding uninformed search techniques like breadthfirst and depthfirst search and informed search with heuristics including A*. These algorithms are at the heart of many classical AI techniques, and have been used for planning, optimization, problem solving, and more. Complete the lesson by teaching PacMan to search with these techniques to solve increasingly complex domains.

Module 01: Classical Search

Lesson 01: Introduction
Peter Norvig, coauthor of Artificial Intelligence: A Modern Approach, explains a framework for search problems, and introduces uninformed & informed search strategies to solve them.

Lesson 02: Uninformed Search
Peter introduces uninformed search strategies—which can only solve problems by generating successor states and distinguishing between goal and nongoal states.
 Concept 01: Intro to Uninformed Search
 Concept 02: Example: Route Finding
 Concept 03: Quiz: Tree Search
 Concept 04: Tree Search Continued
 Concept 05: Quiz: Graph Search
 Concept 06: Quiz: Breadth First Search 1
 Concept 07: Breadth First Search 2
 Concept 08: Quiz: Breadth First Search 3
 Concept 09: Breadth First Search 4
 Concept 10: Breadth First Search 5
 Concept 11: Uniform Cost Search
 Concept 12: Uniform Cost Search 1
 Concept 13: Uniform Cost Search 2
 Concept 14: Uniform Cost Search 3
 Concept 15: Uniform Cost Search 4
 Concept 16: Uniform Cost Search 5
 Concept 17: Quiz: Search Comparison
 Concept 18: Search Comparison 1
 Concept 19: Quiz: Search Comparison 2
 Concept 20: Search Comparison 3
 Concept 21: Recap

Lesson 03: Informed Search
Peter introduces informed search strategies, which means that they use problemspecific knowledge to find solutions more efficiently than an uninformed search.
 Concept 01: Intro to Informed Search
 Concept 02: On Uniform Cost
 Concept 03: A* Search
 Concept 04: A* Search 1
 Concept 05: A* Search 2
 Concept 06: A* Search 3
 Concept 07: A* Search 4
 Concept 08: A* Search 5
 Concept 09: Optimistic Heuristic
 Concept 10: Quiz: State Spaces
 Concept 11: State Spaces 1
 Concept 12: Quiz: State Spaces 2
 Concept 13: State Spaces 3
 Concept 14: Quiz: Sliding Blocks Puzzle
 Concept 15: Sliding Blocks Puzzle 1
 Concept 16: Sliding Blocks Puzzle 2
 Concept 17: A Note on Implementation
 Concept 18: Recap

Lesson 04: Classroom Exercise: Search
Complete a practice exercise where you'll implement informed and uninformed search strategies for the game PacMan.

Lesson 05: Additional Search Topics
References to additional readings on search.

Part 04 : Automated Planning
Learn to represent general problem domains with symbolic logic and use search to find optimal plans for achieving your agent’s goals. Planning & scheduling systems power modern automation & logistics operations, and aerospace applications like the Hubble telescope & NASA Mars rovers.

Module 01: Automated Planning

Lesson 01: Symbolic Logic & Reasoning
Peter Norvig returns to explain propositional logic and firstorder logic, which provide a symbolic logic framework that enables AI agents to reason about their actions.
 Concept 01: Lesson Plan  Week 4
 Concept 02: Introduction
 Concept 03: Background and Expert Systems
 Concept 04: Propositional Logic
 Concept 05: Truth Tables
 Concept 06: Truth Table Question
 Concept 07: Propositional Logic Question
 Concept 08: Terminology
 Concept 09: Propositional Logic Limitations
 Concept 10: First Order Logic
 Concept 11: Models
 Concept 12: Syntax
 Concept 13: Vacuum World
 Concept 14: FOL Question
 Concept 15: FOL Question 2
 Concept 16: Recap

Lesson 02: Introduction to Planning
Peter Norvig defines automated planning problems in comparison to more general problem solving techniques to set the stage for classical planning algorithms in the next lesson.
 Concept 01: Problem Solving vs Planning
 Concept 02: Planning vs Execution
 Concept 03: Vacuum Cleaner Example
 Concept 04: Quiz: Sensorless Vacuum Cleaner Problem
 Concept 05: Partially Observable Vacuum Cleaner Example
 Concept 06: Quiz: Stochastic Environment Problem
 Concept 07: Infinite Sequences
 Concept 08: Finding a Successful Plan
 Concept 09: Quiz: Finding a Successful Plan Question
 Concept 10: Problem Solving via Mathematical Notation
 Concept 11: Tracking thePredict Update Cycle

Lesson 03: Classical Planning
Peter presents a survey of Classical Planning techniques: forward planning (progression search) & backward planning (regression search).

Lesson 04: Build a ForwardPlanning Agent
In this project you’ll use experiment with search and symbolic logic to build an agent that automatically develops and executes plans to achieve their goals.

Lesson 05: Additional Planning Topics
Peter discusses plan space search & situational calculus. Finish the lesson with readings on advanced planning topics & modern applications of automated planning.

Part 05 : (Optional) Optimization Problems
Learn about iterative improvement optimization problems and classical algorithms emphasizing gradientfree methods for solving them. These techniques can often be used on intractable problems to find solutions that are "good enough" for practical purposes, and have been used extensively in fields like Operations Research & logistics. Finish the lesson by completing a classroom exercise comparing the different algorithms' performance on a variety of problems.

Module 01: Optimization Problems

Lesson 01: Introduction
Thad Starner introduces the concept of iterative improvement problems, a class of optimization problems that can be solved with global optimization or local search techniques covered in this lesson.

Lesson 02: Hill Climbing
Thad introduces Hill Climbing, a very simple local search optimization technique that works well on many iterative improvement problems.

Lesson 03: Simulated Annealing
Thad explains Simulated Annealing, a classical global optimization technique for optimization.

Lesson 04: Genetic Algorithms
Thad introduces another optimization technique: Genetic Algorithms, which uses a population of samples to make iterative improvements towards the goal.

Lesson 05: Optimization Exercise
Complete a classroom exercise implementing simulated annealing to solve the traveling salesman problem.

Lesson 06: Additional Optimization Topics
Review similarities of the techniques introduced in this lesson with links to readings on advanced optimization topics, then complete an optimization exercise in the classroom.

Part 06 : Adversarial Search
Learn how to search in multiagent environments (including decision making in competitive environments) using the minimax theorem from game theory. Then build an agent that can play games better than any human.

Module 01: Adversarial Search

Lesson 01: Search in Multiagent Domains
Thad returns to teach search in multiagent domains, using the Minimax theorem to solve adversarial problems and build agents that make better decisions than humans.
 Concept 01: Lesson Plan  Week 8
 Concept 02: Overview
 Concept 03: The Minimax Algorithm
 Concept 04: Isolation
 Concept 05: Building a Game Tree
 Concept 06: Coding: Building a Game Class
 Concept 07: Which of These Are Valid Moves?
 Concept 08: Coding: Game Class Functionality
 Concept 09: Building a Game Tree (Contd.)
 Concept 10: Isolation Game Tree with Leaf Values
 Concept 11: How Do We Tell the Computer Not to Lose?
 Concept 12: MIN and MAX Levels
 Concept 13: Coding: Scoring Min & Max Levels
 Concept 14: Propagating Values Up the Tree
 Concept 15: Computing MIN MAX Values
 Concept 16: Computing MIN MAX Solution
 Concept 17: Choosing the Best Branch
 Concept 18: Coding: Minimax Search
 Concept 19: Max Number of Nodes Visited
 Concept 20: Max Moves
 Concept 21: The Branching Factor
 Concept 22: Number of Nodes in a Game Tree
 Concept 23: The Branching Factor (Contd.)
 Concept 24: Max Number of Nodes

Lesson 02: Optimizing Minimax Search
Thad explains some of the limitations of minimax search and introduces optimizations & changes that make it practical in more complex domains.
 Concept 01: Lesson Plan  Week 9
 Concept 02: Minimax Quiz
 Concept 03: DepthLimited Search
 Concept 04: Coding: DepthLimited Search
 Concept 05: Evaluation Function Intro
 Concept 06: Testing the Evaluation Function
 Concept 07: Testing the Evaluation Function Part 2
 Concept 08: Testing Evaluation Functions
 Concept 09: Testing the Evaluation Function Part 3
 Concept 10: Coding: #my_moves Heuristic
 Concept 11: Quiescent Search
 Concept 12: A Problem
 Concept 13: Iterative Deepening
 Concept 14: Understanding Exponential Time
 Concept 15: Exponential b=3
 Concept 16: Varying the Branching Factor
 Concept 17: Coding: Iterative Deepening
 Concept 18: Horizon Effect
 Concept 19: Horizon Effect (Contd.)
 Concept 20: Good Evaluation Functions
 Concept 21: Evaluating Evaluation Functions
 Concept 22: AlphaBeta Pruning
 Concept 23: AlphaBeta Pruning Quiz 1
 Concept 24: AlphaBeta Pruning Quiz 2
 Concept 25: Coding: AlphaBeta Pruning
 Concept 26: Solving 5x5 Isolation
 Concept 27: Coding: Opening Book
 Concept 28: Thad’s Asides

Lesson 03: Build an Adversarial Game Playing Agent
Extend classical search to adversarial domains, to build agents that make good decisions without any human intervention—such as the DeepMind AlphaGo agent.
Project Description  Build an Adversarial Game Playing Agent

Lesson 04: Extending Minimax Search
Thad introduces extensions to minimax search to support more than two players and nondeterministic domains.
 Concept 01: Introduction
 Concept 02: 3Player Games
 Concept 03: 3Player Games Quiz
 Concept 04: 3Player AlphaBeta Pruning
 Concept 05: Multiplayer AlphaBeta Pruning Reading
 Concept 06: Probabilistic Games
 Concept 07: Sloppy Isolation
 Concept 08: Sloppy Isolation Expectimax
 Concept 09: Expectimax AlphaBeta Pruning
 Concept 10: Probabilistic AlphaBeta Pruning

Lesson 05: Additional Adversarial Search Topics
Introduce Monte Carlo Tree Search, a highlysuccessful search technique in game domains, along with a reading list for other advanced adversarial search topics.

Lesson 06: Take 30 Min to Improve your LinkedIn
Find your next job or connect with industry peers on LinkedIn. Ensure your profile attracts relevant leads that will grow your professional network.
 Concept 01: Get Opportunities with LinkedIn
 Concept 02: Use Your Story to Stand Out
 Concept 03: Why Use an Elevator Pitch
 Concept 04: Create Your Elevator Pitch
 Concept 05: Use Your Elevator Pitch on LinkedIn
 Concept 06: Create Your Profile With SEO In Mind
 Concept 07: Profile Essentials
 Concept 08: Work Experiences & Accomplishments
 Concept 09: Build and Strengthen Your Network
 Concept 10: Reaching Out on LinkedIn
 Concept 11: Boost Your Visibility
 Concept 12: Up Next

Part 07 : Probabilistic Models
Learn to use Bayes Nets to represent complex probability distributions, and algorithms for sampling from those distributions. Then learn the algorithms used to train, predict, and evaluate Hidden Markov Models for pattern recognition. HMMs have been used for gesture recognition in computer vision, gene sequence identification in bioinformatics, speech generation & part of speech tagging in natural language processing, and more.

Module 01: Probabilistic Models

Lesson 01: Probability
Sebastian Thrun briefly reviews basic probability theory including discrete distributions, independence, joint probabilities, and conditional distributions to model uncertainty in the real world.
 Concept 01: Lesson Plan  Week 10
 Concept 02: Intro to Probability and Bayes Nets
 Concept 03: Quiz: Probability / Coin Flip
 Concept 04: Quiz: Coin Flip 2
 Concept 05: Quiz: Coin Flip 3
 Concept 06: Quiz: Coin Flip 4
 Concept 07: Quiz: Coin Flip 5
 Concept 08: Probability Summary
 Concept 09: Quiz: Dependence
 Concept 10: What We Learned
 Concept 11: Quiz: Weather
 Concept 12: Quiz: Weather 2
 Concept 13: Quiz: Weather 3
 Concept 14: Quiz: Cancer
 Concept 15: Quiz: Cancer 2
 Concept 16: Quiz: Cancer 3
 Concept 17: Quiz: Cancer 4
 Concept 18: Bayes Rule
 Concept 19: Probability Recap

Lesson 02: Naive Bayes
In this section, you'll learn how to build a spam email classifier using the naive Bayes algorithm.
 Concept 01: Intro
 Concept 02: Guess the Person
 Concept 03: Known and Inferred
 Concept 04: Guess the Person Now
 Concept 05: Bayes Theorem
 Concept 06: Quiz: False Positives
 Concept 07: Solution: False Positives
 Concept 08: Bayesian Learning 1
 Concept 09: Bayesian Learning 2
 Concept 10: Bayesian Learning 3
 Concept 11: Naive Bayes Algorithm 1
 Concept 12: Naive Bayes Algorithm 2
 Concept 13: Building a Spam Classifier
 Concept 14: Exercise: Building a Spam Classifier
 Concept 15: Outro

Lesson 03: Bayes Nets
Sebastian explains using Bayes Nets as a compact graphical model to encode probability distributions for efficient analysis.
 Concept 01: Lesson Plan  Week 11
 Concept 02: Introduction
 Concept 03: Quiz: Bayes Network
 Concept 04: Computing Bayes Rule
 Concept 05: Quiz: Two Test Cancer
 Concept 06: Quiz: Two Test Cancer 2
 Concept 07: Quiz: Conditional Independence
 Concept 08: Quiz: Conditional Independence 2
 Concept 09: Quiz: Absolute And Conditional
 Concept 10: Quiz: Confounding Cause
 Concept 11: Quiz: Explaining Away
 Concept 12: Quiz: Explaining Away 2
 Concept 13: Quiz: Explaining Away 3
 Concept 14: Conditional Dependence
 Concept 15: Quiz: General Bayes Net
 Concept 16: Quiz: General Bayes Net 2
 Concept 17: Quiz: General Bayes Net 3
 Concept 18: Value Of A Network
 Concept 19: Quiz: D Separation
 Concept 20: Quiz: D Separation 2
 Concept 21: Quiz: D Separation 3
 Concept 22: Bayes Nets Recap

Lesson 04: Inference in Bayes Nets
Sebastian explains probabilistic inference using Bayes Nets, i.e. how to use evidence to calculate probabilities from the network.
 Concept 01: Probabilistic Inference
 Concept 02: Quiz: Overview and Example
 Concept 03: Quiz: Enumeration
 Concept 04: Quiz: Speeding Up Enumeration
 Concept 05: Quiz: Speeding Up Enumeration 2
 Concept 06: Quiz: Speeding Up Enumeration 3
 Concept 07: Quiz: Speeding Up Enumeration 4
 Concept 08: Causal Direction
 Concept 09: Quiz: Variable Elimination
 Concept 10: Quiz: Variable Elimination 2
 Concept 11: Quiz: Variable Elimination 3
 Concept 12: Variable Elimination 4
 Concept 13: Approximate Inference
 Concept 14: Quiz: Sampling Example
 Concept 15: Approximate Inference 2
 Concept 16: Rejection Sampling
 Concept 17: Quiz: Likelihood Weighting
 Concept 18: Likelihood Weighting 1
 Concept 19: Likelihood Weighting 2
 Concept 20: Gibbs Sampling
 Concept 21: Quiz: Monty Hall Problem
 Concept 22: Monty Hall Letter
 Concept 23: Coding: Alarm Bayes Nets with pgmpy
 Concept 24: Recap

Lesson 05: Hidden Markov Models
Learn Hidden Markov Models, and apply them to partofspeech tagging, a very popular problem in Natural Language Processing.
 Concept 01: Lesson Plan  Week 12
 Concept 02: Intro
 Concept 03: Part of Speech Tagging
 Concept 04: Lookup Table
 Concept 05: Bigrams
 Concept 06: When bigrams won't work
 Concept 07: Hidden Markov Models
 Concept 08: Quiz: How many paths?
 Concept 09: Solution: How many paths
 Concept 10: Quiz: How many paths now?
 Concept 11: Quiz: Which path is more likely?
 Concept 12: Solution: Which path is more likely?
 Concept 13: Viterbi Algorithm Idea
 Concept 14: Viterbi Algorithm
 Concept 15: Further Reading
 Concept 16: Outro

Lesson 06: Part of Speech Tagging
In this project you will build a hidden Markov model (HMM) to perform part of speech tagging, a common preprocessing step in Natural Language Processing.

Lesson 07: Dynamic Time Warping
Thad explains the Dynamic Time Warping technique for working with timeseries data.

Lesson 08: Additional Topics in PGMs
Reading list of select topics to continue learning about probabilistic graphical models.

Part 08 : After the AI Nanodegree Program
Once you've completed the last project, review the information here to discover resources for you to continue learning and practicing AI.

Module 01: After the AI Nanodegree Program

Lesson 01: Additional Topics in AI
Suggested resources to continue learning about artificial intelligence after completing the Nanodegree program.

Part 09 (Elective): Extracurricular
Additional lecture material on hidden Markov models and applications for gesture recognition.

Module 01: Extracurricular

Lesson 01: Hidden Markov Models
Thad returns to discuss using Hidden Markov Models for pattern recognition with sequential data.
 Concept 01: Hidden Markov Models
 Concept 02: HMM Representation
 Concept 03: Sign Language Recognition
 Concept 04: Deltay Quiz
 Concept 05: HMM: "I"
 Concept 06: HMM: "We"
 Concept 07: I vs We Quiz
 Concept 08: Viterbi Trellis: "I"
 Concept 09: "I" Transitions Quiz
 Concept 10: Viterbi Trellis: "I" (continued)
 Concept 11: Nodes for "I"
 Concept 12: Viterbi Path
 Concept 13: "We": Transitions Quiz
 Concept 14: "We": Transition Probabilities Quiz
 Concept 15: "We": Output Probabilities Quiz
 Concept 16: "We": Viterbi Path
 Concept 17: Which Gesture is Recognized?
 Concept 18: New Observation Sequence for "I"
 Concept 19: New Observation Sequence for "We"
 Concept 20: HMM Training
 Concept 21: Baum Welch

Lesson 02: Advanced HMMs
Thad shares advanced techniques that can improve performance of HMMs recognizing American Sign Language, and more complex HMM models for applications like speech synthesis.
 Concept 01: Multidimensional Output Probabilities
 Concept 02: Using a Mixture of Gaussians
 Concept 03: HMM Topologies
 Concept 04: Phrase Level Recognition
 Concept 05: Stochastic Beam Search
 Concept 06: Context Training
 Concept 07: Statistical Grammar
 Concept 08: State Tying
 Concept 09: HMM Resources
 Concept 10: Segmentally Boosted HMMs
 Concept 11: SBHMM Resources
 Concept 12: Using HMMs to Generate Data
 Concept 13: HMMs for Speech Synthesis
