Many school districts ask suppliers of computing services to sign privacy agreements making certain guarantees about how student Personally Identifiable Information (PII) is collected, stored, and used. We, the developers of the Beauty and Joy of Computing (BJC) curricula (both BJC CSP for high school Advanced Placement courses and BJC Sparks for middle school and early high school), are committed to privacy—for students, teachers, and everyone. We do not display advertising. We do not profile users, period. We do not share data with third parties. However, BJC does not have the capacity to sign privacy agreements for schools. Fortunately, students can use BJC curricula and the Snap! programming language without sharing any PII.
It helps to understand that there are three different (free) services involved:
There are several ways for students to store their Snap! projects. Teachers should work with their school administrators and/or IT support to determine which of the following approaches is right for your context, and students should be instructed in the selected approach using the curriculum page provided in the first lab of the first unit of the BJC course you are using.
Each Snap! account requires one piece of PII: an email address to be used for password reset requests. The best practice for schools that want to use the Snap! Cloud is to set up student accounts in bulk (separate from any personal Snap! account a student might have) and to use a teacher's email address for all of them. (Note that this process requires verification that the user is, in fact, a teacher, and this process can take several days.)
Apart from the issue of PII, there are other practical reasons for using the teacher's address: It allows the teacher to handle lost passwords on the spot without having to work out which email a student might have used during sign-up. And it means the accounts are ready to go on the first day of class without using class time for creating and troubleshooting the creation of Snap! accounts.
There are several steps for teaching student Snap! accounts in bulk...
To create a Snap! account, go to http://snap.berkeley.edu/sign_up. You can start using your account immediately.
(You will need to verify your account by clicking the link sent by email within 3 days. If you enter your email address incorrectly, you will not receive the link, so double-check before submitting the form. If you don't verify your account, it may be removed.)
After creating your Snap! account, go to teachers.bjc.berkeley.edu, and fill out that form (including your Snap! username) so we can verify that you actually are a teacher. (This process also grants access to the BJC CSP solutions and assessments.) It may take a few days to verify your teacher account.
While logged in to a teacher's Snap! account, go to snap.berkeley.edu/teacher, and follow the instructions for bulk account creation. Provide these teacher-made Snap! usernames and passwords to students. It's important not to undo the anonymity of your student accounts by, for example, using student ID numbers or names in their Snap! usernames. Student ID numbers and names are PII, and usernames are publicly visible (see "Additional Considerations Regarding PII" below).
Creating a CSV (short for Comma-Separated Values) file is simple. You can construct it as a text file with separate lines and commas between usernames and passwords as shown on the "Bulk account creation" page, or you can build it as a spreadsheet (shown below left). The important thing is to select "Save As" and save it as a CSV file (shown below right).
It is good practice for students to reset their passwords via the Snap! Cloud menu as passwords should be private. If a student forgets theirs, you can always reset it via the snap.berkeley.edu/teacher page by clicking "My Learners".
It's common for students to develop personal Snap! projects on their own time (this is fantastic and a testament to their engagement in your class). They may create personal Snap! accounts (perhaps using a guardian's email address) or they may use their school account, unless you specify otherwise.
Have a plan for what happens to teacher-managed student accounts after the end of the school year. Consider having students download their favorite projects as XML files and transfer them to a personal system (such as a flash drive or a personal Snap! account if they have one).
According to COPPA, students age 13 and older are legally able to provide their own email address during signup. So having older students create their own accounts is an option for schools where student privacy policies permit this. Sign-up instructions (similar to those in the "Creating Your Own Snap! Account" section above) are in Unit 1 Lab 1 of the student-facing curriculum pages. We do not recommend this option if PII privacy is an issue.
Students can use Snap! without sharing anyone's PII.
To use Snap! in this way, students connect to the Snap! website as usual: snap.berkeley.edu/run, and when they want to save a project, they go to the Snap! File menu (
), choose "Save", and select "Computer" from the "Save Project" dialog (shown right).
The project will be saved in the browser's download folder as an XML file.
For class assignments, students can submit their projects as XML files via a school-approved transmission method. Teachers can open a locally stored XML file in Snap! by dragging the file into the Snap! window or by selecting "Open..." from the Snap! File menu and locating the file on their computer.
(Please note that we do log IP addresses of site users so that we can mitigate site abuse, and so we could possibly determine that someone at your school has used Snap!, though we wouldn't know who. IP addresses alone are not generally considered PII. If this is a concern for your school, the best option is to set up your own Snap! server.)
You can also set up your own Snap! server by downloading the Snap! GitHub repository and hosting it on a school-trusted server. If you do this, your IT person should check regularly for updates, which are announced on the Snap! forum and the BJC Teachers forum on Piazza. This advanced option requires commitment to navigating unexpected technical challenges and to maintaining your system over time.
Unfortunately, no, we can't sign a contract with your school. We've looked into this from many angles over the years. We (the BJC and Snap! developers) are not authorized to sign contracts on behalf of our respective organizations; reviewing each school contract costs money (and BJC curricula are grant- and donation-funded); and school contracts (we've read many) often require case-by-case modification of our existing services that we are not equipped to provide (e.g., audits, daily backups, and/or interfacing with classroom management systems). We are a small group of half a dozen developers, with no IT staff. Commercial providers of computing services factor the cost of services such as these into their fees.
Fortunately, you don't need a contract with us, because your students can use Snap! and BJC without sharing PII.