We may earn an affiliate commission when you visit our partners.
Nate C

Whether you're a parent looking for a good starting place for your kids to get into computer programming, a teacher looking for a great way to introduce software development to a technology class, or just a curious person looking to learn more about how programming actually works, this course is for you.

Read more

Whether you're a parent looking for a good starting place for your kids to get into computer programming, a teacher looking for a great way to introduce software development to a technology class, or just a curious person looking to learn more about how programming actually works, this course is for you.

This course focuses on what's referred to as "block-based programming", where the developer can drag and drop functions together to create scripts that complete tasks, whether they be simple or complex. This course starts out by teaching the universal basics about computer programming and then increases difficulty, contributing to a cumulative knowledge while reinforcing previously learned material through interactive activities.

Not only does this course carry you from beginner to expert in block-based programming, but it gives you a strong boost for whichever direction you want to go after taking the course, if you want to continue your programming career. Whether you're looking to get into advanced app development, game development, or web development, this course equips you with the universal concepts, vocabulary, and computer logic you'll need to know.

Although this course ramps up to expert levels, it is designed to be as comprehensive, interactive, and reinforcing as possible making it suitable for all ages and abilities. Every core concept presented will be thoroughly explained, and the course provides recommendations for external resources after completion for where to go based on your personal interests.

Here's what you can get from this course:

  • Lifetime access to 20 on-demand, video lectures that can be streamed anywhere, anytime.

  • Hours worth of videos, interactive activities, and hands-on projects.

  • A strong programming vocabulary and strong grasp of many universal software development concepts.

  • Fluency in Scratch 3.0 and expert-level knowledge in block-based programming

  • Ability in graphic design, 2D/3D game development, and more.

Enroll now

What's inside

Syllabus

By the end of this section, students will be all set up and able to begin programming with Sratch 3.0.

In our first lecture, we'll learn a little bit more about the outline of the course and some of the tools that we'll be using.

Read more

This quiz is an activity to reinforce what we have previously learned. You won't be penalized for answering incorrectly or held back from future lectures by not passing, so don't worry about trying to get everything right on your first go! You can go back and retake this at any time.

In our second lecture, we'll learn how to create a Scratch account. We'll also learn about other options if account creation is unavailable for any reason.

This lecture teaches basic navigation around the site, where to find resources that help if you get stuck, and how to find legal documents if you wish to view them.

This lecture comprehensively explains the "Sensing" and "Variables" Scratch 3.0 programming categories.

This lecture walks you through the Scratch Editor and some of the key functions you'll need to know about.

By the end of this section, students will understand basic universal computer programming vocabulary, terms, and logic.

This lecture explains the concept of computer programming as well as some basic universal terminology.

This lecture explains everything you need to know about the two-dimensional XY coordinate plane in relation to Scratch and block-based programming.

This lecture explains how to call custom-made scripts in Scratch 3.0.

This lecture teaches you how to use the bitmap and vector editors in Scratch. It also explains the concepts of sprites, costumes, stages, and backdrops.

In this lecture, we learn about a very vital category of functions in Scratch 3.0, which is the "Motion" category.

Intermediate Projects

In this lecture, we learn about the highly important "Looks" and "Sounds" Categories in Scratch 3.0

This lecture teaches about three very prominent Scratch 3.0 categories, as well as how they work together closely. The categories in question are "Controls", "Operators", and "Conditions".

Beginner Projects

In this lecture, we make a simple, functional video game using Scratch 3.0 together, comprehensively explaining the design and development process.

In this lecture, we learn about a very important capability in Scratch known as "Scrolling" and develop a platformer game that applies the capability.

In this lecture, we practice app-development by building our very own four-function calculator using block-based programming in Scratch 3.0!

In this lecture, we will build an art application in which we can draw and change the specifications of our brush, all using Scratch 3.0.

In this lecture, we will create a music project in Scratch 3.0 that reinforces our knowledge of the "Sounds" category and shows some of the technical side to digital audio.

In this lecture, we will discuss external libraries, and how we can use the most commonly used one (the pen tool) by doing an example project.

In this lecture, we will build an interactive story with Scratch 3.0 in which players can make decisions that affect the outcome of the story.

In this lecture, we learn about a very useful add-on to Scratch called Phosphorus, how we can use it, and what it is useful for exactly.

In this value-packed lecture, we will be reviewing data types such as strings, booleans, and integers in this lecture. This will reinforce our understanding, propel us through advanced technicalities of block-based programming, and help prepare us for text-based programming.

In this lecture, we work further with the pen tool to make a "render machine".

This section provides additional valuable resources, complimentarily available to all students and teachers.
Advanced Content

In this lecture, we will go over all you need to know about cloud variables and data within Scratch 3.0.

This lecture highlights some recommended pathways for continuing your programming career with a headstart after this course.

This lecture concludes the course and discusses upcoming monthly bonus content.

