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:

  • 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!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by Dan Garcia, who is known for their work in computer science education
Develops creativity, abstraction, data analysis, and communication skills, which are core to computer science
Uses Snap!, a beginner-friendly programming language, making it accessible to learners with no prior coding experience
Covers a wide range of topics, including data and information, complexity theory, and artificial intelligence, providing a broad foundation in computer science
Emphasizes relevance to both learners and society, highlighting the practical applications of computer science

Save this course

Save The Beauty and Joy of Computing - AP® CS Principles Part 2 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 2. 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 2 will develop knowledge and skills that may be useful to these careers:
Software Engineer
Software Engineers design, develop, test, and maintain computer software. As a Software Engineer, you would be responsible for creating applications in many different industries, including healthcare, business, manufacturing, communications, and even gaming. This course is a great place to start as it helps build a foundation in programming, computer science, and computational thinking. These skills and this knowledge will help you translate ideas into code, an essential skill in the field.
Web Developer
Web Developers design, create, and maintain websites. As a Web Developer, you would be responsible for the look and feel of a website, as well as its functionality. This course can help you get started by teaching you the basics of programming, computer science, and computational thinking. These skills are becoming increasingly important in the Web Development field, and this course will help you become more competitive in the job market.
Data Scientist
Data Scientists collect, analyze, and interpret data to help businesses make informed decisions. As a Data Scientist, you would be responsible for finding patterns and trends in data, and using this information to solve problems. This course can help you get started in this field, as it will teach you the basics of data analysis, statistics, and programming. This course will provide you with a strong foundation in the skills you need to succeed as a Data Scientist.
Computer Scientist
Computer Scientists study the theory and design of computers. As a Computer Scientist, you would be responsible for developing new algorithms, programming languages, and computer architectures. This course can help you get started in this field, as it will teach you the basics of computer science and programming. This course will also help you develop the critical thinking skills essential to success as a Computer Scientist.
Information Technology Specialist
Information Technology Specialists provide technical support and advice to businesses and individuals. As an Information Technology Specialist, you would be responsible for installing, maintaining, and repairing computer systems and networks. This course can help you get started in this field by teaching you the basics of computer hardware, software, and networking. This course will provide you with the foundation in computer science and programming that you need to succeed as an Information Technology Specialist.
IT Project Manager
IT Project Managers plan, execute, and manage information technology projects. As an IT Project Manager, you would be responsible for leading teams of IT professionals to deliver successful projects. This course can help you get started in this field by teaching you the basics of project management and computer science. This course will also help you develop the leadership skills essential to success as an IT Project Manager.
Computer Programmer
Computer Programmers write, test, and maintain computer programs. As a Computer Programmer, you would be responsible for translating ideas into code. This course can help you get started in this field by teaching you the basics of programming and computer science. This course will provide you with the skills you need to succeed as a Computer Programmer.
Systems Analyst
Systems Analysts study the needs of businesses and design computer systems to meet those needs. As a Systems Analyst, you would be responsible for gathering requirements, analyzing data, and developing system specifications. This course can help you get started in this field by teaching you the basics of systems analysis and design. This course will also help you develop the critical thinking skills essential to success as a Systems Analyst.
Database Administrator
Database Administrators design, implement, and maintain databases. As a Database Administrator, you would be responsible for ensuring that databases are reliable, efficient, and secure. This course can help you get started in this field by teaching you the basics of database management. This course will provide you with the skills you need to succeed as a Database Administrator.
Network Administrator
Network Administrators design, implement, and maintain computer networks. As a Network Administrator, you would be responsible for ensuring that networks are reliable, efficient, and secure. This course can help you get started in this field by teaching you the basics of networking. This course will provide you with the skills you need to succeed as a Network Administrator.
Computer Support Specialist
Computer Support Specialists provide technical support to users of computers and computer systems. As a Computer Support Specialist, you would be responsible for troubleshooting and solving computer problems. This course can help you get started in this field by teaching you the basics of computer hardware, software, and networking. This course will provide you with the skills you need to succeed as a Computer Support Specialist.
Information Security Analyst
Information Security Analysts protect computer systems and data from unauthorized access, use, disclosure, disruption, modification, or destruction. As an Information Security Analyst, you would be responsible for developing and implementing security plans and procedures. This course can help you get started in this field by teaching you the basics of information security. This course will provide you with the skills you need to succeed as an Information Security Analyst.
Computer Forensic Analyst
Computer Forensic Analysts investigate computer crimes and recover evidence from computers and other electronic devices. As a Computer Forensic Analyst, you would be responsible for examining computer systems and data to find evidence of criminal activity. This course can help you get started in this field by teaching you the basics of computer forensics. This course will provide you with the skills you need to succeed as a Computer Forensic Analyst.
Computer Game Designer
Computer Game Designers design and develop computer games. As a Computer Game Designer, you would be responsible for creating the look and feel of a computer game, as well as its gameplay. This course can help you get started in this field by teaching you the basics of game design and development. This course will provide you with the skills you need to succeed as a Computer Game Designer.
Computer Science Teacher
Computer Science Teachers teach computer science concepts to students. As a Computer Science Teacher, you would be responsible for developing and delivering lesson plans, grading assignments, and providing feedback to students. This course can help you get started in this field by teaching you the basics of computer science and education. This course will provide you with the skills you need to succeed as a Computer Science Teacher.

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 2:

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