Skip to content
Skip to navigation
# Engineering & Computer Science

Go to Course
Go to Course## Technical Requirements

## Statement of Accomplishment

Go to Course## PREREQUISITES

## INTENDED AUDIENCE

### Do I need to buy the textbook?

### Do we need to purchase a Matlab license to take this course?

### Do I get a credit or a certificate?

### How hard is this class?

Go to Course## PREREQUISITES

Go to Course
Go to Course
Go to Course## About the Course

## Course Syllabus

## Recommended Background

## Suggested Readings

## Course Format

## FAQ

**Will I get a Statement of Accomplishment after completing this class?**
Go to Course## About the Course

In the first week we consider the problem of aggregating different agents' preferences, discussing voting rules and the challenges faced in collective decision making. We present some of the most important theoretical results in the area: notably, Arrow's Theorem, which proves that there is no "perfect" voting system, and also the Gibbard-Satterthwaite and Muller-Satterthwaite Theorems. We move on to consider the problem of making collective decisions when agents are self interested and can strategically misreport their preferences. We explain "mechanism design" -- a broad framework for designing interactions between self-interested agents -- and give some key theoretical results. Our third week focuses on the problem of designing mechanisms to maximize aggregate happiness across agents, and presents the powerful family of Vickrey-Clarke-Groves mechanisms. The course wraps up with a fourth week that considers the problem of allocating scarce resources among self-interested agents, and that provides an introduction to auction theory. ## Course Syllabus

## Recommended Background

## Suggested Readings

## Course Format

## FAQ

Go to Course
## Pages

Topic Image:

Date:

Monday, March 3, 2014

Course topic:

Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade, machine learning has given us self-driving cars, practical speech recognition, effective web search, and a vastly improved understanding of the human genome. Machine learning is so pervasive today that you probably use it dozens of times a day without knowing it. Many researchers also think it is the best way to make progress towards human-level AI. In this class, you will learn about the most effective machine learning techniques, and gain practice implementing them and getting them to work for yourself. More importantly, you'll learn about not only the theoretical underpinnings of learning, but also gain the practical know-how needed to quickly and powerfully apply these techniques to new problems. Finally, you'll learn about some of Silicon Valley's best practices in innovation as it pertains to machine learning and AI.

This course provides a broad introduction to machine learning, datamining, and statistical pattern recognition. Topics include: (i) Supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks). (ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). (iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI). The course will also draw from numerous case studies and applications, so that you'll also learn how to apply learning algorithms to building smart robots (perception, control), text understanding (web search, anti-spam), computer vision, medical informatics, audio, database mining, and other areas.

FAQ:

**What is the format of the class?**The class will consist of lecture videos, which are broken into small chunks, usually between eight and twelve minutes each. Some of these may contain integrated quiz questions. There will also be standalone quizzes that are not part of video lectures, and programming assignments.

**How much programming background is needed for the course?**The course includes programming assignments and some programming background will be helpful.

**Do I need to buy a textbook for the course?**No, it is self-contained.

**Will I get a statement of accomplishment after completing this class?**Yes. Students who successfully complete the class will receive a statement of accomplishment signed by the instructor.

Instructor(s):

Andrew Ng

Date:

Sunday, February 2, 2014

Course topic:

This course introduces the fundamentals of technology entrepreneurship, pioneered in Silicon Valley and now spreading across the world. You will learn the process technology entrepreneurs use to start companies. It involves taking a technology idea and finding a high-potential commercial opportunity, gathering resources such as talent and capital, figuring out how to sell and market the idea, and managing rapid growth. To gain practical experience alongside the theory, students form teams and work on startup projects in those teams.

This is the second offering of the class. Last time, nearly 40,000 students from around the world participated and worked in teams together. The top teams were matched with Silicon Valley mentors, and the best teams at the end of the class pitched their ideas to investors. Many of the alumni of the last class are continuing to build their startups and will be mentoring teams this time.

By the conclusion of the course, it is our hope that you understand how to:

- Articulate a process for taking a technology idea and finding a high-potential commercial opportunity (high performing students will be able to discuss the pros and cons of alternative theoretical models).
- Create and verify a plan for gathering resources such as talent and capital.
- Create and verify a business model for how to sell and market an entrepreneurial idea.
- Generalize this process to an entrepreneurial mindset of turning problems into opportunities that can be used in larger companies and other settings.

**Workload:** 10 hours per week.

** **You need a computer that allows you to watch the video lectures, and the ability to upload your assignments which will be reports and powerpoint/video presentations.

Subject to satisfactory performance and course completion, you will receive a statement of accomplishment signed by the instructor. This statement will not stand in the place of a course taken at Stanford or an accredited institution.

