Computing has changed the world in profound ways. It has opened up wonderful new ways for people to connect, design, research, play, create, and express themselves. However, just using a computer is only a small part of the picture. The real transformative and empowering experience comes when one learns how to program the computer, to translate ideas into code.
This course will teach students how to do exactly that, using Snap!, one of the friendliest programming languages ever invented. It's purely graphical, which means programming involves simply dragging blocks around, and building bigger blocks out of smaller blocks.
But this course is far more than just learning to program. We'll focus on some of the "Big Ideas" of computing, such as abstraction, design, recursion, concurrency, simulations, and the limits of computation. We'll show some beautiful applications of computing that have changed the world, talk about the history of computing, and where it will go in the future. Throughout the course, relevance will be emphasized: relevance to the student and to society. As an example, the final project will be completely of the students' choosing, on a topic most interesting to them. The overarching theme is to expose students to the beauty and joy of computing.
Key Computer Science "Big Ideas" explored in this course are: Computing as a creative human activity, Levels of abstraction, Dealing with data (Big and small), Algorithms and heuristics, Programming, Computing devices and the Internet, The impacts of computing on our lives and on society.
Key Computer Science practices and skills emphasized in the course are: Connecting computing to the real world, Creating innovative computer artifacts, Abstracting, Analyzing and evaluating problems and artifacts, Communicating with the aid of computing, Collaborating effectively.
Finally, this course has the potential to serve as a stepping stone for a new College Board Advanced Placement CS course (AP Computer Science Principles), which could have significant national impact.
(See Computer Science Principles - CSP)
Big Idea 1: Creativity. Computing is a creative activity.
Big Idea 2: Abstraction. Abstraction reduces information and detail to facilitate focus on relevant concepts.
Big Idea 3: Data and information. Data and information facilitate the creation of knowledge.
Big Idea 4: Algorithms. Algorithms are used to develop and express solutions to computational problems.
Big Idea 5: Programming. Programming enables problem solving, human expression, and creation of knowledge.
Big Idea 6: The Internet. The Internet pervades modern computing.
Big Idea 7: Global Impact. Computing has global effects on individuals and society.
Practice 1: Connecting computing (Making connections to and from the real world; making connections within CS)
Practice 2: Creating computational artifacts
Practice 3: Abstracting
Practice 4: Analyzing problems and artifacts
Practice 5: Communicating
Practice 6: Collaborating
Use computing tools and techniques to create and analyze computational artifacts.
Use computing tools, techniques and programming for creative expression.
Describe the combination of abstractions used to represent data, and use multiple levels of abstraction in computation.
Develop computational abstractions.
Use computers and programs to process information to gain insight and knowledge.
Use models and simulations to raise and answer questions.
Develop algorithms to solve computational problems.
Connect problems and potential algorithmic solutions.
Review other students' code, predict the end results, and critique the work.
Use abstraction to manage complexity in programs.
Employ appropriate mathematical and logical concepts in programming.
Evaluate programs for correctness.
Connect computing with innovations in other fields.
Connect computing within economic, social, and cultural contexts.