查看原文
其他

竺沐春风 | 任课老师专访:程序设计基础


C语言程序设计对很多同学而言是一门相对较新的科目。为了帮助同学们更加深入地学习计算机课程,更高效地进行期末复习,团委学研部有幸邀请到了许端清老师纪守领老师进行交流。让我们来看看两位老师为大家提出了怎样的建议吧!


Q1

C语言程序设计的考试题目分为理论题实验题,理论题偏重于识点的理解,实验题更加偏重于应用,请问同学们学习时应该更注重上机写代码还是反复学习课本知识呢?

许老师:


在C语言的学习过程中,理论和实验是相辅相成的。可能部分初学者会产生“我只要会编程,就不需要花过多的时间去学习语法等基本概念”的观点,但是这是不正确的。


去年期末实验考试有两个实验题没有通过的情况:一位同学在用scanf函数读入double型变量的数据时,格式码用了“%f”,从而不能得到正确的输入值;另一位同学,他这道计算级数和题目,在写计算某一项的值时,用了两个整型变量相除——其结果是整型,显然是错误的。从这两个案例可以看出,他们都能编写程序,但由于对一些基本概念没有真正掌握,导致结果是错误的;而且他们因为没有掌握好这些基本概念,连错在哪里都发现不了,最终导致了实验考试的失败,这也是必然的结果。


学C语言跟学英语很相似,我们需掌握所谓“词汇和语法规则”,对概念理解掌握了才能写出正确的代码。只有理论,就只会纸上谈兵;而若只有实践,也可能会错误百出,而且不知道错误在何处。


所以,写代码和学习基础知识、基本概念同等重要


纪老师:


理论题和实验题都是在考察C语言的相关知识,主要区别在于理论题着重于全面细致地考察C语言程序的各类语法知识,而实验题侧重于考察同学们运用程序设计解决问题的能力。由于理论题考试时不能运用编译器以及查阅资料,同学们只能凭借记忆判断;而实验题考试时可以使用编译器,帮助同学纠错改错。因此同学们往往觉得理论题偏难,而实验题比较简单。


这种理论知识的学习与编程实践步调不一致的问题,我认为有两种原因:

理论知识学习与编程实践步调不一致的原因


因此,理论知识的学习和上机实践是辩证统一的,我建议同学们首先夯实理论基础,继而充分地上机实践,并通过解决实践过程中遇到的问题来巩固理论知识。



线上采访许老师


Q2

C语言程序设计的期末考试主要注重哪些板块的知识点呢?实验题难度如何?请问老师可以提供一些提高实验题能力的方法吗?

许老师:


凡是上课讲过的内容,都可能会考到,这就要求同学们要对老师上课的内容多多留意。我们所选用的那本英文教材,讲得比较简单,我们任课老师在上课时都有统一的课件ppt,会补充一些必要的内容,同学们对这些内容要特别关注。


实验考试,明确指针、结构、文件等内容不会涉及,其他内容都可能会涉及到,但主要还是考大家对常规性编程的掌握,难度上相对简单,只要平时认真地独立完成老师上课布置的编程练习题并掌握了编程方法,那么通过期末实验考试是没有问题的。当然,前提是你要真正掌握好常用的一些基本概念,否则依旧困难。


至于怎么提高编程能力,答案只有两个字:多练。俗话说的好:熟能生巧。这与小时候牙牙学语相似,计算机语言的使用是需要熟能生巧的,要敢说敢练,不怕出错。但在结果识别上,人的容错性高,在我们学说话时,尽管说的结结巴巴、错误百出,父母也能基本理解我们语句的意思;计算机容错性很低,只要有一点不对,编译就通不过,或者结果就不对——而这就需要我们把基本概念真正吃透,才能在编程时正确表达。


我在这里还想强调一点:对于初学C语言程序设计的同学来说,最重要的还是对于计算机知识的理解和思维方式的转变。


纪老师:


本学期的课程从第六章回顾数据类型与表达式开始逐渐有难度,这些难度来源于对数据类型、表达式等的深入分析,并引入了指针以及数据、结构这两种较为复杂的构造类型。因此,同学们复习时可更侧重这些内容来准备。


