程序调试技术(陈凯明, 徐伟) 2023秋 2022秋  课程号:CS151601
2023秋 2022秋  课程号:CS151601
8.5(2人评价)
8.5(2人评价)
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:一般
选课类别:通识1 教学类型:实验课
课程类别:一般通识 开课单位:计算机科学与技术系
课程层次:自由选修   学分:1.0
课程主页:暂无(如果你知道,劳烦告诉我们!)
简介 最后更新:2022年6月26日 08:29

所谓程序调试是指对程序的查错和排错,本课程主要介绍程序的逻辑错误例如功能、输入和输出不符合需求分析。调试程序一般应经过以下几个步骤:

一、先进行人工检查,即静态检查。

①应当采用结构化程序方法编程,以增加可读性;

②合理注释,以帮助理解每段程序的作用;

③注意编码规范的实践。

二、在人工检查无误后,再上机调试发现语法错误。

通过上机发现词法语法错误称为动态检查,在编译时会给出语法错误的信息,调试时可以根据提示信息具体找出程序中出错之处并改正。运行程序,输入程序所需数据,就可得到运行结果。要进行仔细而周全的测试和分析,如果发现错误,这部分错误是最难查找和排除的。

三、运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法:

1.将程序与流程图仔细对照,如果流程图是正确的,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。

2.如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,逐段往下检查。直到找到在某一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就能发现错误所在。

3.也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不用再编译了,也不再被执行了)。这种方法可以不必一一去掉printf函数语句,以提高效率。

4.如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题。如有则改正之,接着修改程序。

5.推荐使用各种语言编辑编译器提供的debug(调试)工具,跟踪程序并给出相应信息,使用更为方便,这是本课程要介绍的核心内容。

排序 学期

评分 评分 2条点评

夫诸 2022秋
  • 课程难度:中等
  • 作业多少:很少
  • 给分好坏:一般
  • 收获大小:一般
  • 难度:中等
  • 作业:很少
  • 给分:一般
  • 收获:一般

没有期末考试,总评有10分是考勤,会有几节课点名,剩下的90分是实验

课程是许老师和陈老师轮流上,主要内容是调试、汇编、黑客技术,也会有几节实验课

没有教材,每节课会发课件

个人感觉课容量还是比较大的,有些章节对于没有基础的大一新生来说还是有些困难的,但是老师讲的很详细,课件也很清楚,实验作业里也没有涉及到难的部分

14节课一共布置了7次实验,每次实验的期限是一周,发到助教邮箱,内容是调试分析错因,makefile多文件编译,一些基础的汇编知识,相比于课上内容来说是很简单的,即使上课没有听懂看课件也是可以掌握的

这门课是三节课的课程,一般不到两节课就可以讲完,剩下的时间就是去做实验

实验的具体评分细则不清楚,不过每次实验及时交分数应该不会低的

个人感觉这门课是可以选的

2023年1月11日 12:35 (最后修改于 2023年3月10日 07:49 3 0 复制链接
匿名用户 2022秋
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:一般
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:一般

这门课发的课件很详细,对于大一新生来说,难度适中,只要仔细跟着做基本就可以顺利完成作业。

只要及时完成并提交作业,给分应该不低。

据说计算机系的同学早晚都要了解汇编和Linux,所以这个课应该是很有用的吧。

()

2023年2月2日 09:23 1 0 复制链接

陈凯明

教师主页: 戳这里

徐伟

教师主页: 戳这里

其他老师的「程序调试技术」课

陈凯明老师的其他课

程序设计II 10.0 (2) 2020春
计算机程序设计B 7.5 (2) 2023秋 2022秋
黑客反向工程技术 7.0 (4) 2019秋 2018秋...
计算机程序设计B 1.0 (1) 2022秋
离散数学 2005秋

徐伟老师的其他课

网络系统实验 8.0 (5) 2025春 2024春...
网络程序设计 7.0 (1) 2024秋
操作系统原理与设计 2025春 2024春
编译工程 2025春