Skip to content Skip to navigation

Engineering & Computer Science

Topic Image: 
Engineering and Computer Science
Go to Course

About this course

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 and voting systems), mechanism design, and auctions. 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.

You can find a full syllabus and description of the course here:

There is also a predecessor course to this one, for those who want to learn or remind themselves of the basic concepts of game theory:

An intro video can be found here:

This course starts every five weeks. The next session begins October 17.

Who is this class for

This course is based on advanced undergraduate and masters level material and is aimed at researchers, students, and practitioners who wish to learn more about game theory and mechanism design. This course is a follow up to our first Game Theory course, and it presumes that the students are comfortable with the material from that course. You must be also comfortable with mathematical thinking and rigorous arguments. Relatively little specific math is required; however the course involves some probability theory (for example, you should know what a conditional probability is) and some calculus.

Created by:   Stanford University, The University of British Columbia  


  • Matthew O. Jackson, Professor, Economics

  • Kevin Leyton-Brown, Professor, Computer Science

  • Yoav Shoham, Professor, Computer Science


Game Theory II : Advanced Applications

View All Courses

Access learning material from upcoming, self-study, and completed courses...

Tuesday, October 4, 2016 to Tuesday, December 13, 2016
Go to Course


Living at the Nuclear Brink: An Introduction by Dr. William J. Perry

I have been living at the nuclear brink for all of my adult life, and throughout my career in academia, private industry, and the U.S. government, I have dealt first-hand with the evolving nuclear threat. Nuclear weapons may seem like 20th century history, but the choices we make about these weapons in the 21st century will decide your future in truly fundamental ways. Because most people do not understand just how serious these dangers are today, their governments are not taking adequate preventive actions: actions that are readily achievable. And so, we are drifting towards a nuclear catastrophe. This is why I have dedicated the balance of my life to educate the public about these dangers, and this is the reason I have created this course. I have been joined in this effort by an outstanding and uniquely qualified group of educators and public servants who share my concerns about nuclear weapons.

The key goals of this course are to warn you of the dangers you face and to give you some insight on what could be done to avoid those dangers. My challenge in this course is to make vivid to you that the dangers of nuclear weapons, far from being historical curiosities, are existential dangers today. You will have the opportunity to engage in discussions about these topics with both world experts and peers from around the globe.

You can take this course any way you wish. To earn a Statement of Accomplishment, you will view all of the lectures, participate in weekly forums, and complete quizzes on the course content. We have organized the course segments in a logical order, both chronologically and thematically. However, each segment stands alone and can be viewed independently, and still be a useful experience, even if you do not seek a Statement of Accomplishment.

The course differs from many others in a fundamental way: our goal is not just to provide facts for your education, but to inspire you to take action. You have the power to make a difference, and I believe that this course will give you the knowledge and motivation to do so. You can read more about this subject, and find ways to become involved, by visiting the website of the William J Perry Project:


There are no prerequisites for this course except for curiosity in the subject and a passion for learning.


Week 1: Introduction; What Are Nuclear Weapons and Why Were They Developed?

Dr. William J. Perry; Dr. Joseph Martz; Dr. Siegfried Hecker

Week 2: Nuclear Proliferation in the United States and Around the World

Dr. William J. Perry; Dr. Joseph Martz; Dr. Siegfried Hecker

Week 3: Under a Nuclear Cloud: Early Cold War

Dr. William J. Perry; Dr. David Holloway

Week 4: Fear and Loathing and Relief: Later Cold War

Dr. William J. Perry; Dr. David Holloway

Week 5: A Lack of Intelligence

Dr. William J. Perry; Philip Taubman

Week 6: Dilemmas of Nuclear Policy

Dr. William J. Perry; Dr. Scott Sagan; Dr. David Holloway; Dr. Andre Kokoshin

Week 7: New Nuclear Dangers: Nuclear Terrorism

Dr. William J. Perry; Dr. Martha Crenshaw; Dr. Siegfried Hecker

Week 8: New Nuclear Dangers: South Asia and Proliferation

Dr. William J. Perry; Dr. Scott Sagan; Dr. Martha Crenshaw; Dr. Siegfried Hecker; Dr. Andre Kokoshin

Week 9: What Has Been Done, and Can Be Done, about Nuclear Dangers

Dr. William J. Perry; Amb. James Goodby; Secretary George Shultz

Week 10: What Next?

Dr. William J. Perry; Joseph Cirincione


