Skip to Content

Starting with Scratch (literally) in CS 1

Scratch is a powerful way to introduce programming in college-level computer science classes for both majors and non-majors. The ease with which interactive graphical programs can be created in Scratch, combined with its freedom from syntax errors and fluid development process, results in high levels of student engagement and motivation. Starting with Scratch levels the playing field and helps retain students who come into the class without prior programming experience, even when the course moves on to a text-based language such as C or Java.

This page collects materials for a workshop given at the SIGCSE conference, March 10-13, 2010.

At this workshop, educators from Harvard and The College of New Jersey explain how they use Scratch to introduce programming in the first weeks of their computer science classes. They describe the pedagogy they use and show how they transition from Scratch to C or Processing.

This material is aimed at those teaching introductory computer science at the college level, but it could also be applied to high school computer science classes.

Here is the workshop agenda.

Scratch Resources

Download:  http://infoscratch.media.mit.edu/Scratch_1.4_Download 

Getting started: http://info.scratch.mit.edu/Support

SIGCSE Scratch User and Gallery

http://scratch.mit.edu/users/sigcse2010

Materials from Harvard's CS50

CS50 is Harvard College's introductory course for majors and non-majors alike, a one-semester amalgam of courses generally known as CS1 and CS2.  Typical enrollment is 300 students.  Scratch is used in the first two lectures and the first assignment; the rest of the course is taught in C, PHP, and JavaScript

Slides: cs50.pdf

Tutorial: http://www.cs.harvard.edu/malan/scratch/

Scratch projects used in CS50 lecture demos: cs50Examples.zip

Galleries of student-created Scratch projects:

2007 http://scratch.mit.edu/galleries/view/5678

2008 http://scratch.mit.edu/galleries/view/28704

2009 http://scratch.mit.edu/galleries/view/57866

Materials from TCNJ CSC 101 and CSC 250

CSC 101/IMM 120, Introduction to Interactive Computing is a required course for the Interactive Multimedia major in which students are expected to emerge with an appreciation for and novice competence in programming and software design. They are also expected to have conceptual knowledge of how digital media is rendered. As such this is not quite a CS 0 course nor is it a traditional CS 1 course. CS .5 perhaps? Scratch is used in the first three weeks. Processing, including sound libraries, are used in the remainder of the course, integrated with exposure to webpage design using XHTML, XML and CSS. Average class size is 18.

CSC 250, Accelerated CS 1 & 2 is a one semester course for students with some programming experience (e.g. the CS AP A exam) who want a refresher in foundations of programming, learned CS 1 with C rather than Java, or have other introductory programming experience. CS 1.5 perhaps?. The course emphasizes software design in a collaborative setting. Scratch is used in the first two weeks for an individaul assignment. The remainder of the course uses Processing and Java with two large group projects where individuals are assigned components of a large system. The last project requires students to prototype a small "serious" game about environmental sustainability, prototyping the concept in Scratch, and implementing it in Processing or Java. Average class size is 15.

Sample Quizzes from early in the semester

Software Design Materials from CSC 250

Example of Scratch prototyping and Processing Implementation from CSC 250:

Reuse.zip

Unzip, load "reuse demo.sb" into Scratch. Run applet/index.html in a browser (requires Java 5.0 or later)

A 'teachable moment' example: wodunne's 'pong'. momgeek's code sample.

Galleries of student-created Scratch projects:

2007: http://scratch.mit.edu/galleries/view/6097, http://scratch.mit.edu/galleries/view/5668

2008: http://scratch.mit.edu/galleries/view/28374, http://scratch.mit.edu/galleries/view/12597

2009: http://scratch.mit.edu/galleries/view/57636, http://scratch.mit.edu/galleries/view/40579, http://scratch.mit.edu/galleries/view/38693

Links to recent course websites:

CSC 101/IMM 120

CSC 250

Workshop Evaluations (workshop attendees only)

If you attended this workshop at SIGCSE please fill out the evaluation form at:

http://www.surveymonkey.com/s/SIGCSE2010Workshops