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

来源:互联网 发布:提升关键词排名软件 编辑:程序博客网 时间:2024/06/03 09:24

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

课程总结

这学期选了孟宁老师的高级软件工程这门课,学到了以下几点的知识,感觉对自己今后的发展有很大帮助。
1.代码风格规范
这是自己之前未重视过的部分,在大一开始写程序的时候就没有注意过代码规范,一直以最快速的完成任务为目标,没有注意过代码的规范和可读性,经过这几次实验,我按照代码规范进行编写,感觉思路确实清晰了很多。
2.学习在linux下编程
本科时很少在linux下编程,只在操作系统实验课上在linux里编过程序,其他的编程都在windows上进行,linux的命令几乎都忘光了,通过这门课程,把这些东西又捡起来了。
3.模块化思想、接口规范、回调函数
这些都是编程中的重要思想和机制,对于大型软件工程项目来说,代码的可重用性和可维护性十分重要。将系统划分为不同模块,不同模块内部的逻辑实现和数据结构分离,可以降低项目的耦合度、提高可维护性。
4.多线程
我感觉这是软件工程最复杂的部分,理解起来需要花很长时间。本科在学这部分的时候,在操作系统实验课上编程解决了一些多线程问题。我记得有一个最经典的问题就是生产者消费者问题和银行家问题,主要解决的就是两个线程争夺同一份资源时如何处理,但是这部分内容老师只讲了理论部分,线程安全和可重入函数等等,没有做实验,可能单纯地理解起来会很困难,我建议老师在以后的实验可以加上,比方说实现一个自定义命令,需要使用多线程机制。

上半学期繁忙的课程学习马上就要结束了,下半学期需要开始准备工程实践了,希望学到的软件工程知识能够学以致用,感谢孟老师这两个月的教诲,课程最大的遗憾就是学校的课程安排太紧凑了,重要的复杂的课程都安排到了上半学期,导致每门课分配的时间都不多,学得不够好。

实验报告作业:

实验一:写一个hello world小程序
https://www.shiyanlou.com/courses/reports/1290126
实验二:命令行菜单小程序V1.0
https://www.shiyanlou.com/courses/reports/1291033
实验三:内部模块化的命令行菜单小程序V2.0
https://www.shiyanlou.com/courses/reports/1292367
实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
https://www.shiyanlou.com/courses/reports/1295736
实验五:用callback增强链表模块来实现命令行菜单小程序V2.8
https://www.shiyanlou.com/courses/reports/1298311
实验六(测验):函数的可重入性(reentrant)及线程安全
这次是线上考试,没有实验。
实验七:将menu设计为可重用的子系统
https://www.shiyanlou.com/courses/reports/1303929

原创粉丝点击