Artificial Intelligence (Intermediate to Advanced)
Welcome to Artificial Intelligence!
In this course, you will learn the concepts of Artificial Intelligence (AI) and apply them to the design and implementation of intelligent agents that solve real-world AI problems, including problems in search, games, machine learning, logic, and constraint satisfaction.
We will provide a broad understanding of the basic techniques for building intelligent computer systems. Topics include the history of AI, intelligent agents, state-space problem representations, uninformed and heuristic search, game playing and adversarial search, logical agents, constraint satisfaction problems, along with techniques in machine learning and other applications of AI, such as natural language processing (NLP).
Course Level Please note this is a graduate level course. Expect to spend at least several hours to complete the programming assignments, although the exact amount of time will depend on your background and proficiency with coding. If you are taking this course for fun, and are not working towards a passing grade for credit, you can of course watch the lectures and answer the quizzes.
Students are required to have the following prerequisites:
• Linear algebra (vectors, matrices, derivatives)
• Basic probability theory
• Python programmingThe course offers an excellent opportunity for students to dive into Python while solving AI problems and learning its applications. Programming assignments will be in Python.
• Week 1: Introduction to AI, history of AI, course logistics, and roadmap
• Week 2: Intelligent agents, uninformed search
• Week 3: Heuristic search, greedy search, A* algorithm, stochastic search
• Week 4: Adversarial search, game playing
• Week 5: Machine Learning 1: basic concepts, linear models, K nearest neighbors, overfitting
• Week 6: Machine Learning 2: perceptrons, neural networks, naive Bayes
• Week 7: Machine Learning 3: decision trees, ensemble, logistic regression, and unsupervised learning
• Week 8: Constraint satisfaction problems
• Week 9: AI applications to vision/robotics, Course Review and Conclusion
Assignments There will be two kinds of assignments:
Quizzes (conceptual): These test your understanding of the lectures. You may be asked to reason abstractly about the nature of an algorithm, or to perform a technique by hand on an small problem. Please read the instructions carefully, note any formatting requirements, and review your answers before hitting submit. Except for the most challenging questions, you will often only have one attempt to answer a question.
Projects (programming): These offer an excellent opportunity for you to dive into Python programming and design while solving AI problems and learning its applications. You will often be presented with a general problem and asked to come up with solutions to the problem by implementing algorithms from scratch. As mentioned above, expect to spend at least several hours to complete the programming assignments.