# 编程开发 Program Development


# Grade 2 ( 5-7岁 ) 要掌握的程度

People develop programs collaboratively and for a purpose, such as expressing ideas or addressing problems.

People work together to plan, create, and test programs within a context that is relevant to the programmer and users. Programming is used as a tool to create products that reflect a wide range of interests, such as video games, interactive art projects, and digital stories.

Crosscutting Concept: Human–Computer Interaction Connection Within Framework: 3–5.Impacts of Computing.Culture

为了同一个目的(比如表达想法或者解决问题), 人们在一起合作开发程序.

在程序员和用户的帮助下, 人们一起规划程序、创建程序、测试程序.

“编程”作为一种工具, 可以被用来创造有广泛受众的产品, 比如视频游戏、互动艺术项目和数字动画故事.


# Grade 5 ( 8-11岁 ) 要掌握的程度

People develop programs using an iterative process involving design, implementation, and review. Design often involves reusing existing code or remixing other programs within a community. People continuously review whether programs work as expected, and they fix, or debug, parts that do not. Repeating these steps enables people to refine and improve programs.

Design, implementation, and review can be further broken down into additional stages and may have different labels. The design stage occurs before writing code. This is a planning stage in which the programmers gather information about the problem and sketch out a solution. During the implementation stage, the planned design is expressed in a programming language (code) that can be made to run on a computing device. During the review stage, the design and implementation are checked for adherence to program requirements, correctness, and usability. This review could lead to changes in implementation and possibly design, which demonstrates the iterative nature of the process. A community is created by people who share and provide feedback on one another’s creations.

Crosscutting Concepts: Human–Computer Interaction; System Relationships Connection Within Framework: K–2.Computing Systems.Troubleshooting

人们通过迭代过程来开发程序, 这个迭代过程包括设计、实施、测试. 设计通常涉及复用现有的代码或者对开源社区中对代码进行改编. 人们不断审查程序是否按照预期运行, 并修正或者调试不符合预期的部分, 重复这些步骤使人们能够完善和改进程序.

设计、实施、测试可以进一步细分为更多的阶段, 不过这三者可能有不同的叫法.

  • 设计阶段: 发生在编写代码之前, 这是一个计划阶段, 在这个阶段中, 程序员收集有关问题的信息并勾画出解决方案.
  • 实施阶段: 以代码来实现计划中的设计, 代码可以在计算设备上实际运行
  • 测试阶段: 是指检查设计和实施阶段的程序是否符合要求、是否正确, 以及是否可用. 这种测试可能会导致实施和设计改变. 这显示了整个过程的迭代性.

一个社区是由愿意分享以及愿意给别人作品提供反馈的人创建的.


# Grade 8 ( 11-14岁 ) 要掌握的程度

People design meaningful solutions for others by defining a problem’s criteria and constraints, carefully considering the diverse needs and wants of the community, and testing whether criteria and constraints were met.

Development teams that employ user-centered design create solutions that can have a large societal impact, such as an app that allows people with speech difficulties to translate hard-to-understand pronunciation into understandable language. Use cases and test cases are created and analyzed to better meet the needs of users and to evaluate whether criteria and constraints are met. An example of a design constraint is that mobile applications must be optimized for small screens and limited battery life.

Crosscutting Concepts: Human–Computer Interaction; Abstraction Connection Within Framework: 3–5.Impacts of Computing.Culture

我们如何设计有意义的解决方案? 我们需要定义问题的标准和约束条件、仔细考虑用户的不同需求和愿望、并测试标准和约束条件是否得到满足.

以用户为中心的方案可以产生很大的社会影响. 比如说, 一个应用程序可以让有语言障碍的人把难以理解的发音翻译成可以理解的语言. 分析用户案例和测试案例的是为了更好地满足用户的需求, 并评估是否满足标准和约束. 比如有这样一个设计约束, 移动应用必须针对小屏幕和有限的电池寿命进行优化.


# Grade 12 ( 14-18岁 ) 要掌握的程度

Diverse teams can develop programs with a broad impact through careful review and by drawing on the strengths of members in different roles. Design decisions often involve tradeoffs. The development of complex programs is aided by resources such as libraries and tools to edit and manage parts of the program. Systematic analysis is critical for identifying the effects of lingering bugs.

As programs grow more complex, the choice of resources that aid program development becomes increasingly important. These resources include libraries, integrated development environments, and debugging tools. Systematic analysis includes the testing of program performance and functionality, followed by end-user testing. A common tradeoff in program development is sometimes referred to as “Fast/Good/Cheap: Pick Two”: one can develop software quickly, with high quality, or with little use of resources (for example, money or number of people), but the project manager may choose only two of the three criteria.

Crosscutting Concepts: Human–Computer Interaction; System Relationships; Abstraction Connection Within Framework: 9–12.Computing Systems.Troubleshooting

多样化团队的优势是, 通过详尽的审查以及背景多样的成员带来的不同视角, 可以制定出更有广泛影响的计划.

开发复杂度高的程序时, 可以借助各种辅助编程开发的资源, 比如库[1]以及各项工具(比如IDE集成开发环境、调试工具、版本管理工具等等), 用来帮助我们实现和管理各个部分的代码. 而且, 随着程序越来越复杂, 如何正确选择这些资源变得越来越重要.

系统化的分析是发现顽固bug的关键, 它包括对程序性能和功能进行测试, 包括终端用户测试.

程序开发在设计阶段的决策往往需要权衡各种因素. 其中一个常见的权衡有时被称为“快、好、便宜, 三选二“, 也就是说, 开发程序时, 时间短、质量高、成本低(金钱、人数)这三个目标, 最多只能满足其中两个目标, 而不可能三者同时满足.


  1. 库: 是指已经开发好的、可以用来解决某类问题的、可以直接拿来复用的现成代码. 就像一套套工具箱, 当我们想解决解决某个问题时, 不用自己从头到尾开发, 只需要选用其中一套工具箱, 取出其中一个工具就能帮助我们直接解决问题 ↩︎