创新工程实践课程前期准备 - bettermorn/ACMWDevHubPPT GitHub Wiki
基本要求:根据CC2020定义
知识准备
基础知识
- 用户与组织
- 系统模型
- 系统架构与基础设施
- 软件开发
- 软件基础知识
- 硬件
专业知识
- 分析与批判性思维
- 协作与团队合作
- 伦理与跨文化视野
- 数理统计
- 多任务优化管理
- 口头交流与表达
- 问题解决和排除故障
- 项目、任务的组织规划
- 质量保障、控制
- 关系维护
- 研究与自学
- 时间管理
- 书面沟通
技能准备
- 记忆
- 理解
- 应用
- 分析
- 评价(评估)
- 创建
个性准备
- 适应性
- 协作性
- 创造性
- 严谨性
- 富有激情
- 主动性
- 专业性
- 目标驱动
- 责任感
- 响应性
- 自我导向
熟悉软件开发工具、软件运行环境和软件开发平台,理解协作开发的意义、流程及具体方法;
- 了解代码版本控制工具git的原理及使用方法,了解代码提交过程,可参考https://gitee.com/progit/ 以及https://git-scm.com/book/zh/v2
详细查看 https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-Git-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F,在VS Code中查看代码local history,参考 How to view the Git History in Visual Studio Code 即查看timeline,open changes. 参考用GitHub做敏捷开发软件项目管理 - 熟练使用IDE,会阅读IDE的帮助文件完成配置功能,当使用出现问题时,可以通过阅读IDE的帮助文档的方式解决问题,而不是搜百度;
- 熟悉操作系统、应用服务器及其他软件开发工具的运行原理,可以通过阅读相关文档解决问题,完成安装任务。
- 熟悉软件开发常用参考资料
- 了解代码规范
学会使用基本工具
文本编辑
如md文件编辑方式
版本控制工具GIT
- git的基本原理
- 代码仓库的基本思想
- git 分支使用的基本原理
IDE集成开发环境
- 在语言学习课程时掌握,了解包括通过帮助文件学习功能,如何连接版本控制工具
原型设计工具
- https://www.processon.com/
- https://www.mockplus.cn/
- 7款免费原型设计工具,总有一款是你的菜! https://www.mockplus.cn/blog/post/970
测试工具
- postman
熟悉软件开发常用参考资料
- Android开发者社区 https://developer.android.google.cn Developer Guides https://developer.android.google.cn/guide (可选择中文)
- Java开发者社区
- Python社区
- 官方社区 https://python-forum.io/
- Python中文社区 https://www.pythontab.com/
- Python Web开发框架 DJango,参考 https://www.djangoproject.com/
- 快速开始 https://www.djangoproject.com/start/ Writing your first Django app, part 1:https://docs.djangoproject.com/en/3.2/intro/tutorial01/
- C/C++ 学习参考
- C# 等微软产品,查询MSDN即可: https://msdn.microsoft.com/en-us https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/
- IBM开发者社区
- 遇到任何问题都可以访问通用型网站 https://stackoverflow.com/
了解代码规范
1 Java代码规范与良好实践
- Google Java Style Guide
- Code Conventions for the Java TM Programming Language
- Google Java Programming Practices
- 阿里巴巴Java开发手册(黄山版).pdf
2 C及C++ GCC Coding Conventions
https://gcc.gnu.org/codingconventions.html Recommended C Style and Coding Standards https://www.doc.ic.ac.uk/lab/cplus/cstyle.html
PEP 8 -- Style Guide for Python Code https://www.python.org/dev/peps/pep-0008/ C# Coding Conventions (C# Programming Guide) https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions Errors in C/C++ https://www.geeksforgeeks.org/errors-in-cc/
获取、评估及传达信息能力的准备
- 掌握获取信息和资料的快速简洁的方法,例如,寻找产品提倡商提供的完整文档,而不是用bd搜索寻找碎片化的文档
- 遇到较难问题,用较好的搜索引擎、开发者网站平台获取解决方案,例如 bing.com stackoverflow.com
- 良好的英文阅读能力
解决复杂问题的能力
遇到问题,研究工作的逻辑过程是否有误,寻找主要原因,逐步分解问题,确定解决方案。 目前表现:需要提高主动分析问题的能力。
设计先行 开发后动
掌握提出问题、发现问题和定义问题的能力,提出寻找解决方案,初步建立软件设计方法论,建立系统观。 培养此能力需要帮助同学树立“磨刀不误砍柴工”的观点。 目前表现:大部分大学生无法集中精力先分析问题,设计解决方案,而是急于写代码,急于看到表象。
大学初期开展以下实践活动
- 培养包容性计算文化
- 围绕计算进行合作
- 识别和定义计算问题
- 开发和使用抽象
- 创建计算工件
- 测试和优化计算工件
- 围绕计算的沟通
课程准备工作
团队
每组5人,请分组
课前准备工作
学生最好能准备一个想要利用现在掌握的技术完成的项目,例如网站,小程序,移动应用都可以。 学生复习软件设计及开发相关知识和技能(java,JavaScript,CSS, HTML5,C ,C++均可)
设施准备
白板,白板纸和白板笔
开发环境及协作平台
笔记本装有熟悉的开发环境IDE,如IDEA、VS Code或者Android studio https://www.jetbrains.com/idea/
为便于操作,建议用github做为协作平台,便于小组协作,提交相应文档,保存文档,共享信息,建议提前申请github账号 www.github.com