Skip to content Skip to navigation

Engineering & Computer Science

Topic Image: 
Engineering and Computer Science
Date: 
Monday, September 1, 2014 to Monday, October 13, 2014
Go to Course

About the Course

I am pleased to be able to offer free over the Internet a course on Automata Theory, based on the material I have taught periodically at Stanford in the course CS154. Course participants have access to screencast lecture videos, are given quiz questions, assignments and exams, receive regular feedback on progress, and can participate in a discussion forum. Those who successfully complete the course will receive a statement of accomplishment. You will need a decent Internet connection for accessing course materials, but should be able to watch the videos on your smartphone.

The course covers four broad areas: (1) Finite automata and regular expressions, (2) context-free grammars, (3) Turing machines and decidability, and (4) the theory of intractability, or NP-complete problems.

 

FAQ: 
  • Will I get a statement of accomplishment after completing this class?

    Yes. Participants who successfully complete the class will receive a statement of accomplishment signed by the instructor.

  • What is the format of the class?

    The course will consist of lecture videos, which are between 15 and 45 minutes in length. These contain integrated quiz questions. There will also be standalone homework in addition to video lectures, optional programming assignments, and a (not optional) final exam.

  • How much work will I be expected to do in this class?

    You need to work about 5-10 hours per week to complete the course. About 2 hours of video segments each week, containing inline ungraded quiz questions. A weekly, graded multiple choice homework.

Instructor(s): 
Jeff Ullman

View All Courses

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

Date: 
Tuesday, September 2, 2014 to Friday, December 19, 2014
Go to 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

You will need to purchase the MOOC edition of the Language, Proof and Logic courseware package. 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.

The MOOC edition of the courseware is offered at $10, a significantly reduced cost from the regular edition, but can only be used in conjunction with this course. You can obtain it from the Language, Proof and Logic online store. We guarantee to refund the cost of the MOOC edition of the textbook up until the end of the fourth week of the course (Oct 1 2014), so you can try the course out with no risk.

If purchasing the textbook would cause financial hardship, please write a note to the Language, Proof and Logic team, to request a free copy of the courseware.

Instructors

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.

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.


View All Courses

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

Date: 
Sunday, October 5, 2014 to Friday, December 5, 2014
Go to Course

About the Course

Popularized by movies such as "A Beautiful Mind", game theory is the mathematical modeling of strategic interaction among rational (and irrational) agents. Beyond what we call 'games' in common language, such as chess, poker, soccer, etc., it includes the modeling of conflict among nations, political campaigns, competition among firms, and trading behavior in markets such as the NYSE. How could you begin to model eBay, Google keyword auctions, and peer-to-peer file-sharing networks, without accounting for the incentives of the people using them? The course will provide the basics: representing games and strategies, the extensive form (which computer scientists call game trees), Bayesian games (modeling things like auctions), repeated and stochastic games, and more. We'll include a variety of examples including classic games and real-world applications.
 

Recommended Background

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

Suggested Readings

The following background readings provide more detailed coverage of the course material:
  • Essentials of Game Theory, by Kevin Leyton-Brown and Yoav Shoham; Morgan and Claypool Publishers, 2008. This book has the same structure as the course, and covers most of the same material. It is free if you access the link from a school that subscribes to the Morgan & Claypool Synthesis Lectures, and otherwise costs $5 to download. You can also get it as a printed book from (e.g.) amazon.com, or as an ebook for Kindle or Google devices.
  • 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.

Course Format

The course consists of the following materials:

  • 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.  A couple of times during the course, we will hold a brief online chat where we answer  questions and discuss topics relevant to the course.

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

 

Instructor(s): 
Kevin Leyton-Brown

View All Courses

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

Date: 
Monday, September 22, 2014 to Monday, December 1, 2014
Go to Course

About the Course

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

View All Courses

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

Date: 
Monday, September 29, 2014 to Monday, November 24, 2014
Go to Course

In this course, you will learn how to formalize information and reason systematically to produce logical conclusions. We will also examine logic technology and its applications - in mathematics, science, engineering, business, law, and so forth.

Logic is one of the oldest intellectual disciplines in human history. It dates back to the times of Aristotle; it has been studied through the centuries; and it is still a subject of active investigation today.

This course is a basic introduction to Logic. It shows how to formalize information in form of logical sentences. It shows how to reason systematically with this information to produce all logical conclusions and only logical conclusions. And it examines logic technology and its applications - in mathematics, science, engineering, business, law, and so forth.