This is an optional final exam that overviews the course in its entirety. This can help with scaling your expertise in block-based programming, as well as giving insight into areas you can improve.


Please note that completion of this exam does not grant any official certification or license.

Save this course

Save Full Scratch 3.0 Programming Course: Beginner to Advanced to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Full Scratch 3.0 Programming Course: Beginner to Advanced with these activities:
Review Coordinate Plane Concepts
Strengthen understanding of the coordinate plane, which is fundamental to Scratch's motion and positioning system.
Show steps
  • Watch videos explaining the coordinate plane.
  • Practice plotting points on a graph.
  • Solve problems involving distance and midpoint formulas.
Read 'Coding Games in Scratch' by Jon Woodcock
Learn by example through building games, which reinforces core Scratch concepts.
Show steps
  • Obtain a copy of 'Coding Games in Scratch'.
  • Work through the game tutorials in the book.
  • Modify the games to add your own features.
Develop a Simple Game
Apply learned concepts by creating a simple game from scratch, solidifying understanding of game logic and Scratch blocks.
Show steps
  • Brainstorm game ideas and choose one to implement.
  • Design the game's mechanics and user interface.
  • Implement the game in Scratch, using appropriate blocks.
  • Test and debug the game.
  • Share the game with others and gather feedback.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'Scratch Programming Playground' by Al Sweigart
Explore advanced Scratch techniques through fun and engaging projects.
Show steps
  • Obtain a copy of 'Scratch Programming Playground'.
  • Choose a project from the book to implement.
  • Follow the instructions to build the project.
  • Experiment with the project and add your own modifications.
Create a Scratch Tutorial
Solidify understanding by teaching others, which requires a deep comprehension of the material.
Show steps
  • Choose a specific Scratch concept to explain.
  • Create a script or project that demonstrates the concept.
  • Record a video tutorial explaining the script.
  • Share the tutorial online.
Design a Game Design Document
Improve planning and organization skills by creating a detailed design document for a Scratch game.
Show steps
  • Choose a game idea and define its core mechanics.
  • Write a detailed description of the game's features and gameplay.
  • Create a storyboard or flowchart to visualize the game's flow.
  • Document the game's assets, including sprites, sounds, and backgrounds.
  • Outline the game's code structure and key algorithms.
Contribute to a Scratch Project
Deepen understanding by collaborating on a larger project, learning from others' code and contributing your own.
Show steps
  • Find an open-source Scratch project on the Scratch website.
  • Examine the project's code and identify areas for improvement.
  • Contribute bug fixes, new features, or improved documentation.
  • Submit your changes to the project maintainers.

Career center

