软件工程(C编码实践篇)课程总结——我的第一次代码实战之路
课程内容来自网易云课堂-软件工程(C编码实践篇)——中国科学技术大学孟宁老师主讲!
作者:魏红
魏红《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/learn/USTC-1000002006
一、心得体会 |
在写这篇博客时,我的心情不是想象中的如释重负,而是感慨和激动。作为一名理科生,代码对于我来说,陌生、遥远、不曾触及,所以当我开始接触到实验,需要自己动手的时候,我就崩溃了。哪怕是最简单的hello world小程序,我都折腾了好久,第一次的实验让我挫败感十足,我甚至认为自己坚持不下去,完成不了实验或者不能及格,但是看到其他同学完成的很顺利很出色,我又不甘落后于人,于是我就开始了我的第一次代码实战之路。
自己最初认为代码和软件工程就是打代码、机器式工作等等很无聊很枯燥的东西,但是当我看到孟宁老师的视频的时候,发现一个生硬的东西还可以这么有趣,原来代码也是有思想有生命力的,软件工程是用工程的思想去写软件,而且编写的代码可能不是只用一次,所以我们需要不断的完善它,通过更新和完善代码,使工程越来越实用。
老师讲课很幽默,每次看视频都是边笑边学习,老师的每一个视频我都会认真观看并且记笔记,自己薄弱的基础让我不得不比别人下更多的功夫,视频看完后,自己回顾视频主要内容、思考本次试验的核心思想以及如何实现相关功能,或者说怎样做才更好,跟着老师视频的步骤,一步一步,从最基本的注意代码风格规范做起,然后模块化思想的学习,可重用模块的设计,子系统的可重用设计,不知不觉自己竟然完成了这么多任务,学习了这么多知识。
接下来通过实验报告的方式和大家慢慢分享我的代码之路。
二、实验报告 |
简介:(现在会看这个实验,感觉当时被它难住很搞笑。)实验一只要是让我们在Linux环境下,编写hello world小程序。学会使用一些简单的linux操作系统的指令,比如:vim:编辑文件;gcc:编译文件等等,还有学会使用git,把代码保存到版本库。
简介:实验二主要考察代码风格规范,学习缩进、命名、注释等代码编排的风格规范。代码风格的原则:简明、易读、无二义性。在符合规范的前提下,通过命令行菜单完成简单的输入输出。
简介:实验三主要讲的是模块化思想,实现业务逻辑层和数据存储层分离。在实验二的基础上通过提供接口,将系统抽象为两个层级:菜单业务逻辑和菜单数据存储。
4.实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
简介:实验四用可重用的链表模块来实现命令行菜单小程序,链表模块的接口设计要足够通用,执行某个命令时调用一个特定的函数作为执行动作。
5.实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
简介:实验五使用callback函数,让查询接口更加通用,通过修改全局变量降低各模块的耦合度,在定义数据结构和相关操作的时候只暴露必要的信息,不把关键内容展现给用户,实现接口的信息隐藏。
6.实验六(测验):函数的可重入性(reentrant)及线程安全
简介:实验六没有代码,通过一些基础的测试题让我们加深对可重入函数和多线程这两个概念的理解,并分清它们的关系,知道如何用互斥锁,读写锁改进程序。
简介:实验七为menu子系统设计接口,让命令行菜单成为通用的模块,命令行输入的内容转化为argc,argv的形式,使用getopt函数获取命令行参数,使menu子系统支持带参数的复杂命令。同时,Makefile工程文件,为同时编译多个文件带来了许多便利。
三、总结 |
首先,在此感谢孟宁老师精彩的视频,老师上课风趣而不失认真,让我受益匪浅,学到许多知识,所以在此谢谢老师,老师辛苦了!还要感谢我的助教学长——王鹏展学长,每次实验都耐心指导,学长很和善,学长辛苦啦。
第一次的代码实战之路,不管坎坎坷坷还是错误百出,我用心做了每个实验,也学到了知识,没有辜负自己的努力。
总体来说,孟宁老师这门课不是很难,适合初学者学习。七个实验由浅入深,注重实践,从实践中让我深入的了解这门课。同时,这门课不只学习软件工程,在完成实验的同时,学习到了很多Linux命令,对Linux环境更加熟悉,自己的代码能力也有提升,这算是我最大的收获。而且因为这是实践性质的课程,在听完课程后,不是单单以为自己懂了,浅尝即止,而是去实践操作,真正的把知识学到手。不过说到遗憾,那可能就是自己在做实验的时候,好多思想、方法都不新颖,总会依赖老师提供的内容,或者是自己思维定式,总想不出新的想法,当然这和自己接触代码太少也有很大的关系,这门课让我最大的感触就是不管做什么,都要坚持,要去尝试,不逼一下自己,你怎么知道自己不可以!以后继续努力,加油!
同时希望每一个努力的人都有好的回报,最起码有自己充实的收获,一起加油,献给正在努力的你!