点击上方“USTC
stunion”可订阅哦!
![5f28eeb1a062dfc7563ebebff857e44a.png](https://i-blog.csdnimg.cn/blog_migrate/30ddf5be9fafc15279aa5d0087eacad9.png)
在之前“蜗壳里的星空”发布的说说中,众多同学在评论区留下了自己印象深刻的老师,有很多老师获得不少的点赞,可谓是同学们中的“人气老师”。
为响应国家“停课不停学”的号召,在这个特殊的学期,学校积极组织开展线上教学,老师们通过直播的方式为同学们带来高质量课程,同学们在家就能实现在线课堂的高效学习。特殊时期的线上教学,不仅需要同学们更加专心致志,也需要老师们更加耐心讲解。“师者,所以传道授业解惑也”,从今日起,小蜗将推出#老师有话说#栏目,采访我校备受欢迎的老师们,定期为同学们带来老师们的故事与箴言!
本期老师介绍
本期,我们有幸邀请到中国科学技术大学信息科学技术学院自动化系副主任、副教授王雷老师,解答有关于部分课程学习、自学与合作学习、网络学习的问题,希望对同学们有所帮助!
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
王雷
中国科学技术大学自动化系副主任、副教授,主讲计算机程序设计,任课程组长(省级基层示范教研室主任)
1994年本科毕业于中国科学技术大学自动化系,2003年获模式识别与智能系统专业博士学位,2013-2014年纽约大学访问学者,当前研究方向为机器学习与多智能体仿真、视频分析与模拟。
Q&A
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
首先就来问问课程内容相关好了
![993e676ff661900e8aa6ac79ae24d179.png](https://i-blog.csdnimg.cn/blog_migrate/66b68c873fc3ac88b6778813d9ef1f0f.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
王老师您好,很高兴您能来到我们的#老师有话说#栏目~
首先,想咨询您一些关于课程学习的问题。请问您认为在计算机程序设计的学习过程中,关注的重点应该是什么?
嗯嗯,这个问题是这样的。既然课程名称是“计算机程序设计”,那么主要的关注点就要放在什么是程序设计以及如何进行程序设计上,前者主要指学习各种语法元素,后者则是从分析问题、定义变量、设计流程、到实现代码和调试程序的一套流程的实践。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
那么这些关注点具体表现在哪些章节呢?比如是否有一些较难理解的章节?
从章节内容方面来看,难点当然是指针。理论上指针可以访问程序空间的任何地址,也就是指向任何变量、数组、结构、函数等,很容易让人产生眼花缭乱乃至于痛不欲生的感觉,但其实只有少数场合是必须的。这也是为什么其它语言没有显式指针也一样活得很好(不,其实是活得更好)。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
嗯嗯,您刚刚谈到,指针是一个难点,但是却又只在少数场合是必须的。能请您详细谈谈这一点吗?
好的,我来解释一下。通常我们在处理数据时,比如累加、排序等,数组比指针更容易理解和使用。而进行字符串操作时,指针虽比数组要简洁得多,但也并非必须。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
而必须使用指针的场合,包括动态分配内存、文件操作等,尤其前者是其它语言没有的,好在这些都不算太难理解。
至于函数指针、多级指针等内容则属于所谓的炫技神操作了,吃瓜群众完全可以无视。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
噢噢,这样梳理一下,突然发现指针其实也没有那么可怕了。那么请问王老师,除了难点,有没有一些运用起来容易混淆的知识点呢?
容易混淆的知识点则主要是在函数定义和函数调用方面,特别是形参、实参、传值调用、传址调用,函数才是C语言的命根子,必须勤加练习熟练掌握。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
接下来就问问老师的学习建议吧
![993e676ff661900e8aa6ac79ae24d179.png](https://i-blog.csdnimg.cn/blog_migrate/66b68c873fc3ac88b6778813d9ef1f0f.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
小蜗一定勤加练习这些“命根子”!谈完了关注的重点,考虑到同学们普遍反映计算机程序设计课程难度较大,请问您对于这门课程的学习有什么建议呢?
其实与数学物理相比计算机程序设计并没有多少很难的知识点。但我们从小就学习数学物理,经历了一个漫长而循序渐进的过程,能进入科大的同学都已经打下了很好的基础,也有了丰富的学习经验,所以即便面对数分这样的未知领域也不畏惧。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
而程序设计对大多数同学来说是第一次接触,学习方法和思维方式与其它课程有本质的不同,难免感到不适应。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
但学习知识的方法论是相通的,比如学到一个新的数学概念的时候,即便不能马上理解,通过大量刷题也能慢慢找到感觉,程序设计同样是这样,大量编写程序必然能提高对程序设计的认识。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
所以说“实践是最好的老师”呢!
此外,针对课前课上课后各阶段,老师能否分享一些合适的学习建议呢?
课前预习相关内容的时候,可以在网上看看别人的学习经验。
课上当然是注意听老师的讲解,有时可能有惊喜:老师好像讲错了,我好像比老师知道的多,这在其它课堂上很难得见:-)。
课后再回味一下概念,更重要的是开始编程练习,验证知识点。仅仅理解概念是没有意义的,只有编程才能让你真正掌握它。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
嗯,除了针对课前课上课后各阶段,您是否还有其他的学习方法推荐呢?
网上关于编程知识和技术的资源远比数学物理丰富得多,善加利用必将事半功倍。
墙裂推荐CSDN
![662cee364934419a23e4c17e5fd15b1e.png](https://i-blog.csdnimg.cn/blog_migrate/16eab90eb0449d58157c5bd9d78c3b01.jpeg)
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
当然,网络是柄双刃剑,由于学习程序设计离不开计算机,这对很多同学是个挑战,特别是遇到困难的时候,可能很容易就把注意力转到别的东西上去了(你懂的)。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
说起来合作学习也是一个值得探讨的问题呢
![993e676ff661900e8aa6ac79ae24d179.png](https://i-blog.csdnimg.cn/blog_migrate/66b68c873fc3ac88b6778813d9ef1f0f.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
自我约束能力果然很重要!您也提到,在独自自习时,我们有时会遇到打不倒的拦路虎,会感到缺乏学习的动力,请问您对同学们在计算机程序设计等课程的合作学习方面有怎样的看法?
这是一个很好的问题。虽然程序员很多时候看上去只需要与计算机进行交流,但几乎所有成功的软件都离不开人与人之间的合作。初学者由于缺乏与计算机交流的经验,遇到问题往往不知所措,这时候如果能跟同伴一起吐槽、一起想办法,心情一定会好很多,特别当你发现ta还不如你时,那种感觉,哈哈~
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
看来您非常支持合作学习,并且也比较推荐与同学一同学习,那老师和助教作为合作学习的对象如何呢?
最方便的求助对象当然是老师和助教了,但作为曾经的学习强者,很多同学羞于提出那些弱弱的问题,更尴尬的是可能听完答案还是一脸懵(没办法,不在一个位面,很难沟通)。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
这时候身边那个看起来也很青涩的同学就是你的最佳合作伙伴了。虽然都是初学者,但对知识的敏感点可能不一样,特别是在调试程序遇到问题时互相帮助检查,你会发现不仅进步很快,而且节约时间。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
经常有这种情况,一个微小的错误,写程序的人努力很久都发现不了,而旁观者却可能分分钟一语道破。比如scanf时少写了&这种被老师强调过一百遍的错误。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
确实诶,小蜗也发现和同学在一起讨论比较容易找到共同容易犯的错误。但是和同学在一起多是在自习,讨论可能会影响到他人。您有没有推荐的有效的合作学习形式呢?
合作学习最好集中找一个时间段进行,我的建议是充分利用课程的上机实验时间。在机房一边编程一边讨论并不会像在自习室那样影响到别人。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
最后就问问老师针对部分同学的相关建议和寄语吧
![993e676ff661900e8aa6ac79ae24d179.png](https://i-blog.csdnimg.cn/blog_migrate/66b68c873fc3ac88b6778813d9ef1f0f.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
说了这么多好的方法,但是还是有些同学认为自己不适合学习C语言,觉得它太复杂。对于这些同学,请问您有相关的指导建议或寄语吗?
这跟课程的定位有关,作为一门全校的通修课,应尽可能讲授基础和通用的内容。早年这门课的名称是“C程序设计”,那时候C是最流行的语言,没有之一,教学目标就是学好C语言,侧重语法的完备,所以会涉及到比较艰深的内容。2010年之后课程名称改为“计算机程序设计”,教学目标改成在讲授C语言的同时培养计算思维(虽然迄今为止尚未达成目标,但它真的很重要)。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
既然课程更名为“计算机程序设计”了,为什么还是选用c语言呢?它有什么独特的优势吗?
之所以还是选用C语言,其一C从未离开过程序设计语言排行榜前三名,应用极为广泛。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
其二C是从事信息和计算机领域工作的重要基础语言。(有人觉得我在诱导大家换专业,但并没有证据,哈哈~)
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
其三则是从训练计算思维的角度,其它语言并不比C更简单,比如最核心的算法程序,各种语言的写法都差别不大,而C语言的效率最高。C不擅长开发图形界面和快速搭建应用,而这恰好并不是这门课程所关注的。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
实际上,当掌握了C语言后,再学习其它语言都会很轻松。据说知乎上“我要不要学Python”点赞最高的回答是“我一天就学会了”。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
原来是这样。最后,请问老师您是否可以给科大的同学们一句寄语呢?
对科大的同学来说,不要把这门课当成一门单纯的语言课,不要被枯燥而复杂的语法细节迷惑,而是要当成数学物理这种基础课,以掌握一种新的思维方式和解决问题的新方法为目标,这样在遇到困难时可能更会有耐心和信心。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
嗯,听您讲完之后,小蜗对于学好这门课更有信心了呢!谢谢王老师的指点!
嗯嗯,不客气,希望对于同学们的学习有帮助,也希望更多的同学喜欢这门课。
![202144695dce885aaf78ae88b0ac4286.png](https://i-blog.csdnimg.cn/blog_migrate/09f4a5dd14bfa73675add74e4ffc79f6.png)
老师寄语
过去的一个学期我在与同学们的交流中体会到了教学相长的乐趣,感受到了大家的青春活力,希望同学们能继续坚持对知识的渴求、对真理的追求,以乐观积极的心态面对困难与挫折,做一个身心健康、对社会有用的人。嗯,这样一本正经是不是也挺帅 :-)))
这个学期大家都挺难的,祝愿早日战胜疫情,健健康康快快乐乐忙忙碌碌重回正常生活~!
——王雷老师
![cb54d56b410d302a6ec43df955990ebe.png](https://i-blog.csdnimg.cn/blog_migrate/9c0979282aa0fa0b37ad360a7eecec13.png)
![76013c5ee19e9f2166f5ad876112937e.png](https://i-blog.csdnimg.cn/blog_migrate/9a44bcc0d847072a9095660c7555eea0.png)
王老师和Albert Einstein雕像合影
结语
看完王老师的答复,你是否对计算机程序设计等课程学习有了更加细致深入的了解呢?又是否对王老师有了进一步的认识呢?
希望同学们能够将宝贵的学习方法化为自身学习技能,举一反三,为个人学业增光添彩。
![a2d288ad7ab0bd142294a5178c090604.png](https://i-blog.csdnimg.cn/blog_migrate/859df54d209070b21cb370a34b365e90.jpeg)
科大校园里,还有很多我们敬重、喜爱的老师们。期待下一期,我们在校园的春光里和老师们交流!
中国科大学生会
文字:周语情、赵海博
供图:王雷老师
文审:张帼一
美编:朱依帆 责编:周敬涛
审核:任吴炯
![f0be8bf844ac82744aa8a9edc67999a9.png](https://i-blog.csdnimg.cn/blog_migrate/15d8de52a573707ea9230521912e1bf0.png)
点击 “在看” GPA++
![130785297914855ed088ce885419704d.png](https://i-blog.csdnimg.cn/blog_migrate/869c8c8feb086433684e3ad2b428ad67.png)