Thinking Like A Computer Scientist
Learn Computational Thinking For Young Students (2nd-5th grades)
Many people have the misconception that Computer Science is about learning a programming language (Python, C++, and Java). Programming languages are just tools to communicate with the computer. The key to computer science is the “content” of the communication.
At the core of Computer Science is computational problem solving, i.e. “teaching” the computer how to solve problems. Computational problem solving is both similar and different from the traditional problem solving children learn at school. Computational problem solving requires the students to think in a new way that is called computational thinking. There three unique aspects of computational problem solving:
Teaching what you know to the computer
Generalizing your solution – since you want to teach the computer to solve a “general” problem not just a few specific cases. This is known as inductive reasoning (discovering patterns)
Taking advantages of computer’s power to “look” for solutions, i.e. search and simulation
The key objective of this course is to expose students to computational problem solving - the three unique aspects of computational thinking . This course is designed to be accessible to students without a strong programming background. The curriculum is highly interactive. We use interactive simulation technology (games) to engage students to explore in a fun digital environment to learn to discover how to solve fun and challenging problems (many of which are problems from USACO and other programming competitions). With a simple to use graphical programming interface (similar to Scratch), students can “teach” computer what they discover thus solving these problems computationally. Students will learn the concept of search, simulation, recursion, greedy algorithms, and inductive reasoning which are fundamental in Computer Science and central to solving programming competition problems