William J. Perry

William J. Perry was the 19th Secretary of Defense for the United States, serving from February 1994 to January 1997. He previously served as Deputy Secretary of Defense (1993-1994) and as Under Secretary of Defense for Research and Engineering (1977-1981). Perry is the Michael and Barbara Berberian Professor (emeritus) at Stanford University. He is a Senior Fellow at the Freeman Spogli Institute and the Hoover Institution, and he serves as Director of the Preventive Defense Project. In 2013, Perry founded the William J. Perry Project ( to engage and educate the public on the dangers of nuclear weapons in the 21st century.

Joseph Cirincione

Joseph Cirincione is the president of Ploughshares Fund, a global security foundation. He is the author Nuclear Nightmares: Securing the World Before It Is Too Late, Bomb Scare: The History and Future of Nuclear Weapons and is the author or editor of five other books on nuclear weapons and national security policy. He has also published hundreds of articles on these topics and is widely cited in the media. Mr. Cirincione serves on the Secretary of State’s International Security Advisory Board and is a member of the Council on Foreign Relations. He worked for nine years in the U.S. House of Representatives on the professional staff of the Committee on Armed Services and the Committee on Government Operations.

Martha Crenshaw

Martha Crenshaw is a world-recognized expert on political terrorism and is a Senior Fellow at Stanford’s Center for International Security and Cooperation (CISAC) and Freeman Spogli Institute (FSI) and a Professor of Political Science by courtesy at Stanford. In 2011, Routledge published Explaining Terrorism, a collection of her previously published writings.

James Goodby

James Goodby has had a long and distinguished career in the United States Foreign Service. He has received five presidential appointments at ambassadorial rank, and notably, he has been intimately involved as a negotiator and policy adviser in the creation of the International Atomic Energy Agency, the negotiation of the limited nuclear test ban treaty, START, the Conference on Disarmament in Europe, and the Nunn-Lugar Cooperative Threat Reduction Program.

Siegfried Hecker

Siegfried Hecker is one of the world’s experts on the Russian nuclear program, working with Russian nuclear laboratories to secure and safeguard the vast stockpile of ex-Soviet fissile materials. Dr. Hecker is a professor (research) in the Department of Management Science and Engineering at Stanford, a Senior Fellow at the Freeman Spogli Institute, former Director of Los Alamos National Laboratory and former co-director of Stanford's Center for International Security and Cooperation.

David Holloway

David Holloway is perhaps the world’s expert on the development of the Soviet nuclear program and has published widely on this subject; his book Stalin and the Bomb: The Soviet Union and Atomic Energy, 1939-1956 (Yale University Press, 1994) was chosen by the New York Times Book Review as one of the 11 best books of 1994. Dr. Holloway is the Raymond A. Spruance Professor of International History, a Professor of Political Science, and an Freeman Spogli Institute Senior Fellow.

Andre Kokoshin

Andre Kokoshin has held many positions in the Russian government, including Deputy Minister of Defense from 1992 to 1997, when he played a key role in the implementation of the Nunn-Lugar Cooperative Threat Reduction Program. He is currently a member of the Russian Duma; he holds a Ph.D. in History and is an associate member of the Russian Academy of Sciences.

Joseph Martz

Joseph Martz is a physicist and employee Los Alamos National Laboratory with a 25+ year career focused on issues surrounding nuclear security, nuclear weapons, and stockpile stewardship. In addition to his research at Los Alamos, he has led national project teams including the recent reliable-replacement warhead design competition and several complex nuclear material experiments.

Scott D. Sagan

Scott D. Sagan is widely-recognized expert on nuclear security issues; his books in this area include The Limits of Safety: Organizations, Accidents, and Nuclear Weapons (Princeton University Press, 1993), and with co-author Kenneth N. Waltz, The Spread of Nuclear Weapons: An Enduring Debate (W.W. Norton, 2012). Dr. Sagan is the Caroline S.G. Munro Professor of Political Science, the Mimi and Peter Haas University Fellow in Undergraduate Education, and a Senior Fellow at the Center for International Security and Cooperation and the Freeman Spogli Institute at Stanford University.

George Shultz

George Shultz has had a highly distinguished career in government, academia, and the world of business: he has held four different federal cabinet posts; he has taught at three of this country’s great universities; and for eight years he was President of Bechtel, a major engineering and construction company. He is current Professor of International Economics at the Graduate School of Business and a Distinguished Fellow at the Hoover Institution at Stanford.

Philip Taubman

Philip Taubman was a reporter and editor at the New York Times for nearly 30 years, specializing in national security issues; he published Secret Empire: Eisenhower, the CIA, and the Hidden Story of America's Space Espionage in 2004, and The Partnership: Five Cold Warriors and Their Quest to Ban the Bomb in 2012. He is currently a Consulting Professor at CISAC, and also serves as Stanford Associate Vice President for University Affairs, working on special projects for Stanford's president, John Hennessy.


The course already started! Is it too late to join?

No worries! You can start whenever you join the course. However, we will be having a number of interactive sessions throughout the course, so it is worthwhile to “catch up” so that you can participate knowledgeably in these sessions.

How do a earn a Statement of Accomplishment?

If you are interested in receiving a Statement of Accomplishment from Stanford University at the end of this course, please note that you must complete the following:

Reflective Writing: Each week, you will answer a "thought question" about what you are learning and how it applies to your own beliefs about nuclear weapons.

Short Quizzes: After each unit, there will be quiz question to help you gauge your learning. You will have two attempts to answer the question correctly and unlimited time.

Gaining a score of at least 75% allows you to receive the Statement of Accomplishment.

Please note that a Statement of Accomplishment is optional. We welcome all participants to this course, whether you seek a Statement of Accomplishment or not.

Is there a textbook for the class?

No, but there will be suggested readings for each unit.

Living at the Brink

View All Courses

Access learning material from upcoming, self-study, and completed courses...

Tuesday, September 20, 2016 to Tuesday, January 24, 2017
Go to Course

About the Course

This course introduces the basics of Digital Signal Processing and computational acoustics, motivated by the vibrational physics of real-world objects and systems. We will build from a simple mass-spring and pendulum to demonstrate oscillation, learn how to simulate those systems in the computer, and also prove that these simple oscillations behave as a sine wave. From that we move to plucked strings and struck bars, showing both solutions as combined traveling waves and combined sine wave harmonics. We continue to build and simulate more complex systems containing many vibrating objects and resonators (stringed instruments, drum, plate), and also learn how to simulate echos and room reverberation. Through this process, we will learn about digital signals, filters, oscillators, harmonics, spectral analysis, linear and non-linear systems, particle models, and all the necessary building blocks to synthesize essentially any sound. The free open-source software provided will make it possible for anyone to use physical models in their art-making, game or movie sound, or any other application.


Course runs until August 31, 2016

Session 1: The Time Domain: Sound, Digital Audio, PCM Files, Noise Vs. Pitch, A Hint Of Spectra 
a) Sound in Air, Traveling Waves b) Digital Audio, Sampling, Quantization, Aliasing c) Soundfiles, Wavetables, Manipulating PCM d) Pitch (vs. Noise), Spectral Analysis 0.1 e) Time-domain Pitch/Noise Detection: ZeroXings, AMDF, Autocorrelation
Session 2: Physics, Oscillators, Sines & Spectra, Spectral/Additive Synthesis 
a) Mass-Spring-Damper system, also simple Pendulum b) Fourier analysis/synthesis, Spectrum Analysis 1.0 c) More on additive Sine-wave synthesis
Session 3: Digital Filters, Modal Synthesis 
a) Digital Filters, Finite Impulse Response (FIR) b) Linearity, Time-invariance, Convolution c) Infinite Impulse Response (IIR) Digital Filters d) BiQuad Resonator Filter, Modal Synthesis
Session 4: Physical Modeling Synthesis: 1D Systems 
a) 1-D systems, Strings, Modal (Fourier) Solution b) Strings II: Waveguide (D’Alembert) Solution c) 1-D systems, Bars, Tubes, solutions d) Advanced Waveguide Synthesis for 1-D systems
Session 5: Physical Modeling II: 2 And 3-D Systems 
a) 2-D systems, plates, drums, higher-order modes Fourier (Sine and/or Modal) Solutions, Waveguide Solutions b) 3-D systems, rooms, resonators, Meshes, Waveguides c) Resonator/Modal view and solution of 3-D systems Pop bottles and other lumped resonators
Session 6: Subtractive Synthesis, Vocal Sounds And Models 
a)  Subtractive Synthesis, Voice Synthesis, Formants b) Linear Prediction, LPC c) FOFs d) FM Synthesis: Horns, Bells, Voices
Session 7: Grains, Particles And Statistical Models 
a) Wavelets b) Granular Synthesis c) Particle Models, Statistical Modal Synthesis d) Wind, Water, Surf, and Other Whooshing Sounds
Session 8: Extending And Refining Physical Synthesis Models 
a) Waveshaping Synthesis, Distortion Modeling b) Time-Varying Systems c) Stiffness, All-Pass Filters, Banded Waveguides d) Commuted Synthesis e) JULIUS on KS, strings, demos
Session 9: Tying It All Together: Applications, Sonification, Interactions, And Control 
a) Scanned Synthesis b)  Don’t forget the laptop!!! SMELT:   c) Controlling Synthesis with game controllers (Wii, mobile TouchOSC, more) d) Walking Synthesis, a complete system e) Procedural Audio: Driving synthesis from process, game state, etc. f) Data set Sonification
* This course is running in Adaptive Scheduling mode. You can learn more about how Adaptive Scheduling works in this help article

