+ Computer Science Principles: A New AP Concept Marie desJardins Google CS4HS Professional Development Workshop UMBC, August 6, 2012 + Overview What is “CS Principles?? Goals and motivation Six Computational Thinking Practices Seven Big Ideas of Computer Science Status Phase I pilot courses (2011-2012) Phase II pilot courses (2012-2013) Implementation/adoption timeline Resources Hands-on time! Example active learning activities from pilot courses / UMBC + What is CS Principles? + What’s Wrong with AP CS? AP CS A(B) AP CS is the only AP course whose numbers have declined in recent years The College Board dropped AP CS B after 2009 Completely counterintuitive given the job demand!! Gender balance of current AP CS A is the lowest of any exam (below 20%) Why is this the case? AP CS A(B) = Java programming Not what computer science is really all about Not appealing to many students (especially girls and minorities) Not tied to real problems Not related to bigger ideas in computer science + AP CS Principles: Goals and Motivation Only 9 states (not Maryland...) allow CS to fulfill a math or science requirement at the HS level (none have a CS requirement) Difficult for students to gain enough experience to make it into AP CS; students need intrinsic interest to try CS as an elective Idea: Develop an AP class focused on getting students excited about computer science Especially: appeal to female and minority students Not just a programming class Relevant to the real world Broad view of the discipline of computer science + Computational Thinking Practices 1. Connecting computing... to applications and problems that matter to students and society 2. Developing computational artifacts... that require creativity and problem solving 3. Abstracting... at multiple levels, from logic gates to the human genome 4. Analyzing problems and artifacts... to understand tradeoffs, strategies, and alternative solutions 5. Communicating... about problems, designs, solutions, and behaviors 6. Collaborating... to combine diverse viewpoints and skills to solve problems + Big Ideas of Computer Science 1. Computing is a creative activity. 2. Abstraction reduces information and detail to facilitate focus on relevant concepts. 3. Data and information facilitate the creation of knowledge. 4. Algorithms are used to develop and express solutions to computational problems. 5. Programming enables problem solving, human expression, and creation of knowledge. 6. The Internet pervades modern computing. 7. Computing has global impacts. + AP CS Principles: Status and Timeline + Phase I Pilot Courses Five pilot sites in 2010-2011: Metropolitan State College of Denver: Living in a Computing World UC Berkeley: The Beauty and Joy of Computing UC San Diego: Fluency with Information Technology UNC Charlotte: The Beauty and Joy of Computing University of Washington: Computer Science Principles Ten high schools paired with ten colleges in 2011-2012 Pilot efforts included: Recruitment plan for increasing enrollment of women and underrepresented minorities Detailed, fine-grained course evaluation + Phase II Pilot Courses Phase II pilots include: Portfolio component for assessment (may be used as part of the AP exam) Nine(?) Phase II paired university/high school pilots: http://www.csprinciples.org/home/pilot-sites None in Maryland U Penn (South Philadelphia High School) Virginia Tech (Patrick Henry High School) + AP CS Principles: Topics and Resources + UC Berkeley Beauty and Joy of Computing http://inst.eecs.berkeley.edu/~cs10/ Abstraction Artificial intelligence 3D graphics and computer games Distributed computing Algorithms Limitations and future of computing Programming in Scratch Concurrency, complexity, and recursion Social implications of computing + University of Washington Computer Science Principles http://www.cs.washington.edu/education/courses/cse120/ Image representations CPU / instruction execution “Digitization” (binary representations) Universal computation Social networking Algorithm design and recursion Programming in Processing The Internet/World Wide Web HTML and XML Databases Lightbot 2.0 (programming game environment) Networks and digital communication + UMBC Intro. to Computers and Programming http://www.csee.umbc.edu/courses/undergraduate/100/Fall12/ Grand challenges for CS Networks and the Internet Deconstructing Google Databases and data abstraction Deconstructing a computer Computer security and privacy Binary representations and digital encoding Artificial intelligence Computer graphics and digital entertainment Ethical and social implications of computing The future of computing Programming with Scratch Problem solving with algorithms + Resources ACM Inroads, volume 3, number 2, June 2012 (special sections on CS Principles) http://csprinciples.org Curriculum, pilot sites Attesting schools: http://www.csprinciples.org/home/about-the-project/attestation (UMBC was the second school to sign up...) http://collegeboard.org/csprinciples + Active Learning Activities + Exercise #1: Google Computational thinking practices: Connecting computing; analyzing problems and artifacts Big ideas: Internet; data and information; global impacts Activity: Googlewhack, Googlefights, PageRank, Googlefail Create your own googlefail! Discussion: What happens when we post the googlefail to our site? How long until it shows up in google? What’s happening in between? How does PageRank work? Followup lab/project: Bonus points to the first student who spots the googlefail results; compute PageRank for a simple example network; implement PageRank on a graph + Exercise #2: Huffman Coding Computational practices: Abstracting; developing computational artifacts Big ideas: Abstraction; data and information Activity: Encode a passage from “Sam I Am” using a Huffman encoding (preliminary exercise: translate from Huffman code) Discussion: Why are frequency-based encodings useful? How much space could one potentially save? What are some practical applications? Is Morse code a Huffman (optimal) encoding? Does gzip use Huffman encoding? Followup lab/project: Implement a Huffman encoding and print out length statistics for non-encoded and Huffmanencoded text. Find text sources that would compress a lot, and text sources that wouldn’t compress very much. a l t o SPC y w e ! c m p s u Decode the Message: 0111110010100101011011100011110111110110 010 00111111110 010 0110001110 010 0110001110 010 0110001110 010 0001100000100100000000110 010 011111001000000 01110 r + Green Eggs and Ham I am Sam I am Sam Do you like green eggs and ham? Sam I am That Sam-I-am! That Sam-I-am! I do not like them, Sam-I-am. I do not like I do not like that Sam-I-am! green eggs and ham. + Exercise #3: Map Coloring Computational thinking practices: Abstracting and collaborating Big ideas: Creativity; algorithms Activity: Find a way to color each map region (person) so that no neighbors have the same color Discussion: Why is this a hard problem? How many colors do you really need? What are some strategies? What are some real-world problems that might require similar strategies? Lab/project: Implement a backtracking search algorithm to color a map; optionally integrate into drawing tool to let students create their own map 2 1 5 3 6 4 9 8 7 12 11 16 17 21 15 14 13 19 18 22 10 20