Syllabus of Artificial Intelligence (CS 4300/5300)


Instructor & contact information


Teaching philosophy: Computer science and technology is mostly a practical discipline. To learn the fundamentals, an effective strategy is to follow an iterative process of reading, analyzing, and coding. However, many students either like to analyze or code but not both. While some of us enjoy developing the skills for critically assessing the concepts and algorithms, many others enjoy programming and love building things. I think that an effective computer science course should be a balance of (a) theoretical knowledge to understand how computer technology works, and (b) implementation skills to test and execute the theories and algorithms. I design course contents and assignments so that students have an opportunity to improve both: analytical and programming skills. Students with a rich programming experience may find this balance slightly easier but will have a platform to explore further. For many others who do not consider themselves expert programmers, taking such a course will be a rewarding experience.

Course description in UMSL catalog


This course provides an introduction to artificial intelligence (AI). The list of topics may include artificial neural networks, search, planning, knowledge-based reasoning, probabilistic inference, machine learning, natural language processing, and practical applications. [3 credit units].

Prerequisites


CMPSCI 3130 (Design and Analysis of Algorithms) or Graduate Standing in CS.

Learning outcomes


This course consists of (a) the book’s chapter topics in the form of recorded lectures (see lectures tab) along with corresponding homeworks, (b) a collection of activities as a crash course on ‘machine learning using Keras/Tensorflow’ (see nn-tf tab), and (c) a semester-long project (see project tab) on feed-forward neural networks. If you are new to artificial intelligence, Python, and machine learning, the activities and the project will require some exploration and study. But they provide you opportunities to learn the fundamentals of neural networks and the state-of-the art libraries to build prediction systems. Below are the learning outcomes:

Textbook


Artificial Intelligence: A Modern Approach (3rd Edition) by Pearson.

Course topics


Academic dishonesty


Any form of academic dishonesty in this class will result in an F for the semester and the case will be referred to the provost’s office for possible further disciplinary action, regardless of how trivial it is. Please don’t use another student’s assignment (or a solution in the internet) to complete your own assignment. Discussing the material is ‘OK’, but please do your work on your own. You should complete the homework alone, not together, and not in a group. If you have any questions about any of the lessons or the assignments, please contact me, and I will point you in the right direction. Please read UMSL’s policy and keep yourself out of plagiarism. Also, please remember that our turnitin tool also automatically checks for plagiarism.

Programming language


Python3 is language for the course; you are expected to use Python3 for all of your classroom activities, homeworks, and project. You are welcome to use Google colab or your own hosted Jupyter Notebook for running your programs.

Due dates and late policy


Homeworks


There will be three types of homeworks: project homeworks (see project tab), drawing concept maps as chapter summaries (see concept-map tab), and some chapters have additional homeworks (see homeworks tab). All homeworks should be submitted via Canvas. Concept maps should be submitted to the respective discussion boards so they are visible to other students in the class. You can view the concept maps uploaded by other students in the class only after you have submitted yours.

Quizzes


Along with concept map homeworks, after watching the lectures in a chapter, you will need to take a five minute quiz. The questions on the quiz will be multiple-choice or true/false type. Please take this quiz right after watching the chapter lectures. Also, before taking the first quiz, please read the instructions on proctoring (see proctoring tab).

In-person tests


There will be two in-person tests in this course (mid-term and final). Questions in the test will be similar to the homework questions.

Grade composition


Submission Total Points
Chapter concept maps 10
Chapter homeworks 10
Chapter quizzes 20
Chapter tests (mid-term + final) 10 + 10
Semester-long project 40

Note: You should submit the course evaluation survey at the end of the semester to receive your final grade.

Grading scheme


Points (%) Grade
94 to 100 A
90 to 94 A-
87 to 90 B+
84 to 87 B
80 to 84 B-
77 to 80 C+
74 to 77 C
70 to 74 C-
67 to 70 D+
64 to 67 D
61 to 64 D-
0 to 61 F


Resources


Your success in this class is important to me. If you need official accommodations, you have a right to have these met. If there are aspects of this course that prevent you from learning or exclude you, please let me know as soon as possible. Together we’ll develop strategies to meet both your needs and the requirements of the course. I encourage you to visit the following links to determine how you could improve your learning as well.

What students say


“Sorry to bother you after the course is done. Thank you for your teaching and hard work for this semester. I enjoy your teaching in this course, and I learned a lot through this course. When starting this course, I have no experience with python and TensorFlow, but I can build my neural network right now. This gives me a ton of experience in AI and data science which I believe is very useful for my career. Also, through this course, I can feel the charm of AI. I get attracted to it, and I want to learn more about it when I am going to graduate school.” - A student in fall 2021 class (online).

“The hands-on approach of the activities and the course project were the best part of the course. These activities permitted us to delve as deep as we want in understanding the concepts. The course project allows us to use all the ideas learned from the activities and apply them to a problem of our choosing.” - A student in fall 2020 class (on-line).

“This course is like no other in the computer science department. Professor Badri went above and beyond to help us achieve the skills we will use in our work life after university. Many professors keep teaching the same theory stuff again and again and after the semester its impossible to recall what we studied but for this course we did a lot of programming and that we will remember and use in our actual life. I loved this class and other classes taught in this way.” - A student in spring 2020 class (online).

“I loved this course. Separating theory and programming was an excellent idea. I wish it was done for all courses.” - A student in spring 2020 class (in-person).

“I particularly liked all of these resources he provided to help us learn and guide us through the course.” - A student in fall 2019 class (in-person).

“I had not done Python programming before so I was bit lost at the beginning but the activity video lectures and sample Python notebooks helped me excel in the course. Being able to see the project report done by other students who had taken the course last semester was nice.” - A student in fall 2019 class (in-person).