Skip Navigation

Advanced Scratch Programming

Arrow image that is used as button to enroll in courses. Enroll in this Course

Eligibility: CTY-level or Advanced CTY-level math score required

Prerequisites: Successful completion of an introductory Scratch programming course or placement test.

Course Format: Individually Paced

Course Length: Typically 3 months

Course Code: ASC

Course Description


Advanced Scratch Programming guides students through challenging concepts in Scratch Programming. Building on their foundation of Scratch fundamentals, students will be able to create intricate animations and games using complex logic and program design. 

Students develop their programming skills while learning about lists, defining procedures, using webcam sensing, and debugging problematic code. They will broaden their understanding of variables, operators, and event-driven programming while applying their existing knowledge in new ways of thinking about Scratch.

Students also examine graphic art and digital music in computers, and are encouraged to think artistically and creatively about computer programming and design.  Participants are exposed to a brief history of computer graphics and developments in software and hardware for human-computer interaction. Students practice and demonstrate their knowledge through assignments, quizzes, a midterm project, and a final project.

This course does not have any synchronous class meetings, but students may schedule one-on-one virtual meetings directly with the instructor to answer questions or concerns. 

Students may be invited to interact in CTY community spaces that include students and instructors and potentially specially invited guests that are not enrolled in their course. Student contributions (e.g., projects, forum posts, etc.) may remain in the course after the student completes the course. These artifacts may be preserved to showcase student work or to continue important conversations.

Preparation for this Course

The Advanced Scratch Programming course assumes students have mastered all content in the Introduction to Scratch for Elementary School Students or Introduction to Scratch for Middle School Students. If the student has completed Introduction to Computer Science and Engineering, they will have covered some, but not all of what they will need. However, students may be considered for placement into Advanced Scratch Programming if they have a strong foundation in Scratch Programming. To get the best sense for preparedness, we recommend taking the placement test for Advanced Scratch Programming.

Materials Needed

Although there is no textbook required, students will need access to a webcam (external or internal) for two units of the course. 

Detailed Course Information

Course Details

Introduction and Review

Make a Block

  • Defining Make a Block
  • Creating a Custom Block and Script
  • Scope of Custom Blocks
  • Passing Data to Custom Blocks
  • Passing Data - Numerical
  • Passing Data - String
  • Passing Data - Boolean

Scratch and Art

  • The History of Computer Displays
  • Raster Graphics Defined
  • 8-Bit Style Game Graphics
  • Bitmap Editor in Scratch
  • Vector Graphics Defined
  • Vector Editor in Scratch
  • Advanced Graphics Concepts in the Paint Editor

Scratch and Music

  • Review of Sound Blocks and Uploading Sounds
  • Defining Sound
  • Monophonic and Stereophonic Sound
  • Retro and 8-Bit Music
  • Creating Music in Scratch


  • Defining Variables
  • Viewing Variables
  • Scope of a Variable (Local and Global)
  • Applying all Variable Concepts


  • Defining Lists
  • The Data Blocks for Lists
  • Changing Two List Values
  • Making a Custom Switch Block


  • Background and History
  • Webcam Use in Scratch
  • Webcam Blocks in Scratch
  • Using the Webcam to Insert an Interactive Screen
  • Using the Webcam to Create a Visual Effect


  • Review of Clones
  • Review of Clone Blocks
  • Clones and Local Variables
  • Sharing Clone Data


  • Event Driven Programming
  • Broadcast Blocks Review
  • Broadcast and Wait
  • Multithreading


  • Defining Bugs
  • Types of Bugs - Syntax Errors
  • Types of Bugs - Logic Errors
  • Common Errors in Scratch


Technical Requirements

This course requires a properly maintained computer with high-speed internet access and an up-to-date web browser (such as Chrome or Firefox). The student must be able to communicate with the instructor via email. Visit the Technical Requirements and Support page for more details.

Zoom online virtual classroom
This course uses an online virtual classroom which can be used for instructor-student communication if the student has any questions about the course or curriculum. The classroom works on standard computers with the Zoom desktop client and also tablets or handhelds that support the Zoom Mobile app. Students will need a computer with the Zoom desktop client installed to watch any recorded meetings. The Zoom desktop client and Zoom Mobile App are both available for free download.

Most course lectures may be viewed on mobile devices, but in some cases assignments and quizzes must be completed on a desktop or laptop computer.

Chromebooks are not recommended due to required downloading of specialized software.



CTY Online Programs Computer Science - Comments and Feedback from Students, Parents, and Teachers



"My son’s instructor has a great ability to interact with kids. He was able to teach a technical subject to my son amazingly well. He kindled interest in the subject. He is very dedicated and provided good feedback."

"My instructor was very helpful throughout my course with all the different concepts. He was very knowledgeable, and funny! I enjoyed working with his help."

"The instructor helped my son learn how to independently complete the course successfully. She gave helpful and timely feedback and guidance to me and my son. By the end of the course, my son was corresponding with the instructor and managing the course all on his own-- what a great skill to learn above and beyond material she helped him through, which he loved. He can't wait to take the next course."