Introduction to Natural Language Processing (EECS 487)

Fall 2023

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)

Fall 2018

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)

Fall 2017

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.

  • View syllabus
  • This class was ranked by School of Information students in the top quartile of classes for overall quality and amount learned.