根据往年的情况,期末考试实验题难度适中,不会出现极其复杂困难的题目,主要考察同学们基本的编程能力。为准备期末的实验考试,同学们首先应当重视教材中的例题,做到熟练自如的编写,同时也要注重平时作业和练习题目。


另外,从平日答疑情况来看,大多数同学进行调试的能力还不够,遇到程序错误往往只是通过观察来找错,没有动手调试分析的习惯。同学们在复习时遇到错误,应当首先动手练习调试,学会分析程序错误。


许端清老师程序设计基础授课


Q3

许老师,刚才您提到我们需要转变思维方式,那么请问我们学习计算机应该用怎样的思维方式呢?

许老师:


思维方式是比较抽象且系统的概念,只言片语难以概述,同学们只能是从平时学习和实践的点点滴滴中去细细体会,然后慢慢形成,重点在于要“悟”。


以下是许老师为大家精心梳理的学习方法:

学习方法


Q4

C语言在下半学期会进行指针、结构、数组等较难板块的学习,请问这些部分和之前板块相比,学习模式有没有什么变化呢?如果同学们对于一些概念和算法难以理解,应该怎么办呢?

许老师:


我认为,这些板块的学习和之前其实也并无很大的不同,无非只是另一部分概念而已。学习的模式需要遵守:搞清概念的本质内涵,勤学善问,反复思考。同学们如果之前不是这么做的,那么现在应该逐渐改变做法,这样会对学习有很大帮助。关于对一些概念难以理解的问题,前面已经提到过类似的处理方法,可以参考。另外,对算法的问题,同学们要知道这样一个事实:计算机是我们人类创造出来的,它的许多原理和算法,都是跟我们人类思考问题解决问题的方法息息相关。在编程时要基于常识,再运用你学过的科学知识,通过综合分析找出解决问题的方法。此外,在实现这些算法时,特别要注意语法概念的正确运用。


纪老师:


指针相比于普通变量引入了间接访问的概念,结构、数组是基于基本的数据类型派生出的构造类型,因此指针、结构、数组并不是完全独立的新概念,它们与前面一些章节具有紧密的联系。同学们在学习这些内容时,应当注重理解,而不是强硬的记忆。



纪守领老师程序设计基础授课


Q5

C语言在下半学期会进行指针、结构、数组等较难板块的学习,请问这些部分和之前板块相比,学习模式有没有什么变化呢?如果同学们对于一些概念和算法难以理解,应该怎么办呢?

许老师:


我不建议同学们去“刷题”,这是纯粹为了应试而不是真正理解掌握知识和概念,也不是一种好的学习方法。同学们要知道,我们浙大的学生,未来志向做各行各业的领军人才和领导者,在以后的学习工作中,你面对的多是当时最先进的科学和技术,到那时不会再有人“出题目”,不会有人触发你们的“条件反射”,那时我们应该如何学习?所以,大家必须要自己具备阅读、分析理解的能力,并且还要能够创新。我们应该从现在开始,就要学会自主学习,学会分析理解。


自己到底没有明白什么知识点,不能光看表面,要研究清楚本质和内涵,以及在今后如何避免,这样就足够了。我们这门课,大家要把基础打好,为将来更深层次的计算机学习做好准备。


以下是许老师为大家精心梳理的做题方法:  


做题方法


纪老师:


C语言是一门实践性非常强的课程,对已经学会的内容的巩固最好通过实践来完成。学有余力的同学可以通过做新的题目,了解新的算法来提升自己的编程能力,尝试应用各种编程技巧来解决问题。



感谢许老师和纪老师的宝贵建议!许老师和纪老师都建议在学习时注重理解知识,反复看书。希望同学们可以根据老师的建议进行学习方法的调整优化和最后的复习冲刺。最后祝大家都能考出满意的成绩!


采访 | 刘子涵 罗心悦 朱宝林 白

文案 | 竺院团委学研部程序设计采访组

排版 | 闻梓棋

审核 | 林

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存