Course Description:

Crowdsourcing and human computation are useful in a number of real-world applications. Crowds generate large data sets useful for natural language process and computer vision; they work together to formulate intelligent responses far beyond what we can automate; and they power intelligent interactive systems currently impossible with automated approaches alone. In this course, students will learn to program the crowd. They will write programs that work with existing sources of crowds (Amazon Mechanical Turk, oDesk, Facebook …), apply usability principles for designing crowd tasks that elicit high-quality responses, use statistical methods to improve the quality of the work received, build systems that interface with crowd labor in real time, and conduct experiments to improve understanding of the differences between different sources of crowd work. Course work will consist of projects in each of these areas, and a final team project decided on by the students in each team.

Class time will be a mix of short lectures and interactive components

-- please bring your laptop!

Specific topics addressed in the course will include:

History of Crowdsourcing

Connections to Social Computing, Collective Intelligence, and Management Science

Usability Engineering for Crowdsourcing

Input-Agreement Mechanisms

Output-Agreement Mechanisms

Gold Standards

Consensus Algorithms

Incentive Mechanisms


Real-Time Crowdsourcing

Queueing Theory for Predicting Worker Availability

Ensemble Learning

Crowd Agents

Crowdsourcing Subjective Tasks

Social Q&A

Expertise in Crowdsourcing

Local Crowdsourcing / Communitysourcing


Citizen Science

Crowds: Mechanical Turk

Crowds: oDesk

Crowds: Mobile Works

Crowds: Social Media

Applications: Computer Vision

Applications: NLP

Applications: Speech to Text

No specific prerequisites are required, but the course will including programming and basic statistics are assumed. Ask the instructor if you have questions about your preparation.