Networked & Social Systems Engineering (NETS)

NETS 112 Networked Life

What kind of science is appropriate for understanding the Facebook? How does Google find what you're looking for... and exactly how do they make money doing so? What properties might we expect any social network to reliably have, and are there simple explanations for them? How does your position in an economic network (dis)advantage you? How are individual and collective behavior related in complex networks? What might we mean by the economics of spam? What do game theory and the Paris subway have to do with Internet routing? Networked Life looks at how our world is connected -- socially, economically, strategically and technologically -- and why it matters.

Course usually offered in fall term

Activity: Lecture

1 Course Unit

NETS 150 Market and Social Systems on the Internet

Want to understand the sociological and algorithmic aspects of friend recommendation? Want to know how Google decides what 10 answers to return, out of the 10 million matching results? Want to understand how search engines have revolutionized advertising? Then this is the course for you! NETS 150 provides an overview of the issues, theoretical foundations, and existing techniques in networks (social, information, communication) and markets on the Internet. Subsequent NETS courses are available for students wishing to explore any of these topics in greater detail.

Activity: Lecture

1 Course Unit

NETS 212 Scalable and Cloud Computing

What is the "cloud"? How do we build software systems and components that scale to millions of users and petabytes of data, and are "always available"? In the modern Internet, virtually all large Web services run atop multiple geographically distributed data centers: Google, Yahoo, Facebook, iTunes, Amazon, EBAY, Bing, etc. Services must scale across thousands of machines, tolerate failures, and support thousands of concurrent requests. Increasingly, the major providers (including Amazon, Google, Microsoft, HP, and IBM) are looking at "hosting" third-party applications in their data centers - forming so-called "cloud computing" services. This course, aimed at a sophomore with exposure to basic programming within the context of a single machine, focuses on the issues and programming models related to such cloud and distributed data processing technologies: how to think about dividing both data and work across large clusters of machines, both within and across data centers, how to design algorithms that do this parallel computation, and how to implement the algorithms in new frameworks such as MapReduce.

Course usually offered in fall term

Prerequisites: CIS 120, CIS 160

Corequisite: CIS 121

Activity: Lecture

1 Course Unit

NETS 213 Crowdsourcing and Human Computation

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 and CrowdFlower 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 underlie democracy and other group decision-making processes.

One-term course offered either term

Prerequisite: CIS 120 or prior programming experience

Activity: Lecture

1 Course Unit

NETS 312 Theory of Networks

Want to understand how memes spread across the Internet? How organisms exhibit flocking behavior? How the structure of a network can help predict behavior among the nodes? This course is a rigorous study of the structure and function of complex networks. From World Wide Web to networks of banks and lenders that form the financial sector, to friendship networks that influence our opinion and everyday decision-making, networks have become an integral part of our daily lives.

One-term course offered either term

Activity: Lecture

1 Course Unit

NETS 412 Algorithmic Game Theory

How should an auction for scarce goods be structured if the sellers wish to maximize their revenue? How badly will traffic be snarled if drivers each selfishly try to minimize their commute time, compared to if a benevolent dictator directed traffic? How can couples be paired so that no two couples wish to swap partners in hindsight? How can you be as successful as the best horse-racing expert at betting on horse races, without knowing anything about horse racing? In this course, we will take an algorithmic perspective on problems in game theory, to solve problems such as the ones listed above. Game theory has applications in a wide variety of settings in which multiple participants with different incentives are placed in the same environment, must interact, and each "player"'s actions affect the others.

One-term course offered either term

Activity: Lecture

1 Course Unit