Skip to content Skip to navigation

Engineering & Computer Science

Topic Image: 
Engineering and Computer Science
Go to Course
Worldview Stanford
Coming Soon.
This course is offered through WORLDVIEW Stanford. Worldview Stanford is an innovative Stanford University initiative that creates learning experiences for professionals to help them get smarter about the complex issues and dynamics shaping the future.

Fee and Application.

Course Description

This unique course combines hands-on training in the scenario planning methodology with a deep exploration of the environmental, economic and social uncertainties that will shape the future of what we eat, where our food comes from, and whether we will be able to count on its supply and safety in the coming decades.

Online: Get grounded in the latest research and perspectives on the future of the global food system. Learn about some of the biggest challenges—from climate change, population growth, changes in consumption, agricultural practices, and political disputes—as well as the opportunities for boosting resilience through scientific, technological and social advances. 

At Stanford: Develop Scenarios on the Future of Food to 2030. Tap Stanford experts on food to deepen your knowledge. Learn—by doing—the original scenario methodology pioneered by Royal Dutch Shell and Global Business Network, working directly with seasoned practitioners.

  • Identify driving forces and critical uncertainties
  • Develop a scenario framework, stories, and implications
  • Learn scenario planning tips and best practices

Featured Experts

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

Chris Field

climate scientist and co-chairman of IPCC Working Group II

Meg Caldwell

environmental lawyer and Executive Director of the Center for Ocean Solutions

David Lobell

expert on food and agriculture, Deputy Director, Stanford Center of Food Security and the Environment

Buzz Thompson

natural resource attorney and co-director of the Stanford Woods Institute

 

The Future of Food Scenario Training

View All Courses

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

Go to Course

Fee and Application.

This course is offered through the Stanford School of Professional Education as part of the Stanford Advanced Computer Security Certificate.

Applications may be submitted online at anytime. Sample Application

Overview

Cryptographic primitives are effective tools that can help achieve various security goals. However, programs that use cryptography can often be fragile, and simple programming errors can result in large security "holes." Even worse, a company can come away with a false sense of security if their applications use cryptography— due to simple programming errors in how the cryptography is used, their applications could be just as or more vulnerable to attack, but the company may think that it is secure due to the use of cryptography. This course covers how to use cryptography correctly, and teaches programmers how to avoid many common mistakes that result in gaping security holes.

Instructors

Topics Include

  • Introduction to Cryptography
  • Using Cryptography Correctly
  • Advanced Topics in Cryptography
  • Symmetric Encryption
  • Public-Key Cryptography
  • User Authentication

Recommended

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.

Tuition

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

Questions

Please contact
650.741.1547
scpd-acs-mail@stanford.edu

 

Using Crypto Course Feature

View All Courses

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

Date: 
Wednesday, March 25, 2015
Go to Course

Fee and Application.

This course is offered through the Stanford School of Professional Education as part of the Stanford Advanced Computer Security Certificate.

Applications may be submitted online at anytime. Sample Application

Overview

This course covers 3 specific topic areas:

Computer Security Principles covers security objectives such as authentication, authorization, access control, confidentiality, data integrity, and non-repudiation. The module also covers software design principles including the principles of least privilege, fail-safe stance, and defense-in-depth.

Introduction to Cryptography covers both symmetric encryption and public-key cryptography, discussing how they are used to achieve security goals and build PKI (Public-Key Infrastructure) systems. The module also covers DES, 3DES, AES, RC4, RSA, ECC, MD5, SHA-1, X.509, digital signatures, and all cryptographic primitives necessary to understand PKI. Diffie-Hellman key exchange and man-in-the-middle attacks will also be discussed.

Secure Programming Techniques discusses the threats that worms and hackers present to software and the programming techniques that developers can use to defend against software vulnerabilities such as buffer overflows, SQL injection, and off-line dictionary attacks. The module also covers common mistakes made in using cryptographic libraries and how they can be avoided.

Instructors

Topics Include

  • Computer Security Principles
  • Introduction to Cryptography
  • Secure Programming Techniques

Recommended

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.

Tuition

  • $595 for Software Security Foundations
  • $75 one-time document fee

 

Security Course Feature Image SCPD

View All Courses

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

Date: 
Monday, April 20, 2015 to Sunday, May 31, 2015
Go to Course

About the Course

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 and basic key-exchange. 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.

A preview of the course, including lectures and homework assignments, is available at this preview site.

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.

  • Can I see a preview of the lectures and homework?

    Yes, check out this preview site.

 

