Skip to main content
Artifical Intelligence - CIS 421/521 (Fall 2018)
How can computers reason and act in the world? In this course we will cover a range of topics in Artificial Intelligence from classical topics like search, constraint satifaction problems, and games, and contemporary topics like neural networks, computer vision, and natural language processing. Programming assignments in Python.

Crowdsourcing and Human Computation - NETS 213 (Spring 2019)
Crowdsourcing and human computation are emerging fields that sit squarely at the intersection of economics and computer science. They examine how people can be used to solve complex tasks that are currently beyond the capabilities of artificial intelligence algorithms. Online marketplaces like Mechanical Turk provide an infrastructure that allows micropayments to be given to people in return for completing human intelligence tasks. This opens up previously unthinkable possibilities like people being used as function calls in software. We will investigate how crowdsourcing can be used for computer science applications like machine learning, next-generation interfaces, and data mining. Beyond these computer science aspects, we will also delve into topics like prediction markets, how businesses can capitalize on collective intelligence, and the fundamental principles that underly democracy and other group decision-making processes.

Computational Linguistics - CIS 530 (Spring 2018)
This course provides an overview of the field of natural language processing.

Past Courses

Data Structures and Algorithms - CIS 121
This course introduces undergraduates to the fundamental algorithms and data structures that are used in the field of computer science. We introduce methods for analyzing the complexity of an algorithm and predicting the running time of software. We describe data structures like stacks, queues, lists, trees, priority queues, maps, hash tables and graphs, and we discuss how to implement them efficiently and how to use them effectively in software. Course assignments include of weekly homeworks consisting of problem sets and programming exercises in Java, and a larger term project. This course has an enrollment of 250 students.

Machine Translation - CIS 526
Google translate can instantly translate between any pair of over fifty human languages (for instance, from French to English). How does it do that? Why does it make the errors that it does? And how can you build something better? Modern translation systems like Google Translate and Bing Translator learn how to translate by reading millions of words of already translated text, and this course will show you how they work. The course covers a diverse set of fundamental building blocks from linguistics, machine learning, algorithms, data structures, and formal language theory, along with their application to a real and difficult problem in artificial intelligence.

Can computers reason like humans?