This new class is designed specifically for high school and junior high students who want to get a head start learning about what Computer Science and Programming are about. This course isn't about learning a specific programming tool or language. Rather, it is designed to help them strengthen their critical thinking and logical reasoning faculties, as well as give them the depth of understanding in fundamental concepts in Computer Science and programming, so that they could later on get started with any programming language or technology project. A solid overview and key concepts in many areas of Computer Science are covered by this course, including Big Ideas in Science and Engineering (Real-World Modeling, Physics Simulations, From Model to Implementation, Reverse Engineering and Tinkering), Computer Science and Math Theory (Lists, Sets, Data Structures such as Dictionaries, Trees, Graphs, Algorithms such as Shortest Path), Programming Languages (Functions, Object-Oriented Programming), Artificial Intelligence (Propositional Logic), and Networking (Internet Protocols), and more. I teach this class to some Living Wisdom School high school students in Nevada City, CA, as an alternate Math course. This is a 15-week workshop course. Each class (week)'s lecture takes about 90-120 min. on average. Each class includes some lecture with slides, but the majority of the time the students will be working on programming or design exercises on their own computer. After each exercise the students can resume the lecture video to check their work against the teacher's. The majority of the exercises included in each class are done in Snap!--the programming tool from UC-Berkeley. Students can share their work and view programs done by other students around the world.