Course Description:

In this introductory course students will explore the use of computers to perform computations normally associated with intelligence using a variety of symbolic and sub-symbolic methods. Students will study using search as a problem solving methodology, knowledge representation, logic resolution, production systems, and a number of Nature-inspired problem solving techniques. Students will also work with a mobile robot implementing an intelligent module allowing the robot to navigate arbitrary mazes.

Student Outcomes:

After completing this course, students will be able to :

  • incorporate a variety of symbolic and sub-symbolic artificial intelligent methods in desiging implementations of applications,
  • select intelligent methods suitable for particular tasks,
  • solve problems through implementing searches in problem state spaces,
  • implement game winning strategies using adversarial searches,
  • select knowledge representation,
  • effificently program in Python using related numerical (NumPy, SciPy), visualization (matplotlib), and artificial intelligence (scikit-learn) libraries,
  • document the design and implementation of applications using Jupyter Notebook,
  • use Prolog and logic-oriented programming paradigm to implement intelligent components based on Mathematical logic,
  • implement rule-based systems using CLIPS expert system shell,
  • organize and express ideas concerning artificial intelligence clearly and convincingly in oral and written forms.

Tentative Outline:

  • Overview of Artificial Intelligence
  • Problem Solving by Searching
    • Problem Spaces
    • Uninformed Search
      • Deapth-First Search
      • Breadth-First Search
    • Informed Search
      • Heuristics
      • Hill Climbing
      • Best-First Search
      • A* Search
    • Adversarial Search
  • Logic-Based AI
    • Propositional Logic
    • Predicate Logic
    • Knowledge Representation
    • Forward and Backward Chaining
    • Expert Systems
  • Nature-Inspred AI
    • Artificial Life
    • Neural Networks: Perceptron and Backpropagation
    • Support Vector Machines
    • Genetic Algorithms
    • Swarm Intelligence
    • Artificial Immune Systems
  • Overview of Robotics
  • Overview of Planning
    • Logic-Based Planners
  • Neurosolver


COMP 350 and 362 with a minimum grade of “C-“. Very good practical programming skills are assumed in this course.

Students that do not satisfy the prerequisite requirements and have not obtained instructor’s permission to enroll in the course will have to withdraw.

Instructor: AJ Bieszczad

Office: Sierra Hall Laboratories 3315
Phone: (805) 437-2773
Office hours: Mondays, Thursdays 12-1 pm

Office hours are not class replacements! Please come with questions written down on paper, so we can communicate efficiently. You should be able to explain how you have tried to answer the question and why you have problems.

Communication Policy:

The instructors will respond to your inquiry within 24 hours except weekends (5 pm on Friday and 8 am on Monday) and holidays. If we do not reply in this timeframe, please assume that we did not receive your email and contact us again.

Please manage the communication diligently.

Recommended Textbooks:

Title: Artificial Intelligence in the 21st Century, 2nd Edition
Author: Steven Lucci, Danny Kopec
ISBN: 978-1-942270-00-3
Publisher: Stylus Publishing, LLC
Publication Date: December 8, 2015

Title: Artificial Intelligence: A Modern Approach (3rd Edition)
Author: Stuart Russell, Peter Norvig
ISBN: 978-0136042594
Publisher: Pearson
Publication Date: December 11, 2009

Instructional Approach:

This is a balanced course that will keep students involved throughout the semester through theoretical studies and and intense programming hands-on assignments.

A self-study study set will be assigned each week along the lecture notes, so the students can reinforce the theoretical knowledge from the lectures. Self-study assignments are not graded, but to be admitted to the following quiz the student must complete the corresponding self-study set and formally submit the answers. The quizzes will consist exclusively of random questions from the self-study sets.

Labs are hands-on exercises in which students will be solving a number of programming tasks each week. Most of the labs have extensive instructions that must be followed closely. Any arising questions will be answered on the whiteboard as much as practically possible, so that the whole class rather than just the individual student asking the question may learn. Students will work on the assignments independently and submit answers individually, but they may discuss solutions to the problems with their direct neighbors. Copying any portion of the code is strictly prohibited however. Programming tasks will usually take longer to finish than the time allocated in the labs, but the students are required to submit a snapshot of their work at the end of each in-class lab before leaving the lab. A snapshot is a regular submission and should follow the submission standards. Students will be able to submit multiple times. Violating the snapshot submission requirement will result in zero points for the whole lab segment.

There will also be a group project that will require that a group of 4-5 students preselected by the instructor applies the knowledge gained from the lectures and labs to develop an intelligence component of a robot. Each group will be assigned the same task, and the groups will compete to complete the task in the best way. The grade for the group will be pro-rated for individual members based on peer evaluations. In that way, high-performing members of a group may obatin higher grades than the grade earned by the whole group. The project will be active throughout the whole semester and will be in leu of the final examination from the lab section of the course. Each group will present the project during the time assigned for the final exam from the lab.

Unless stated differently in the calendar, each homework (self-study) is due by the start of the following lab meeting, and each lab submission is due by the following lecture. The submission facility for a given task will not be visible after the deadline for that task. The project will be due by the date of the final exam for the lab section. The deadlines will be strictly enforced; i.e., no extensions will be given for any but formally-verified medical reasons.

