计算思维|【实战技能】计算机科学实践过程的检查清单

目录
1 从文化的角度思考计算作品:培养包容性计算文化
2 从团队的角度创建计算作品:围绕计算的协作
3 如何表达与交流思想:围绕计算的沟通
4 构建计算作品的第一步:识别和定义计算问题
5 构建计算作品的核心能力:发展和使用抽象
6 创建计算工件
7 测试和优化计算工件
作为一直战斗在一线的IT工程师,笔者经历过很多着急的时刻,痛心于很多大学生朋友并没有扎实的计算机科学实践基础,希望能在这篇文章里,梳理计算机科学的核心实践,请各位读者跟着美国K-12计算机科学框架的核心实践,补一补中小学基础计算教育欠缺的实践方法,来发展未来工作中需要的实践能力吧。如果用大白话说就是:一起提升功力,争取做出有价值的计算作品吧。
首先请看以下两张图。
计算思维|【实战技能】计算机科学实践过程的检查清单
文章图片

图片来源:https://k12cs.org/wp-content/uploads/2016/10/12_K12CS_Core_Practices-768x828.png
计算思维|【实战技能】计算机科学实践过程的检查清单
文章图片

图片来源:笔者绘制
如图所示,实践3-6阐述了计算思维,也即计算机科学实践的核心,而实践 1、2 和 7 是计算机科学中独立的、通用的实践,相对软性但也很重要,可以补充计算思维。
首先用检查单形式为大家介绍软性实践中需要检查的内容。
1 从文化的角度思考计算作品:培养包容性计算文化 在设计和开发计算作品的时候,

  • 是否基于个人背景、道德水准、社会、经济和文化背景,考虑不同用户的需求?
  • 是否会寻找不同的观点以改善作品?
  • 是否尝试基于不同背景和技能,寻求必要的意见?
  • 是否能意识到用户有不同的需求和偏好,例如通过比较不同的计算产品了解和学习可用性的差异?
  • 是否能在设计过程中识别潜在的偏见,以最大限度地提高产品设计的可访问性?
  • 在学会识别不同观点后,是否能在不满足需求时为自己发声,为他人发声?例如:增强数字产品的使用便利性,以方便老年人和残障群体使用产品。
2 从团队的角度创建计算作品:围绕计算的协作 有效的合作可以带来比独立工作更好的结果。
  • 是否能认识到团队合作是一种共同学习?
  • 是否知道如何与拥有不同个人优势的团队成员合作?
  • 是否为每个团队成员提供贡献的机会?
  • 是否熟练运用鼓励和支持的策略?
  • 是否在遇到冲突和差异的时候,运用逻辑方法找到表达和调和差异的方法?例如,做相应解释,在相互尊重的基础上达成一致。
  • 是否能评估团队动态提高团队工作效率和工作动力?例如满足不同性格的人不同的要求。
  • 是否轮流担任不同的角色,例如记录员、辅助者或主导者。
  • 是否能用议程和时间表管理项目工作流程、评估工作流程以确定需要改进的方面?
  • 是否能使用提问技巧并积极倾听方式征求反馈意见?
  • 是否能在最终用户、专家或一般受众中寻找作品的反馈者?
  • 是否能区分不同意见并根据意见合理改善作品?
  • 是否会评估并选择用于协作的技术工具?如白板、在线论坛、知识共享工具和在线项目空间。
  • 是否能熟练利用协作工具有效协同工作并创建复杂的工件?
现实中,我观察到协作策略和工具的缺失导致很多计算作品无法顺利完成。
3 如何表达与交流思想:围绕计算的沟通 沟通的目标是讨论计算的使用和效用以及选择计算方法的适当性。
  • 是否能在沟通时针对受众使用精确的语言?
  • 是否能通过合适的媒介传达想法?
  • 是否能通过使用可视化表示呈现基本数据,例如使用故事板、流程图、图表和基本的数据表示?
  • 在描述、证明和记录计算过程和解决方案时,
    • 是否使用与目标受众和目的一致的适当术语?
    • 是否能使用文本、图形、演示来记录工作过程?
    • 是否能向最终用户解释工件,并接受意见和建议?
    • 是否能解释所有权和分享的概念?
    • 是否能在应用开源软件的时候认识到他人的贡献?
接下来从构建计算工件的具体过程,说说培养和发展计算思维的一些注意事项。
笔者曾在
【实战指导】暑假了,找问题,做作品【1】总体规划_苹果二的博客-CSDN博客
描述了做计算作品的总体规划,包括需要达到什么目标,做什么,如何做的方法。请查阅。
4 构建计算作品的第一步:识别和定义计算问题 笔者曾在
【实战指导】暑假了,找问题,做作品【2】识别和定义问题_苹果二的博客-CSDN博客
介绍了识别和定义问题之前的思考,以及在识别和定义问题过程中如何识别复杂的跨学科现实世界的问题,如何将复杂的现实问题分解为子问题,如何评估用计算解决问题是否合适和可行。请查阅。
5 构建计算作品的核心能力:发展和使用抽象 笔者曾在
【实战指导】暑假了,找问题,做作品【3】开发和使用模型_苹果二的博客-CSDN博客
介绍了如何将问题转化为功能设计,如何将功能设计转化为技术架构,如何开发通用模块以便易于构建系统,可查阅细节。
以下检查表供参考
  • 是否能通过识别模式并从特定例子中抽取共同特征从而形成概括模型?
  • 是否能够使用隐藏复杂性的一些抽象模型?
  • 是否能够评估现有的一些抽象模型并确定和融合到自己的工作中?
  • 是否能够创建具有抽象性的模块以便应用于多种情况?
  • 是否能基于已有模型建立,并为系统建立管理规则?
特别需要提醒的是
不能简单地将需求翻译成功能,再翻译成软件代码,而是需要进行抽象的建模工作。
6 创建计算工件 在规划过程中,
  • 是否采用了项目管理方法管理创建工作?例如考虑关键特征、时间和资源约束以及用户期望?
  • 是否系统规划开发工作,并充分应用分解和抽象方法
  • 是否能够反思并根据实际情况修改计划以适应最终目标?
【计算思维|【实战技能】计算机科学实践过程的检查清单】在创建过程中,
  • 是否明确创建计算工件的目的是完成任务或者解决计算问题?
  • 是否能够综合利用所学知识、现有解决方案实现预期目标,更进一步,可以修改和融合已有解决方案开发新的工件或者增加更高级的功能和复杂性?
7 测试和优化计算工件
  • 是否能考虑所有场景和用例系统地测试工件?
  • 是否能合理应用调试方法识别和修复错误?
  • 是否能主动预测错误并测试工件?
  • 是否从质量属性角度提升工件的性能、可靠性、可用性和可访问性?
  • 是否能使用系统过程方法和复杂的策略识别并修复错误?例如,从计算机硬件、网络和软件层面去识别和修复错误。
  • 是否会针对测试和反馈结果,不断迭代评估和改进计算工件?
希望以上7个基本计算机科学实践的步骤可以帮助大家成为优秀的计算机产业人才,也欢迎留言与我交流。
笔者写于上海浦东新区封控时。

    推荐阅读