My Life as a Prof - MAPLE Lab
Download
Report
Transcript My Life as a Prof - MAPLE Lab
+
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