Introduction to Natural Language Processing (EECS 487)
The purpose of this course is to provide a broad introduction to the fundamental concepts, tasks, and techniques of natural language processing, and its recent advances based on machine learning algorithms (e.g., neural networks) and applications for interdisciplinary subjects. The successful student will finish the course with specific modeling and analytical skills, knowledge of the most important language concepts and machine learning schemes, and a broad understanding of natural language processing models and practice. The course will serve to prepare the student for further study of NLP and AI in general, as well as to inform any work involving the design of computer programs for substantial application domains.
Introduction to Artificial Intelligence (EECS 492)
Winter 2022, Winter 2023
This course is an introductory course to artificial intelligence. The purpose of this course is to provide an overview of this field. We will cover topics including: agents, search, planning, uncertainty, and learning. The goals of this course are to provide a fundamental knowledge of the field. The course evaluation will include homework, a midterm, and a final.
The goal of this course is to provide background in the field of artificial intelligence. The successful student will finish the course with specific modeling and analytical skills (e.g., search, logic, probability), knowledge of many of the most important knowledge representation, reasoning, and machine learning schemes, and a general understanding of AI principles and practice. The course will serve to prepare the student for further study of AI, as well as to inform any work involving the design of computer programs for substantial application domains.
Introduction to Computers and Programming (ENGR 101)
Winter 2021, Fall 2022
Engineering 101 focuses on using your computer to solve engineering problems through computer
programming. Many engineering problems involve repetition -- getting data and doing the same
calculations over and over again. Automating this process, using computing programming, saves time and
minimizes errors in these calculations. Engineers have more and more data to work with in the design
process, so developing computer programs is now a part of almost every modern engineering project.
Our goal is that you leave this course with experience in logically breaking down a large problem into
smaller problems that are more easily solved and with an appreciation for how critical computer
programming is for all engineering disciplines.
Discover CS (EECS 198)
In this class, you will begin to explore some of the different areas of computer science. Using the
programming language Python, we will teach basic CS concepts, as well as showcase the wide range of
real-world, interdisciplinary applications of CS. This class is designed to be interactive, and much of
our class time will be spent programming and problem solving collaboratively. We will also have a the
chance to interact with visiting researchers and computing professionals, as well as visit a local CS
company. Our hope is that you walk away from this class excited about the possibilities available to you
in computer science!
Natural Language Processing (EECS 498/595)
This course provides an introduction to the theory and practice of natural language processing
(NLP) - the creation of computer programs that can understand, generate, and learn natural
language. The course will cover the three major subfields of NLP: syntax, semantics, and
pragmatics. The course will introduce both knowledge-based and statistical approaches to NLP,
illustrate the use of NLP techniques and tools in a variety of application areas, and provide
insight into many open research problems.
- This class was ranked by School of Information students in the top quartile of classes for
overall quality and amount learned.