课题基金 / 基金详情

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

项目摘要

项目成果

Brad Myers的其他基金

相似基金

相关文献

中文摘要
翻译
尽管计算机编程以其现代形式存在了半个世纪,但它仍然只有一小部分人可以使用。虽然编程本身就是一项困难的活动,但目前有许多障碍阻碍了很大一部分人学习计算机编程。其中一些障碍可以通过编程环境中的新设施来克服。当前的高级编程环境提供了许多工具来帮助程序员构建程序:用于设置用户界面小部件的直接操作工具、带有颜色和缩进的代码编辑器,以及帮助构建代码的各种弹出菜单。然而,几乎没有支持来帮助用户编写处理对事件和高级行为的动态响应的代码。此外,在出现错误时用于调试代码的工具与60年来提供的工具没有太大不同:打印语句、断点和检查变量的值。尽管研究表明,调试和指定代码的动态行为是编程中最困难的一些方面。在这个项目中,Alice是一个编程环境,它使编写交互式3D图形变得非常容易,并将提供更好的工具来帮助新手和专家程序员开发和调试他们的程序。许多尚未在任何系统中出现的新想法将与以前系统和研究(从未合并到一个系统中)的最佳想法一起实施。对这些想法进行彻底的形成性和终结性用户测试将提供对哪些功能最有用的理解;这将指导Alice的进一步改进,从而尽可能地指导程序员创建正确的工作解决方案。除了解决编程的机械问题外,Alice还提供了一个机会来解决相对较少的女性学习编程的事实,这可以称为社会学障碍。许多女孩在中学时代就离开了科学技术,通常一去不复返。中学女生是一个特别困难的挑战,需要一个高度激励的系统和巨大的机械支持。PIS降低社会障碍的方法是将编程作为其他激励目的的一种手段,特别是讲故事。拟议研究的智力价值将是发现帮助构建和调试程序的新技术,并与新手和专业程序员一起衡量和验证这些技术的影响和有效性。设想用于帮助代码创建的技术包括:用于帮助将故事创意转换为代码的图形化和文本编辑器;用于指定动态行为的示例性和直接操纵技术;检查点和撤消工具,以便程序员可以更容易地探索多个解决方案并在必要时回溯到已知状态;智能复制和粘贴,将有助于转换和重用代码;支持代码协作和共享;工具,将建议运行时错误的可能原因和修复;以及嵌入式专用编辑器,用于帮助构造布尔表达式和科学公式。支持理解、测试和调试的技术包括:提供对数据的简单检查,以便程序员可以知道正在发生什么;在任何程序事件上暂停或断点,包括正在被更改、创建或删除的对象;在运行时改变值以探索效果;提供显示重要事件的时间线可视化,并使程序能够从任何点向前和向后运行;支持询问将图形和程序事件与导致它们发生的代码联系在一起的“为什么”问题;支持询问“为什么不”问题,这将使用启发式方法来提出一些事件没有发生的原因;和搜索功能,这样程序员就可以找到具有特定值的变量或具有某些属性的对象。广泛的影响:这项研究产生的更广泛的影响将有助于使编程对新手程序员更容易理解,对新手和专家程序员都更有效。一个重要的目标群体将是中学男孩和女孩,他们不一定有学习编程的动机。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
  • 依托单位:
海外基金