Instructor(s): 
Dan Boneh
Cryptography 1 image

View All Courses

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

Go to Course

About This Course

This is a self-paced 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. Participants 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. A textbook is recommended, but not required: you can use either Peterson and Davie or Kurose and Ross, any version in the past 5 years will do.

Prerequisites

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

Course Staff

Professor Philip Levis

Philip Levis is an Associate Professor of Computer Science and Electrical Engineering at Stanford University. He received his Sc.B. from Brown University in 1999, his M.S. from the University of Colorado at Boulder in 2001, and his Ph.D. from UC Berkeley in 2005. In 2008 he received an NSF CAREER award and a Microsoft Research New Faculty Fellowship. He researches the design and implementation of networked systems, including operating systems and protocols for embedded wireless devices, wireless mesh protocols, network infrastructure for virtual worlds, and energy efficient computing. The results of his research, including the TinyOS operating system, nesC language, Trickle algorithm, and the collection tree protocol (CTP), have been adopted by tens of thousands of users and researchers worldwide. He is a co-founder and the President of Kumu Networks. He really likes excellent engineering and has a self-destructive aversion to low-hanging fruit.

 

Professor Nick McKeown

Nick McKeown has been a Professor of Electrical Engineering and Computer Science at Stanford University since 1995. He grew up in the UK and received his BEng from Leeds University in 1986. He moved to the US in 1989 to do an MS and PhD in Electrical Engineering and Computer Science at University of California at Berkeley. His research group works on new Internet architectures, software-defined networks and how to make routers faster. He co-founded several companies based on technology started at Stanford. He is a member of the National Academy of Engineering and recently received the ACM Sigcomm "Lifetime Achievement" Award.

Introduction to Computer Networking

View All Courses

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

Date: 
Monday, April 18, 2016
Go to Course

Accepting Applications 

November 25, 2015 – April 11, 2016 

Course Starts Online: 

April 18, 2016 

Come to Stanford: 

May 31-June 3, 2016 

Fee and Application. 

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. 

COURSE DESCRIPTION 

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. 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 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? 

FEATURED EXPERTS 

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 

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

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

Michal Kosinski, 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...

Date: 
Monday, February 23, 2015
Go to Course

This course is offered as part of the Energy Engineering and Technologies Certificate through the Stanford Center for Professional Development.

Overview

This seminar is an interdisciplinary exploration of current energy challenges and opportunities. Talks will be conducted by faculty, visitors, and students.

Upcoming guest speakers listing and an archive of past seminars can be found here: http://energyseminar.stanford.edu

Autumn Speakers:
  • Dian Grueneich, Senior Research Scholar, Stanford University
  • Robert Jackson, Professor, Environmental Earth System Science, Stanford University
  • Bob Litterman, Chairman of the Risk Committee and a Founding Partner, Kepos Capital LP
  • Michael Sivak, Research Professor, University of Michigan Transportation Research Institute
  • Stefan Heck, Consulting Professor, Precourt Institute for Energy
  • Tom Degnan, Manager, Breakthrough Technology, ExxonMobil Research and Engineering Company

Instructors

Seminars

Individuals who wish to view the seminar at no charge are asked to create a mystanfordconnection account. Once you have created an account, you will be able to access videos via mystanfordconnection. Make sure you have Silverlight 1.0 or Windows Media Player 9+ installed to view videos. Seminars are available two hours after the lecture occurs on campus and on-demand for the remainder of the quarter. All seminars can be found in the "Current Courses" section ofmystanfordconnection.

Tuition & Fees

For course tuition, reduced tuition (SCPD member companies and United States Armed forces), and fees, please click Tuition & Fees.

Certificates and Degrees

 

Energy SCPD course image

View All Courses

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

Date: 
Monday, March 30, 2015
Go to Course
This course contributes to the Biotechnology Graduate Certificate through the Stanford Center for Professional Development. Application and fee may apply.

Overview

Gain a fundamental understanding of genetic engineering principles and how they can be applied towards new challenges in the biotechnology industry. Optimize chemical transformations within the cell to produce valuable substances such as biofuels, vaccines, and consumer products. Examine the governmental regulations and ethics surrounding hot topic issues such as cloning, stem cells and genome sequencing.

Instructors

Topics Include

  • Cell culture
  • Protein production
  • Polymerase chain reactions
  • Viruses and gene therapy
  • Pharmaceutical development
 

Prerequisites

Chemical Principles (Stanford Course:CHEM31) and Calculus (Stanford Course:MATH41) or equivalents

