College: Princeton University
Certificate Price: No Certification
Length: 10 Weeks
Instructors: Robert Sedgewick, Kevin Wayne

Computer Science: Algorithms, Theory, and Machines

This course introduces the broader discipline of computer science to people having basic familiarity with Java programming. It covers the second half of our book Computer Science: An Interdisciplinary Approach (the first half is covered in our Coursera course Computer Science: Programming with a Purpose, to be released in the fall of 2018). Our intent is to demystify computation and to build awareness about the substantial intellectual underpinnings and rich history of the field of computer science.

First, we introduce classic algorithms along with scientific techniques for evaluating performance, in the context of modern applications. Next, we introduce classic theoretical models that allow us to address fundamental questions about computation, such as computability, universality, and intractability. We conclude with machine architecture (including machine-language programming and its relationship to coding in Java) and logic design (including a full CPU design built from the ground up).

The course emphasizes the relationships between applications programming, the theory of computation, real computers, and the field’s history and evolution, including the nature of the contributions of Boole, Shannon, Turing, von Neumann, and others.

All the features of this course are available for free. No certificate will be offered upon completion.

Similar Courses

Computing for Data Analysis

The modern data analysis pipeline involves collection, preprocessing, storage, analysis, and interactive visualization of data. The goal of this course, part of the Analytics: Essential Tools and Methods MicroMasters program,…

Computer Hardware and Operating Systems

This is a self-paced course that provides an Introduction to Computer Hardware and Operating Systems This course will cover topics including: Fundamentals of system hardware Introduction to OS concepts OS…
C Programming: Advanced Data Types

C Programming: Advanced Data Types

In this course, part of the C Programming with Linux Professional Certificate program, you will define your own data types in C, and use the newly created types to more…
Saving Schools

Saving Schools

This course seeks to answer the question: how did a school system, once the envy of the world, stumble so that the performance in math, science, and reading of U.S.…
The Quantum World

The Quantum World

Welcome to The Quantum World! This course is an introduction to quantum chemistry: the application of quantum theory to atoms, molecules, and materials. You’ll learn about wavefunctions, probability, special notations,…
China and Communism

China and Communism

How did the Communists conquer China? What role does culture play? What are the successes and failures of the Chinese Communist Party after seizing power in 1949? What constitutes liberation?…
Big Data and Education

Big Data and Education

Online and software-based learning tools have been used increasingly in education. This movement has resulted in an explosion of data, which can now be used to improve educational effectiveness and…
Lending

Lending, Crowdfunding, and Modern Investing

In this course, you’ll learn the foundational theories behind robo-advising, crowdfunding, and marketplace lending, and how to apply these theories to optimize your investments. Professor David Musto of the Wharton…