Lowering the Barriers to Successful Programming
Lowering the Barriers to Successful Programming
批准号:
0329090
负责人:
Brad Myers
金额:
$120.0万
依托单位国家:
美国
项目类别:
Continuing Grant
财政年份:
2003
资助国家:
美国
项目状态:
已结题
起止时间:
2003-08-15 至 2007-07-31
中文摘要
尽管计算机编程以其现代形式已经存在了半个世纪,但它仍然只为一小部分人所使用。 虽然编程是一项固有的困难活动,但目前有许多障碍阻止大部分人口学习计算机编程。 其中一些障碍可以通过方案编制环境中的新设施加以克服。 当前的高级编程环境提供了许多工具来帮助程序员构建程序:直接操作工具来设置用户界面小部件,带有着色和缩进的代码编辑器,以及帮助构建代码的各种弹出菜单。 但是,很少有支持来帮助用户编写处理对事件和高级行为的动态响应的代码。此外,当出现错误时,调试代码的工具与60年来可用的工具没有太大区别:打印语句,断点和检查变量值。 尽管研究表明调试和指定代码的动态行为是编程中最困难的部分,但在这个项目中,Alice,一个使交互式3D图形编程变得非常容易的编程环境,将被增强,以提供更好的工具来帮助新手和专家程序员开发和调试他们的程序。 一些尚未在任何系统中出现的新颖想法将被实施,沿着来自先前系统和研究的最佳想法(从未被组合成一个系统)。 对这些想法进行彻底的形成性和总结性用户测试,将有助于了解哪些功能最有用;这将指导Alice的进一步改进,使其尽可能地指导程序员创建正确的工作解决方案。除了解决编程的机械问题,Alice提供了一个机会来解决相对较少的女性学习编程的事实,可以称之为社会学障碍。 许多女孩在中学时期就离开了科学和技术,通常再也没有回来。 中学女生代表了一个特别困难的挑战,需要一个具有巨大机械支持的高度激励系统。 PI降低社会障碍的方法是提供编程作为其他激励目的的手段,特别是讲故事。拟议研究的智力价值将是发现新技术,以帮助程序的构建和调试,并测量和验证这些技术对新手和专家程序员的影响和有效性。 设想的帮助代码创建的技术包括:用于故事板的图形和文本编辑器,这将有助于将故事想法转换为代码;用于指定动态行为的演示和直接操作技术;检查点和撤消功能,以便程序员可以更容易地探索多个解决方案并在必要时回溯到已知状态;智能复制和粘贴,这将有助于转换和重用代码;支持代码协作和共享;提供运行时错误的可能原因和修复建议的工具;以及嵌入式专用编辑器,以帮助构建布尔表达式和科学公式。 支持理解,测试和调试的技术包括:提供简单的数据检查,以便程序员可以告诉正在发生的事情;暂停或中断任何程序事件,包括正在更改,创建或删除的对象;在运行时更改值以探索效果;提供时间线可视化以显示重要事件并使程序能够从任何点向前和向后运行;支持询问“为什么”的问题,将图形和程序事件与导致它们的代码联系起来;支持询问“为什么不”的问题,这将使用语法来提出某些事件没有发生的原因;以及搜索功能,使程序员可以找到具有特定值的变量或具有某些属性的对象。这项研究产生的更广泛的影响将有助于使编程更容易为新手程序员所接受,并且对新手和专家程序员都更有效。 一个重要的目标群体将是中学的男孩和女孩,他们不一定有动力学习编程。 PI相信他们可以使编程对这些观众来说是可访问的和有吸引力的,同时使有经验的程序员更容易。 将在设计和实施的所有阶段通过全面的用户测试来评估这些好处。
英文摘要
Although computer programming has existed in its modern form for half a century, it remains accessible only to a small fraction of the population. While programming is an inherently difficult activity, there are currently many barriers that prevent large portions of the population from learning to program a computer. Some of these barriers can be overcome through new facilities in programming environments. Current advanced programming environments provide a number of tools to help programmers construct programs: direct manipulation facilities to set up user interface widgets, code editors with coloring and indenting, and various pop-up menus that help construct code. However, there is little support to help users write the code that handles the dynamic responses to events and high-level behaviors. Furthermore, the tools for debugging code when something goes wrong are not much different than what has been available for 60 years: print statements, break-points and inspecting the values of variables. This is in spite of the fact that research shows that debugging and specifying the dynamic behavior of code are some of the most difficult aspects of programming.In this project, Alice, a programming environment that makes it very easy to program interactive 3D graphics, will be augmented to provide significantly better tools to help both novice and expert programmers develop and debug their programs. A number of novel ideas that have not yet appeared in any system will be implemented, along with the best ideas from prior systems and research (which have never been combined into one system). Thorough formative and summative user testing of the ideas will provide an understanding of which of the features are most useful; this will guide further refinement of Alice so it does the best possible job of guiding programmers to create correctly working solutions.In addition to addressing the mechanical issues of programming, Alice provides an opportunity to address the fact that relatively few women learn to program, which can be called a sociological barrier. Many girls turn away from science and technology during their middle school years, usually never to return. Middle school girls represent a particularly difficult challenge, requiring a highly motivating system with tremendous mechanical support. The PIs' approach to lowering the social barriers is to provide programming as a means to other motivating ends, especially storytelling.The intellectual merit of the proposed research will be to discover new techniques to aide in the construction and debugging of programs, and to measure and validate the impact and effectiveness of these techniques with both novice and expert programmers. The techniques envisioned to help with code creation include: graphical and textual editors for storyboards that will help transition story ideas into code; demonstrational and direct manipulation techniques for specifying dynamic behaviors; check-pointing and undo facilities so programmers can more easily explore multiple solutions and backtrack to a known state when necessary; smart copy-and-paste that will help in transforming and reusing code; support for collaboration and sharing of code; tools that will suggest likely causes and fixes for run-time errors; and embedded special-purpose editors to help construct Boolean expressions and scientific formulas. Techniques to support understanding, testing and debugging include: providing easy inspection of data so programmers can tell what is happening; pausing or break-pointing on any program event including objects that are being changed, created, or deleted; changing values at run time to explore the effects; providing a time-line visualization to show important events and enabling programs to run forwards and backwards from any point; support for asking "why" questions that will tie graphics and program events to the code that caused them; support for asking "why not" questions, which will use heuristics to propose reasons why some event did not happen; and search capabilities so programmers can find variables with particular values, or objects with certain properties.Broader Impacts: The broader impacts resulting from this research will be to help make programming more accessible to novice programmers, and more effective for both novice and expert programmers. One important target group will be middle school boys and girls who are not necessarily motivated to learn programming. The PIs believe they can make programming accessible and compelling to this audience, while at the same time making it easier for experienced programmers. These benefits will be evaluated using thorough user tests at all points of the design and implementation.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
SHF: Small: Personalizing API Documentation
-
批准号:2007482
-
项目类别:Standard Grant
-
资助金额:$50.0万
-
财政年份:2020
-
负责人:Brad Myers
-
依托单位:
III: Large: Collaborative Research: Analysis Engineering for Robust End-to-End Data Science
-
批准号:1856641
-
项目类别:Continuing Grant
-
资助金额:$71.25万
-
财政年份:2019
-
负责人:Brad Myers
-
依托单位:
CHS: Small: Multimodal Conversational Assistant that Learns from Demonstrations
-
批准号:1814472
-
项目类别:Standard Grant
-
资助金额:$49.9万
-
财政年份:2018
-
负责人:Brad Myers
-
依托单位:
TWC: Small: Empirical Evaluation of the Usability and Security Implications of Application Programming Interface Design
-
批准号:1423054
-
项目类别:Standard Grant
-
资助金额:$49.91万
-
财政年份:2014
-
负责人:Brad Myers
-
依托单位:
HCC: Large: Collaborative Research: Variations to Support Exploratory Programming
-
批准号:1314356
-
项目类别:Standard Grant
-
资助金额:$92.95万
-
财政年份:2013
-
负责人:Brad Myers
-
依托单位:
HCC: Small: Better Tools for Authoring Interactive Behaviors
-
批准号:1116724
-
项目类别:Standard Grant
-
资助金额:$49.52万
-
财政年份:2011
-
负责人:Brad Myers
-
依托单位:
Pilot: Exploratory Programming for Interactive Behaviors: Unleashing Interaction Designers' Creativity
-
批准号:0757511
-
项目类别:Standard Grant
-
资助金额:$0.0万
-
财政年份:2008
-
负责人:Brad Myers
-
依托单位:
CPA-SEL: Better Tools for Software Understanding
-
批准号:0811610
-
项目类别:Standard Grant
-
资助金额:$30.0万
-
财政年份:2008
-
负责人:Brad Myers
-
依托单位:
Automatically Generating Consistent User Interfaces for Multiple Appliances
-
批准号:0534349
-
项目类别:Continuing Grant
-
资助金额:$41.2万
-
财政年份:2005
-
负责人:Brad Myers
-
依托单位:
Using Handhelds to Help People with Motor Impairments
-
批准号:0308065
-
项目类别:Continuing Grant
-
资助金额:$47.52万
-
财政年份:2003
-
负责人:Brad Myers
-
依托单位:
ITR: Collaborative Research: Dependable End-User Software
-
批准号:0324770
-
项目类别:Continuing Grant
-
资助金额:$32.4万
-
财政年份:2003
-
负责人:Brad Myers
-
依托单位:
Making it Easier to Interact with Technology Through Handheld Personal Universal Controllers
-
批准号:0117658
-
项目类别:Standard Grant
-
资助金额:$50.59万
-
财政年份:2001
-
负责人:Brad Myers
-
依托单位:
A More Natural Programming Language for Children
-
批准号:9900452
-
项目类别:Continuing Grant
-
资助金额:$40.0万
-
财政年份:1999
-
负责人:Brad Myers
-
依托单位:
DLI-Phase 2: An Intelligent Authoring Tool for Non-Programmers Using the Informedia Video Library
-
批准号:9817527
-
项目类别:Continuing Grant
-
资助金额:$45.0万
-
财政年份:1999
-
负责人:Brad Myers
-
依托单位:
Demonstrational Interfaces for Visualization and End-User Programming
-
批准号:9319969
-
项目类别:Continuing Grant
-
资助金额:$24.0万
-
财政年份:1994
-
负责人:Brad Myers
-
依托单位:
Using Demonstration in User Interfaces
-
批准号:9020089
-
项目类别:Standard Grant
-
资助金额:$26.91万
-
财政年份:1991
-
负责人:Brad Myers
-
依托单位:
海外基金