AI


Syllabus

Artificial Intelligence (CMPSCI 4300 & 5300)

Spring 2023 (in person)


Instructor & contact information

You are welcome to the Artificial Intelligence course. This is primarily a survey course aimed at introducing the modern topics under the artificial intelligence’s umbrella. I have been teaching this course almost every semester since 2018. It is my pleasure to be teaching a course on a topic that I am very passionate about.

“AI is the new electricity. It will transform every industry and create huge economic value.” - Andrew Ng.

Your success in this class is essential to me. If you need official accommodations, you have the right to have these met. If aspects of this course prevent you from learning or exclude you, please inform me as soon as possible. Together we’ll develop strategies to meet your needs and the course requirements.

Teaching philosophy: In my classes, I see a student as a ‘learner’ and myself as a ‘facilitator’ for the learners. Computer science and technology is a discipline that is evolving rapidly. Many learners see it as a difficult discipline. To my learners, I suggest that an effective strategy to learn the fundamentals is to follow an iterative process of reading, analyzing, and coding. However, many learners either like to analyze or code but not both. While some of us enjoy developing the skills for critically assessing concepts and algorithms, many others enjoy programming and love building things. An effective computer science course should balance (a) theoretical knowledge to understand computer technology and (b) implementation skills to test and execute the theories and algorithms. I design course contents and assignments so that learners can improve both skills: analytical and programming. Learners 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 can become a rewarding experience. Lastly, you are not allowed to print any of the quiz, mid-term, or final exam questions, or post them anywhere outside of the class.

Course description

Course name
Introduction to Artificial Intelligence (CMPSCI 4300) / Artificial Intelligence (CMPSCI 5300)

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 for 4300 (for undergraduate students)
CMPSCI 3130 (Design and Analysis of Algorithms)

Prerequisites for 5300 (for graduate students)
Graduate Standing in CS.

Textbook (required):
Artificial Intelligence: A Modern Approach (4th Edition) by Pearson. You should have automatic access to the book via Canvas’s VS Materials tab.

Learning outcomes

Course topics

Academic honesty

Any 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 on the Internet) to complete your assignment. Discussing the material is OK, but please do your work independently. You should complete the assignments alone, not together, and not in a group. If you have any questions about the lessons or the assignments, please get in touch with me, and I will point you in the right direction. Please read UMSL’s policy and keep yourself out of plagiarism. In your reports, all sources must be clearly cited. You should not copy-paste any content from the Internet without citing it. “If you didn’t write it (or create it), cite it.” Also, our Turnitin tool automatically checks for plagiarism. If you have not written any original technical reports in the past, please watch this lecture on plagiarism.

Programming language

Python3 is the programming language for this course; you are expected to use Python3 for all your classroom activities, assignments, and projects. You are welcome to use Google colab or your own hosted Jupyter Notebook to run your programs.

Assignments, quizzes, and exams

Assignments

This course will have several types of assignments: chapter readings,regular course assignments, project-related assignments, and drawing concept maps as chapter summaries. All assignments should be submitted via Canvas. I ignore any assignments submitted to me via email. If you need help finding the right place to submit in Canvas, ask me by sending an email instead of emailing me your assignments.

Citation format
You can choose any standard format for citations, such as MLA and APA.

Quizzes

Most classes will begin with a short quiz (5 to 10 minutes). Mostly, these will be multiple-choice questions. Questions will be mainly from the book chapter readings and classroom lectures. Please bring your laptops to the classroom so you can take the quiz on your computer. If for some reason, we switch to an online setting, the quizzes will be proctored.

Feedback and grading timeline

You will receive project and quiz grades within a week after the due date; others may take longer. Assignments may take longer to grade during certain weeks when I travel to conferences. However, you are welcome to email me and request a quicker grading for a particular submission.

Exams
There will be two comprehensive exams: mid-term and final. Most exam questions will be related to lectures, classroom activities, and assignments. I will provide sample exam questions.

Final exam: 10 May, 7:45 - 9:45 PM.

Attendance, due dates, late policy, and discussion board assignments

Zoom meetings

If we ever need to Zoom (for class meetings or office hours), say due to severe weather, you are required to keep your video on.

Grade composition (tentative)

Scoring aspect Total points (%)
Assignments 25
Projects 25
Weekly quizzes 25
Exams 25

Note: You are required to 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

Additional policies and resources


What other students say

Here is what (some) other students, who took this course, said about this course:

“Sorry to bother you after the course is done. Thank you for your teaching and hard work this semester. I enjoyed 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 wanted 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 (online).

“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 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 a 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).