个人作业——软件工程实践总结&个人技术博客
Deadline:待定
前言
时间匆匆,软件工程实践四个月眨眼间就走过。
今年我们遇到了疫情,因此课程进行的也更为艰难,但是在大家的共同努力之下,我们的课程也顺利的进展下来,并取得了较好的效果。
一次次作业,从易到难,看到大家一步步的成长,从小白到团队技术主力,真的十分开心!
在历次的答辩中我们还见到了很多优秀的同学和优秀的团队,让老师助教不禁竖起大拇指。
在这课程临近结尾之际,让我们通过这次作业来为这段时间的学习和实践所得做一个总结吧!
还记得你在准备篇作业中对这些问题的回答吗?
当初为什么报 软件工程 这个专业?当初对 软件工程 这个专业的期待和想象是什么? 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
当时也许很多人都不理解什么是软件开发,虽然学习了相当多的基础知识,但是却从未将其用在项目实践中。也许当时懵懂,回答也比较简单。现在的你对这个问题有什么新的看法吗?
准备篇中,你还制定了属于你的学习方向,使用工具绘制了精美的路线图,并制定了一个学期的学习计划,现在它怎么样啦?进展是顺利还是充满坎坷?
在3.3中,你提到了你最想学习的技术,那么请为你的学习目标绘制你的学习路线图,
...
绘制路线图规划学习的时间计划,以寒假+下个学期,即6个月为周期,描述6个月内你打算学习这项技术的规划安排。
虽然这门课程即将迎来结束,但你们的路却才刚刚开始,考研就业考公,未来你将面临更多的选择和挑战。
你是否在这门课中获得了成长呢?
也许你有一些想要抒怀的地方、想要感谢的地方、想要遗憾的地方、想要抱怨的地方,那么在这次总结中写下来吧..
作业要求
一、回望 【20%】
(1)对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
(2)你在第一次作业的个人简历中制定的这门课程结束后,你预期你将增长的能力、技术、技能;
和你针对你的目标绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
(3)请总结这门课程的实践总结和给你带来的提升,包括以下内容:
- 统计一下,你在这门软件工程实践中,一共完成了多少行的代码;
- 软工实践的各次作业分别花了多少时间?(做一个列表)
- 哪一次作业让你印象最深刻?为什么?
- 累计花了多少个小时在软工实践上?平均每周花多少个小时?
- 学习和使用的新软件;
- 学习和使用的新工具;
- 学习和掌握的新语言、新平台;
- 学习和掌握的新方法;
- 工程能力的提升;
- 团队合作上的提升;
- 其他方面的提升;
二、团队总结【15%】
软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?
1、 如果你是组长,你觉得你有哪些地方做的不够好的?有哪些地方做的好的?你觉得该怎么改进?(详细描述)
2、 如果你是组员,你觉得你的组长分工安排是否合理?你对组长的选举有什么建议?
3、 你这学期经历过换组吗?你对换组有哪些看法?谈谈你在这个过程中的感受。
4、 分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建执法》第17章 人、绩效和职业道德)
三、人月神话【30%】
1、怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。
(1)研发出符合用户需求的软件
必须公开发布,有实际的用户,一定的用户量和持续使用量 (3 天后能保持10 - 100个用户);而不是: 做没有用户使用的软件
(2)通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件
有项目规划/需求/设计/实现/发布/维护,有定时的进度发布 ; 而不是: 通过临时熬夜,胡乱拼凑,大牛一人代劳,延迟交付等方式糊弄
(3)并且通过数据展现软件是可以维护和继续发展的。
而不是 找不到源代码,代码无文档,代码不能编译,没有task/bug 等项目的发展资料
2、写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,文字部分字数要求在100字以上,可以使用你自己喜欢的方式表达(如图文结合、视频)..
四、建议【10%】
对下一届同学的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?请写下你对后来人的期许。
对于软工实践课程,你有哪些建议?
对于助教工作,你有哪些建议?
对于自己今后,你有哪些建言?
五、个人技术总结 【25%】
在第一次作业“准备篇”中你为自己制定了学习路线,现在学习了怎么样了?你在团队开发中是否担任了开发角色,你在开发中解决了哪些技术问题?获得了哪些技术进展?
第五个部分中要求你从个人技术学习角度和团队开发技术角度中选择你最擅长的一个相关技术,进行分析描述并总结。
相关技术的粒度不宜太大,比如不应该选择诸如Java语言/Html/JS这样的大类,而是一个较细的分类,如Axios的使用总结、Spring Boot上传和下载文件、在团队开发中我采用的推荐算法等。
要求为这个相关技术撰写一篇博客(单独,在第五部分仅需要提供链接和技术概述),
博客的内容应该至少包括以下部分:
1、技术概述,描述这个技术是做什么?学习该技术的原因,技术的难点在哪里。控制在50-100字内。
2、技术详述,描述你是如何实现和使用该技术的,要求配合代码和流程图详细描述。可以再细分多个点,分开描述各个部分。
3、技术使用中遇到的问题和解决过程。要求问题的描述和解决有一定的内容,不能草草概括。要让遇到相关问题的人看了你的博客之后能够解决该问题。
4、进行总结。
5、列出参考文献、参考博客(标题、作者、链接)。
之后只需要在提交的作业中提供链接和技术概述,格式参考如下:
[技术博客标题](...链接)
概述:
.........
六*(选做5%附加分)、阅读软件工程中关于代码质量的的经典论文,从下列文献中选择一篇或若干篇,结合自己的实际做一个阅读笔记(例如,自己写的代码质量如何,是不是一个大泥球,如何衡量自己代码的质量)?从以下参考论文中选择一篇或若干篇:
参考论文文献:
[1] Stamelos I, Angelis L, Oikonomou A, et al. Code quality analysis in open source software development[J]. Information Systems Journal, 2002, 12(1): 43-60.
[2] Boehm B W, Brown J R, Lipow M. Quantitative evaluation of software quality[C]//Proceedings of the 2nd international conference on Software engineering. IEEE Computer Society Press, 1976: 592-605
[3] Samoladas I, Stamelos I, Angelis L, et al. Open source software development should strive for even greater code maintainability[J]. Communications of the ACM, 2004, 47(10): 83-87
规则&格式
为了方便其他学校的老师或者助教了解课程实况,请大家在作业开头添加格式描述:(必做)
这个作业属于哪个课程 | <班级的链接> |
---|---|
这个作业要求在哪里 | <作业要求的链接> |
这个作业的目标 | <写上具体方面> |
作业正文 | .... |
其他参考文献 | ... |
markdown代码
|这个作业属于哪个课程|<班级的链接>|
|-- |-- |
|这个作业要求在哪里|<作业要求的链接>|
|这个作业的目标|<写上具体方面>|
|作业正文|.... |
|其他参考文献|... |
其它规则格式同前述作业不再赘述