Cal Poly SLO CPE/CSC 480-F24 Introduction to Artificial Intelligence Prof. Franz J. Kurfess
CSC 480-F24 Syllabus
Dr. Franz J. Kurfess, Cal Poly Computer Science & Software Engineering Department
(fkurfess@calpoly.edu; http://www.csc.calpoly.edu/~fkurfess/)
My office hours are tentatively scheduled as follows:
You can find up-to-date information on my online calendar.
This class will be held in person unless changes are required due to COVID-19 restrictions. For students not able to attend class in person, a Zoom session can be set up. Please contact the instructor if this is the case for you.
The Cal Poly Catalog describes the course as follows:
Programs and techniques that characterize artificial intelligence. Programming in a high level language. 3 lectures, 1 laboratory.
Prerequisite: either CSC/CPE 102 and CSC/CPE 103 with a grade of C- or better or consent of instructor; or CSC/CPE 202 and CSC/CPE 203 with a grade of C- or better or consent of instructor.
Students should be familiar with programming in Java and Python, and be able to work with elementary statements in propositional and predicate logic.
The goal of this course is to understand important problems, challenges, concepts, and techniques from the field of Artificial Intelligence. To achieve this, students learn how to analyze, design, and program intelligent agents of varying complexities. These agents gather information from their environment, convert it into a suitable internal representation (which may be augmented with information provided by the designer or other sources), analyze their internal knowledge to determine suitable actions and execute some actions.
More specifically, after successful completion of the course, students should
I am planning to cover the topics below. Some adjustments in the sequence and coverage may be made as the quarter progresses.
As an easy entry into the topic, check out Computer Education: Machine Learning - AI for Kids[1]. It includes links to additional resources, intended not only for kids but anybody with an interest in AI and Machine Learning.
The following textbooks will be used in this course:
There is a column in the course schedule indicating the chapters in the book that correspond to a topic discussed in class. Students are expected to read the respective chapters before the topic is covered in class. For further reading, here are some more suggestions:
There are also a few books on more practical aspects of AI programming and intelligent agents:
For pointers to Computational Intelligence and in particular Machine Learning, check out the syllabus of the CSC 570-W18 course on Computational Intelligence. And if you want to dive even further into Reinforcement Learning, Andrew Gough (who completed his Master’s Thesis on this topic in Spring 2018) put together an excellent Reinforcement Learning Roadmap.While it doesn’t cover recent developments, the main principles have not changed.
The PowerPoint slides used in class, together with other auxiliary material, will be made available to students via a shared directory.
Further material will be made available through handouts in class, and pointers to relevant Web pages.
The main work in this class consists of weekly labs, several assignments, a team project, an individual short presentation, and weekly quizzes.
Much of the work for the assignments will be done in teams, although some assignments may have individual components.
The assignments are designed to give you some practical experience in the use of tools, literature review, and techniques such as interface storyboarding and usability evaluation. The assignments are intended to provide an introduction to skills needed to design and evaluate good interfaces, which will lead to effective human-computer interaction. The requirements may include written reports and/or summaries to be posted on the class Web site as well as oral presentation of results and relevant discussion in class. There will be some freedom in the choice of tools, methods, or topics, and you are encouraged to coordinate the work on the assignments with the work on the project.
Student teams will have several project topics to choose from, with an emphasis on intelligent agents, machine learning, and other current topics in AI. Some of the projects can be done in collaboration with outside partners. The project work should focus on Artificial Intelligence, and I recommend coordinating the AI Nugget research activities of the team members with the project topic. The teams are expected to design and implement a system that uses AI methods to solve practical problems. This can range from a proof of concept for a novel idea, to the application of proven approaches to a new domain or problem, or improvements to an existing system. Usually, the project outcomes will be shown in a display around the mid-quarter point and one at the end of the quarter. Details will be discussed during the first or second week of the quarter.
For the team project and other class activities, students will have access to the following resources:
This class will rely on interactive classroom activities, such as participation in group discussions, presentation of ideas and results (from the textbook, class, or assignments), providing written summary materials (as Web files via Canvas), etc.
Success in this class depends on regular attendance, preparation of assigned readings and homework exercises, as well as a level of professionalism in the class presentations and displays. Peer evaluations may be included as part of the grade. I will use the following allocation of scores for the calculation of the grades.
I reserve the right to change the formula used. Please note that the project consists of several parts which will be evaluated separately. The project will be done in teams, and the performance of the team as a whole will be graded unless there is a clear disparity in the contribution of the individual team members. Should this be the case, I might ask for additional documentation like code repository contributions, worksheets, email messages, or draft copies of documentation to evaluate individual contributions. For the team grades, feedback through peer evaluations will also be considered (although I will not use it directly in the calculation of the score).
The official final exam dates and times are listed on the schedule. The following activities may be scheduled for this final exam time; details will be discussed in class:
See my F24 Class Policies document. It covers COVID-19 expectations, Attendance, Late Work and Extensions, Students with Disabilities, and Academic Dishonesty and Cheating (with sections on Presentation Material, Written Reports, and Project Documents). I’ve also added a brief section on the use of Generative AI tools.
[1] Thanks to Julie and Stacey Martin from the Lyndhurst STEM Club for Girls for pointing out this set of resources.