The Beauty and Joy of Computing (CS Principles), Part 1 (edX)

The Beauty and Joy of Computing (CS Principles), Part 1 (edX)
A computer science principles course for anyone who wants to learn how to translate ideas into code. 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.

Topics include:

- Abstraction

- Programming Paradigms Algorithms

- Global Implications of Computing

- Lab-Based Topics: Snap! Programming, Conditionals and Abstraction, Lists and the Internet

This fun, introductory course is not just for computer science majors, it’s for everyone… join us!

What you'll learn:

- The basics of computer programming using Snap!

- 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