We may earn an affiliate commission when you visit our partners.
Course image
Dan Garcia

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.

Read more

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!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops abstraction, programming paradigms, and algorithms, which are core foundations for computer science
Taught by Dan Garcia, who are recognized for their work in computer science
Teaches Snap!, which is a user-friendly programming language, making the fundamentals of programming accessible
Examines abstraction, which is a crucial concept for understanding complex systems
Explores programming paradigms, providing insights into different approaches to software development
Covering algorithms, a fundamental aspect of computer science, empowering learners to solve problems efficiently

Save this course

Save The Beauty and Joy of Computing - AP® CS Principles Part 1 to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for The Beauty and Joy of Computing - AP® CS Principles Part 1. These are activities you can do either before, during, or after a course.

Career center

Learners who complete The Beauty and Joy of Computing - AP® CS Principles Part 1 will develop knowledge and skills that may be useful to these careers:
Computer and Information Research Scientist
Computer and Information Research Scientists conduct research in the field of computer science. This course can be useful for potential Computer and Information Research Scientists because it covers the basics of computer science, including programming, data structures, and algorithms. Additionally, the course's focus on computational thinking skills, such as problem-solving and critical thinking, can help Computer and Information Research Scientists develop the skills they need to succeed in the field.
Computer Scientist
Computer Scientists research and develop new computer technologies. This course can be useful for potential Computer Scientists because it covers the basics of computer science, including programming, data structures, and algorithms. Additionally, the course's focus on computational thinking skills, such as problem-solving and critical thinking, can help Computer Scientists develop the skills they need to succeed in the field.
Data Scientist
Data Scientists use data to solve business problems. This course can be useful for potential Data Scientists because it covers the basics of data science, including data analysis, data visualization, and machine learning. Additionally, the course's focus on problem-solving and critical thinking skills can help Data Scientists develop the skills they need to succeed in the field.
Information Security Analyst
Information Security Analysts design and implement security measures to protect computer systems and networks. This course can be useful for potential Information Security Analysts because it covers the basics of computer security, including network security, cryptography, and risk management. Additionally, the course's focus on problem-solving and critical thinking skills can help Information Security Analysts develop the skills they need to succeed in the field.
Computer Programmer
Computer Programmers design, write, and test computer programs. This course can be useful for potential Computer Programmers because it covers the basics of programming, including data structures, algorithms, and software design. Additionally, the course's focus on problem-solving and critical thinking skills can help Computer Programmers develop the skills they need to succeed in the field.
Technical Writer
Technical Writers write documentation for computer software and hardware. This course can be useful for potential Technical Writers because it covers the basics of technical writing, including how to write clear and concise instructions. Additionally, the course's focus on user experience design can help Technical Writers create documentation that is easy to understand and use.
Web Developer
Web Developers design and develop websites and web applications. This course can be useful for potential Web Developers because it covers the basics of web development, including HTML, CSS, and JavaScript. Additionally, the course's focus on user experience design can help Web Developers create websites that are both visually appealing and easy to use.
Systems Analyst
Systems Analysts design and implement computer systems. This course can be useful for potential Systems Analysts because it covers the basics of computer science, including programming, data structures, and algorithms. Additionally, the course's focus on problem-solving and critical thinking skills can help Systems Analysts develop the skills they need to succeed in the field.
Web Designer
Web Designers design and develop websites. This course can be useful for potential Web Designers because it covers the basics of web design, including HTML, CSS, and JavaScript. Additionally, the course's focus on user experience design can help Web Designers create websites that are both visually appealing and easy to use.
Information Technology Specialist
Information Technology Specialists design, install, and maintain computer systems. This course can be useful for potential Information Technology Specialists because it covers the basics of computer science, including programming, data structures, and algorithms. Additionally, the course's focus on problem-solving and critical thinking skills can help Information Technology Specialists develop the skills they need to succeed in the field.
Software Engineer
Software Engineers design, build, and maintain computer software. This course can be useful for potential Software Engineers because it covers the basics of computer science, including programming, data structures, and algorithms. Additionally, the course's focus on computational thinking skills, such as problem-solving and critical thinking, can help Software Engineers develop the skills they need to succeed in the field.
Network Administrator
Network Administrators design and maintain computer networks. This course can be useful for potential Network Administrators because it covers the basics of computer networking, including network protocols, network security, and network troubleshooting. Additionally, the course's focus on problem-solving and critical thinking skills can help Network Administrators develop the skills they need to succeed in the field.
Computer Support Specialist
Computer Support Specialists provide technical support to computer users. This course can be useful for potential Computer Support Specialists because it covers the basics of computer hardware and software, as well as how to troubleshoot and resolve common computer problems. Additionally, the course's focus on problem-solving and critical thinking skills can help Computer Support Specialists develop the skills they need to succeed in the field.
Software Tester
Software Testers test computer software to ensure that it is working properly. This course can be useful for potential Software Testers because it covers the basics of software testing, including test planning, test execution, and test reporting. Additionally, the course's focus on problem-solving and critical thinking skills can help Software Testers develop the skills they need to succeed in the field.
Database Administrator
Database Administrators design and maintain databases. This course can be useful for potential Database Administrators because it covers the basics of database management, including data modeling, data warehousing, and data security. Additionally, the course's focus on problem-solving and critical thinking skills can help Database Administrators develop the skills they need to succeed in the field.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read two articles that feature The Beauty and Joy of Computing - AP® CS Principles Part 1:

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser