Princeton University
Computer Science: Algorithms, Theory, and Machines
Princeton University

Computer Science: Algorithms, Theory, and Machines

Taught in English

Some content may not be translated

111,715 already enrolled

Course

Gain insight into a topic and learn the fundamentals

Robert Sedgewick
Kevin Wayne

Instructors: Robert Sedgewick

4.7

(534 reviews)

Intermediate level
Some related experience required
20 hours to complete
3 weeks at 6 hours a week
Flexible schedule
Learn at your own pace

Details to know

Assessments

10 quizzes

See how employees at top companies are mastering in-demand skills

Placeholder

There are 11 modules in this course

This lesson provides information about the course Computer Science: Programming with a Purpose, which is the precursor to Computer Science: Algorithms, Theory, and Machines.

What's included

1 reading

We introduce and study classic algorithms for two fundamental problems, in the context of realistic applications. Our message is that efficient algorithms (binary search and mergesort, in this case) are a key ingredient in addressing computational problems with scalable solutions that can handle huge instances, and that the scientific method is essential in evaluating the effectiveness of such solutions.

What's included

5 videos3 readings1 quiz

Our introduction to data structures is a careful look at the fundamental stack and queue abstractions, including performance specifications. Then we introduce the concept of linked structures and focus on their utility in developing simple, safe, clear, and efficient implementations of stacks and queues.

What's included

5 videos2 readings1 quiz

The symbol table abstraction is one of the most important and useful programmer's tools, s we illustrate with several examples in this lecture. Extending the scientific approach of the previous two lectures, we introduce and study binary search trees, a classic data structure that supports efficient implementations of this abstraction.

What's included

5 videos2 readings1 quiz

The theory of computing helps us address fundamental questions about the nature of computation while at the same time helping us better understand the ways in which we interact with the computer. In this lecture, we introduce formal languages and abstract machines, focusing on simple models that are actually widely useful in practical applications.

What's included

5 videos2 readings1 quiz

In 1936, Alan Turing published a paper that is widely hailed as one of the most important scientific papers of the 20th century. This lecture is devoted to the two far-reaching central ideas of the paper: All computational devices have equivalent computational power, and there are limitations to that power.

What's included

5 videos2 readings1 quiz

As computer applications expanded, computer scientists and mathematicians realized that a refinement of Turing's ideas is needed. Which computational problems can we solve with the resource limitations that are inescapable in the real world? As described in this lecture, this question, fundamentally, remains unanswered.

What's included

5 videos2 readings1 quiz

Every programmer needs understand the basic characteristics of the underlying computer processor being used. Fortunately, the fundamental design of computer processors has changed little since the 1960s. In this lecture, we provide insights into how your Java code actually gets its job done by introducing an imaginary computer that is similar to both the minicomputers of the 1960s and the microprocessor chips found in today's laptops and mobile devices.

What's included

5 videos2 readings1 quiz

Continuing our description of processor design and low-level programming, we provide context stretching back to the 1950s and discuss future implications of the von Neumann machine, where programs and data are kept in the same memory. We examine in detail the idea that we design new computers by simulating them on old ones, something that Turing's theory guarantees will always be effective.

What's included

4 videos2 readings1 quiz

Starting with a few simple abstractions (wires that can carry on/off values and switches that can control the values carried by wires), we address in this lecture the design of the circuits that implement computer processors. We consider gates that implement simple logical functions and components for higher-level functions, such as addition. The lecture culminates with a full circuit for an arithmetic/logic unit.

What's included

5 videos2 readings1 quiz

In this lecture, we provide the last part of our answer to the question "How does a computer work?" by developing a complete circuit for a computer processor, where every switch and wire is visible. While vastly different in scale, this circuit, from a design point of view, has many of the same characteristics as the circuits found in your computer and your phone.

What's included

4 videos2 readings1 quiz

Instructors

Instructor ratings
4.8 (143 ratings)
Robert Sedgewick
Princeton University
7 Courses1,760,817 learners
Kevin Wayne
Princeton University
5 Courses1,716,512 learners

Offered by

Recommended if you're interested in Algorithms

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

Showing 3 of 534

4.7

534 reviews

  • 5 stars

    77.42%

  • 4 stars

    17.53%

  • 3 stars

    3.54%

  • 2 stars

    0.74%

  • 1 star

    0.74%

A
4

Reviewed on Oct 8, 2021

AG
4

Reviewed on Sep 9, 2022

FZ
5

Reviewed on Aug 26, 2020

New to Algorithms? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 7,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions