Learning to Program With Alice

farrightSoftware and s/w Development

Aug 15, 2012 (5 years and 3 days ago)

299 views

סילא תביבס


לש חותיפה ילוקיש
הביבסה
,
ידימלתל דומיל ירמוח
ןוכית





Stephen Cooper

Stanford University

coopers@stanford.edu


2 July, 2012






Overview


Background


declining CS enrollments


Past and Present work with Alice


Program Visualization


Description of Alice


Demo


Results from NSF studies


How Alice is being used


Alice Support for teachers


Future work with Alice


Alice 3.0


Q&A

US National Science
Foundation support for Alice
work


NSF 0126833


CCLI EMD Proof of Concept


NSF 0302542


ATE


NSF 0339734


CCLI Project


NSF 0511940


ASA


NSF 0618461


CCLI Level 2


NSF 0624654


ITEST


NSF 0736697


CCLI Phase 1


NSF 0724890


CISE special project


NSF 1031351


ITEST Scale
-
Up


NSF 1021975


CCLI Level 2






Background


Declining student enrollments


High attrition in introductory computing
classes

The Shrinking CS pool


Women and
minorities are
making up an
increasing
percentage of
undergraduate
student
populations

According to the Taulbee survey, the total number of students
dropped to 1% in 2005, and held steady at 1% for 2006
-
2009

Attrition in introductory computing


Dropout rate in first year


Informal surveys: 30


70%


Typically 35


50 %


Especially high for women and minorities
(women receive fewer than 20% of the
Bachelors degrees in computing)


In 2011, the number was 12% (see the Taulbee
survey for more details)


Why? Possible reasons


Adding object
-
oriented concepts to first
year courses has increased the number of
topics to be covered.



increased teacher prep time



increased student frustration


The way we teach programming has not
really changed in the past 25 years



Game Plan


Develop an innovative instructional approach to
develop
intuitive understanding

of


Fundamental programming concepts


Sequence


Decisions


Repetition


Methods and parameters


OOP concepts


objects and classes


encapsulation


methods and parameters


inheritance




Visualization in CS


The use of graphics in teaching CS
concepts has taken three major forms:


Algorithm Animation


Simulation


Program Visualization





Program Visualization


Program visualization allows a student to
write a program and view a visual
representation of execution


Primary use has been for introducing math
and programming concepts


Examples: Logo, Karel the Robot

The Alice Software


A
3D interactive animation environment



A
program visualization

tool


The program state is visible to the student


State changes are animated



A tool for teaching
fundamental programming

concepts



object oriented


Alice features


Uses
3D graphics

to engage students


Has a
“smart” drag
-
and
-
drop editor

that prevents
syntax errors






Appeals to
wide audience



Storytelling



(young women, minority students)



Interactive computer games



(young men)

Alice Features


Makes
objects

something students
can see and relate to






Has a
java syntax mode

to ease the
transition to C++/Java/VB.net



Our pedagogic approach


Emphasize
design

using storyboards


Program
objects
-
early

or
objects
-
first


Agnostic with respect to the early introduction
of classes


Allow an (optional) early introduction to
events



Alice Demo



Alice language features


Objects are stateful, but
manipulation of state
is limited

to a set of primitive functions


Challenges of teaching state transformations and functions



Separation of the
functional

and
imperative

aspects of the language, like Algol


Algol "is a language so far ahead of its time, that it was not
only an improvement on its predecessors, but also on nearly
all its successors“ (Tony Hoare)

NSF Proof of Concept study:

High Risk Students


We examined historical data at
Ithaca College and Saint Joseph’s
University for 5 years


Found that


Percentage of women in CS classes
is typically low


Students at
high risk

of DWF


Have little or no previous programming
experience


Are not ready for calculus



Results of Proof of Concept study


As used towards retention of CS majors



GPA in CS1 improved


Grades went from C to B


at
-
risk students (students with little to no prior
programming experience and/or weak
mathematics background)



Increased retention into CS2


from
47% to 88%



Improved attitudes

towards computing

Completed NSF
-
sponsored Alice
(education) projects


Proof
-
of
-
concept


study of the use of 3D animated program
visualization to introduce programming
concepts to high risk students


CCLI Project


Extend study to other colleges & universities
with varying student backgrounds,
demographics, courses


ATE


Modify approach for community college
environment & students

Current NSF
-
sponsored Alice
(education) projects


CCLI level 2


Combining Alice with Media
Computation (developed by M. Guzdial
at Ga. Tech) in CS1


ITEST


Providing professional development and
assistance to high school and middle
school teachers in 6 regions with
incorporating Alice into their curricula


ITEST Scale
-
Up

Current NSF
-
sponsored Alice
(education) projects


ITEST


Results from pilot in Va Beach


More than tripling of students taking intro to
computing class


Tripling of students taking AP CS A


Interesting anecdotal results with students
having high
-
functioning forms of autism


Current (ITEST Scale
-
Up)


750 HS and MS teachers (in NC, SC, MS)


K
-
12/higher education partnerships

How Alice is being used


In
pre
-
CS1




course for majors and students considering a CS
major


As a conceptual introduction in

CS1


The

Introduction to programming

course



non
-
majors



attract students to become CS majors


In
computer literacy



problem
-
solving component


In
Pre
-
AP

in high schools


In various capacities at middle school

Alice usage


In any given term, ~200 colleges are using
LTPWA)


Alice has been likely used in > 1000 high
schools (self
-
reporting)


Increasing adoption in UK, Costa Rica,
Brazil, Taiwan and other countries

Alice support for teachers


Websites with access to curricular
materials


Alice teacher professional development
(generally in summer)


Alice teacher communities (e
-
mail
dslater@andrew.cmu.edu)

Where to go for curricular ideas



www.aliceprogramming.net



http://www.cs.duke.edu/csed/alice09/


http://www.cs.duke.edu/csed/alice/aliceInScho
ols/



There are several others:


http://www.dickbaldwin.com/tocalice.htm



etc.





www.aliceprogramming.net


What you’ll find


Sample syllabi


Solutions to chapter exercises/projects


3D Models


Sample student projects


Sample tests

www.aliceprogramming.net



Strengths


Complete and organized courses/curricula


Materials are often used “as is”


Appropriate for college and HS


Weaknesses


Not as usable for younger students


Not ready for informal education

http://www.cs.duke.edu/csed/alice09


What you’ll find


Tutorials (but not stencils)


Videos of Alice worlds


Example worlds


http://www.cs.duke.edu/csed/alice09


Strengths


Excellent start
-
up materials


Useful for middle and high school


Good for informal education


Weaknesses


Many of the tutorials are not problem
-
based


they tend to focus more on the
mechanics of how to do something


The teacher still must incorporate these
materials into a course/unit/lesson


Future Alice versions


Alice 3.0


Includes (EA) SIMS 3D models


And their (the Sims’) existing
primitive animations


As will include many useful
primitives such as
walk

and
touch


Has the ability to generate Java
code


Provide its own Java IDE (within
Netbeans)


Available from
www.alice.org/3





Demo Alice 3

Questions?

Steve Cooper


coopers@stanford.edu