Eighth Grade Computer Science

In eighth grade Computer Science, we dwell on the underlying basics of how computers work, and continue to cultivate the programming knowledge begun earlier in the curriculum. Together, we think about how the notion of simplification or "abstraction" plays an important role; and then apply that knowledge appropriately in a programming context. The concepts of "data" and "programs" are thoroughly explored, forming a foundation upon which many important computer science concepts can be built.
 
Digital Information - “Data, Data, Data!”/“Digitization and Design (2D & 3D)"
Everything that is represented within a computer environment must be digitized, but what does that really mean? Starting from the basics of informational encoding, we will simulate the process of digitization for text as well as 2-D and 3-D images. This unit culminates in a large programming project in which a 3-D model of the entire classroom is rendered from code, demonstrating contemporary computer graphics techniques as well as the practice of participating in a complex collaborative software endeavor.
 
Electronic Basics - “Touring the Chibi Circuit”
Knowing how to approach computers from the software side is essential, but what about the hardware? For this short section, we will explore circuits, currents, switches, and more to build students’ intuitions for the way their electrical devices work on a physical level, as well as giving context for the ways those material structures lead to the concepts exhibited in digitization and code.
 
Writing & Understanding Code - “Programming in Python (Intro & Personal Project)”
Expanding upon the seventh grade introduction to Python, we will have a chance to grow our skills by creating increasingly complex programs that include more interactivity and require more planning. The skill of reading programs written by others and expressing algorithms in "pseudocode" will be emphasized as important pre-programming skills. Students will gain more experience and facility with the important elements of variables and functions, conditionals, and loops, and are expected to combine them in original ways to create expressive programs of their own choosing.