MW 2:30 - 3:45 p.m., Davies Auditorium.
How can we enable computers to make rational, intelligent decisions? This course explores fundamental techniques for Artificial Intelligence (AI), covering topics such as search, planning, learning, and reasoning under uncertainty. Through hands-on programming projects, students learn conceptual, algorithmic, and practical considerations for implementing foundational AI algorithms. By the end of this class, students have an understanding of the history and breadth of AI problems and topics, and are prepared to undertake more advanced courses in robotics, computer vision, natural language processing, and machine learning.
Prerequisites: CPSC 202 and CPSC 223. Students should also be familiar with basic object-oriented programming concepts in Python.
Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3.3— the latest releases in the 3.X and 2.X lines—plus all other releases in common use today. You’ll also learn some advanced language features that recently have become more common in Python code.
If you need help writing programs in Python 3, or want to update older Python 2 code, this book is just the ticket. Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want to focus on modern tools and idioms
Python is a versatile and powerful language, but leveraging its full potential requires more than just knowing the syntax. Effective Python: 125 Specific Ways to Write Better Python, 3rd Edition is your comprehensive guide to mastering Python’s unique strengths and avoiding its hidden pitfalls. This updated edition (published by Pearson Addison-Wesley in November, 2024) builds on the acclaimed second edition, expanding from 90 to 125 best practices that are essential for writing high-quality Python code.
Drawing on years of experience at Google, Brett Slatkin offers clear, concise, and practical advice for both new and experienced Python developers. Each item in the book provides insight into the “Pythonic” way of programming, helping you understand how to write code that is not only effective but also elegant and maintainable. Whether you’re building web applications, analyzing data, writing automation scripts, or training AI models, this book will equip you with the skills to make a significant impact using Python.
The course requirements consist of class attendance, including in class canvas quizzes, (more-or-less) weekly programming assignments in Python and occasional written homework, a midterm exam and a final exam. Plan on spending between 6-8 hours per week on the course outside of class. The programming assignments are an integral part of the course.
Please try not to leave the homework to the last minute. You will be more efficient, learn more, have more chance to get help, and generally be calmer and happier if you do the associated reading first and start the programming or other problems early.
The student will be able to propose a topic of her choice, within certain guidelines. We would like to encourage independent research. We will also provide a list of suggested topics.
The final grade in the course will be based on class participation, including in-class canvas quizzes, your performance on the programming assignments and other homework, and the exams. The weighting of these components will be approximately 40% on homework and 60% on exams. (For CS 570: 10% project, 30% homework, 60% exams).
Late work without a Dean's extension will be assessed a penalty of 5 points per day, based on the day and time recorded by the Zoo electronic submit program. At the end of term, up to 50 points will be deducted from the total lateness penalties your homework has accrued. However, according to Yale College regulations, *no* homework can be accepted after the end of Reading Week without a Temporary Incomplete (TI) authorized by your dean.
If you have a Dean's extension or a TI, making up missed work may involve alternative assignments, at the discretion of the instructor; please check with the instructor in this case.
Unless otherwise specified, the homework assignments are your individual responsibility. Plagiarism is a violation of University rules and will not be tolerated. You must neither copy work from others (at Yale or elsewhere) nor allow your own work to be copied. You are definitely on the wrong side of the boundary if you give or receive a printed or electronic copy of your or anyone else's work for the course from this term or previous terms.
You are encouraged to ask others for help with the computers and Unix, with questions about Python, general questions about the concepts and material of the course, but if you need more extensive help with a program or other assignment, please ask a ULA or the instructor for assistance. Working in groups to solve homework problems is not permitted in this course. Please talk to the instructor if you have any questions about this policy.
This semester, we have a dedicated accomodation assistant for Computer Science, Amma. Her contact email is: cpscaccommodatedexams@yale.edu. Students who would like to use approved testing accommodations in the course should send their letter to Amma (with a copy to stephen.slade@yale.edu) and coordinate with her at that email address. Use the course identifier CPSC 370 in all communication to Amma since she will be working with other CPSC courses.
During my years at Yale, I have had students who were either blind or deaf. They were generally among the best in the class. I want to make you succeed.
| Week | Date | Topic | Reading | Jupyter Notebook |
|---|---|---|---|---|
| 1 | Jan 13, 15 | Introduction. Python. Jupyter Notebooks. | AIMA 1 | |
| Jan 20 | Martin Luther King, Jr. Holiday | |||
| 2 | Jan 22, 24 | Intelligent Agents. | AIMA 2 | Agents |
| 3 | Jan 27, 29 | Search. | AIMA 3-4 | Search |
| 4 | Feb 3, 5 | Adversarial Search and Game Playing. | AIMA 5 | Games |
| 5 | Feb 10, 12 | Constraint Satisfaction, Propositional Logic, First Order Logic. | AIMA 6-9 | Constraint Satisfaction Problems and Logic |
| 6 | Feb 17, 19 | Planning and Knowledge Representation. | AIMA 10-12 | Planning |
| 7 | Feb 24, 26 | (2/26) Midterm Exam. Reasoning Under Uncertainty. | AIMA 13-18 | Probability and Making Complex Decisions |
| 8 | Mar 3, 5 | Learning. | AIMA 19-21 | Learning |
| Mar 7 - Mar 24 | Spring Recess | |||
| 9 | Mar 24, 26 | Reinforcement Learning. | AIMA 22 | Reinforcement Learning |
| 10 | Mar 31, Apr 2 | Natural Language Processing. | AIMA 23-24 | Statistical Learning Tools (Text)
and Natural Language Processing |
| 11 | Apr 7, 9 | Computer Vision. | AIMA 25 | |
| 12 | Apr 14, 16 | Robotics. | AIMA 26 | |
| 13 | Apr 21, 23 | Philosophical Foundations and the Future of AI. | AIMA 27-28 | May 6th, 9am | Final Exam, RTBA |