软件工程(C编码实践篇)学习总结

来源:互联网 发布:阿里云 ss 编辑:程序博客网 时间:2024/06/06 03:14



陈其航+ 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 ”


6月份在学期的第十八周完成软件工程课程的学习,在课程结束之余也应该写一篇博客记录学习这门课的收获,算是对学习过程作一个总结吧。


首先要感谢孟宁老师,让这门课变得丰富多彩,形象有趣。不仅有线上的课程,线上实验,还有与线上实验相对应,用go语言实现的线上实验,同时还有课堂上的传授知识,同学们的授课,受益良多。也感谢我们可爱的助教学长,认真尽责,在实验检查过程中提出的宝贵意见。

在这里讲线上的7次实验链接复制在此,以供日后方便查看,重复学习:


1、实验1


      实验一:写一个hello world小程序


      2、实验2


      实验二:命令行菜单小程序V1.0,具体要求参见视频


      3、实验3


      实验三:内部模块化的命令行菜单小程序V2.0


     4、实验4


     实验四:用可重用的链表模块来实现命令行菜单小程序V2.5


     5、实验5


     实验五:用callback增强链表模块来实现命令行菜单小程序V2.8


     6、实验7


     实验七:将menu设计为可重用的子系统


学习总结

老师的多元化教课,让我从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合。这半个学期下来,学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为了一个综合的一个能够解决问题的思想集合。通过对C编码编程的实践,感觉自己收获了不少,以前在实验室里以为能得到自己想要的结果就完成了实验,但是现在忽然发现,如果你想写好程序代码是一件多么不容易的事情。

好的软件工程代码是讲究设计规范的,讲究模块化思想,是要保证线程安全的,子系统的接口需要可重用。编写代码时应该逐步求精,不断重构、完善代码,增量式地实现越来越多的功能。在逐步求精的过程中,也要注意代码的重用性,将可重用的代码模块化,以供其它模块使用,而不必在每次使用时重新编写。最后,应该要注意抽象化。“抽象能力是程序员的‘核武器’”。在编写代码时,应该注意将不同的功能抽象分离出来分别实现。如在本课程中的通用链表就是数据结构和程序逻辑抽象分离的结果。使用通用链表的好处是对具体程序逻辑的修改不会影响链表的功能。其中还涉及到一些具体的代码机制,如callback机制以及函数指针的使用。其中callback机制十分巧妙,起到了面向对象的编程语言中继承和多态的类似效果。个人认为抽象化的相关内容是本课程中最有魅力的部分,在不断运用抽象化的思维方法实现新代码的过程中,编程能力会有很大的提升。

原创粉丝点击