Instructor(s):

Chuck Eesley

Go to Course## RECOMMENDED BACKGROUND

## COURSE FORMAT

Course topic:

*Coming Soon*.

Cryptography is an indispensable tool for protecting information in computer systems. This course is a continuation of Crypto I and explains the inner workings of public-key systems and cryptographic protocols. Students will learn how to reason about the security of cryptographic constructions and how to apply this knowledge to real-world applications. The course begins with constructions for digital signatures and their applications. We will then discuss protocols for user authentication and zero-knowledge protocols. Next we will turn to privacy applications of cryptography supporting anonymous credentials and private database lookup. We will conclude with more advanced topics including multi-party computation and elliptic curve cryptography. Throughout the course students will be exposed to many exciting open problems in the field. The course will include written homeworks and optional programming labs. The material is self-contained, but the course assumes knowledge of the topics covered in Crypto I as well as a basic understanding of discrete probability theory.

The class will consist of lecture videos, which are between 8 and 20 minutes in length. These contain 1-2 integrated quiz questions per video. There will also be standalone homeworks that are not part of video lectures, optional programming assignments, and a (not optional) final exam.

FAQ:

**Will I get a certificate after completing this class?**Statement of accomplishment will be given to students who obtain more than 70% of the maximum score on the problem sets and final exam. Students who also complete the programming assignments will receive a statement of accomplishment saying that they also completed the programming part of the course.

**What is the format of the class?**The class will consist of lecture videos, which are broken into small chunks, usually between eight and twelve minutes each. Some of these may contain integrated quiz questions. There will also be standalone quizzes that are not part of video lectures, and programming assignments. There will be approximately two hours worth of video content per week.

**How much programming background is needed for the course?**The course includes optional programming assignments and some programming background will be helpful. We will also point to online resources that can help students find the necessary background.

**What math background is needed for the course?**The course is mostly self contained, however some knowledge of discrete probability will be helpful. The wikibooks article on discrete probability should give sufficient background.

Instructor(s):

Dan Boneh

Date:

Tuesday, January 21, 2014

Course topic:

This course concentrates on recognizing and solving convex optimization problems that arise in applications. The syllabus includes: convex sets, functions, and optimization problems; basics of convex analysis; least-squares, linear and quadratic programs, semidefinite programming, minimax, extremal volume, and other problems; optimality conditions, duality theory, theorems of alternative, and applications; interior-point methods; applications to signal processing, statistics and machine learning, control and mechanical engineering, digital and analog circuit design, and finance.

You should have good knowledge of linear algebra and exposure to probability. Exposure to numerical computing, optimization, and application fields is helpful but not required; the applications will be kept basic and simple. You will use matlab and CVX to write simple scripts, so some basic familiarity with matlab is helpful. We will provide some basic Matlab tutorials.

This course should benefit anyone who uses or will use scientific computing or optimization in engineering or related work (e.g., machine learning, finance). More specifically, people from the following fields: Electrical Engineering (especially areas like signal and image processing, communications, control, EDA & CAD); Aero & Astro (control, navigation, design), Mechanical & Civil Engineering (especially robotics, control, structural analysis, optimization, design); Computer Science (especially machine learning, robotics, computer graphics, algorithms & complexity, computational geometry); Operations Research; Scientific Computing and Computational Mathematics. The course may be useful to students and researchers in several other fields as well: Mathematics, Statistics, Finance, Economics.

FAQ:

No, the textbook is available online at http://www.stanford.edu/~boyd/cvxbook/.

You will be able to use Matlab under a special license provided to you as a course participant to use for the CVX101 course. This is a limited license for the duration of the course and is intended to be used only for course work and not for commercial purposes. Alternatively, you may choose to access Matlab via a web interface if you prefer not to install Matlab on your computer.

No, you will receive an informal Statement of Accomplishment from the instructor.

The difficulty level of this class is equivalent to Stanford's EE364a, which is a graduate level class in electrical engineering.

Date:

Tuesday, January 21, 2014

Course topic:

This is an introductory course on computer networking, specifically the Internet. It focuses on explaining how the Internet works, ranging from how bits are modulated on wires and in wireless to application-level protocols like BitTorrent and HTTP. It also explains the principles of how to design networks and network protocols. Students gain experience reading and understanding RFCs (Internet protocol specifications) as statements of what a system should do. The course grounds many of the concepts in current practice and recent developments, such as net neutrality and DNS security.

Students need an introductory course in probability, a strong understanding of bits and bytes, and knowledge of how computers lay out data in memory.

Instructor(s):

