2020春软件工程课程总结-补
今年相比以往,最大的特点可以说就是网络授课了。虽然是由于国内外疫情的无奈之举,但也算是开创了大规模网络授课、甚至网上测验的一个先河。在此之前网课一度只被用于教授那些“不太重要”的课程,通过网络授课学习的主课则往往不被承认。诚然今年的教学质量相比以往肯定是要差一点,测验也更可能舞弊现象(几天前在QQ群和别人讨论的时候那个人就提到了监考的视频会议监控可以通过用虚拟摄像头播放录像的方法骗过去),但现在毕竟是大规模网络授课的试行,我也相信网络授课会是一种趋势,并在不断的发展中趋向完善。
从本学期的软件工程课程的内容上来看,最大的特点就是Android App的开发,以及对于别人开发的工具类的使用。在实际开始做之前,一直以为Android开发会非常困难、工作量会非常的大,就像上学期没开发过JavaWeb项目的我一样。后来经过自己亲自开发才会发现,Android App的开发其实并不难,1个人半个月不到就能从不会Android到做一款基本功能齐全的记账本App出来。而对于别人的工具类的使用的掌握也非常重要,改掉了以前一定要“代码基本都得是自己写的”的错误想法。像别人那样还有动画的的扇形图,给我半个月我都不一定能自己写出来。而直接拿工具类的话,只需要花一点点时间来看它怎么用就可以上了,极大地节省了时间和精力。
本学期也进行了第一次的结对开发,而在实际工作中也往往都是以一个编程团队进行某个软件甚至某个软件的某部分的开发。既然是团队合作,交流就是十分重要的。在第一阶段的Android App开发中我们团队就是忽视了团队合作中交流的重要性,造成了做出来的东西无法整合,有一个人相当于做了无用功的悲剧。在这之后吸取了教训,在后来的PHP团队开发中就通过积极的交流避免了类似情况的发生。
同时,本学期还进行了两次Python开发相应的任务。先前查找爬虫的写法时候就有许多文章写到Python相比于其他语言在爬取数据方面特别适合。个人以前用来扒取YouTube上的视频的一个叫youtube-dl的软件就是拿Python写的。在爬虫之外,机器学习方面Python也被广为使用。同时,Python是目前的热门语言,也可以说是一种趋势,就业的时候很可能就被面试官拿来考了。而且根据这两次的应用,Python的简洁、方便上真的是无可挑剔,就算不是为了就业,在特定情况下选用Python作为首选语言也会带来极大的便利:它所具有的各种工具类等等真的是太多了,很多时候你只需要import几个你需要的包,然后你就可以用几十行代码完成别的语言要数倍甚至数十倍的代码量才能实现的功能。而且很多包的安装直接就可以通过敲一行指令完成自动的下载安装,和大多数Linux系统上安装一个程序一样,极好地利用了互联网带来的便捷性,而且每个工具类的名字唯一,免去了找对应的包的成本。
最后对于本学期的软件工程课程的意见和建议如下:
1.关于结对的冲刺,这种方法确实可以体验到软件开发时冲刺的紧张,提高以后就业时经常会出现的团队开发的情况下的各方面能力。但是尤其是对于第一次的Android开发,直接就搞冲刺性质的开发,必然的会有很大的工作量。如果这个时候正好撞上其他哪一科也有什么比较麻烦的作业就会非常要命。
2.关于课堂测试,很多课堂测试都是为了掌握特定方面的能力,就比如做出仿霍普金斯大学的全球疫情地图,主要是为了练习echarts之类的工具类在一个实际小项目中的使用。但是相关的提示太少,能想到的人马上做出来了,而大多数想不到的拿到手都是“这怎么做啊”这样的反应(根据班级群的聊天就能看出来了)。而一开始的全国疫情地图也是如此,我这里一开始理解错了,自己画的柱形图,没想到利用工具类,直接导致了后面的全国地图无从下手。
3.关于照片签到,虽然我个人不是很抵触这种签到方式,而且也可以理解到是为了防止学生上课时间本质跑到外面、本质躺在床上这种情况。但是在私下里有一些同学对此是有抵触情绪的,如果可以可以换用其他的签到方式。