The course differs from other introductory courses in Logic in two important ways. First of all, it teaches a novel theory of logic that improves accessibility while preserving rigor. Second, the material is laced with interactive demonstrations and exercises that suggest the many practical applications of the field.

FAQ: 
  • Will I get a statement of accomplishment after completing this class?

    Yes. Participants who successfully complete the course will receive a statement of accomplishment signed by the instructor.

  • What is the format of the class?

    The class consists of videos, notes, and a few background readings. The videos include interactive demonstrations and exercises. There are also standalone quizzes that are not part of video lectures. Workload: one to two hours of video content per week.

  • What should I know to take this class?

    The course has no prerequisites beyond high school mathematics. You should be comfortable with symbolic manipulation techniques, as used, for example, in solving simple algebra problems. And you need to understand sets, functions, and relations. However, that's all. If you have this background, you should be fine.

  • Do I need to buy any textbooks?

    None is required, as the course is self-contained.


View All Courses

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

Date: 
Monday, October 13, 2014 to Monday, November 24, 2014

ABOUT THE COURSE

Explore the fundamentals of the Global Positioning System (GPS) and how it works by conducting "backyard" laboratory experiments on your own mobile device. Learn the basics of satellite navigation and witness the power of a network with planet-wide coverage. Gain a deeper understanding of GPS and its role in our lives, while interacting with a worldwide community of learners and backyard scientists.

Today, the Global Positioning System (GPS) is deployed in over three billion devices across the world. This course will teach you the fundamentals of how GPS works and introduce you to the diverse range of uses of satellite navigation—in all aspects of our lives.

Through vivid online lectures and a set of "backyard experiments" enabled by the widespread availability of GPS-enabled smart phones and tablets, students will be able to connect online learning to real-­world experience. Even those who do not own laptop or desktop computers can take part; they will be able to view lectures and completing labs via mobile device only.

We hope students will enjoy the interactive nature of the course, while gaining knowledge that benefits their personal and professional lives.

RECOMMENDED BACKGROUND

The course will involve some mathematics and equations. We strongly recommend an undergraduate education in a technical discipline (engineering, mathematics or physics).

INSTRUCTORS

Per Enge

Professor, Aeronautics & Astronautics, Stanford University

Professor Enge designs navigation systems that are safe and secure. He has worked on such systems for maritime and air applications. Two of these navigation systems have been deployed worldwide. He received his B.S.E.E. from the University of Massachusetts, and his M.S.E.E. and PhD from the University of Illinois. Today, he is the Vance and Arlene Coffman Professor of Engineering at Stanford University, where he directs the Stanford Center for Position Navigation and Time.

Frank van Diggelen

Consulting Assistant Professor, Aeronautics and Astronautics, Stanford University
 
Frank van Diggelen has worked in the GPS industry for the last twenty two years. He holds over eighty issued patents on GPS. He is Vice President of Technology for GPS at Broadcom Corporation, and a Broadcom Fellow. He is also a consulting professor at Stanford University, where he teaches a graduate class on GPS. He has a PhD from Cambridge University, and wrote the first textbook on Assisted GPS.

 


View All Courses

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

Date: 
Monday, June 30, 2014 to Monday, September 1, 2014
Go to 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.

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

View All Courses

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

Date: 
Tuesday, July 15, 2014 to Thursday, August 28, 2014
Go to Course

CS101 teaches the essential ideas of Computer Science for a zero-prior-experience audience. Computers can appear very complicated, but in reality, computers work within just a few, simple patterns. CS101 demystifies and brings those patterns to life, which is useful for anyone using computers today.

In CS101, participants play and experiment with short bits of "computer code" to bring to life to the power and limitations of computers. Everything works within the browser, so there is no extra software to download or install. CS101 also provides a general background on computers today: what is a computer, what is hardware, what is software, what is the internet. No previous experience is required other than the ability to use a web browser.

Topics

  • The nature of computers and code, what they can and cannot do
  • How computer hardware works: chips, cpu, memory, disk
  • Necessary jargon: bits, bytes, megabytes, gigabytes
  • How software works: what is a program, what is "running"
  • How digital images work
  • Computer code: loops and logic
  • Big ideas: abstraction, logic, bugs
  • How structured data works
  • How the internet works: ip address, routing, ethernet, wi-fi
  • Computer security: viruses, trojans, and passwords, oh my!
  • Analog vs. digital
  • Digital media, images, sounds, video, compression