Nick McKeown

Philip Levis

Date:

Monday, January 6, 2014

Course topic:

Cryptography is an indispensable tool for protecting information in computer systems. This course explains the inner workings of cryptographic primitives and how to correctly use them. Students will learn how to reason about the security of cryptographic constructions and how to apply this knowledge to real-world applications. The course begins with a detailed discussion of how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic. We will examine many deployed protocols and analyze mistakes in existing systems. The second half of the course discusses public-key techniques that let two or more parties generate a shared secret key. We will cover the relevant number theory and discuss public-key encryption, digital signatures, and authentication protocols. Towards the end of the course we will cover more advanced topics such as zero-knowledge, distributed protocols such as secure auctions, and a number of privacy mechanisms. Throughout the course students will be exposed to many exciting open problems in the field.

The course will include written homeworks and programming labs. The course is self-contained, however it will be helpful to have a basic understanding of discrete probability theory.

FAQ:

**Will I get a statement of accomplishment after completing this class?**Yes. Students who successfully complete the class will receive a statement of accomplishment signed by the instructor.

**What is the format of the class?**The class will consist of lecture videos, which are broken into small chunks, usually between eight and twelve minutes each. Some of these may contain integrated quiz questions. There will also be standalone quizzes that are not part of video lectures, and programming assignments. There will be approximately two hours worth of video content per week.

**How much programming background is needed for the course?**The course includes programming assignments and some programming background will be helpful. However, we will hand out lots of starter code that will help students complete the assignments. We will also point to online resources that can help students find the necessary background.

**What math background is needed for the course?**The course is mostly self contained, however some knowledge of discrete probability will be helpful. The wikibooks article on discrete probability should give sufficient background.

Instructor(s):

Dan Boneh

Date:

Tuesday, January 21, 2014

This is an introductory-level course in supervised learning, with a focus on regression and classification methods. The syllabus includes: linear and polynomial regression, logistic regression and linear discriminant analysis; cross-validation and the bootstrap, model selection and regularization methods (ridge and lasso); nonlinear models, splines and generalized additive models; tree-based methods, random forests and boosting; support-vector machines. Some unsupervised learning methods are discussed: principal components and clustering (k-means and hierarchical).

This is not a math-heavy class, so we try and describe the methods without heavy reliance on formulas and complex mathematics. We focus on what we consider to be the important elements of modern data analysis. Computing is done in R. There are lectures devoted to R, giving tutorials from the ground up, and progressing with more detailed sessions that implement the techniques in each chapter.

The lectures cover all the material in An Introduction to Statistical Learning, with Applications in R by James, Witten, Hastie and Tibshirani (Springer, 2013). As of January 5, 2014, the pdf for this book will be available for free, with the consent of the publisher, on the book website.

Instructor(s):

Trevor Hastie

Rob Tibshirani

Date:

Monday, January 6, 2014

Social networks pervade our social and economic lives. They play a central role in the transmission of information about job opportunities and are critical to the trade of many goods and services. They are important in determining which products we buy, which languages we speak, how we vote, as well as whether or not we decide to become criminals, how much education we obtain, and our likelihood of succeeding professionally. The countless ways in which network structures affect our well-being make it critical to understand how social network structures impact behavior, which network structures are likely to emerge in a society, and why we organize ourselves as we do. This course provides an overview and synthesis of research on social and economic networks, drawing on studies by sociologists, economists, computer scientists, physicists, and mathematicians.

The course begins with some empirical background on social and economic networks, and an overview of concepts used to describe and measure networks. Next, we will cover a set of models of how networks form, including random network models as well as strategic formation models, and some hybrids. We will then discuss a series of models of how networks impact behavior, including contagion, diffusion, learning, and peer influences.

- Week 1: Introduction, Empirical Background and Definitions

- Week 2: Background, Definitions, and Measures Continued

- Week 3: Random Networks

- Week 4: Strategic Network Formation

Game Theoretic Modeling of Network Formation, The Connections Model, The Conflict between Incentives and Efficiency, Dynamics, Directed Networks, Hybrid Models of Choice and Chance

- Week 5: Diffusion on Networks.

- Week 6: Learning on Networks.

- Week 7: Games on Networks.

Network Games, Peer Influences: Strategic Complements and Substitutes, the Relation between Network Structure and Behavior, A Linear Quadratic Game, Repeated Interactions and Network Structures.

