Computer Science: Algorithms, Theory, and Machines
- 4.7
Course Summary
This course covers the fundamentals of computer science theory, algorithms, and machines. You'll learn about different machine models and their capabilities, and how to apply algorithms to solve problems efficiently.Key Learning Points
- Understand the basics of computer science theory, including Turing machines and complexity theory
- Learn about different types of algorithms and how to analyze their efficiency
- Explore different machine models and their capabilities
Related Topics for further study
Learning Outcomes
- Ability to analyze the efficiency of algorithms
- Understanding of different machine models and their capabilities
- Improved problem solving skills
Prerequisites or good to have knowledge before taking this course
- Basic programming knowledge
- Familiarity with mathematical concepts
Course Difficulty Level
IntermediateCourse Format
- Online
- Self-paced
Similar Courses
- Algorithms, Part I
- Discrete Optimization
Related Education Paths
Notable People in This Field
- Scott Aaronson
- Andrew Ng
Related Books
Description
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.
Outline
- INFORMATION ABOUT LECTURES 1–10
- Information about Lectures 1–10
- SORTING AND SEARCHING
- A typical client
- Binary search
- Insertion sort
- Mergesort
- Longest repeated substring
- Getting Started
- Supplements for Lecture 11
- Optional Enrichment on Sorting and Searching
- Sorting and Searching
- STACKS AND QUEUES
- APIs
- Clients
- Strawman implementations
- Linked lists
- Implementations
- Supplements for Lecture 12
- Optional Enrichment on Stacks and Queues
- Stacks and Queues
- SYMBOL TABLES
- APIs and clients
- A design challenge
- Binary search trees
- Implementation
- Analysis
- Supplements for Lecture 13
- Optional Enrichment on Symbol Tables
- Symbol Tables
- INTRODUCTION TO THE THEORY OF COMPUTING
- Overview
- Regular Expressions
- DFAs
- Applications
- Limitations
- Supplements for Lecture 14
- Optional Enrichment on Theory of Computing
- Theory of Computing
- TURING MACHINES
- Context
- A simple model of computation
- Universality
- Computability
- Implications
- Supplements for Lecture 15
- Optional Enrichment on Turing Machines
- Turing Machines
- INTRACTABILITY
- Reasonable questions
- P and NP
- Poly-time reductions
- NP-completeness
- Living with intractability
- Supplements for Lecture 16
- Optional Enrichment on Intractability
- Intractability
- A COMPUTING MACHINE
- Overview
- Data Types
- Instructions
- Operating the machine
- Machine language programming
- Supplements for Lecture 17
- Optional Enrichment on A Computing Machine
- A Computing Machine
- VON NEUMANN MACHINES
- Perspective
- A note of caution
- Practical implications
- Simulation
- Supplements for Lecture 18
- Optional Enrichment on von Neumann Machines
- von Neumann Machines
- COMBINATIONAL CIRCUITS
- Building blocks
- Boolean algebra
- Digital circuits
- Adder circuit
- Arithmetic/logic unit
- Supplements for Lecture 19
- Optional Enrichment on Combinational Circuits
- Combinational Circuits
- CENTRAL PROCESSING UNIT
- Overview
- Bits, registers, and memory
- Program counter
- Components and connections
- Supplements for Lecture 20
- Optional Enrichment on the CPU
- CPU
Summary of User Reviews
Learn about algorithms, theory, and machines with this course on Coursera. Users have praised the course for its comprehensive content and engaging instructors.Key Aspect Users Liked About This Course
Comprehensive contentPros from User Reviews
- Engaging instructors
- In-depth explanations
- Challenging assignments
Cons from User Reviews
- Difficult for beginners
- Some technical issues with the platform
- Limited interaction with instructors