1) 回顾你的课程计划 (第一周的计划), 你完成的程度如何?请列出具体数据和实际例子。
1.你在这门课的计划是什么?参考一些学校的教学,你对这个课程有什么期待?你打算怎样度过这个课程?
计划就是尽力跟上建民老师的节奏同时,还能主动学习一些其他知识。我的期待是希望能跟上建民老师的节奏。我打算尽力跟上建民老师的节奏,同时尽力学习其他课程专业知识。
你目前的代码量是多少(列出语言和代码量,精确到100行)? 为了有资格入职一流的软件公司/互联网/人工智能公司,需要多少代码量?从事高校教学科研工作呢?
我的代码量估计总量在2k行左右,具体精确我无法计算。我觉得至少需要4万行。高校教学科研可能要求高一些要5万行。
你打算平均每周拿出多少个小时用在这门课上(时间包括上课时间)? 如果你在前面说过,你在前两年浪费了很多时间,现在要发奋赶上,请问你打算:28h。我打算不浪费时间,并且利用好课余时间和空闲时间,不必要的电子游戏可以摒弃掉。
你计划在本课程结束时,完成多少代码量?每周应完成多少代码量?
Wish/确定愿望:希望有5000行。每周要320行左右。
Outcome/确定结果:最好的结果就是比320行还要多。
Obstacles/找出障碍:沉溺于电子游戏中,并且感觉困难太大,难以克服,然后就放弃了。
最可能的失败因素:基础太差。如何克服:多看视频,多学习他人的技术和代码。
Plan/使用“if then”做风险防范计划:如果我在看视频学习的途中忍不住想打游戏了,我就会去外面放空一下,用运动的方式来缓解压力,释放情绪。
2.我完成的程度非常低,因为我又沉迷在游戏和短视频之中,而且新技术chatgpt的出现,也让我了解到自己是多么的无能,从而增加了我的挫败感。
3.例子:我的很多软件工程日报中,例如2023.4.23——软件工程日报 - sodamate - 博客园 (cnblogs.com)
仅仅包含课程的时间,并没有课下学习;而且要求的代码量也很少,这些是我不足的地方,在假期里我希望能多学一些知识,并增加一些代码量。
2) 你在课程开始快速浏览了《构建之法》,提了 5 个问题, 请回顾那些问题, 自己回答它们。如果不能回答,为何软件工程课不能让你回答这些问题?
我在快速浏览《构建之法》时,提出了以下 5 个问题:
-
- 什么是构造程序问题?
- 如何设计合理的程序结构?
- 什么是良好的编程风格?
- 为什么要进行代码重构?
- 异常处理应该如何进行?
针对这些问题,我的回答如下:
-
- 构造程序问题是指在编写程序时所面临的各种难题和困难,如数据表示、控制流程等。通过合理的程序设计和编码规范能够更好地解决这些问题。
- 设计合理的程序结构需要全面考虑软件系统的需求、功能、性能、安全等方面,并采用模块化设计、多层次结构、接口规范等方法实现。
- 良好的编程风格应当遵循一定的规范和标准,包括命名规则、注释说明、代码缩进、变量管理等方面。这样能够提高代码的可读性和可维护性。
- 代码重构是指通过修改已有的代码,改进其结构、设计和实现,以提高代码的质量和性能。代码重构需要基于充分的测试和分析结果,确保改动不会破坏原有的功能。
- 异常处理应当依据具体情况,采取不同的策略和方法。应当区分不同类型的异常,如语法错误、运行时错误、逻辑错误等,并针对性地进行处理和调试,确保系统能够正常运行。
为什么软件工程课不能让我回答这些问题?因为这些问题已经超出了软件工程课程的范围,需要一定的专业知识和实践经验才能回答。
3) 看看还有什么新的问题产生,请列出来,建议列出 2-3 个新问题。 可以让老师和助教来回答
-
- 如何实现软件质量管理的自动化?
- 软件工程的敏捷开发模式是否适合所有类型的项目?
- 如何利用人工智能技术改进软件开发过程中的质量管理?
4)你看了一些软件工程的文献, 你的团队也做了一两次 “事后诸葛亮”分析, 可以再去看一遍,现在有什么新的感想?
通过软件工程文献的阅读和团队的事后诸葛亮分析,我认识到软件工程是一门非常重要的学科,它涉及到软件开发的整个生命周期,从需求分析到设计、编码、测试、维护和升级。一个好的软件工程师需要具备多方面的技能和素质,如沟通能力、快速学习能力、团队协作能力等。同时,软件工程也需要不断创新和探索,引入新的技术和工具,以提高软件开发效率和质量。
5)对比一些技能评价表,你有什么提高? 还有什么收获是不能用数字衡量的?
通过对比一些技能评价表,我认识到我需要提高自己的沟通能力、项目管理能力和解决问题的能力。此外,软件工程的收获还包括如何思考问题、如何分析问题、如何优化问题等方面,这些是不能用数字衡量的。
6)设想一年之后, 你到了你职业发展的下一个阶段(高年级, 读研,工作),回头看这门课, 你对于这门课的教学方法, 老师和助教的工作,和其他课程的衔接,有什么意见和建议?
本学期的软件工程课程让我受益良多。在这门课程中,我学习了软件开发的整个流程,包括需求分析、设计、编码、测试和维护等各个环节。在学习的过程中,我深刻认识到了软件工程的实践意义,只有通过规范的软件开发流程和有效的团队合作,才能够开发出高质量的软件。
在本学期的学习中,我总结出以下几点建议和提议:
一、加强实践环节
软件工程是一门实践性很强的学科,只有通过实践才能真正掌握其中的知识和技能。因此,我建议在今后的课程安排中,可以加强实践环节的设置。比如,可以组织学生们参与到一些实际的软件开发项目中,让学生们亲身体验软件开发的整个流程。这样不仅可以让学生们更好地理解软件开发的实践意义,还可以培养学生们的团队合作能力和解决问题的能力。比如还可以多一些到操场上组织的活动,这不仅是我们收获了团队合作的经验,也让我们收获了友谊。软件工程不仅仅是一种开发方式,更是一种管理方式。只有通过系统性的方法来规范软件开发过程,才能够有效地减少软件开发过程中的错误和缺陷。因此,我建议在今后的课程中,可以注重软件工程实践的教育和培训。可以通过案例分析、模拟实验等方式,让学生们更好地掌握软件工程的实践方法和技巧。这样可以让学生们更好地适应未来的软件开发工作,提高软件开发的效率和质量。
二、加强代码质量管理
在本学期的学习中,我们学习了很多提高代码质量的方法和技巧,比如代码重构、代码复审、单元测试等。然而,在实际的软件开发过程中,很多人会忽略代码质量的重要性,导致代码质量不佳,难以维护和扩展。因此,我建议在今后的课程中,可以加强对代码质量管理的教育和培训。可以通过组织代码复审、编写单元测试等方式,让学生们更好地掌握提高代码质量的方法和技巧。可以多找几本书,让我们继续阅读,或者在课程中多提及一些关于代码质量的要求和建议,又或者在课堂测试中,测试大家的代码质量,这样让我们做中学,从其中获得到更多的教训,才让我们更加深刻地意识到代码质量的重要性。
三、注重团队合作
在软件开发中,团队合作是非常重要的。只有通过有效的团队合作,才能够完成一个高质量的软件。因此,我建议在今后的课程中,可以注重团队合作的培养和训练。可以通过组织团队项目、讨论和分享等方式,让学生们更好地理解和掌握团队合作的方法和技巧。这样可以提高学生们的团队合作能力,为未来的软件开发工作打下坚实的基础。在当前的课程中,我们的团队或多或少还存在着一些缺陷,而这种缺陷我认为不是单纯靠老师的引导和指引就能改变的,必须要求我们同学们整体上,从心里面,去正视自身的问题,从而去改革改变,改变做假事的风气,改变假装做事的风气,只有这样,我们软件工程专业才能找来更多的学生,形成一种良性循环。优秀的人们互相吸引,让软件工程专业越办越好。
四、重视软件安全
在今天的互联网时代,软件安全是非常重要的。软件安全问题不仅会导致用户的隐私泄露和信息损失,还会导致软件开发者的信誉受损。因此,我建议在今后的课程中,可以注重软件安全的教育和培训。可以通过讲解常见的软件安全漏洞和攻击方式、提供安全编码规范和工具等方式,让学生们更好地了解和掌握软件安全的方法和技巧。这样可以提高学生们的软件安全意识,为未来的软件开发工作保驾护航。比如,讲解一些关于SQL注入或者其他的手段,可以轻易地攻击我们的“垃圾”代码,或者给我们展示一段关于网络安全攻防战的场面,这都有利于我们了解更多关于网络安全的知识,让我们从中体会到网络安全的重要性,甚至拓展了我们软件工程专业学生的出路,而不是局限于写一些增删改查或者当一个SQL boy。
五、加强实际
我个人认为,软件工程这门课,因为我了解的东西和学到的知识都太少,太浅薄,又常常捡了芝麻丢了西瓜,这就导致一些所谓“高大上”的东西,在随着我个人学习的过程中,逐渐从我知识的脑海里消失,就好像这些东西从没听过一样。至于如何改进,我想老师应该把握好尺度,关于实际和设想,对于我们这些普通一本的学生来说,我想更加重要的可能还是实践吧。
总之,本学期的软件工程课程让我获益匪浅。通过学习,我掌握了软件开发的整个流程和各个环节中的知识和技能。在今后的学习和工作中,我将不断努力,不断提高自己的软件开发能力,为实现高质量的软件开发贡献自己的力量。
标签:团队,软件开发,代码,软件工程,课程,软件,大二 From: https://www.cnblogs.com/sodamate/p/17424870.html