Announcing a New AP Computer Science Principles Course: The Beauty and Joy of Computing from U.C. Berkeley Highlights ● Research­based curriculum that prepares students for new Advanced Placement Computer Science Principles (AP CSP) exam ● Use of engaging Snap ! visual programming language ● Attention to programming and societal implications of computers ● Paid professional development for teachers using a blended learning model with two face­to­face weeks and an online learning component ● Participation in ongoing Community of Practice for teachers of APCS Principles Overview The NYC Department of Education’s Office of Postsecondary Readiness is pleased to announce the launch of a new AP Computer Science Principles course for NYC high schools and a funded program to train 100 teachers over a three­year period, starting with the first cohort of 30 teachers in spring 2015. The course is called Beauty and Joy of Computing (BJC), based on a successful undergraduate course at the University of California, Berkeley (UCB). BJC will be adapted for NYC high schools by a team of educators and researchers from UCB, the DOE, and our partners at the Education Development Center (EDC). The program is underwritten by a grant from the National Science Foundation . The purpose of AP CS Principles and the BJC program is to attract non­traditional computing students (especially female and underrepresented minority students) to the breadth and depth of ideas in modern computer science. The BJC course will prepare students to take the new AP Computer Science Principles exam that will be offered starting in spring 2017. For more information , send an email to apcs@sepnyc.org . Read more about the BJC project and curriculum at bjc.berkeley.edu and AP CS Principles at apcsprinciples.org . 1 Requirements for Participating Principals and Teachers For Principals: ● Program at least one section of the BJC course for each of the three years of the grant period, academic years 2015­16, 2016­17, and 2017­18. ● Commit to offering the AP CS Principles exam to BJC students in May 2017 and subsequent years. ● Implement a recruitment plan with a focus on enrolling female and underrepresented students into the course. See the College Board’s Resources for Recruiting Female and Underrepresented Minority Students . ● Designate one teacher who will participate in professional development, curriculum development, and research and evaluation activities for the duration of the program. For Teachers: ● Teaching : Teachers must teach at least one section of the full­year BJC course as provided by the program team in all three years of the funded program. Course materials will be hosted in the edX web­based learning management system. ● Professional development : Teachers must participate in all PD activities. The schedule for 2015­16 includes both face­to­face sessions and self­paced, online learning. By applying for the BJC program, teachers agree to attend two week­long, full­day sessions during 2015. ○ April 6­10 (spring break) ○ August 3­7 (summer break) Teachers will also participate in self­paced online learning in between these two sessions: ○ April 13­June 21: 10 weeks, an average of 4 hours per week (including 1­hour Skype call) ○ July 6­August 2: 4 weeks, an average of 10 hours per week ■ July 6­10: optional but encouraged face­to­face week with UCB professor Dan Garcia to work on online commitment Teachers will be paid for their participation: 35 hours of per session for each of the face­to­face weeks and a stipend of $2800 for completion of online learning and monthly online activities during the school year. The program will also facilitate an ongoing Community of Practice to support all BJC teachers in NYC. ● Curriculum and performance task development activities including: ○ implementation of the BJC curriculum including CS Principles Performance Tasks as written, and submission of student artifacts electronically ○ providing regular feedback on the use of curriculum materials ○ collaboration with other pilot instructors with regard to classroom instruction and assessment instruments (e.g., projects, homework, exam questions) ○ participation in the scoring of student Performance Task submissions ● Research and evaluation activities including: ○ completion of pre and post surveys for the instructor and students ○ providing enrollment and course completion information for students ○ completion of instructor activity logs and feedback surveys during the course ○ participation in instructor focus groups and/or interviews ○ submission of classroom artifacts and information (e.g., project assignments, midterm and final exams, and scoring distributions) 2 About CS Principles and the Beauty and Joy of Computing course CS Principles is a course framework designed, unlike traditional CS courses, to appeal to a broad range of students, including groups traditionally underrepresented in the field. The framework from the College Board includes seven “big ideas”: creativity , abstraction , data and information , algorithms , programming , the Internet , and global impact . Several versions of CS Principles have been designed, all following the framework but differing in emphasis. BJC stakes out the technological high end of the range. Somewhat more than half the course is computer programming practice, including techniques traditionally considered difficult, like recursion and higher order functions . However, we believe that techniques such as these offer students the "aha moments" and motivation they need to stick with computer programming and see the beauty in code! We also believe that we can teach these ideas to all students, and hold their interest, thanks to the Snap! programming language, which takes the brilliant visual metaphors of Scratch and extends them to include user­defined functions (allowing recursion ) and procedures as data (allowing higher order functions ). Recursion in Snap ! Recursion is a basic computational building block that is best used for problems where a large task can be broken down into smaller, similar sub­tasks. It is a very versatile programming technique; it can provide simple loops that allow you to repeat parts of a program, and it can also generate intricate fractal graphics: shapes that include smaller versions of themselves, like the one on the left. Novices often find this magic; how can you repeat part of a program that you haven’t finished defining yet? But it’s worth learning, because it allows a small program to have a very complex effect. Higher order functions in Snap ! Higher order functions allow students using Snap! to create functions that operate on other functions. Here we use MAP to apply the function ☐×3 to each number in the list. It may sound complex, but this enables students to think about this list of numbers as a single entity, instead of looping through the numbers one at a time. It saves time and creates cleaner, easier to read code. 3 “Why not use Java / Javascript / Python / Processing / Scheme?” Scratch ( scratch.mit.edu ) has had enormous success in getting young programmers up to speed instantly, with no anxiety, partly because syntax rules are visually apparent: a block can be used in a slot if the two are the same shape. Also, no keyboard skills are required. For these and other reasons, several recent CS 0 curricula start with Scratch and then switch to a text­based language. But Snap ! has both the intuitive Scratch interface and the full power of any other programming language. And the visual presentation helps make advanced abstractions such as function­as­data concrete. For example, compare (lambda (x) (* x 3)) or f unction(x){return x*3} to Technology and society The other part of the curriculum that we emphasize is the connection of computer technology with society. It’s ironic that programming has had a bad reputation among kids, because they all love the fruits of programming: cell phones, social networks, and video games. In this part of the course we try to balance a fundamental optimism about the technological future with a critical stance toward any particular technology and its uses. The textbook: Blown to Bits The textbook used in BJC, available free online, Blown to Bits anchors the non­programming topics. Implications of Digital Revolution “Who owns all the data about us?” “Which news sources can we trust?” Ten paradoxical digital data truths that are overturning centuries­old assumptions. Accessible Technology Explanations Binary data, compression, search, cryptography, networking and others explained simply! Praise for Clarity and Timeliness “There is no simpler or clearer statement of the radical change that digital technologies will bring, nor any book that better prepares one for thinking about the next steps. Rich in examples and beautifully accessible in its writing, it should be required reading everywhere.” — Lawrence Lessig, Professor of Law, Stanford University Authors: Hal Abelson, Ken Ledeen, & Harry Lewis Cost: Free online (or $21 at Amazon) URL: bitsbook.com This material is based upon work supported by the National Science Foundation under Grant No. 1441075, Bringing a Rigorous Computer Science Principles Course to the largest School System in the United States . Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. 4