Learners who complete Full Scratch 3.0 Programming Course: Beginner to Advanced will develop knowledge and skills that may be useful to these careers:
Game Designer
A game designer conceptualizes and designs video games. They define the game's rules, story, characters, and overall gameplay experience. Block-based programming, like that taught in this course, may be useful for prototyping game mechanics and testing ideas quickly. This course, which covers 2D game development using the Scratch platform, helps you to build a foundation in game design principles and understand how programming logic translates into interactive gameplay. By learning to create games from scratch, you can gain a comprehensive understanding of the game development process, from initial concept to playable prototype. It is possible to learn graphic design that will be helpful in creating games. This course may be of particular interest to anyone is interested in game design.
Software Developer
Software developers create computer applications. This may involve writing code, debugging, and testing software. While this course focuses on block-based programming, it instills a strong understanding of fundamental programming concepts that are applicable across different programming languages and development environments. The course emphasizes logic, problem-solving, and the ability to translate ideas into functional code, all of which are essential skills for a software developer. This course may be of particular interest to anyone looking to enter the field of software development, as it serves as a gentle introduction to programming principles and builds a solid foundation for learning more advanced techniques. This course also covers data types such as strings, booleans, and integers.
Technology Trainer
A technology trainer teaches individuals or groups how to use specific software or hardware. They design and deliver training sessions, create training materials, and provide ongoing support. This course, which is designed to be accessible to beginners and covers universal software development concepts, helps you to understand the underlying principles of technology, making you a more effective trainer. The course's focus on interactive activities and hands-on projects also provides you with valuable experience in explaining complex technical concepts in a clear and engaging manner. This course may be of particular interest to anyone is interested in becoming a technology trainer.
Mobile App Developer
Mobile app developers create applications for smartphones and tablets. They design, develop, and test mobile apps. While this course uses block-based programming rather than the languages typically used for mobile app development (like Swift or Kotlin), it helps build a strong foundation in programming logic and problem-solving. This course explicitly mentions advanced app development as a potential career direction, making it a relevant starting point. This course may be of particular interest to anyone interested in entering the field of mobile app development, as it provides a gentle introduction to programming principles and prepares one for learning more advanced mobile-specific technologies.
Educational Software Developer
Educational software developers create software applications used for teaching and learning. This course is designed to be accessible to individuals of all ages and skill levels. The course's emphasis on interactive activities and hands-on projects also provides you with valuable insights into how to design engaging and effective learning experiences. This course may be of particular interest to anyone is interested in creating educational software, as it provides a strong foundation in programming logic and design principles, as well as a focus on creating accessible and engaging learning experiences.
Web Developer
Web developers build and maintain websites. This course teaches the logic and structure behind programming, which is directly applicable to web development. The course emphasizes problem-solving and breaking down complex tasks into smaller, manageable steps. While block-based programming is different from the text-based languages used in web development, the underlying principles remain the same. This course specifically mentions web development as a potential career path after completion, making it a strong starting point for aspiring web developers. This course may be of particular interest to anyone looking to transition into web development, as it provides a solid foundation in programming logic and prepares you for learning web-specific technologies.
Instructional Designer
Instructional designers create engaging learning experiences and materials, often using technology. They may design online courses, interactive simulations, or training programs. This course, by teaching the fundamentals of programming and breaking down complex concepts into manageable steps, may be useful as a springboard into instructional design. Understanding how software works and how to build interactive content helps instructional designers create more effective and engaging learning modules. This course may be of particular interest to anyone interested in creating interactive educational content, as it provides a strong foundation in programming logic and design principles.
Technical Writer
Technical writers create documentation for software, hardware, and other technical products. This course's emphasis on programming concepts can provide a solid foundation for understanding the technical aspects of software development, which is essential for creating accurate and informative documentation. This course may be of particular interest to anyone interested in becoming a technical writer, as it provides a comprehensive overview of programming principles and terminology, as well as hands-on experience with creating functional programs.
UX Designer
UX designers focus on creating user-friendly and intuitive interfaces for software and websites. This course's emphasis on visual programming and interactive design may be useful for UX design. While UX design involves more than just programming, understanding the underlying logic and how users interact with software is crucial. This course may be especially interesting for anyone looking to transition into UX design, as it provides an accessible entry point to understanding user interaction from a programming perspective. Creating interactive stories in Scratch may also be useful to gain experience that will set a job applicant apart.
Automation Engineer
Automation engineers design and implement automated systems and processes. While primarily focused on block-based programming, this course may be useful for building a foundation in programming logic and control systems. This course teaches you how to create scripts that automate tasks, which is a core skill in automation engineering. This course may be of particular interest to anyone interested in automation, as it may be an accessible entry point into the world of programming and control systems. Data types such as strings, booleans, and integers are covered in the course.
Robotics Technician
Robotics technicians assist engineers in designing, building, and testing robots. They may program robots to perform specific tasks. This course, while not directly focused on robotics, does help build a foundational understanding of programming logic and control systems. This course teaches how to create scripts that control actions and respond to inputs, which are concepts that are highly relevant to robotics. By learning to program in a visual environment, one can gain a better understanding of how code translates into physical actions, which is a valuable skill for a robotics technician. This course may be of particular interest to anyone interested in robotics, as it may provide an accessible entry point to the world of programming and automation.
Software Test Engineer
A software test engineer designs and implements tests to find defects in software. They ensure the software meets quality standards and performs as expected. This course teaches you how to create functional programs from scratch. This experience helps you develop a critical eye for detail and an understanding of how software components interact, which are essential for effective testing. This course may be of particular interest to anyone who wants to become a software test engineer.
Digital Artist
Digital artists may use computer software to create artwork for use in video games, movies, or websites. This course may be useful for beginning a career as a digital artist. It provides an introduction to graphic design. This course teaches users to work with bitmap and vector editors. Learning this may improve a user's skills as a digital artist. The skills taught in this course may be especially useful for anyone attempting to create digital art. This course may be of particular interest to anyone wishing to use their art in video games, as it provides a start in 2D and 3D game design.
Database Administrator
Database administrators (DBAs) manage and maintain databases, ensuring data is stored securely and efficiently. While this course focuses on block-based programming, it may be useful for learning about data structures and manipulating data. The concepts of variables and data management taught in this course may be helpful for understanding how databases work. This course may be of particular interest to anyone interested in database administration, as it provides a foundation in data handling concepts. This course also covers cloud variables and data.
Data Scientist
Data scientists analyze large datasets to identify trends, patterns, and insights. This course focuses on introductory programming concepts. However, it is possible to use the skills learned to become a data scientist. This course provides an understanding of computer logic. It may be useful as a preliminary step before learning data science-specific programming languages and tools. This course may be especially helpful to anyone with basic programming knowledge.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Full Scratch 3.0 Programming Course: Beginner to Advanced.
Offers a playful approach to learning Scratch through a series of engaging projects. It covers a wide range of topics, from basic programming concepts to more advanced techniques. It good choice for students who want to explore Scratch in a fun and creative way. This book adds breadth to the course by introducing more advanced project ideas.

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 - 2025 OpenCourser