Tuition & Fees

For course tuition, reduced tuition (SCPD member companies and United States Armed forces), and fees, please click Tuition & Fees.

Certificates and Degrees

 

Bio Course Image SCPD

View All Courses

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

Date: 
Monday, March 30, 2015 to Saturday, May 23, 2015
Go to Course

About the Course

General game players are computer systems able to play strategy games based solely on formal game descriptions supplied at "runtime".  (In other words, they don't know the rules until the game starts.)  Unlike specialized game players, such as Deep Blue, general game players cannot rely on algorithms designed in advance for specific games; they must discover such algorithms themselves.  General game playing expertise depends on intelligence on the part of the game player and not just intelligence of the programmer of the game player.

GGP is an interesting application in its own right.  It is intellectually engaging and more than a little fun.  But it is much more than that.  It provides a theoretical framework for modeling discrete dynamic systems and for defining rationality in a way that takes into account problem representation and complexities like incompleteness of information and resource bounds.  It has practical applications in areas where these features are important, e.g. in business and law.  More fundamentally, it raises questions about the nature of intelligence and serves as a laboratory in which to evaluate competing approaches to artificial intelligence.

This course is an introduction to General Game Playing (GGP).  Students will get an introduction to the theory of General Game Playing and will learn how to create GGP programs capable of competing against other programs and humans.

Recommended Background

Students should be familiar with Symbolic Logic and should be able to read and understand program fragments written in a modern programming language.  This background is sufficient for understanding the presentation and for configuring players to compete in competitions (using software components provided by the instructors).  Students who wish to modify the standard components or who wish to build their own players also need the ability to develop programs on their own.  This latter ability is desirable but not required.
General Game Playing Course IMage

View All Courses

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

Date: 
Wednesday, March 4, 2015
Go to Course

Materials fee

You may access the course lectures for free. However, in order to complete the course and earn a Statement of Accomplishment you must purchase the Language, Proof and Logic courseware package (including the Grade Grinder assessment service). The package contains software applications that you will use to complete exercises during the course. You will also get access to the Grade Grinder, an Internet-based assessment service for these exercises.

You can obtain the courseware package from the Language, Proof and Logic online store for $55 US. You may purchase the courseware package from other online retail sites and their prices may vary. Make sure the courseware package you purchase is new (not used) and includes the software as a CD. The courseware package is required to complete the course.

About This Course

The ability to reason is fundamental to human beings. Whatever the discipline or discourse it is important to be able to distinguish correct reasoning from incorrect reasoning. The consequences of incorrect reasoning can be minor, like getting lost on the way to a birthday party, or more significant, for example launching nuclear missiles at a flock of ducks, or permanently losing contact with a space craft.

The fundamental question that we will address in this course is "when does one statement necessarily follow from another" --- or in the terminology of the course, "when is one statement a logical consequence of another". This is an issue of some importance, since an answer to the question would allow us to examine an argument presented in a blog, for example, and to decide whether it really demonstrates the truth of the conclusion of the argument. Our own reasoning might also improve, since we would also be able to analyze our own arguments to see whether they really do demonstrate their conclusions.

In this course you will be introduced to the concepts and techniques used in logic. We will start right from the beginning, assuming no prior exposure to this or similar material, and progress through discussions of the proof and model theories of propositional and first-order logic.

We will proceed by giving a theory of truth, and of logical consequence, based on a formal language called FOL (the language of First-Order Logic). We adopt a formal language for making statements, since natural languages (like English, for example) are far too vague and ambiguous for us to analyze sufficiently. Armed with the formal language, we will be able to model the notions of truth, proof and consequence, among others.

While logic is technical in nature, the key concepts in the course will be developed by considering natural English statements, and we will focus the relationships between such statements and their FOL counterparts. The goal of the course is to show how natural English statements and arguments can be formalized and analyzed.

Prerequisites

This course has no prerequisites except an interest in the way in which we use language to construct arguments and justify conclusions. If that interests you, then you're all set! Go sign up.

Textbook

In order to complete the course and earn a Statement of Accomplishment you must purchase the Language, Proof and Logic courseware package (including the Grade Grinder assessment service). The package contains software applications that you will use to complete exercises during the course. You will also get access to the Grade Grinder, an Internet-based assessment service for these exercises.

You can obtain it from the Language, Proof and Logic online store for $55US. You may purchase the courseware package from other online retail sites and their prices may vary. Make sure the courseware package you purchase is new (not used) and includes the software as a CD. The courseware package is required to complete the course.

Frequently Asked Questions

Who should take this course?

This course is for you if you are interested in how to use language to construct and analyze arguments. The course has no prerequisites.

How is the course structured?

In addition to watching highly entertaining video lectures, you will complete assignments approximately weekly, using software applications and an automated TA who will give you feedback on your progress whenever you want it.

How will I be assessed?

Assessment is based on a combination of weekly assignments, and midterm and final exams. Most assignments are graded automatically, while some exercises will be assessed by your peers.

Will I receive a Statement of Accomplishment?

Yes. You can earn a Statement of Accomplishment if you score at least 75% on the graded assignments.

Do I need to buy a textbook?

If you do not wish to earn the Statement of Accomplishment, you do not need to purchase the textbook or courseware package. However, in order to complete the course and earn a Statement of Accomplishment you must purchase the Language, Proof and Logic courseware package (including the Grade Grinder assessment service). The package contains software applications that you will use to complete exercises during the course. You will also get access to the Grade Grinder, an Internet-based assessment service for these exercises.

You can obtain it from the Language, Proof and Logic online store for $55US. You may purchase the courseware package from other online retail sites and their prices may vary. Make sure the courseware package you purchase is new (not used) and includes the software as a CD. The courseware package is required to complete the course.

Can I get Stanford University credit for this class?

No.

Course Staff

Your Instructors

Dave Barker-Plummer
Senior Research Scientist

I'm Dave Barker-Plummer. Since 1995 I have managed the Openproof project's work on educational software for teaching logic at Stanford University. I have a background in Artificial Intelligence, and have taught computer science and logic at Stanford, Swarthmore College and Duke University. In my spare time I indulge my rock-star fantasies with PAN!C, a San Franciso based reggae/pop/jazz band.

John Etchemendy
Professor of Philosophy and Symbolic Systems

John Etchemendy has been on the faculty of Princeton University and Stanford University where he was chairman of the Department of Philosophy and is currently Provost. He has has also served as the director of the Center for the Study of Language and Information.

Course Material Developers

JT Chipman

I'm a third year doctoral student in Stanford's Department of Philosophy, with my research focusing on mathematical logic, philosophy of logic, and the history of analytic philosophy. I also like to think about logic pedagogy and, accordingly, am very excited to be a part of the Openproof team at CSLI. I spend my free time reading literature, watching movies, listening to music, and (with less frequency than I'd like) travelling.

Su Su

I received my B.A. in Cognitive Psychology from Stanford University in June 2013. Currently I am a graduate student in the Instructional Technology & Media program at Teachers College, Columbia University. Taking logic courses was the best part of my undergraduate memories at Stanford. My interests include logic and reasoning in education; using technology to spread logic around is the coolest thing I could ever think of!

Evan Liu

Evan Liu is a second-year undergraduate at Stanford University studying mathematics and computer science. The wide range of applications of logic - from writing analysis proofs to deciphering Kant to conversing with a friend - really excites me. My perspective of the world has entirely changed since studying logic. Besides logic, I like to spend my time playing tennis, studying chess, and baking.

For Language, Proof and Logic

Michael Murray

Michael Murray is the lead software developer for the Openproof project, producers of the Language, Proof and Logic courseware package.

Emma Pease

Emma Pease is in charge of operations and systems administration for the Openproof project, producers of the Language, Proof and Logic courseware package.

For Stanford Online

  • Marc Sanders, Kimberly Hayworth and Amy Collier from the office of the Vice Provost for Online Learning, helped with advice on running the course, particularly in the initial planning stages.
  • Brent Itzusu, Wes Choy and Neil Rogers produced the videos, and Greg Maximov worked on the production of their transcripts.  We recorded all of the videos in order, and then realised that the first dozen or so were awful, so we did those again.  Bet you can spot the join...
  • Jane Manning leads the OpenEdX platform team.  She, together with Greg Bruhns and Monica Diaz fielded so many questions from us about the platform with good grace and humor when I am sure they just wanted to tell us to read the manual.  Jason Bau conspired with Mike Murray to allow for the results from the Grade Grinder to magically appear on the OpenEdX platform (most of the time).

Our Research Community

Stanford University pursues the science of learning. Online learners are important participants in that pursuit. The information we gather from your engagement with our instructional offerings makes it possible for faculty, researchers, designers and engineers to continuously improve their work and, in that process, build learning science.

By registering as an online learner, you are also participating in research...
Read Terms of Service and Privacy Policy


View All Courses

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

Pages

Subscribe to RSS - Engineering & Computer Science