The Beauty and Joy of Computing - AP® CS Principles Part 2
About this courseSkip About this course
Discover the big ideas and thinking practices in computer science plus learn how to code using one of the friendliest programming languages, Snap! (based on Scratch).
Computing has profoundly changed the world, opening 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 teaches students how to do exactly that, using Snap! (based on Scratch), 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 focus on seven big ideas (creativity, abstraction, data and information, algorithms, programming, the Internet, and global impact), and six computational thinking practices (connecting computing, creating computational artifacts, abstracting, analyzing problems and artifacts, communicating, and collaborating). Throughout the course, relevance is emphasized: relevance to the student and to society.
- Data and Information
- Complexity Theory
- Recursion, Lambda and Higher Order Functions
- Artificial Intelligence
- Human Computer Interaction
- Lab-based Topics: Algorithms and Data, Trees and Fractals, Recursion and Higher Order Functions
This fun, introductory course is not just for computer science majors, it’s for everyone… join us!
At a glance
What you'll learnSkip What you'll learn
- The basics of computer programming using Snap! (based on Scratch)
- How to apply the "seven big ideas" of creativity, abstraction, data and information, algorithms, programming, the Internet, and global impact
- How to master the six computational thinking practices of connecting computing, creating computational artifacts, abstracting, analyzing problems and artifacts, communicating, and collaborating