Pedagogic Visual Programming Languages and JubJub Erik Pasternak [email protected] Adviser: Illah Nourbakhsh Committee Members: Aaron Steinfeld and Leigh Ann Sudol Graphic Designer: Cheng Xu CREATE Lab, CMU.
Download ReportTranscript Pedagogic Visual Programming Languages and JubJub Erik Pasternak [email protected] Adviser: Illah Nourbakhsh Committee Members: Aaron Steinfeld and Leigh Ann Sudol Graphic Designer: Cheng Xu CREATE Lab, CMU.
Pedagogic Visual Programming Languages and JubJub Erik Pasternak
Adviser: Illah Nourbakhsh Committee Members: Aaron Steinfeld and Leigh Ann Sudol Graphic Designer: Cheng Xu CREATE Lab, CMU
2
Industry Demands Unmet
1.5 million computer specialist jobs in US by 2016 (ncwit ‘09) US graduates will fill only 53% of demand (ncwit ‘09) 20% of CS degrees to women in 2006 (NSF ‘09) 28% of CS degrees to minorities in 2006 (NSF ‘09) Decline in CS interest since 2000 (CRA ‘05) 79% decline in women’s interest 2000-2008 (ncwit ‘09) Lots of jobs, not enough people
3
Outline
1.
1.
2.
3.
4.
Motivation What are the problems?
What are Visual Programming Languages?
How do they help? Interviews and Research 2.
1.
JubJub Goals 2.
3.
4.
Concept Design User Testing Results and Discussion
4
Motivation
5
Barriers to Entry
Misconceptions peak at 10 th grade (Gupta ‘00) Would like to introduce concepts earlier Poor support in most k-12 schools (Kozol ‘92) Not enough CS teachers/classes Often little direction from administration Gender, race, and income specific challenges (Margolis ‘08) Want to support self-exploration at an early age (Maloney ’08)
6
Challenges of Programming
High cognitive load on learning a first language (Lahtinen ‘05) Syntax IDE keywords error messages Gulf of Execution and Gulf of Evaluation(Norman ‘88) How does the environment help translate intention into code?
How does the environment show what is happening?
Text is hard
Other Issues
Motivation and relevance (Kelleher ‘07) What rewards do students see?
How soon do they see these rewards?
How does it relate to their daily lives?
7 Make it immediately usable and interesting
8 1.
2.
3.
Summary
Allow students to explore programming on their own Provide visual elements to scaffold students programming Provide examples and support that is relevant to daily lives
9
What is a Visual Programming Language (VPL)?
10
Visual Programming Languages “Conceptual models of programming are the most important to learn and syntax and typing really just get in the way.” –Evelyn Eastmond
11
Benefits of VPLs
Reduces cognitive load (Kelleher ‘05) Eliminates syntax Provides visual hints to use Reduces available mistakes Is intuitive to today’s students Empowers (Maloney ‘08) Allows powerful results to be achieved quickly Provides immediate reward and motivation
12
Interviews
13
Identifying a need
Interviews with researchers and educators 9 researcher and educators Members of Scratch (MIT), Alice (CMU), RoboLab (TUFTS), and BlueJ (University of Kent) Guided open format interviews Focused on experiences with students and IDEs Review of other systems and research Used observations from interviews and literature
14
Interviews
VPL researchers are encouraging Several different approaches, successes and problems There is a need for a bridge between a simple VPL and the more complex languages of industry Many languages provide a simple first look at programming They are often restricted to a specific domain
15
Representative Systems
Three systems Scratch Alice RoboLab Popular systems Show three approaches Many observations gleaned from interviews and literature review
16
17
18
19
Ideas
Combined features of current systems Attempt to fill gap between current VPLs and commercial languages Start simple Expand Add existing libraries, robotics, graphics, etc.
Go from basic commands to full OOP Direct translation to commercial languages Conceptually analogous to textual languages Built in support for standard IDE features Debugging, on-write error checking, etc.
20
Goals
Goals 1.
2.
3.
4.
5.
6.
7.
Explicitly support the creation of language subsets Make focusing on single concepts easy Support integration with varied materials Build a scalable framework Make it easy to share Help students transition to popular commercial languages (Java, C, and C++ are most used) Maintain the simplicity and usability that makes VPLs a powerful tool Targeted at 6 th -12 th Transition language grade
21
JubJub
22
Goals
Goals 1.
2.
3.
4.
5.
6.
7.
Explicitly support the creation of language subsets Make focusing on single concepts easy Support integration with varied materials Build a scalable framework Make it easy to share Help students transition to popular commercial languages (Java, C, and C++ are most used) Maintain the simplicity and usability that makes VPLs a powerful tool Targeted at 6 th -12 th Transition language grade
23
Integration
Modular design Skinnable Add and remove content Allows blocks of code to be treated as a black box A block has inputs, outputs, and a function Blocks can access robotics, graphics, sound, etc.
Can access underlying code
24
Scalable
Support for advanced constructs Switch statements, multiple returns Made it easy to tie in outside libraries
25
Transitions
Close conceptual mapping to commercial languages Call by reference Classes and Methods Interface has adjustable level of transparency
26
Simplicity
Simple to use basic features Start with drag-and-drop Small initial set of blocks Support for more advanced features Simple access through the interface
27
28
29
30
31
Pilot Study: Goals
Test creation of a subset for specific task Ensure simplicity had been maintained
32
Pilot Study: Details
Six novice programmers 2 or fewer college programming classes 3 men, 3 women Mix of majors: ECE, Design, Math Two programmed regularly, all had used more than one language Two are non-native English speakers 20 minute interview 20 minute programming task with prototype Follow-up questions about prototype
33
Pilot Study: Interview
Focused on learning a first programming language Asked about IDEs they had used Interesting Notes: Those who felt more confident with programming mentioned exposure through a parent None had used a VPL before Talking about IDEs: Simplicity is important Want help from IDE (code completion, brace highlighting) Need clear errors and simple debugging tools
34
Pilot Study: Prototype
Single method editing Two tabs and a small set of blocks Used the Finch robot USB tethered robot for CS Education Given ~2 minute introduction to the environment Asked to make the Finch ‘dance’ using at least two behaviors
35
36
37
Goals
Goals 1.
2.
3.
4.
5.
6.
7.
Explicitly support the creation of language subsets Make focusing on single concepts easy Support integration with varied materials Build a scalable framework Make it easy to share Help students transition to popular commercial languages (Java, C, and C++ are most used) Maintain the simplicity and usability that makes VPLs a powerful tool Targeted at 6 th -12 th Transition language grade
38
Results
All six completed Fastest in under 3 minutes Longest over 20 minutes Three wanted to keep going after completion Two of them were women Only one created a compile-time error No errors were unrecoverable Visualization of program flow would have helped Block usage All used while, two used an if/else 5 used a block that hadn’t been explained
39
Results(cont.)
Most used the Java to figure out the blocks Would stop looking at Java after first few minutes Less experienced programmers liked it more More experienced felt restricted All of them said it was very natural Drew comparisons to other devices they’ve used “It’s just like iPhone”
40
Conclusions and Future Work
Interface is intuitive and simple Effective customization to task Need to look more at debugging Program flow visualizations Variable value tracking As they improve they want access to the code directly Support for editing code within blocks Expression editing Integrate with a text based IDE (BlueJ, Eclipse) Interface for creating and sharing new sets of blocks will be critical
41
Acknowledgements
Illah Nourbakhsh, my adviser Cheng Xu, who created the graphics Leigh Ann Sudol and Aaron Steinfeld, my committee members and a great help Interviewees Users My housemates, who listened to this talk several times
42
References
NCWIT, 2009. http://ncwit.org/ NSF, 2009. http://www.nsf.gov/ CRA, 2009. http://www.cra.org/ Gupta, U. G. & Houtz, L. E. “High School Students' Perceptions of Information Technology Skills and Careers.” Journal of Industrial Technology, 2000 Kozol, J. “Savage Inequalities: Children in America's Schools.” Harper Perennial, 1992 Margolis, J. “Stuck in the Shallow End: Education, Race, and Computing.” The MIT Press, 2008 Maloney, J. H. et al. “Programming by choice: urban youth learning programming with scratch” SIGCSE, 2008 Norman, D. “The Design of Everyday Things.” Doubleday, 1988 Lahtinen, E.; Ala-Mutka, K. & Järvinen, H.-M. “A study of the difficulties of novice programmers.” ITiCSE, 2005 Kelleher, C. & Pausch, R. “Using storytelling to motivate programming.” Commun. ACM, 2007
43
Questions?
44
Architecture
45