Course Summary
This course teaches the fundamental principles of computing, including algorithms, data structures, and simulation.Key Learning Points
- Learn about the basics of algorithms and data structures
- Understand how to simulate various systems using computational methods
- Get hands-on experience through programming assignments
Related Topics for further study
Learning Outcomes
- Understand the fundamentals of computing
- Develop problem-solving skills through programming assignments
- Apply computational thinking to various domains
Prerequisites or good to have knowledge before taking this course
- Basic programming knowledge
- Mathematical background
Course Difficulty Level
IntermediateCourse Format
- Online self-paced
- Video lectures
- Programming assignments
- Quizzes
Similar Courses
- Introduction to Computer Science
- Data Structures and Algorithms
- Computational Thinking for Problem Solving
Related Education Paths
- Computer Science MasterTrack Certificate
- Foundations of Computer Science Specialization
- Applied Data Science with Python Specialization
Notable People in This Field
- Creator of jQuery
- Professor at MIT
Related Books
Description
This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games.
Outline
- Searching and Data Structures
- Introduction
- The Importance of Searching
- Generators
- Stacks and Queues
- Inheritance
- Grid Class
- Grid search
- Mini-project Video
- CodeSkulptor (optional video from our previous class)
- Saving in CodeSkulptor (optional video from our previous class)
- Beyond CodeSkulptor (optional video from our previous class)
- Mini-project Description
- Math Notes on Growth Rates of Functions
- Math Notes on Grid Representations
- Math Notes on Breadth-First Search
- Practice Activity - Sorting strings
- Practice Activity - Working with Distance Fields
- Homework 1
- Recursion
- The Importance of Recursion
- Recursion
- Binary Search
- Visualizing Recursion
- Recurrences
- Reading Files
- Mini-project Video
- Mini-project Description
- Math Notes on Recurrence Relations
- Practice Activity - Recursion
- Practice Activity - Binary representations for numbers
- Practice Activity - Visualizing recurrences
- Homework 2
- Trees
- The Importance of Trees
- Lambda
- Trees
- Illustration of Trees
- Minimax
- Mini-project Video
- Mini-project Description
- TTTBoard Class
- Math Notes on Trees
- Math Notes on Minimax
- Practice Activity - Nim (Tree search)
- Practice Activity - Drawing trees
- Homework 3
- Modeling, Assertions, and Invariants
- The Importance of Modeling
- Assertions
- Invariants
- Modeling
- Software Development
- Mini-project Video
- What is Algorithmic Thinking?
- The Basics of the Fifteen Puzzle
- Mini-project Description
- Math Notes on Invariants
- Practice Activity - Solitaire Tantrix
- Homework 4
Summary of User Reviews
Discover the Principles of Computing 2 course on Coursera. Students love this course and find it to be a great way to learn more about the principles of computing. The course has received high ratings from users and has been praised for its engaging content and knowledgeable instructors.Key Aspect Users Liked About This Course
Many users thought the course was well-structured and provided a great foundation for learning more about computing.Pros from User Reviews
- Engaging content
- Knowledgeable instructors
- Well-structured course
- Great foundation for learning more about computing
- Extensive resources available
Cons from User Reviews
- Some users found the workload to be too heavy
- Course may not be suitable for beginners
- Course may be too technical for some users
- Limited interaction with instructors
- Some users found the quizzes and assignments to be too difficult