软件构造课程总结

课程初见

第一次上课我是一头雾水的,PPT基本上全是英文,老师讲课声音有些小,非得坐在前面才能听清,而且语速也算得上是偏快,我当时就觉得这门课不好学。事实证明,我的推断基本没错。

实验

Lab1

在对于JAVA,GitHub完全没有接触的情况下,开始了第一次实验。对于语言和环境的适应是此次实验的主要难题,其实问题还是很简单的。这多亏了我在寒假时提前接触了JAVA,才能有惊无险的度过,而完全没有接触JAVA的同学对这次实验与之前课程的衔接性提出了质疑。

Lab2

lab2要求对Lab1的第三个小实验进行复用,从这次实验开始,软件构造开始让我们了解面向对象编程的优势。从这一次实验以后,对已写代码的复用和重写就是主要任务。这次实验比较简单,但却耗了我不少时间去Debug。这让我认识到findbug的重要性.

Lab3

实验代码量突飞猛涨,而且当时我对类的继承,多态不太熟悉,导致实验3非常的冗长,效率也不是非常高,这给我Lab4,Lab5的实验遭遇困难吗下了伏笔:)

Lab4

lab4和lab5都是对lab3的一个补充和修改。如果lab3没有写好,就要继续补lab3.Lab4是对Lab3的代码进行健壮性补充。做法就是建立异常类,然后对每一个条目进行检查,达到实验要求。另外设计测试用例,感觉100%的覆盖度比较难实现。

Lab5

Lab5让我们领略了各种工具,让代码标准化,让其能更加适应大数据的冲击。这就要求代码必须做到压榨每一处,使效率达到最高。Lab3,4,5是一个系列的问题,但由于我的Lab3做的不是太好,后续的实验就越来越吃力,实验的要求也不尽如人意。

Lab6
Lab6开始接触传说中的多线程,一个进程中可以并发多个线程,每条线程并行执行不同的任务。这是以前完全没有接触过的方法。不过多线程不太容易debug,但性能的提升真不是盖的!

课程总结与建议

实验的量真是不小,而且不论是门槛还是难度都不低。在完全没有学过Java的情况下直接要求写代码,这直接劝退了一部分同学,Lab3~5的连续实验要求你前一次实验也要很好的完成,那对Lab3放弃了的同学来说,4和5的分数同样也很难拿到。我觉得是不是能把3~5的实验在细化一下,或者从Lab2到Lab3之间在铺垫一到两个实验,形成一定的梯度,这样就给了同学们更大的空间去适应。

课堂上的PPT能不能尽量别整成全英文的,这样不论是对课堂上后排的同学(因为他们很难将讲课内容全部听清楚,看PPT却发现看不懂只能去查,查完又落下了后面的内容)还是复习和预习都有不小的阻碍。

总的来说,软件构造是一门好课,带我们领略了很多仅通过编程无法深入了解与学习的内容。但毕竟是第一年开,这门课我认为还是有一些地方可以改进,希望我的建议能让这门课更好:)

                                                                                                                                                                               2018.6.21

你可能感兴趣的:(软件构造课程总结)