This July-2014 version is the newest edition of CS101, and it's now running on Stanford's own Stanford Online site. There was an older version we ran on Coursera, so you may see links pointing to the old version scattered around the internet.

PREREQUISITES

Zero computer experience is assumed beyond a basic ability to use a web browser.

FAQ: 

Is there a statement of accomplishment available?

Yes.

What sort of work is required?

CS101 has a "lab" component where students play with short bits of computer code, on their way to understanding the nature of computers. That's more involved than answering multiple choice questions. These code-writing exercises ramp up gradually.

Is a book required?

No. We do provide extensive written notes to go with each lecture, for review, or for people who learn better that way.

What computer language is used?

CS101 uses a variant of Javascript. However, the code used in CS101 is very stripped down, avoiding all sorts of boilerplate that would get in the way of learning. As a result, CS101 code does not look like full, professional Javascript code.

Is CS101 a full programming course?

No. CS101 uses code to explore the nature of computers, but does not pursue code in the depth of a full programming course. Certainly CS101 students will have a real understanding of what code is and how it works, but not going so far as a full programming course. CS101 is an excellent first step for someone who then wants to take a full programming course.

Instructor(s): 
Nick Parlante

View All Courses

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

Go to Course

ABOUT THIS SET OF COURSES

"Databases" was one of Stanford's three inaugural massive open online courses in the fall of 2011; it was offered again in MOOC format in 2013 and 2014. The course is now being offered as a set of smaller self-paced "mini-courses", which can be assembled in a variety of ways to learn about different aspects of databases. All of the mini-courses are based around video lectures and/or video demos. Many of them include in-video quizzes to check understanding, in-depth standalone quizzes, and/or a variety of automatically-checked interactive programming exercises. Each mini-course also includes a discussion forum and pointers to readings and resources. Individual mini-courses can be accessed by selecting the title from the dropdown list above. The mini-courses are described briefly below, along with suggested pathways through them. Taught by Professor Jennifer Widom, the overall curriculum draws from Stanford's popular Databases course.

WHY LEARN ABOUT DATABASES

Databases are incredibly prevalent -- they underlie technology used by most people every day if not every hour. Databases reside behind a huge fraction of websites; they're a crucial component of telecommunications systems, banking systems, video games, and just about any other software system or electronic device that maintains some amount of persistent information. In addition to persistence, database systems provide a number of other properties that make them exceptionally useful and convenient: reliability, efficiency, scalability, concurrency control, data abstractions, and high-level query languages. Databases are so ubiquitous and important that computer science graduates frequently cite their database class as the one most useful to them in their industry or graduate-school careers.

 

FAQ: 

FREQUENTLY ASKED QUESTIONS

How long will the mini-courses be available?

As of now, there is no end date to this course offering. There are no plans to end this course. If you have registered for one of the mini-courses, you will be notified by email of any changes to content availability beforehand.

How long will it take to go through the course material?

All of the mini-courses are self-paced and include videos, quizzes, and/or exercises. The mini-courses vary considerably in length and complexity, and some students work faster than others, so we're not able to predict an individual time commitment.

What background do I need?

The series of courses does not assume prior knowledge of any specific topics, however, a solid computer science foundation -- a reasonable amount of programming, as well as knowledge of basic computer science theory -- will make the material more accessible.

Do I need to buy a textbook?

Detailed lecture notes are provided. Having a textbook in addition to the notes is not necessary, but you might want to purchase one for reference, to reinforce the core material, and as a source of additional exercises. Suggested textbooks and readings are listed as part of the materials.

Do I get any credit or a certificate?

No, none of the mini-courses offer any credit or certificates, but all of them except the Introduction offer a Statement of Accomplishment.

Do the mini-courses offer a Statement of Accomplishment?

Yes, those mini-courses that include graded quizzes and/or exercises will offer a Statement of Accomplishment once a student has achieved at least 90% on the graded assignments.

Do the mini-course pathways offer their own Statement of Accomplishment?

No, each mini-course (with the exception of the Introduction) offers a Statement of Accomplishment, but there is no Statement of Accomplishment offered for a particular pathway that is chosen.

How much does the series of mini-courses cost?

All of the mini-courses in the series are free and it does not cost anything to create a user account.

Instructor(s): 
Jennifer Widom
Databases: Self-Paced

View All Courses

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

Date: 
Monday, June 16, 2014 to Monday, August 25, 2014
Go to Course

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

View All Courses

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

Pages

Subscribe to RSS - Engineering & Computer Science