• Last update: 09/25/2020, 11:14am, added new recording.

FALL 2020: CSC545/645: Artificial Intelligence


How do I submit assignments?

We are using a SVN (subversion) repository for this class. Each student will get an account and will receive the credentials to access this account. For those new to repositories and in particular SVN: here is a web site that introduces the general concepts and give some examples.


Here is where you get SVN for your computer:

  1. Unix systems and MacOS: SVN should be already installed on your system. If not: use a package manager (e.g. apt-get on Linux or brew on MacOS) to install subversion.
  2. Windows: I recommend using Tortoise-SVN for Windows distributions.


Here is how you use SVN for this class:

  1. SVN checkout: this is only necessary *once*, at the beginning. Linux/MacOS: Open a terminal and 'cd' into your class folder on your local machine. Then type

    svn co --username=[USERNAME] svn://

  2. Change into your directory with

    cd csc545.211/[USERNAME]

  3. You can now add folders and files to your working copy of the repository. Example: add a new folder for each assignment such as

    mkdir assignment1

  4. The create files necessary for that assignment in that folder. Once the assignment is completed you need to add the new material to your repository. You can check by typing svn status and then select which files and folders to add. Say you added one file  to the folder assignment1 (let's call it test.txt). svn status then delivers this:

    ? assignment1

  5. The '?' means that the folder is recognized but not under revision control yet. You do this by adding the folder (with all it's content) to the repo:

    svn add assignment1

  6. The last step is to upload the content to the central repository:

    svn ci -m "SOME MEANINGFUL MESSAGE" assignment1

  7. The system then confirms with

    A assignment1
    A assignment1/test.txt

  8. To update from the repository use

    svn up

    pdating '.':
    At revision 186.


I have to admit: the subject sound dry and squeezed out - what can possibly be good learning AI? To represent and process knowledge - we are doing this anyway - all the time! Yes, you are right, we are doing this - but how?

Even in early AI time researchers were thinking how knowledge can be described explicitly in order to process knowledge in programs. They borrowed ideas from various disciplines, especially those that deal with logical reasoning such as philosophy and mathematical logic. Researchers have developed foundations for the semantic of knowledge and its process with the help of logical deduction.

There is a clear link to computer science since we want to program AI methods. This course gives students a solid foundation for understanding several fundamental concepts of artificial intelligence methods. We will explore various AI methods with the help of the multi-agent paradigm, intelligent “objects” that are manifested in the computer science world for over a decade. Topics include uninformed search, informed search, constraints, logic, and mostly learning.

Course objective

  1. To learn the key methods in the area of artificial intelligence
  2. To learn to intelligently evaluate the features of those methods as well as to evaluate different options to solve problems.
  3. To learn abstraction in order to reduce the search space.


Instructor’s name
Dr. Ubbo Visser
Office: Ungar Building, Room No 330A
Phone: 305-284-2254
Office Hours: by appointment

Teaching Assistant
Tony Luo
Lab hours: TBA

Contact Hours
Each week there are three 50 minutes sessions (MoWeFr 10:10AM - 11:00AM)
Classroom: remote teaching due to COVID-19, zoom link sent as email via Blackboard

Recommended Text Book
Artificial Intelligence - A modern approach - 3rd or 4th edition, Stuart Russell & Peter Norvig, Prentice H all, ISBN-10 (3rd): 0-13-604259-7, (4th): 0-13-461099-7

Course Content
Chapters 1 to 6, 18 to 21, plus additional content from other textbook/courses. If time is short, some of the concepts will be omitted. Course material will be uploaded before the lecture as .pdf files. Check regularly.

Grading (will be based on a total of 100 points)
Homework 70%, Final 30%. The score of each homework will be mentioned in it. The total score of all homework assignments will be scaled down to 70 points at the end of the semester for the purpose of final grading. For example, if all homework assignments collectively carry 100 points and a student gets 90 out of 100, he/she gets 90*70/100 or 63 out of 70 in Homework Assignment component for final grading.

Class attendance and participation
Class attendance is not mandatory, although my exams will depend heavily of my lectures. Not all of the material will come from the text. Class participation is also important. Active interest in lectures is the easiest way to learn.

The penalty for copied homework of any kind can be immediate failure in the course. My policy on programs is as follows: There is no reason for two (or more) people handing in identical or nearly identical programs. I will regard such programs as either group-written or simply copied. If I have no hard evidence of copying, such programs will receive NO credit. More serious actions will be taken in cases where there is evidence of cheating.

Late programs
Unless otherwise stated, programs will lose 20% of their value for each weekday (Monday through Friday that they are late, down to a minimum value of 20%. The due date of a program is the latest date on which it can be run to get full credit.

Dropping the course
Unless there are extreme extenuating circumstances, I will not allow anyone to drop a course after the drop date. Poor academic performance will never be an acceptable reason for a late drop.

Unless there has been a documentable illness that caused you to miss substantial amounts of class and computer time, I will not give an incomplete grade in this course. Therefore, please do NOT waste my time asking about an incomplete grade unless you have a remarkably good reason.

Make-up exams
I do not give make-up exams. You simply must show up and take them at the specified times.