The final exam from the theoretical part will consist exclusively of a selection of questions from the study sets. The dates and times of the final exam (final schedule for the theory section) and the project presentations (final schedule for the lab section) are available in the CSUCI Schedule ( and in the course calendar.


In this course, students will mostly use Python and Python-based tools such as Jupyter (old IPython) Notebook with SciPy, NumPy, scikit-learn, and Matplotlib. Some labs may require additional tools such as GNU Prolog and an expert system shells such as CLIPS.

The robot is a customized version of DiddyBorg customized with a LIDAR. The robot is controlled by Python applications running on a RaspberryPI board using Raspbian operating system.

Lab submission standards:

  • Students must follow submission standards described in the Labs section of the course. Violating that principle will imply penalties.
  • Labs that do not have a snapshot submitted at the end of the lab meeting will not be graded and the student will get “F” from the whole lab segment. Attendance will be taken to verify that the snapshot was taken in the classroom and submitted from the classroom. Any discrepancy will be considered a violation of academic code and will invalidate the submission.
  • The most recent lab submission made before the deadline will be graded. The last submission may be done from home. The instructor reserves the right to assign a grade that is consistent with the student activity and progress observed in the classroom.
  • Programs that do not compile will not be graded and the student will get zero points.
  • Parts of the submitted code that are commented out will be ignored.
  • Submissions missing session scripts that show compilation and test runs, as well as submission with missing test results (such as input and output files) will be rejected and the student will get zero points.
  • Files that are not signed by the submitter (as explained in the lab rules) will be rejected and the student will get zero points.
  • Programs that are not well-formatted will imply a 10% penalty.

Testing (quiz and final) standards:

  • All testing is done online through Blackboard either from the classroom or from the disability accommodation center.
  • Students must use university computers.
  • All tests and exams are closed-book. Students are not allowed to use any sources other than their own brains.
  • Only a browser with one window and no more than one tab is allowed. The Mac OS X Spotlight (a magnifying glass icon in the upper right corner of the screen) can be used for any necessary calculations.
  • Only plain text should be used in the submissions. Anything illegible (e.g., severely misformatted) will not be graded. Unfortunately, Blackboard often reformats submissions, so please make sure that it gets through correctly.
  • The tests and the exam are timed; they close and submit automatically on the deadline. No extensions will be given.
  • Activity monitoring software will be used to monitor student activities. Any material collected in that way will be used only for the purpose of proper course management including grade assignment and any appeals.
  • There will be no restroom or any other breaks.

Any violation of these rules, or any other rules of the academic code, will result in automatic “F” and the offenders will be reported to the Judicial Affairs. If multiple individuals are involved in the violation (e.g., two students submit same, or in the judgement of the instructor very similar, work), then all will be sanctioned.


The grades are a reflection of the efforts put by the student to fullfill the credit requirements of the course. All grades are computed automatically by the grading system in Blackboard.

There will be one course grade for both the lecture and the lab sections. The final grade will be calculated as the weighted average of the student’s average grades from the quizzes, the lab assignments, the project, and the final exam using the following weight distribution:

Theory: 50%
25% – Quizzes (distributed evenly over all)
25% – Final Theory Exam
Practice: 50%
30% – Labs (distributed evenly over all)
20% – Project

The following is a grade letter scheme used in this course:

Grade Letter
>= 96% – A+
>= 88% – A
>= 80% – A-
>= 72% – B+
>= 64% – B
>= 56% – B-
>= 48% – C+
>= 40% – C
>= 32% – C-
>= 24% – D+
>= 16% – D
>=  8% – D-
<   8% – F


  • To be admitted to final exams, a student must have accumulative averages of C- or better from both the quizzes and from the labs and projects.
  • The instructor reserves the right to adjust any grade of any student in response to in-class participation as well as any forthcoming vital information.

Class Attendance

Class attendance is mandatory. A student missing a class seating must submit a reasonable and formal document that proves that indeed the student was not able to attend the class. Any undocumented absence from a lecture or a lab will result in zero points allocated for the corresponding test or lab assignment.

If a student is justifiably absent from a class seating, it is the student’s responsibility to study the material presented in the class on her or his own and to check on any announcements made while the students was absent. Should a student justifiably miss a lab session, the student must complete the lab assignments on her or his own and submit it by the due date.

Early Assessment Provisions

Blackboard assessment facility will be used to provide students that fall behind in a number of areas such as grades, course activity, attendance, etc., with an early warning notification about their unsatisfactory progress in the course. An accompanying letter will explain the actions that the underperforming student needs to undertake to succeed in the course. The student will also have an option to withdraw from the course.

Restrictions on Lab Activities

  • The use of the lab resources including time is restricted to the activities directly related to the lab. Any other use is not allowed.
  • No solid or liquid food is allowed in the lab. If you need to drink or eat, please go outside. Closed water bottles are allowed.
  • This is an interactive educational lab, so no activities or equipment disturbing interactions and education are allowed; for example, headsets, any kind of goggles, phones, consoles, watching videos, listening to music, playing games, maintaining distracting conversations, etc.

Any violators of the restrictions will be requested to leave the classroom. Any contention will be reported to Judicial Affairs.

Academic Honesty

The university, the course, the labs and the instructors are here for the students so they can acquire sufficient knowledge to open a window of opportunity for them in their future careers. Any academic dishonesty limits the student’s chances to succeed.

Please consult the Academic Catalog ( for the details on the CSUCI’s academic code of honor.

Students with Disabilities

Students needing special accommodations must make formal requests to the CSUCI Disability Accommodation Services ( No informal requests for any accommodation will be granted.

Subject to Change

This syllabus and schedule are subject to change in the event of extenuating circumstances.