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.
À propos de ce cours
Offert par

Université de Princeton
Princeton University is a private research university located in Princeton, New Jersey, United States. It is one of the eight universities of the Ivy League, and one of the nine Colonial Colleges founded before the American Revolution.
Programme du cours : ce que vous apprendrez dans ce cours
INFORMATION ABOUT LECTURES 1–10
This lesson provides information about the course Computer Science: Programming with a Purpose, which is the precursor to Computer Science: Algorithms, Theory, and Machines.
SORTING AND SEARCHING
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.
STACKS AND QUEUES
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.
SYMBOL TABLES
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.
INTRODUCTION TO THE THEORY OF COMPUTING
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.
Avis
Meilleurs avis pour COMPUTER SCIENCE: ALGORITHMS, THEORY, AND MACHINES
Good overview of algorithms and data structures. However they use an inhouse API in the provided java code with some unknown methods and the code they provide sometimes doesn't compile.
I loved this course. If you want to know in depth how your computer works and what you can compute in general, this course is for you. Thank you very much for this amazing course.
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.
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.
Foire Aux Questions
Quand aurai-je accès aux vidéos de cours et aux devoirs ?
Quand aurai-je accès aux vidéos de cours et aux devoirs ?
Do I need to pay for this course?
Can I earn a certificate in this course?
Which kinds of assessments are available in this course?
D'autres questions ? Visitez le Centre d'Aide pour les Etudiants.