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

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. People who are interested in digging deeper into the content may wish to obtain the textbook Computer Science: An Interdisciplinary Approach (upon which the course is based) or to visit the website introcs.cs.princeton.edu for a wealth of additional material. This course does not offer a certificate upon completion.

Status: Computational Logic
Status: Java Programming
IntermediateCourse20 hours

Featured reviews

AA

5.0Reviewed Aug 26, 2020

The professor is the best I have ever had! The way he presented the materials was precise and concise. I also loved the historical contexts he often provided.

AC

5.0Reviewed Jan 19, 2022

Great course that has taught me a lot in the field of computer science. Cheers to Coursera and Princeton for such great knowledge.

MK

4.0Reviewed Sep 23, 2020

Good introduction, sometimes it's a bit frustrating to have to memorize the op- codes for the quizzes if you don't have the book though. Otherwise very instructional.

EG

5.0Reviewed May 11, 2018

Very pedagogical and enjoyable introduction to CS. Another great Princeton University Coursera course.

AA

5.0Reviewed Sep 1, 2022

a​mazing course, this course is an amazing course as introduction to cs, it shows the power and limits of computer, thanks coursera and professors for the course

MS

5.0Reviewed Apr 20, 2023

Covered a lot of subjects. Simple and clean presentations. Great materials. Recommended definitely.

DC

5.0Reviewed Jun 10, 2020

I feel the course does a great job in laying out an introduction to "Computer Science", familiarising and motivating the topics, to be covered deeply in the sophomore-junior year.

SC

4.0Reviewed Mar 22, 2021

I really enjoyed this class - I wish it had weekly assignments like Programming with a Purpose and the Algorithms courses do. I think the Princeton CS courses are the best ones on Coursera

NP

4.0Reviewed Sep 9, 2020

Good concept of understanding how computer works. But ,In my opinion, quite hard to follow for the beginner

AG

4.0Reviewed Sep 9, 2022

T​he material for the course was very well laid out. Both computational theory and computer architecture are introduced in a clear manner from first principles.

AP

5.0Reviewed Jul 4, 2021

E​xcellent introductory course to theoretical concepts of Computer Scirence. Taking this course has made me aware of many aspects of the discipline. D​efinitely recommended!

ME

5.0Reviewed Jun 23, 2021

Thank you for sharing your knowledge and expertise. Its a big help for learning the process as well as the behavior of the machine

All reviews

Showing: 20 of 163

Denis Kokarev
4.0
Reviewed Oct 28, 2018
Rajesh Yakkundimath
5.0
Reviewed May 26, 2020
Paolo Sanfilippo
5.0
Reviewed Jun 19, 2018
Clyde R
5.0
Reviewed Apr 25, 2018
Zephyr Liu
5.0
Reviewed Mar 23, 2019
Meysam Abolghasemi
5.0
Reviewed Nov 8, 2019
Diego Lorenzo
5.0
Reviewed Dec 24, 2018
Muhammad Talha
5.0
Reviewed Oct 15, 2018
Diego Perini
5.0
Reviewed May 21, 2020
Wenzheng Zhao
5.0
Reviewed Mar 17, 2020
zhangdi
5.0
Reviewed Sep 16, 2018
Mithilesh Vaidya
4.0
Reviewed May 25, 2018
Jerrold
4.0
Reviewed Dec 15, 2018
Trinh Duc Minh
5.0
Reviewed Oct 15, 2019
Xiaoyu Zhang
5.0
Reviewed Nov 25, 2019
suguna devi c
5.0
Reviewed Jun 3, 2020
LuxiLiu
5.0
Reviewed Apr 28, 2020
Apostolis Papas
5.0
Reviewed Jul 5, 2021
Ahmed Noeman
5.0
Reviewed Dec 5, 2018
Ernst G.
5.0
Reviewed May 12, 2018