AI-2022spring

Syllabus of Artificial Intelligence (CS 5300) - Spring 2022 (Online)


Frequently accessed contents

Instructor & contact information

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 the concepts and algorithms, many others enjoy programming and love building things. An effective computer science course should balance (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 learners can improve both: analytical and programming skills. 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.

Your success in this class is essential to me. If you need official accommodations, you have a right to have these met. If aspects of this course 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 course requirements.

Active Learning Assistant: This course will be supported by an Active Learning Assistant (ALA), a student who took this course earlier and has been hired to assist you and your classmates throughout the semester. The ALA will learn about teaching strategies, collaboration activities, and facilitation techniques to help you succeed in the course. The ALA will be involved in our class activities regularly. The ALA will also hold office hours each week, where you can ask questions and collaborate with others. Please see Canvas for the ALA’s contact information.

About the course

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 homework, (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 on feed-forward neural networks (see project tab). 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 (is required):
Artificial Intelligence: A Modern Approach (4th Edition) by Pearson. You can purchase the online version of the book, just for the semester.

Course topics

Book chapters

Machine learning using Tensorflow

Academic honesty

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 on the internet) to complete your assignment. Discussing the material is ‘OK,’ but please do your work independently. 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. 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, please note that our Turnitin tool automatically checks for plagiarism. If you have not written an original report in the past, please watch this lecture on plagiarism. For citations, you are free to choose any standard format (MLA, APA, etc.).

Programming language

Python3 is the programming language for this course; you are expected to use Python3 for all of your classroom activities, homework, 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 homework: project homework (see project tab), drawing concept maps as chapter summaries, and some chapters have additional homework (see chapter-homework tab). Each concept map should contain all of the key concepts/ideas discussed in the lectures to receive full points. Concept maps should be submitted to the respective discussion boards so that they are visible to other students in the class. You are requires to submit concept maps in .jpg, .jpeg, or .png format. You can view the concept maps uploaded by other students in the class only after you have submitted yours. All homework should be submitted via Canvas.

Quizzes

There will be no comprehensive tests in this course. In addition to drawing a concept map, you will also need to take a five-minute quiz after watching the lectures in a chapter. The questions on the quiz will be multiple-choice or true/false type. Please take this quiz soon after watching the chapter lectures. Also, before taking the first quiz, please read the instructions on proctoring and ensure that the browser plugin is installed correctly.

Turning video on during Zoom meetings

You are required to turn your video on when we are meeting over Zoom.

Grade composition

Submission Total Points
Chapter concept maps 20
Chapter Homeworks 15
Chapter quizzes 20
Semester-long project 40
Project peer reviews 5

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

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