CINXE.COM
Scratch | No Starch Press
<!DOCTYPE html> <html lang="en" dir="ltr" xmlns:og="https://ogp.me/ns#"> <head> <link rel="profile" href="https://www.w3.org/1999/xhtml/vocab" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="alternate" type="application/rss+xml" title="Scratch" href="https://nostarch.com/taxonomy/term/48/all/feed" /> <link rel="shortcut icon" href="https://nostarch.com/sites/default/files/favicon.ico" type="image/vnd.microsoft.icon" /> <meta name="description" content="Testing, testing 1, 2, 3" /> <meta name="generator" content="Drupal 7 (http://drupal.org)" /> <link rel="canonical" href="https://nostarch.com/catalog/scratch" /> <link rel="shortlink" href="https://nostarch.com/taxonomy/term/48" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="@nostarch" /> <meta name="twitter:url" content="https://nostarch.com/catalog/scratch" /> <meta name="twitter:title" content="Taxonomy term" /> <title>Scratch | No Starch Press</title> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_lQaZfjVpwP_oGNqdtWCSpJT1EMqXdMiU84ekLLxQnc4.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_guSWpwqRBCVb2J7ivC8BaNuaPffCXmbkGB5xDBqKKu8.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_Dw0rmhFX_owMmlf1HH5Y-_BnOHcMlkri1yMjYHD4ffs.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://nostarch.com/sites/default/files/css/css_XJm3Wqia1GUjoI4j54duSLNZVR3Kxhbwy0s3UwuhhHg.css" media="all" /> <!-- HTML5 element support for IE6-8 --> <!--[if lt IE 9]> <script src="https://cdn.jsdelivr.net/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> <![endif]--> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script>window.jQuery || document.write("<script src='/sites/all/modules/contrib/jquery_update/replace/jquery/2.2/jquery.min.js'>\x3C/script>")</script> <script src="https://nostarch.com/misc/jquery-extend-3.4.0.js?v=2.2.4"></script> <script src="https://nostarch.com/misc/jquery-html-prefilter-3.5.0-backport.js?v=2.2.4"></script> <script src="https://nostarch.com/misc/jquery.once.js?v=1.2"></script> <script src="https://nostarch.com/misc/drupal.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/jquery_update/js/jquery_browser.js?v=0.0.1"></script> <script src="https://nostarch.com/misc/form-single-submit.js?v=7.103"></script> <script src="https://nostarch.com/sites/all/modules/contrib/ubercart/uc_file/uc_file.js?steosx"></script> <script src="https://nostarch.com/sites/all/libraries/colorbox/jquery.colorbox-min.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/styles/plain/colorbox_style.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox_load.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/colorbox/js/colorbox_inline.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/better_exposed_filters/better_exposed_filters.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/ubercart/uc_cart/uc_cart_block.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/ctools/js/auto-submit.js?steosx"></script> <script src="https://nostarch.com/sites/all/modules/contrib/google_analytics/googleanalytics.js?steosx"></script> <script src="https://www.googletagmanager.com/gtag/js?id=UA-5027625-1"></script> <script>window.google_analytics_uacct = "UA-5027625-1";window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments)};gtag("js", new Date());gtag("set", "developer_id.dMDhkMT", true);gtag("config", "UA-5027625-1", {"groups":"default","anonymize_ip":true});gtag("config", "G-51XGZT9Y4H", {"groups":"default","anonymize_ip":true});</script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/bootstrap.min.js?steosx"></script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/main.js?steosx"></script> <script src="https://nostarch.com/sites/all/themes/nostarch/js/front_grid_height.js?steosx"></script> <script>jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"ajaxPageState":{"theme":"nostarch","theme_token":"lEPMsCUgKQkR89az4TrXMoY9_OHuWPPLkf2hGRldrGQ","js":{"sites\/all\/modules\/contrib\/addthis\/addthis.js":1,"sites\/all\/libraries\/shariff\/shariff.min.js":1,"sites\/all\/themes\/contrib\/bootstrap\/js\/bootstrap.js":1,"\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/2.2.4\/jquery.min.js":1,"0":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery-html-prefilter-3.5.0-backport.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/contrib\/jquery_update\/js\/jquery_browser.js":1,"misc\/form-single-submit.js":1,"sites\/all\/modules\/contrib\/ubercart\/uc_file\/uc_file.js":1,"sites\/all\/libraries\/colorbox\/jquery.colorbox-min.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox.js":1,"sites\/all\/modules\/contrib\/colorbox\/styles\/plain\/colorbox_style.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox_load.js":1,"sites\/all\/modules\/contrib\/colorbox\/js\/colorbox_inline.js":1,"sites\/all\/modules\/contrib\/better_exposed_filters\/better_exposed_filters.js":1,"sites\/all\/modules\/contrib\/ubercart\/uc_cart\/uc_cart_block.js":1,"sites\/all\/modules\/contrib\/ctools\/js\/auto-submit.js":1,"sites\/all\/modules\/contrib\/google_analytics\/googleanalytics.js":1,"https:\/\/www.googletagmanager.com\/gtag\/js?id=UA-5027625-1":1,"1":1,"sites\/all\/themes\/nostarch\/js\/bootstrap.min.js":1,"sites\/all\/themes\/nostarch\/js\/main.js":1,"sites\/all\/themes\/nostarch\/js\/front_grid_height.js":1},"css":{"modules\/system\/system.base.css":1,"modules\/field\/theme\/field.css":1,"sites\/all\/modules\/contrib\/logintoboggan\/logintoboggan.css":1,"modules\/node\/node.css":1,"sites\/all\/modules\/contrib\/uc_fedex\/uc_fedex.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_file\/uc_file.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_order\/uc_order.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_product\/uc_product.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_store\/uc_store.css":1,"sites\/all\/modules\/contrib\/views\/css\/views.css":1,"sites\/all\/modules\/contrib\/ckeditor\/css\/ckeditor.css":1,"sites\/all\/modules\/contrib\/uc_discounts_alt\/uc_discounts\/uc_discounts.css":1,"sites\/all\/modules\/contrib\/colorbox\/styles\/plain\/colorbox_style.css":1,"sites\/all\/modules\/contrib\/ctools\/css\/ctools.css":1,"sites\/all\/modules\/contrib\/ubercart\/uc_cart\/uc_cart_block.css":1,"sites\/all\/libraries\/shariff\/shariff.complete.css":1,"sites\/all\/themes\/nostarch\/css\/en_styles.css":1,"sites\/all\/themes\/nostarch\/css\/custom.css":1,"sites\/all\/themes\/nostarch\/css\/bootstrap-3-vert-offset.css":1,"sites\/all\/themes\/nostarch\/css\/bootstrap-3-autoclear.css":1,"sites\/all\/themes\/nostarch\/css\/glyphicons.css":1}},"colorbox":{"opacity":"0.85","current":"{current} of {total}","previous":"\u00ab Prev","next":"Next \u00bb","close":"Close","maxWidth":"98%","maxHeight":"98%","fixed":true,"mobiledetect":true,"mobiledevicewidth":"480px","file_public_path":"\/sites\/default\/files","specificPagesDefaultValue":"admin*\nimagebrowser*\nimg_assist*\nimce*\nnode\/add\/*\nnode\/*\/edit\nprint\/*\nprintpdf\/*\nsystem\/ajax\nsystem\/ajax\/*"},"better_exposed_filters":{"datepicker":false,"slider":false,"settings":[],"autosubmit":false,"views":{"nostarch_taxonomy_term":{"displays":{"page":{"filters":[]}}},"topics":{"displays":{"block":{"filters":[]}}}}},"urlIsAjaxTrusted":{"\/catalog\/scratch":true},"googleanalytics":{"account":["UA-5027625-1","G-51XGZT9Y4H"],"trackOutbound":1,"trackMailto":1,"trackDownload":1,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip","trackColorbox":1},"bootstrap":{"anchorsFix":"0","anchorsSmoothScrolling":"0","formHasError":1,"popoverEnabled":1,"popoverOptions":{"animation":1,"html":0,"placement":"right","selector":"","trigger":"click","triggerAutoclose":1,"title":"","content":"","delay":0,"container":"body"},"tooltipEnabled":1,"tooltipOptions":{"animation":1,"html":0,"placement":"auto left","selector":"","trigger":"hover focus","delay":0,"container":"body"}}});</script> </head> <body class="html not-front not-logged-in two-sidebars page-taxonomy page-taxonomy-term page-taxonomy-term- page-taxonomy-term-48"> <div id="skip-link"> <a href="#main-content" class="element-invisible element-focusable">Skip to main content</a> </div> <header id="" class="header" role="banner" class="navbar navbar-default"> <div class="container"> <div class="row"> <nav role="navigation" class="navbar navbar-default visible-xs"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand text-uppercase" href="/"><img src="https://nostarch.com/sites/all/themes/nostarch/logo.png" alt="Home" class="img-responsive"/></a> </div> <div id="navbar" class="navbar-collapse collapse text-center"> <ul class="menu nav navbar-nav"><li class="first leaf"><a href="/catalog.htm" title="Explore our catalog">Catalog</a></li> <li class="leaf"><a href="https://nostarch.com/merchandise-0" title="Merchandise">Merchandise</a></li> <li class="leaf"><a href="/blog" title="The No Starch Press blog">Blog</a></li> <li class="leaf"><a href="https://nostarch.com/early-access-program" title="Media contact">Early Access</a></li> <li class="leaf"><a href="/writeforus" title="Submit a book proposal">Write for Us</a></li> <li class="leaf"><a href="/about" title="About No Starch Press">About Us</a></li> <li class="last leaf"><a href="/contactus" title="Contact Us">Contact Us</a></li> </ul> <div class="region region-navigation"> <section id="block-uc-cart-cart" class="block block-uc-cart clearfix"> <h2 class="block-title"><a href="/cart"><span class="cart-block-icon-empty" title="View your shopping cart."></span></a><span class="cart-block-title-bar" title="Show/hide shopping cart contents.">Shopping cart<span class="cart-block-arrow arrow-down"></span></span></h2> <p class="cart-block-items collapsed uc-cart-empty">There are no products in your shopping cart.</p><table class="cart-block-summary"><tbody><tr><td class="cart-block-summary-items"><span class="num-items">0</span> Items</td><td class="cart-block-summary-total"><label>Total:</label> <span class="uc-price">$0.00</span></td></tr></tbody></table> </section> <section id="block-search-api-page-site-search" class="block block-search-api-page clearfix"> <form action="/catalog/scratch" method="post" id="search-api-page-search-form-site-search" accept-charset="UTF-8"><div><div class="form-item form-item-keys-2 form-type-textfield form-group"><input placeholder="Search" class="form-control form-text" type="text" id="edit-keys-2" name="keys_2" value="" size="15" maxlength="128" /> <label class="control-label element-invisible" for="edit-keys-2">Enter your keywords</label> </div><input type="hidden" name="id" value="2" /> <button class="icon glyphicon glyphicon-search btn-primary form-control btn form-submit" type="submit" id="edit-submit-2" name="op" value=""></button> <input type="hidden" name="form_build_id" value="form-5N2hX-Zmyl4quhwE7Aqubw39tV3IvIvq_luKATcXRfM" /> <input type="hidden" name="form_id" value="search_api_page_search_form_site_search" /> </div></form> </section> </div> </div> </nav> <div class="navbar-header"> <div class="logo-wrapper col-sm-6 hidden-xs"> <a class="logo navbar-btn pull-left" href="/" title="Home"> <img src="https://nostarch.com/sites/all/themes/nostarch/logo.png" alt="Home" class="img-responsive"/> </a> </div> <div class="logo-wrapper col-sm-6 hidden-xs"> <div class="region region-navigation"> <div class="region region-navigation"> <section id="block-uc-cart-cart" class="block block-uc-cart clearfix"> <h2 class="block-title"><a href="/cart"><span class="cart-block-icon-empty" title="View your shopping cart."></span></a><span class="cart-block-title-bar" title="Show/hide shopping cart contents.">Shopping cart<span class="cart-block-arrow arrow-down"></span></span></h2> <p class="cart-block-items collapsed uc-cart-empty">There are no products in your shopping cart.</p><table class="cart-block-summary"><tbody><tr><td class="cart-block-summary-items"><span class="num-items">0</span> Items</td><td class="cart-block-summary-total"><label>Total:</label> <span class="uc-price">$0.00</span></td></tr></tbody></table> </section> <section id="block-search-api-page-site-search" class="block block-search-api-page clearfix"> <form action="/catalog/scratch" method="post" id="search-api-page-search-form-site-search" accept-charset="UTF-8"><div><div class="form-item form-item-keys-2 form-type-textfield form-group"><input placeholder="Search" class="form-control form-text" type="text" id="edit-keys-2" name="keys_2" value="" size="15" maxlength="128" /> <label class="control-label element-invisible" for="edit-keys-2">Enter your keywords</label> </div><input type="hidden" name="id" value="2" /> <button class="icon glyphicon glyphicon-search btn-primary form-control btn form-submit" type="submit" id="edit-submit-2" name="op" value=""></button> <input type="hidden" name="form_build_id" value="form-5N2hX-Zmyl4quhwE7Aqubw39tV3IvIvq_luKATcXRfM" /> <input type="hidden" name="form_id" value="search_api_page_search_form_site_search" /> </div></form> </section> </div> </div> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="navbar-collapse collapse"> <nav role="navigation"> <ul class="menu nav navbar-nav"><ul class="menu nav navbar-nav"><li class="first leaf"><a href="/catalog.htm" title="Explore our catalog">Catalog</a></li> <li class="leaf"><a href="https://nostarch.com/merchandise-0" title="Merchandise">Merchandise</a></li> <li class="leaf"><a href="/blog" title="The No Starch Press blog">Blog</a></li> <li class="leaf"><a href="https://nostarch.com/early-access-program" title="Media contact">Early Access</a></li> <li class="leaf"><a href="/writeforus" title="Submit a book proposal">Write for Us</a></li> <li class="leaf"><a href="/about" title="About No Starch Press">About Us</a></li> <li class="last leaf"><a href="/contactus" title="Contact Us">Contact Us</a></li> </ul></ul> </nav> </div> </div> </div> </header> <div class="main-container container"> <header role="banner" id="page-header"> <div class="region region-header"> <section id="block-block-159" class="block block-block clearfix"> <style> <!--/*--><![CDATA[/* ><!--*/ #banner { height: 120px; } #banner-graphic { width: 700px; } #banner-countdown { width: 240px; } #banner-cta { width: 200px; text-align: center; margin-top: 19px; } .banner-column { float: left; } .banner_image { max-width: 100% } @media (max-width: 1199px) { #banner-graphic { width: 500px; } } @media (max-width: 991px) { #banner { height: 160px; } #banner-graphic { float: none; width: 100%; } #banner-countdown { width: 50%; } #banner-cta { width: 50%; } } @media (max-width: 422px) { #banner { height: 200px; } #banner-countdown { float: none; width: 100%; } #banner-cta { float: none; width: 100%; margin-top: 10px; } } .time-left { margin: 1em; font-size: .75em; font-weight: bold; text-transform: uppercase; font-family: Arial, Helvetica, Verdana, sans-serif; text-align: center; } .countdown-container { display: flex; justify-content: center; } .countdown-timer { font-family: Arial, Helvetica, Verdana, sans-serif; color: white; } .countdown-timer .countdown-timer-counter { background-color: #222; display: inline-flex; flex-direction: column; justify-content: space-around; text-align: center; border-radius: 0.2em; width: 3em; line-height: 1.3; margin: 0 0.2em; padding: .6em 0.15em 0.75em; text-shadow: 1px 1px 1px rgba(0,0,0,0.85); } .countdown-timer .countdown-timer-counter .countdown-timer-number { font-weight: bold; font-size: 1em; } .countdown-timer .countdown-timer-counter .countdown-label { font-size: 0.75em; } .cta-parent { text-align: center; } .cta-button { font-family: Arial, Helvetica, Verdana, sans-serif; color: white; display: inline-block; font-weight: bold; text-decoration: none; background-color: #ec6352; border: 1px solid #ec6352; cursor: pointer; padding: 0.8em 1.25em 1em; margin: 0.75em auto 0; font-size: 1.15em; text-rendering: optimizeLegibility; border-radius: 0.3em; text-shadow: 1px 1px 1px rgba(0,0,0,0.65); text-transform: uppercase; transition-duration: 0.2s; transition-property: background-color, border, color, box-shadow, text-shadow; transition-timing-function: ease-in-out; white-space: nowrap; } .cta-button:hover { background-color: #ec6352; border: 1px solid #ec6352; } /*--><!]]>*/ </style><div id="banner1"> <div class="banner-column" id="banner-graphic"> <p><a href="https://www.humblebundle.com/books/computer-science-fun-way-no-starch-books" target="_blank"><img src="https://nostarch.com/images/banners/HumbleBundleWebsiteBanner_March2025.png" class="banner_image" /></a></p> </div> <div class="banner-column" id="banner-countdown"> <div class="time-left">time left</div> <div class="countdown-container"> <div class="countdown-timer"> <div class="countdown-timer-counter" data-unit="days"> <div class="countdown-timer-number"></div> <div class="countdown-label">days</div> </div> <div class="countdown-timer-counter" data-unit="hours"> <div class="countdown-timer-number"></div> <div class="countdown-label">hours</div> </div> <div class="countdown-timer-counter" data-unit="minutes"> <div class="countdown-timer-number"></div> <div class="countdown-label">min</div> </div> <div class="countdown-timer-counter" data-unit="seconds"> <div class="countdown-timer-number"></div> <div class="countdown-label">sec</div> </div> </div> </div> </div> <div class="banner-column" id="banner-cta"><a href="https://www.humblebundle.com/books/computer-science-fun-way-no-starch-books" target="_blank"><span class="cta-button">Get The Bundle</span></a></div> </div> <script> <!--//--><![CDATA[// ><!-- function initCountdown(bannerId, endDate) { var countdownTime = new Date(endDate); var banner = document.getElementById(bannerId); var x = setInterval(function() { var now = new Date(); var distance = countdownTime - now; var days = Math.max(Math.floor(distance / (1000 * 60 * 60 * 24)), 0); var hours = Math.max(Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)), 0); var minutes = Math.max(Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)), 0); var seconds = Math.max(Math.floor((distance % (1000 * 60)) / 1000), 0); function padZero(num) { return num.toString().padStart(2, '0'); } banner.querySelector('[data-unit="days"] .countdown-timer-number').textContent = padZero(days); banner.querySelector('[data-unit="hours"] .countdown-timer-number').textContent = padZero(hours); banner.querySelector('[data-unit="minutes"] .countdown-timer-number').textContent = padZero(minutes); banner.querySelector('[data-unit="seconds"] .countdown-timer-number').textContent = padZero(seconds); if (distance < 0) { clearInterval(x); banner.querySelector('.countdown-container').textContent = "Event has ended"; } }, 1000); } // Initialize the countdown for banner1 initCountdown('banner1', '2025-03-24T19:00:00Z'); //--><!]]> </script> </section> </div> </header> <!-- /#page-header --> <div class="row"> <aside class="col-sm-3" role="complementary"> <div class="region region-sidebar-first well"> <section id="block-views-topics-block" class="block block-views clearfix"> <button class="btn btn-primary btn-block visible-xs vert-offset-top-2" data-toggle="collapse" data-target="#topics"><span class="glyphicon glyphicon-menu-down pull-left"></span> <span class="btn-text">Topics</span><span class="glyphicon glyphicon-menu-down pull-right"></span></button> <h2 class="block-title hidden-xs">Topics</h2> <div id="topics" class="view-content collapse dont-collapse animateCollapse"> <div class="view view-topics view-id-topics view-display-id-block view-dom-id-0db0c67efbadb1fc59a59f54790d712e"> <div class="view-content"> <div class="item-list"> <ul> <li class="views-row views-row-1 views-row-odd views-row-first"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/art-photography-design">Art & Design</a></span> </div></li> <li class="views-row views-row-2 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/general-computing">General Computing</a></span> </div></li> <li class="views-row views-row-3 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/security">Hacking & Computer Security</a></span> </div></li> <li class="views-row views-row-4 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/hardware-and-diy">Hardware / DIY</a></span> </div></li> <li class="views-row views-row-5 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/kids">Kids</a></span> </div></li> <li class="views-row views-row-6 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/lego">LEGO庐</a></span> </div></li> <li class="views-row views-row-7 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/linux-bsd-unix">Linux & BSD</a></span> </div></li> <li class="views-row views-row-8 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/manga">Manga</a></span> </div></li> <li class="views-row views-row-9 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/programming">Programming</a></span> </div></li> <li class="views-row views-row-10 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/python">Python</a></span> </div></li> <li class="views-row views-row-11 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/rforall">R for All</a></span> </div></li> <li class="views-row views-row-12 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/science-math">Science & Math</a></span> </div></li> <li class="views-row views-row-13 views-row-odd"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/scratch" class="active">Scratch</a></span> </div></li> <li class="views-row views-row-14 views-row-even"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/system-administration">System Administration</a></span> </div></li> <li class="views-row views-row-15 views-row-odd views-row-last"> <div class="views-field views-field-name"> <span class="field-content"><a href="/catalog/early-access">Early Access</a></span> </div></li> </ul></div> </div> <div class="view-footer"> <style> <!--/*--><![CDATA[/* ><!--*/ .view-topics .item-list a {font-weight: bold;} .view-topics ul {padding-left: 20px;} /*--><!]]>*/ </style> </div> </div> </div> </section><section id="block-block-12" class="block block-block clearfix"> <div class="rounded_border_block"><span style="font-family:Arial,Helvetica,sans-serif"><strong><span style="font-size:12px"><span style="color:#c0392b"><a href="https://nostarch.com/about_ebooks.htm">FREE ebook edition with every print book purchased from nostarch.com!</a></span></span></strong></span></div> <p class="rtecenter"><span style="font-size:22px">+</span></p> <div class="rounded_border_block"><span style="font-family:Arial,Helvetica,sans-serif"><strong><span style="font-size:12px"><a href="https://nostarch.com/early-access-program"><span style="color:#c0392b">EARLY ACCESS lets you read full chapters months before a title's release date!</span></a></span></strong></span></div> </section> <section id="block-nostarch-custom-login-block" class="block block-nostarch-customclearfix"> <h2 class="block-title">User login</h2> <ul> <li><a href="/user">Log in</a></a></li> <li><a href="/user/register">Create account</a></a></li> </ul> </section> <section id="block-block-78" class="block block-block clearfix"> <script data-account="eeqOpWOUyZ" src="https://cdn.userway.org/widget.js"></script> </section> </div> </aside> <!-- /#sidebar-first --> <section class="col-sm-6" style=""> <a id="main-content"></a> <h1 class="page-header">Scratch</h1> <div class="region region-content"> <section id="block-system-main" class="block block-system clearfix"> <div class="view view-nostarch-taxonomy-term view-id-nostarch_taxonomy_term view-display-id-page auto-clear view-dom-id-178053e169af072ae027dd026700f518"> <div class="view-content"> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-736" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/math-hacks-scratch"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/MathHacksScratch_frontcover.png?itok=vyPlns4b" width="170" height="225" alt="Math Hacks for Scratch cover" title="Math Hacks for Scratch cover" /></a></div></div></div> <header> <h2><a href="/math-hacks-scratch">Math Hacks for Scratch</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Michael Mays</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><span style="font-size:10pt"><span style="font-family:Roboto,sans-serif"><span style="color:#000000">Push Scratch programming to the limits as you explore mathematical curiosities through hands-on coding projects.</span></span></span></p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-552" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/machine-learning-kids"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/MachineLearningForKids_cover.png?itok=BUYcHxIg" width="169" height="225" alt="Machine Learning for Kids Cover" title="Machine Learning for Kids" /></a></div></div></div> <header> <h2><a href="/machine-learning-kids">Machine Learning for Kids</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Dale Lane</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><a href="/machine-learning-kids">Machine Learning for Kids</a> pairs with a free online tool and the Scratch coding platform to teach you how to train machine-learning models and build your own AI projects.</p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-545" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/scratch3playground"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/scratch3pp_fcvr.png?itok=TSXDqhCK" width="170" height="225" alt="Scratch 3 Programming Playground Cover" title="Scratch 3 Programming Playground Cover" /></a></div></div></div> <header> <h2><a href="/scratch3playground">Scratch 3 Programming Playground</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Al Sweigart</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Learn to code video games at any age or skill level with<a href="/scratch3playground"><b> Scratch 3 Programming Playground!</b></a> Freshly updated for Scratch 3.0.</p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-514" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/superscratch3"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/SSPA3_cvr_01.jpg?itok=n-PHUd8u" width="160" height="225" alt="Super Scratch Programming Adventure! (Scratch 3)" title="Super Scratch Programming Adventure! (Scratch 3)" /></a></div></div></div> <header> <h2><a href="/superscratch3">Super Scratch Programming Adventure! (Scratch 3)</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">The LEAD Project</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>In <a href="/superscratch3">Super Scratch Programming Adventure! (Scratch 3)</a>, kids learn programming fundamentals as they make their very own playable video games. Now updated to cover Scratch 3!</p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-517" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/25scratchgames"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/25S3GFK_front.png?itok=pFcTHrJl" width="180" height="225" alt="25 Scratch Games for Kids" title="25 Scratch Games for Kids" /></a></div></div></div> <header> <h2><a href="/25scratchgames">25 Scratch 3 Games for Kids</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Max Wainewright</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><a href="/25scratchgames">25 Scratch 3 Games for Kids</a> teaches you to program in the wildly popular beginning programming language, Scratch, from the MIT Media Lab.</p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-494" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/scratchcards3"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/ScratchCards2e_front.png?itok=JgwzJgDR" width="164" height="225" alt="Box Front Cover" title="Box Front Cover" /></a></div></div></div> <header> <h2><a href="/scratchcards3">The Official Scratch Coding Cards (Scratch 3.0)</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Natalie Rusk and the Scratch Team</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><a href="/scratchcards2e">The Official Scratch Coding Cards (Scratch 3.0)</a> is a deck of 76 activity cards that teaches kids to code with Scratch, a popular visual programming language.</p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-468" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/scratchgames"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/MakeYourOwnScratchGames_front.png?itok=d4Eh0fUW" width="170" height="225" alt="Make Your Own Scratch Games!" title="Make Your Own Scratch Games!" /></a></div></div></div> <header> <h2><a href="/scratchgames">Make Your Own Scratch Games!</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Anna Anthropy</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><a href="/scratchgames">Make Your Own Scratch Games!</a> is a playful, kid-friendly introduction game development using the Scratch programming language.</p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-462" class="node node-product node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/scratchjrcards"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/scratchjrcc_cover-front_new.png?itok=0prdIChv" width="165" height="225" alt="ScratchJr Coding Cards" title="ScratchJr Coding Cards" /></a></div></div></div> <header> <h2><a href="/scratchjrcards">ScratchJr Coding Cards</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Marina Umaschi Bers and Amanda Sullivan</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><a href="/scratchjrcards">ScratchJr Coding Cards</a> are a deck of 75 activity cards covering fun and exciting projects designed to educate young children with the visual programming language, ScratchJr.</p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-345" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/scratchjr"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/scratchjr_cover-front_revised.png?itok=A_sUPHAx" width="170" height="225" alt="The Official ScratchJr Book" title="The Official ScratchJr Book" /></a></div></div></div> <header> <h2><a href="/scratchjr">Official ScratchJr Book</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Marina Umaschi Bers and Mitchel Resnick</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p><a href="https://www.nostarch.com/scratchjr">The Official ScratchJr Book</a> is an easy-to-use, interactive hands-on guide for parents and teachers, written by the creators of ScratchJr.</p> </div></div></div> <footer> </footer> </article> </div> <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 with-padding-bottom nostrach-views-row"> <article id="node-271" class="node node-product node-promoted node-teaser clearfix"> <div class="field field-name-field-image-cache field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/learnscratch"><img class="img-responsive" src="https://nostarch.com/sites/default/files/styles/uc_product/public/ltpws_coverweb-FINAL_1.png?itok=QSFr8iBT" width="170" height="225" alt="Learn to Program with Scratch" title="Learn to Program with Scratch" /></a></div></div></div> <header> <h2><a href="/learnscratch">Learn to Program with Scratch</a></h2> </header> <div class="field field-name-field-author field-type-text field-label-hidden"><div class="field-items"><div class="field-item even">Majed Marji</div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Discover a step-by-step introduction to computer science as you create fun games, build science simulations, and more in <a href="https://nostarch.com/learnscratch">Learn to Program with Scratch</a>.</p> </div></div></div> <footer> </footer> </article> </div> </div> </div> </section> <section id="block-shariff-shariff-block" class="block block-shariff clearfix"> <div class="shariff" data-services="["facebook","print","twitter"]" data-theme="colored" data-orientation="horizontal" data-twitter-via="nostarch" data-lang="en"></div> </section> </div> </section> <aside class="col-sm-3" role="complementary"> <div class="region region-sidebar-second"> <section id="block-views-856b6b243d5a0c8ed3983ae34f160717" class="block block-views clearfix"> <form class="ctools-auto-submit-full-form" action="/catalog/scratch" method="get" id="views-exposed-form-nostarch-taxonomy-term-page" accept-charset="UTF-8"><div><div class="views-exposed-form"> <div class="views-exposed-widgets clearfix"> <div class="views-exposed-widget views-widget-sort-by"> <div class="form-item form-item-sort-by form-type-select form-group"> <label class="control-label" for="edit-sort-by">Sort by</label> <select class="form-control form-select" id="edit-sort-by" name="sort_by"><option value="created_1" selected="selected">Date: newer first</option><option value="title">Alphabetical by title</option><option value="created_2">Date: older first</option><option value="sell_price">Price: lowest first</option><option value="sell_price_1">Price: highest first</option></select></div> </div> <div class="views-exposed-widget views-widget-sort-order"> </div> <div class="views-exposed-widget views-submit-button"> <div class="col-md-6"></div><div class="col-md-6"></div><div class="clearfix"></div><div class="col-md-6"></div><div class="col-md-6"></div><button class="ctools-use-ajax ctools-auto-submit-click js-hide element-hidden btn btn-info form-submit" type="submit" id="edit-submit-nostarch-taxonomy-term" name="" value="Apply">Apply</button> </div> </div> </div> </div></form> </section> <section id="block-system-navigation" class="block block-system block-menu clearfix"> <h2 class="block-title">Navigation</h2> <ul class="menu nav"><li class="first last leaf"><a href="/user" title="">My account</a></li> </ul> </section> <section id="block-block-52" class="block block-block clearfix"> <p><a href="/mailchimp/subscribe">Want sweet deals? <br />Sign up for our newsletter.</a></p> </section> </div> </aside> <!-- /#sidebar-second --> </div> </div> <footer class="footer container"> <div class="region region-footer"> <section id="block-block-16" class="block block-block clearfix"> <div id="footer-links"> <br> <a class="footer-links" href="/about.htm">About Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/Jobs.htm">Jobs!</a> <span class="footer-divider">|</span> <a class="footer-links" href="/distribution.htm">Sales and Distribution</a> <span class="footer-divider">|</span> <a class="footer-links" href="/rights">Rights</a> <span class="footer-divider">|</span> <a class="footer-links" href="/media.htm">Media</a> <span class="footer-divider">|</span> <a class="footer-links" href="/academic.htm">Academic Requests</a> <span class="footer-divider">|</span> <a class="footer-links" href="/conferences.htm">Conferences</a> <span class="footer-divider">|</span> <a class="footer-links" href="/orderfaq.htm">FAQ</a> <span class="footer-divider">|</span> <a class="footer-links" href="/contactus">Contact Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/writeforus">Write for Us</a> <span class="footer-divider">|</span> <a class="footer-links" href="/privacypolicy.htm">Privacy</a> </div> </section> <section id="block-nostarch-custom-custom-footer-copyright" class="block block-nostarch-custom clearfix"> <div class="block-block"> <p>Copyright 2025. No Starch Press, Inc</p> </div> </section> </div> </footer> <script src="https://nostarch.com/sites/all/modules/contrib/addthis/addthis.js?steosx"></script> <script src="https://nostarch.com/sites/all/libraries/shariff/shariff.min.js?steosx"></script> <script src="https://nostarch.com/sites/all/themes/contrib/bootstrap/js/bootstrap.js?steosx"></script> <!-- Reddit Pixel --> <script> !function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document);rdt('init','t2_6acpsf9y');rdt('track', 'PageVisit'); </script> <!-- DO NOT MODIFY UNLESS TO REPLACE A USER IDENTIFIER --> <!-- End Reddit Pixel --> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9234cd32fe47ff8b',t:'MTc0MjQ2OTQzMC4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html>