What you need to take this course:

  • Software: ChucK (also optionally STK, PeRColate for Max/MSP, Processing, GL/Glut)

(Highly) Recommended Textbooks & Requirements:


Perry Cook

    Perry R. Cook is Emeritus Professor of Computer Science (also Music) at Princeton University, founding advisor/consultant to social music company SMule, and consulting professor at CalArts, Stanford CCRMA. With Dan Trueman, he co-founded the Princeton Laptop Orchestra, which received a MacArthur Digital Learning Initiative Grant in 2005. With Ge Wang, Cook is co-author of the ChucK Programming Language. His newest book is “Programming for Digital Musicians and Artists,” with Ajay Kapur, Spencer Salazar, and Ge Wang. The recipient of a 2003 Guggenheim Fellowship, Cook is (still) working on a new book, "La Bella Voce e La Macchina (the Beautiful Voice and the Machine), A History of Technology and the Expressive Voice." Perry is also co-founder of Kadenze.

    Julius Smith

      Julius O. Smith normally teaches a music signal-processing course sequence and supervises related research at the Center for Computer Research in Music and Acoustics (CCRMA). He is formally a professor of music and (by courtesy) electrical engineering. In 1975, he received his BS/EE degree from Rice University, where he got started in the field of digital signal processing and modeling for control. In 1983, he received the PhD/EE degree from Stanford University, specializing in techniques for digital filter design and system identification, with application to violin modeling. His work history includes the Signal Processing Department at Electromagnetic Systems Laboratories, Inc., working on systems for digital communications, the Adaptive Systems Department at Systems Control Technology, Inc., working on research problems in adaptive filtering and spectral estimation, and NeXT Computer, Inc., where he was responsible for sound, music, and signal processing software for the NeXT computer workstation. Prof. Smith is a Fellow of the Audio Engineering Society and the Acoustical Society of America. He is the author of four online books and numerous research publications in his field.


      Sound Synthesis

      View All Courses

      Access learning material from upcoming, self-study, and completed courses...

      Monday, September 26, 2016 to Monday, December 12, 2016
      Go to Course


      This course is an introduction to Logic from a computational perspective. It shows how to encode information in the form of logical sentences; it shows how to reason with information in this form; and it provides an overview of logic technology and its applications - in mathematics, science, engineering, business, law, and so forth.

      The course was originally designed for use at the college level. However, experience has shown that it works for secondary school students as well, and it can be used at the start of graduate school for those who have not yet seen the material.


      There are just two prerequisites. The course presumes that the student understands sets and set operations, such as union, intersection, and so forth. It also presumes that the student is comfortable with symbolic manipulation, as used, for example, in solving high-school algebra problems. Nothing else is required.


      Michael Genesereth

      Michael Genesereth is an associate professor in the Computer Science Department at Stanford University. He received his Sc.B. in Physics from M.I.T. and his Ph.D. in Applied Mathematics from Harvard University. Prof. Genesereth is most known for his work on computational logic and applications of that work in enterprise computing, computational law, and general game playing. He has taught logic for many years at Stanford and offers an annual massive online course on logic that has reached over 500,000 students. He is the current director of the Logic Group at Stanford and founder and research director of CodeX (The Stanford Center for Legal Informatics).


      Do I need to buy a textbook?

      No, the text Introduction to Logic is provided in the online material. However, you can purchase a printed version (published by Morgan-Claypool) if you’d like.

      Is it possible to earn a Statement of Accomplishment for this class?

      Yes. A Statement of Accomplishment will be given to participants who earn an overall score of 70% or higher in the course.


      View All Courses

      Access learning material from upcoming, self-study, and completed courses...

      Go to Course

      Next session opens March 27th.

      About this course

      In this course you will learn about audio signal processing methodologies that are specific for music and of use in real applications. We focus on the spectral processing techniques of relevance for the description and transformation of sounds, developing the basic theoretical and practical knowledge with which to analyze, synthesize, transform and describe audio signals in the context of music applications.

      The course is based on open software and content. The demonstrations and programming exercises are done using Python under Ubuntu, and the references and materials for the course come from open online repositories. We are also distributing with open licenses the software and materials developed for the course.

      Who is this class for

      This course is primary aimed at advanced undergraduate or master students, along with professionals, interested in signal processing, programming and music.

      Created by: Universitat Pompeu Fabra of Barcelona, Stanford University


      Can I take this course for free?
      Yes, there is no fee in this course. You can follow the course, do the assignments, and obtain a final grade completely for free.

      Can I pay to get a Course Certificate?
      No, we do not offer this option.

      What resources will I need for this class?
      All the materials and tools for the class are available online under open licences.

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

      How much programming background is needed for the course?
      All the assignments start from some existing Python code that the student have to understand and modify. Some programming experience is necessary.

      What is the coolest thing I'll learn if I take this class?
      You will play around with sounds a lot, analysing them, transforming them, and making interesting new sounds.


      Xavier Serra

      Associate Professor, Dept. of Information and Communication Technologies, UPF

      Julius Smith

      Professor of Music and (by courtesy) Electrical Engineering, CCRMA

      View All Courses

      Access learning material from upcoming, self-study, and completed courses...

      Go to Course

      Application Required: Apply Now

      Fee Applies.

      Applications may be submitted online at anytime. Sample Application

      Now open!

      Course Overview

      From smartphones to tablets to watches, users are relying more and more on the convenience of mobile technology. Organizations must meet this growing trend with greater security measures to support critical business functions and protect sensitive data on enterprise devices. Mobile architectures, applications, networks and services must all be developed and managed in compliance with the oversight of a strong IT workforce.

      This course provides an in-depth technical overview of the security features and limitations of modern mobile operating systems, including the top risks and vulnerabilities, every IT professional needs to know.

      You Will Learn

      • Mobile application security measures
        • Native, API-based, Web-based and HTML5 system architectures are covered in Android, Surface, Apple and Samsung devices. The latest threats to mobile application security including data leakage, identifier leakage, third-party tags and libraries, and location privacy are also reviewed. An ecosystem-level of available application store defenses are detailed using Bouncer (Android automated vetting) and iOS (Apple manual and automated vetting) to demonstrate permission models and defense against circumvention.
      • Models to develop and secure Android applications
        • WebView, common cryptographic mistakes and marketplace issues reveal how malicious intent can cause security breaches in Android applications. Establishing practices to defend against threats through app code signing, runtime processing, permissions and other features like Bytecode are discussed.
      • Security detection and measures in iOS
        • The iOS security architecture is comprised of specific features for ensuring trust—secure boot chain, secure enclave, app data protection and data classes. These security measures are covered with attention to privacy mechanisms for service through iMessage and iCloud; network oversight through Bluetooth and AirDrop are also covered.
      • Trends in mobile device management (MDM)
        • Device requirements for MDM are reviewed in detail: configuration and hardening, encryption, backup and recovery, remote wipe, patch management, enterprise VPN and proxy. Additionally, measures to monitor, enforce and report on enterprise device activity are covered using case studies from MobileIron, AirWatch and Enterproid.


      • Dan Boneh, Professor of Computer Science, Stanford University
      • Neil Daswani, Chief Information Security Officer, LifeLock
      • John Mitchell, Professor of Computer Science, Stanford University


      We recommend you have the equivalent of a BS in Computer Science and a background in security.

      We highly recommend that you take this course, Software Security Foundations (XACS101) as the 1st course within the Stanford ACS certificate program. It provides the fundamentals necessary for the subsequent courses in the program.


      • $495 per online course
      • $75 one-time document fee

      On Demand Webinars

      View our free on-demand webinars to get a preview of the courses we have to offer.


      Please contact


      Certificates and Degrees RDP Removing Degrees and Certificates

      Course Access   

      60 day access to the online course starts upon payment.

      Course Materials 

      Course materials are available for download from the online videos page to allow for printing and review.

      Final Exam

      Online participants are asked to complete a final exam at the end of each course to maintain the integrity of the program. A digital record of completion will be emailed to participants when they pass the exam.

      Course Evaluation

      It is required that participants complete the course evaluation once they have passed the final exam.


      Mobile Security

      View All Courses

      Access learning material from upcoming, self-study, and completed courses...

      Monday, August 8, 2016
      Go to Course

      About this course

      Algorithms are the heart of computer science, and the subject has countless practical applications as well as intellectual depth. This course is an introduction to algorithms for learners with at least a little programming experience. The course is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. After completing this course, you will have a greater mastery of algorithms than almost anyone without a graduate degree in the subject.

      Specific topics in Part 2 include: greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes), dynamic programming (knapsack, sequence alignment, optimal search trees, shortest paths), NP-completeness and what it means for the algorithm designer, analysis of heuristics, local search. About the instructor: Tim Roughgarden has been a professor in the Computer Science Department at Stanford University since 2004. He has taught and published extensively on the subject of algorithms and their applications.

      Who is this class for: Learners with at least a little bit of programming experience who want to learn the essentials of algorithms. In a University computer science curriculum, this course is typically taken in the third year.


      Tim Roughgarden
      Algorithms: Design and Analysis, Part I  Course Image

      View All Courses

      Access learning material from upcoming, self-study, and completed courses...

      Monday, August 8, 2016
      Go to Course

      About this Course

      Algorithms are the heart of computer science, and the subject has countless practical applications as well as intellectual depth. This course is an introduction to algorithms for learners with at least a little programming experience. The course is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. After completing this course, you will be well-positioned to ace your technical interviews and speak fluently about algorithms with other programmers and computer scientists. Specific topics include: "Big-oh" notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), randomized algorithms (QuickSort, contraction algorithm for min cuts), data structures (heaps, balanced search trees, hash tables, bloom filters), graph primitives (applications of BFS and DFS, connectivity, shortest paths). About the instructor: Tim Roughgarden has been a professor in the Computer Science Department at Stanford University since 2004. He has taught and published extensively on the subject of algorithms and their applications.


      Week 1

      1. I. INTRODUCTION (Week 1)
      4. Problem Set #1
      5. Programming Assignment #1
      • Quiz: Problem Set #1
      • Quiz: Programming Assignment #1

      Week 2

      1. IV. THE MASTER METHOD (Week 2)
      2. V. QUICKSORT - ALGORITHM (Week 2)
      3. VI. QUICKSORT - ANALYSIS (Week 2)
      5. Problem Set #2
      6. Programming Assignment #2
      • Quiz: Problem Set #2
      • Quiz: Programming Question #2

      Week 3

      3. Problem Set #3
      4. Programming Assignment #3
      • Quiz: Problem Set #3
      • Quiz: Programming Assignment #3

      Week 4

      2. Problem Set #4
      3. Programming Assignment #4
      • Quiz: Problem Set #4
      • Quiz: Programming Assignment #4

      Week 5

      2. XII. HEAPS (Week 5)
      4. Problem Set #5
      5. Programming Assignment #5
      • Quiz: Problem Set #5
      • Quiz: Programming Assignment #5

      Week 6

      1. XIV. HASHING: THE BASICS (Week 6)
      2. XV. UNIVERSAL HASHING (Week 6)
      3. XV. BLOOM FILTERS (Week 6)
      4. PREVIEW OF PART 2
      5. Problem Set #6
      6. Programming Assignment #6
      • Quiz: Problem Set #6
      • Quiz: Programming Assignment #6

      Week 7

      1. Final Exam
      • Quiz: Final Exam


      Tim Roughgarden
      Algorithms: Design and Analysis, Part I  Course Image

      View All Courses

      Access learning material from upcoming, self-study, and completed courses...

      Monday, June 13, 2016
      Go to Course

      About this course

      Cryptography is an indispensable tool for protecting information in computer systems. In this course you will learn the inner workings of cryptographic systems and how to correctly use them in 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 parties generate a shared secret key. Throughout the course participants will be exposed to many exciting open problems in the field and work on fun (optional) programming projects. In a second course (Crypto II) we will cover more advanced cryptographic tasks such as zero-knowledge, privacy mechanisms, and other forms of encryption.


      WEEK 1

      Course overview and stream ciphers
      Section 1: what is cryptography about?
      Section 2: crash course in discrete probability
      Stream Ciphers 1: the one-time pad and stream ciphers
      Stream Ciphers 2: attacks and common mistakes
      Stream Ciphers 3: real-world examples
      Stream Ciphers 4: what is a secure cipher?
      Week 1 Review Questions and Programming Project
      Quiz: Week 1 - Problem Set

      WEEK 2

      Block Ciphers
      Block Ciphers 1: overview
      Block Ciphers 2: The Data Encryption Standard
      Block Ciphers 3: AES and other constructions
      How to Use Block Ciphers 1: one-time key
      How to Use Block Ciphers 2: many-time key
      Week 2 Review Questions and Programming Project
      Quiz: Week 2 - Problem Set

      WEEK 3

      Message Integrity
      Message Integrity 1: definitions
      Message Integrity 2: constructions
      Message Integrity 3: more constructions
      Collision Resistance 1: what is a collision resistant function?
      Collision Resistance 2: constructions
      HMAC: a MAC from a hash function
      Week 3 Review Questions and Programming Project
      Quiz: Week 3 - Problem Set

      WEEK 4

      Authenticated Encryption
      Authenticated Encryption 1: why is it so important?
      Authenticated Encryption 2: standard constructions
      Authenticated Encryption 3: pitfalls
      Odds and Ends 1: how to derive keys
      Odds and Ends 2: searching on encrypted data
      Odds and Ends 3: disk encryption and creditcard encryption
      Week 4 Review Questions and Programming Project
      Quiz: Week 4 - Problem Set

      WEEK 5

      Basic Key Exchange
      Basic Key Exchange 1: problem statement
      Basic Key Exchange 2: two solutions
      Number Theory 1: modular arithmetic
      Number Theory 2: easy and hard problems
      Week 5 Review Questions and Programming Project
      Quiz: Week 5 - Problem Set

      WEEK 6

      Public-Key Encryption
      Public Key Encryption from Trapdoor Permutations
      Public Key Encryption from Trapdoor Permutations: RSA
      Public Key Encryption from Trapdoor Permutations: attacks
      Public Key Encryption From Diffie-Hellman: ElGamal
      Public Key Encryption: summary
      Week 6 Review Questions and Programming Project
      Quiz: Week 6 - Problem Set

      WEEK 7

      Final exam
      Final exam covering the entire course
      Quiz: Final Exam


      Dan Boneh
      Cryptography I

      View All Courses

      Access learning material from upcoming, self-study, and completed courses...

      Monday, October 24, 2016
      Go to Course

      Application and Fee Apply.

      This course is offered through Worldview Stanford. Worldview Stanford is an innovative Stanford University initiative that creates interdisciplinary learning experiences for professionals to prepare them for the strategic challenges ahead.


      What's driving big data? We increasingly live our social, economic, and intellectual lives in the digital realm, enabled by new tools and technologies. These activities generate massive data sets, which in turn refine the tools. How will this co-evolution of technology and data reshape society more broadly?

      Creating new knowledge and value: Big data changes what can be known about the world, transforming science, industries, and culture in the process. It reveals solutions to social problems and allows products and services to be even more targeted. Where will big data create the greatest sources of new understanding and new value?

      Shifting power, security, and privacy: The promise of big data is accompanied by perils—in terms of control, privacy, security, reputation, and social and economic disruption. How will we manage these tradeoffs individually and in business, government, and civil society?

      • Synthesize expert opinions from researchers and Silicon Valley innovators to understand big data's opportunities and challenges. Balance the tradeoffs between individual privacy and security and social value.
      • Apply strategies for leveraging the potential of big data while managing potential vulnerabilities, both personally and organizationally.


      Learn from a variety of sources and Stanford experts, including:

      Lucy Bernholz, philanthropy, technology, and policy scholar at the Center on Philanthropy and Civil Society

      Sharad Goel, computational scientist studying politics, media, and social networks

      Jennifer Granick, attorney and director of Civil Liberties at the Stanford Center for Internet and Society

      Michal Kosinsk, psychologist and computational scientist studying online and organizational behavior at Stanford Graduate School of Business

      Margaret Levi, political scientist specializing in governance, trust, and legitimacy

      John Mitchell, computer scientist, cybersecurity expert, and Vice Provost of Teaching and Learning


      Big Data

      View All Courses

      Access learning material from upcoming, self-study, and completed courses...


      Subscribe to RSS - Engineering & Computer Science