The course has some basic prerequisites in mathematics and statistics. For example, it will be assumed that students are comfortable with basic concepts from linear algebra (e.g., matrix multiplication), probability theory (e.g., probability distributions, expected values, Bayes' rule), and statistics (e.g., hypothesis testing), and some light calculus (e.g., differentiation and integration). Beyond those concepts, the course will be self-contained.

The course is self-contained, so that all the definitions and concepts you need to solve the problem sets and final are contained in the video lectures. Much of the material for the course is covered in a text: Matthew O. Jackson Social and Economic Networks, Princeton University Press (Here are Princeton University Pressand Amazon pages for the book). The text is *optional* and not required for the course. Additional background readings, including research articles and several surveys on some of the topics covered in the course can be found on my web page.

The course will run for seven weeks, plus two for the final exam. Each week there will be video lectures available, as well as a standalone problem set and some occasional data exercises, and there will be a final exam at the end of the course for those who wish to earn a course certificate.

Yes. Students who successfully complete the class (above 70 percent correct on the problem sets and final exam) will receive a Statement of Accomplishment signed by the instructor - and those earning above 90 percent credit on the problem sets and final will earn one with distinction.

Date:

Monday, January 13, 2014

Course topic:

Popularized by movies such as "A Beautiful Mind", game theory is the mathematical modeling of strategic interaction among rational (and irrational) agents. Over four weeks of lectures, this advanced course considers how to design interactions between agents in order to achieve good social outcomes. Three main topics are covered: social choice theory (i.e., collective decision making), mechanism design, and auctions.

There will be four weeks of materials consisting of online videos and problem sets. We recommend that you complete the problem set for each week within that week, although the hard deadline is two weeks from the release date. On the fifth week, we will have a final exam.

Week 1. Social Choice

Week 2. Mechanism Design

Week 3. Efficient Mechanisms

Week 4. Auctions

Week 5-6. Final exam and final problem set.

You must be comfortable with mathematical thinking and rigorous arguments. Relatively little specific math is required; the course involves lightweight probability theory (for example, you should know what a conditional probability is) and very lightweight calculus (for instance, taking a derivative).

The following background readings provide more detailed coverage of the course material:

Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations, by Yoav Shoham and Kevin Leyton-Brown; Cambridge University Press, 2009. This book has the same structure as the course, and covers most of the same material. It is available as a free PDF download from the link above or for sale as a physical book from (e.g.) amazon.com.

A Brief Introduction to the Basics of Game Theory, by Matthew O. Jackson. These notes offer a quick introduction to the basics of game theory; they are available as a free PDF download.

Videos. The lectures are delivered via videos, which are broken into small chunks, usually between five and fifteen minutes each. There will be approximately one and a half hours of video content per week. You may watch the lecture videos at your convenience. Lower-resolution videos are also available for those with slow Internet connections.

- Slides. We have made available pdf files of all the lecture slides.
- Quizzes. There will be non-graded short "quiz" questions that will follow some of the videos to help you gauge your understanding.
- Online Lab Exercises. After some of the videos, we will ask you to go online to play some games. These are entirely optional, and are designed to illustrate some of the concepts from the course.
- Problem Sets. There will also be graded weekly problem sets that you will also answer online, but may work through offline; those must be completed within two weeks of the time that they are posted in order to be graded for full credit. If you miss a problem set deadline, you may complete it before the end of the course for half credit. You may discuss problems from the problem sets with other students in an online forum, without providing explicit answers.
- Final Exam. There will be an online final exam that you will have to complete within two weeks of its posting. Once you begin the exam, you will have four hours to complete it.
- Screen-side Chats. We will hold occasional online chats where we answer questions and discuss topics relevant to the course.

**Will I get a statement of accomplishment after completing this class?**Yes. Students who successfully complete the class will receive a statement of accomplishment signed by the instructors.

Instructor(s):

Kevin Leyton-Brown

Date:

Monday, November 18, 2013 to Monday, January 6, 2014

Course topic:

This is the second half of a course that introduces the fundamentals of technology entrepreneurship, pioneered in Silicon Valley and now spreading across the world. Last time, nearly 40,000 students from around the world participated and worked in teams together. The top teams were matched with Silicon Valley mentors, and the best teams at the end of the class pitched their ideas to investors. Many of the alumni of the last class are continuing to build their startups and will be mentoring teams this time.

By the conclusion of the course, it is our hope that you understand how to:

- Articulate a process for taking a technology idea and finding a high-potential commercial opportunity (high performing students will be able to discuss the pros and cons of alternative theoretical models).
- Create and verify a plan for gathering resources such as talent and capital.
- Create and verify a business model for how to sell and market an entrepreneurial idea.
- Generalize this process to an entrepreneurial mindset of turning problems into opportunities that can be used in larger companies and other settings.

Instructor(s):

Chuck Eesley