{"id":130,"date":"2018-01-17T05:05:38","date_gmt":"2018-01-17T05:05:38","guid":{"rendered":"http:\/\/roch.sdsu.edu\/?page_id=130"},"modified":"2022-11-23T14:11:42","modified_gmt":"2022-11-23T22:11:42","slug":"ai","status":"publish","type":"page","link":"https:\/\/roch.sdsu.edu\/index.php\/ai\/","title":{"rendered":"CS 450 Artificial Intelligence"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-tabs-sticky-helper\" style=\"height:1px;\"><\/div><div class=\"fusion-tabs fusion-tabs-1 classic nav-is-justified sticky-tabs horizontal-tabs icon-position-left mobile-mode-accordion\" style=\"--awb-title-border-radius-top-left:0px;--awb-title-border-radius-top-right:0px;--awb-title-border-radius-bottom-right:0px;--awb-title-border-radius-bottom-left:0px;--awb-alignment:start;--awb-inactive-color:#ebeaea;--awb-background-color:#ffffff;--awb-border-color:#ebeaea;--awb-active-border-color:#a0ce4e;\"><div class=\"nav\"><ul class=\"nav-tabs nav-justified\" role=\"tablist\" aria-orientation=\"horizontal\"><li class=\"active\" role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-bb6fbf109bc1908b5e3\" aria-selected=\"true\" tabindex=\"0\" id=\"fusion-tab-bb6fbf109bc1908b5e3\" href=\"#tab-bb6fbf109bc1908b5e3\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-copy far\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>Assignments<\/h4><\/a><\/li><li  role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-79ad7b5e65c6b849e32\" aria-selected=\"false\" tabindex=\"-1\" id=\"fusion-tab-79ad7b5e65c6b849e32\" href=\"#tab-79ad7b5e65c6b849e32\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-tv fas\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>Slides<\/h4><\/a><\/li><li  role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-56b6bb717ef027f09b7\" aria-selected=\"false\" tabindex=\"-1\" id=\"fusion-tab-56b6bb717ef027f09b7\" href=\"#tab-56b6bb717ef027f09b7\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-calendar-alt fas\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>Schedule<\/h4><\/a><\/li><li  role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-fbcb0eb401c6330039b\" aria-selected=\"false\" tabindex=\"-1\" id=\"fusion-tab-fbcb0eb401c6330039b\" href=\"#tab-fbcb0eb401c6330039b\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-book fas\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>Materials<\/h4><\/a><\/li><li  role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-ed506a7d72d981bacf0\" aria-selected=\"false\" tabindex=\"-1\" id=\"fusion-tab-ed506a7d72d981bacf0\" href=\"#tab-ed506a7d72d981bacf0\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-podcast fas\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>About<\/h4><\/a><\/li><\/ul><\/div><div class=\"tab-content\"><div class=\"nav fusion-mobile-tab-nav\"><ul class=\"nav-tabs nav-justified\" role=\"tablist\" aria-orientation=\"horizontal\"><li class=\"active\" role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-bb6fbf109bc1908b5e3\" aria-selected=\"true\" tabindex=\"0\" id=\"mobile-fusion-tab-bb6fbf109bc1908b5e3\" href=\"#tab-bb6fbf109bc1908b5e3\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-copy far\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>Assignments<\/h4><\/a><\/li><\/ul><\/div><div class=\"tab-pane fade fusion-clearfix in active\" role=\"tabpanel\" tabindex=\"0\" aria-labelledby=\"fusion-tab-bb6fbf109bc1908b5e3\" id=\"tab-bb6fbf109bc1908b5e3\">\n<h3>Assignments<\/h3>\n<p>Assignments are <a href=\"https:\/\/roch.sdsu.edu\/index.php\/submitting-work\/\">submitted online and must include an affidavit.\u00a0 Programs should be commented and be well structured<\/a>.\u00a0 Due dates are posted on the calendar.<\/p>\n<ul>\n<li>Familiarize yourself with Python, set up your environment and write a small Python program (ungraded, nothing to submit).<\/li>\n<li>Read Williams &amp; Kessler pair programming article.\u00a0 (Article on <a href=\"https:\/\/canvas.sdsu.edu\">Canvas<\/a>, your first graded assignment will contain some simple questions on this).<\/li>\n<\/ul>\n<p>Graded assignments.\u00a0 Skeleton code is on Canvas unless otherwise indicated.<\/p>\n<ol>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/assignments\/A1.pdf\">Foundations of AI<\/a>.\u00a0 Download <a href=\"https:\/\/roch.sdsu.edu\/cs450\/assignments\/TimidAgent.zip\">code<\/a> (usually on Canvas).<\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/assignments\/A2.pdf\">Search<\/a>.\u00a0<\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/assignments\/A3.pdf\">Constraint satisfaction<\/a>.\u00a0\u00a0<\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/assignments\/A4.pdf\">Machine learning<\/a><\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/assignments\/A5.pdf\">Logic &amp; Uncertainty<\/a><\/li>\n<\/ol>\n<p>Due dates for assignments that require work to be turned in are posted on the calendar below.\u00a0 Solution keys to problems are on Canvas.<\/p>\n<p><iframe style=\"border: 0;\" src=\"https:\/\/calendar.google.com\/calendar\/embed?src=c_ip05fgih9tktj5o1ejkcem3mcc%40group.calendar.google.com&amp;ctz=America%2FLos_Angeles\" width=\"800\" height=\"600\" frameborder=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>Use the <a href=\"https:\/\/calendar.google.com\/calendar\/ical\/c_ip05fgih9tktj5o1ejkcem3mcc%40group.calendar.google.com\/public\/basic.ics\">ICAL address<\/a> to add this to a personal calendar if you wish. <em>Interested in AI?\u00a0 Check out the <a href=\"https:\/\/sdsuai.home.blog\/\">AI Club seminar blog<\/a>.\u00a0\u00a0<\/em><\/p>\n<\/div><div class=\"nav fusion-mobile-tab-nav\"><ul class=\"nav-tabs nav-justified\" role=\"tablist\" aria-orientation=\"horizontal\"><li  role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-79ad7b5e65c6b849e32\" aria-selected=\"false\" tabindex=\"-1\" id=\"mobile-fusion-tab-79ad7b5e65c6b849e32\" href=\"#tab-79ad7b5e65c6b849e32\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-tv fas\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>Slides<\/h4><\/a><\/li><\/ul><\/div><div class=\"tab-pane fade fusion-clearfix\" role=\"tabpanel\" tabindex=\"0\" aria-labelledby=\"fusion-tab-79ad7b5e65c6b849e32\" id=\"tab-79ad7b5e65c6b849e32\">\n<ol>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs550\/slides\/00Quick-and-dirty-Python.pdf\">Quick &amp; Dirty Python<\/a> (lecture available on Canvas or <a href=\"https:\/\/mediasite.sdsu.edu\/Mediasite\/Play\/44965c9782b8448eacacef0decaaaf311d\">directly on mediasite<\/a>), the pdf contains several extra slides on iterators that are not in the video.<\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/slides\/01FoundationsAI.pdf\">AI Foundations<\/a><\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/slides\/02Search.pdf\">Search<\/a><\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/slides\/03ConstraintSatisfaction.pdf\">Constraint satisfaction<\/a><\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/slides\/04Learning.pdf\">Learning<\/a><\/li>\n<li>Learning: <a href=\"https:\/\/roch.sdsu.edu\/cs450\/slides\/05-NeuralNetworks.pdf\">Neural Networks<\/a><\/li>\n<li>Learning: <a href=\"https:\/\/roch.sdsu.edu\/cs450\/slides\/06-ComputerVision.pdf\">Computer Vision<\/a><\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/slides\/07LogicalAgents.pdf\">Logical Agents<\/a><\/li>\n<li><a href=\"https:\/\/roch.sdsu.edu\/cs450\/slides\/08Uncertainty.pdf\">Uncertainty<\/a><\/li>\n<\/ol>\n<\/div><div class=\"nav fusion-mobile-tab-nav\"><ul class=\"nav-tabs nav-justified\" role=\"tablist\" aria-orientation=\"horizontal\"><li  role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-56b6bb717ef027f09b7\" aria-selected=\"false\" tabindex=\"-1\" id=\"mobile-fusion-tab-56b6bb717ef027f09b7\" href=\"#tab-56b6bb717ef027f09b7\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-calendar-alt fas\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>Schedule<\/h4><\/a><\/li><\/ul><\/div><div class=\"tab-pane fade fusion-clearfix\" role=\"tabpanel\" tabindex=\"0\" aria-labelledby=\"fusion-tab-56b6bb717ef027f09b7\" id=\"tab-56b6bb717ef027f09b7\">\n<p>Please note that all dates except the final exam are tentative.\u00a0 My primary concern is that you master the material and the schedule may be adjusted in either direction to optimize comprehension and scope of material.\u00a0 The units in Russell and Norvig corresponding to material are listed on the first slide of each slide deck.<\/p>\n<p><img decoding=\"async\" class=\"size-full wp-image-364 alignright\" src=\"https:\/\/roch.sdsu.edu\/wp-content\/uploads\/2020\/08\/Vote.png\" alt=\"\" width=\"269\" height=\"188\" srcset=\"https:\/\/roch.sdsu.edu\/wp-content\/uploads\/2020\/08\/Vote-200x140.png 200w, https:\/\/roch.sdsu.edu\/wp-content\/uploads\/2020\/08\/Vote.png 269w\" sizes=\"(max-width: 269px) 100vw, 269px\" \/><\/p>\n<p>There is an election this fall.\u00a0 If you are a US citizen and have not registered to vote, please consider\u00a0 doing so now.\u00a0 California voters can do so online: <a href=\"https:\/\/covr.sos.ca.gov\/\">https:\/\/covr.sos.ca.gov\/<\/a>. Democracies only work when the public participates.<\/p>\n<p>The following is an approximate week by week schedule for the class.\u00a0 As I am more interested in ensuring that you learn the material well than in covering every last item in the list, we may see slight changes in the schedule throughout the semester.<\/p>\n<p>Due dates for assignments are given after they are assigned and are in the course calendar.\u00a0 In general, there are five to six assignments per semester.<\/p>\n<p>In general, textbook sections are indicated at the start of each slide deck.<\/p>\n<ol>\n<li>August 23 \u2013 Foundations of AI<\/li>\n<li>August 30 \u2013 Problem formulation and uninformed search (Sep 2, 7:59PM Add\/drop deadline)<\/li>\n<li>September 6 &#8211; Heuristic search (Labor Day Sept 5), Constraint satisfaction problems (CSP)<\/li>\n<li>September 13 \u2013 CSP<\/li>\n<li>September 20 CSP, Learning: Supervised (Sept 19 \u2013 last day to submit petition for late schedule adjustment without a W)<\/li>\n<li>September 27 \u2013 Learning, supervised and unsupervised methods<\/li>\n<li>October 4 \u2013 Deep neural networks<\/li>\n<li>October 11 \u2013 Deep neural networks<\/li>\n<li>October 18 \u2013 Computer vision, <strong>Midterm: Thursday October 20<\/strong><\/li>\n<li>October 25 \u2013 Propositional logic<\/li>\n<li>November 1 \u2013 Uncertainty: Baye\u2019s rule, probability models, Bayesian networks, hidden Markov models<\/li>\n<li>November 8 \u2013 Uncertainty continued (California election Tuesday, November 8<sup>th<\/sup>. Please vote if you are eligible.\u00a0 Friday November 11, Veteran\u2019s Day)<\/li>\n<li>November 15 &#8211; Professor Roch at meeting, work on project<\/li>\n<li>November 22 \u2013 Uncertainty continued (No class Thanksgiving, Nov 24)<\/li>\n<li>November 29 \u2013 Natural language processing<\/li>\n<li>December 6 \u2013 Natural language processing<\/li>\n<\/ol>\n<p>Final exam is Thursday December 15<sup>th<\/sup> from 3:30 PM to 5:30 PM.\u00a0 No early finals will be given.<\/p>\n<\/div><div class=\"nav fusion-mobile-tab-nav\"><ul class=\"nav-tabs nav-justified\" role=\"tablist\" aria-orientation=\"horizontal\"><li  role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-fbcb0eb401c6330039b\" aria-selected=\"false\" tabindex=\"-1\" id=\"mobile-fusion-tab-fbcb0eb401c6330039b\" href=\"#tab-fbcb0eb401c6330039b\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-book fas\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>Materials<\/h4><\/a><\/li><\/ul><\/div><div class=\"tab-pane fade fusion-clearfix\" role=\"tabpanel\" tabindex=\"0\" aria-labelledby=\"fusion-tab-fbcb0eb401c6330039b\" id=\"tab-fbcb0eb401c6330039b\">\n<h1><strong>Textbooks \u00a0<\/strong><\/h1>\n<p>Required:<\/p>\n<ul>\n<li>Russell, S. J., and Norvig, P. (2021). <em>Artificial intelligence: a modern approach<\/em> (Prentice Hall, Upper Saddle River), pp. xviii, 1115\u00a0 pp.<\/li>\n<\/ul>\n<p>Programming exercises will be implemented using Python 3. \u00a0While we have created a Python quick start video that is available on <a href=\"https:\/\/canvas.sdsu.edu\">Canvas<\/a>, we will not be devoting much time to how to program in Python as upper division computer scientists should have the skills to learn new languages without an extraordinary effort.\u00a0 I am more than happy to help you with questions that you may have about Python during office hours.\u00a0 Optional books to help you with this are freely available from SDSU Library through <a href=\"http:\/\/libguides.sdsu.edu\/safari-tech-books\">Safari<\/a>\u00a0Technical Books:<\/p>\n<ul>\n<li>Lutz, M. (2015).\u00a0 <em>Learning Python<\/em>, 5th Edition, O&#8217;Reilly Media, Sebastapol, CA<\/li>\n<li>Martelli, A., Ravenscroft, A., and Holden, S. (2017). Python in a Nutshell, 3rd Edition, O&#8217;Reilly Media, Sebastapol, CA) or<\/li>\n<li>Reitz, K. (2016). The Hitchhiker&#8217;s Guide to Python: Best Practices for Development (O&#8217;Reilly Media, Sebastopol)<\/li>\n<\/ul>\n<p>In addition, the python.org&#8217;s <a href=\"https:\/\/docs.python.org\/3.6\/\">tutorial<\/a> is also quite good.\u00a0 If you prefer to watch videos to reading, you might want to try Jessica McKellar&#8217;s\u00a0<em>Introduction to Python<\/em> on Safari.<\/p>\n<p><strong>Programming environment\u00a0<\/strong><\/p>\n<p>Python is rapidly becoming one of the most popular languages for AI. \u00a0This is primarily due to a large number of scientific libraries such as <a href=\"http:\/\/www.numpy.org\/\">NumPy <\/a>and <a href=\"https:\/\/www.scipy.org\/\">SciPy <\/a>coupled with popular machine learning language libraries such as <a href=\"http:\/\/scikit-learn.org\/stable\/\">scikit-learn<\/a>,\u00a0<a href=\"https:\/\/www.tensorflow.org\/\">TensorFlow<\/a>, and <a href=\"http:\/\/pytorch.org\/\">PyTorch<\/a>.\u00a0 Python can be downloaded from the <a href=\"https:\/\/www.python.org\/\">Python Software Foundation<\/a> if it is not already available on your machine.\u00a0 When your code is graded, it will be executed on Python 3.10.\u00a0 We recommend using 3.10 for your development.<\/p>\n<p>You are welcome to use any integrated development environment (IDE) that you wish.\u00a0 There are many popular IDEs for Python (Computerworld has a 2016 <a href=\"https:\/\/www.computerworld.com\/article\/3132925\/application-development\/review-six-python-ides-go-to-the-mat.html\">review<\/a> covering some of the more popular ones).\u00a0 I personally have used both <a href=\"https:\/\/eclipse.org\/users\/\">eclipse<\/a> with the <a href=\"http:\/\/www.pydev.org\/\">pydev<\/a> extension\u00a0 and <a href=\"https:\/\/www.jetbrains.com\/pycharm\/\">PyCharm<\/a>, both of which have free versions.\u00a0 PyCharm has a professional version that is free to students although you must register.<\/p>\n<\/div><div class=\"nav fusion-mobile-tab-nav\"><ul class=\"nav-tabs nav-justified\" role=\"tablist\" aria-orientation=\"horizontal\"><li  role=\"presentation\"><a class=\"tab-link\" data-toggle=\"tab\" role=\"tab\" aria-controls=\"tab-ed506a7d72d981bacf0\" aria-selected=\"false\" tabindex=\"-1\" id=\"mobile-fusion-tab-ed506a7d72d981bacf0\" href=\"#tab-ed506a7d72d981bacf0\"><h4 class=\"fusion-tab-heading\"><i class=\"fontawesome-icon fa-podcast fas\" aria-hidden=\"true\" style=\"font-size:13px;\"><\/i>About<\/h4><\/a><\/li><\/ul><\/div><div class=\"tab-pane fade fusion-clearfix\" role=\"tabpanel\" tabindex=\"0\" aria-labelledby=\"fusion-tab-ed506a7d72d981bacf0\" id=\"tab-ed506a7d72d981bacf0\">\n<p>About the course:<\/p>\n<p>Students will master a number of basic areas in artificial intelligence.<\/p>\n<p>After successful completion of the course, students will be able to:<\/p>\n<ul>\n<li>Construct intelligent agents capable of interacting with their environments.<\/li>\n<li>Understand and implement heuristic searches for problem solving and game playing (adversarial search)<\/li>\n<li>Understand first-order logic and its application to theorem proving.<\/li>\n<li>Analyze constraint satisfaction problems and resolve them through search.<\/li>\n<li>Understand and be able to apply machine learning algorithms<\/li>\n<\/ul>\n<p>Prerequisites:\u00a0 CS 310 Data Structures, Mathematics:\u00a0 Discrete Math (245) or Mathematical Logic (523)<\/p>\n<p>Course meets Tu\/Th from 4-5:15 PM in <a href=\"https:\/\/map.concept3d.com\/?id=801#!m\/146395\">AH 3177<\/a>.\u00a0 Office hours will be held in GMCS 530 (mask obligatory due to confined space), times are listed in the sidebar.<\/p>\n<p>TA:\u00a0 To be announced.<\/p>\n<p>Please see <a href=\"https:\/\/roch.sdsu.edu\/cs450\/Syllabus-CS450.pdf\">syllabus<\/a>\u00a0for detailed course policies.<\/p>\n<\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-130","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/roch.sdsu.edu\/index.php\/wp-json\/wp\/v2\/pages\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/roch.sdsu.edu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/roch.sdsu.edu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/roch.sdsu.edu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/roch.sdsu.edu\/index.php\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":106,"href":"https:\/\/roch.sdsu.edu\/index.php\/wp-json\/wp\/v2\/pages\/130\/revisions"}],"predecessor-version":[{"id":567,"href":"https:\/\/roch.sdsu.edu\/index.php\/wp-json\/wp\/v2\/pages\/130\/revisions\/567"}],"wp:attachment":[{"href":"https:\/\/roch.sdsu.edu\/index.php\/wp-json\/wp\/v2\/media?parent=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}