超越“讲课”,给学生以更切实际的支持

听到有教程序设计入门课的老师抱怨:“现在的学生不学,布置的任务不做。”当有人指出学生程序设计基础差,而暗示教程序设计的老师应该负责任时,又委屈了:“难道说我讲得不好?我如此精心地备课、讲解,学生听不明白,学不会,有什么办法?”
  这个委屈可以理解,但学生没有通过这个课程学到应有的知识却也是事实。而程序设计入门的学生,诸多的坏习惯并不严重,是应该要学会的。
  没有人会指责尽心教学的老师“讲得不好”。但“没有教好”和“讲得不好”不是一码事,前述的委屈发错了。极端点,有的老师真讲的不行,但他善于组织与鼓动学生,学生能够投入地学习,“讲得不好”,却也可以算“教得好,能教好”了。我曾经写过一篇短文《 大学中教与学的几个话题》,探讨了“教育和教学不是一码事,教学和上课不是一码事,上课和讲课不是一码事。”。真是这样。
  发这个感慨源于一位学生的博文。原文不长:“学习c语言差不多有两个多月了,我还只是仅仅跟着老师的步伐:上课听一下,课下做一下老师给的作业。我知道要学好这个专业,这样是不够的,但是我真的不知道从何下手,怎样学好这个专业的基础课c语言。希望老师能够给我一点指示。”写博客是我带他开始的,C语言却不是我教,我关注了他,我知道,此处“老师”指的就是我。
  教一门课,“讲好”是必须的,但作为教师,不要自满于“讲了什么”,讲得再多再精不算,关键是学生学了什么,围绕学生的学去讲。要在乎学生“学到了什么”。课堂不光是讲课的,是组织课程,指导学生学习的阵地。抱怨学生不听,听起来委屈,但应该想着点改变,不听就不讲了,换个法子帮助学生学。其实,学生“学到了什么”也不是最重要的,最重要的是“学生做了什么”,这才是出功夫的关键。课程组织中,指导学生的课后学习,非常重要。
  在上面同学的问题中,显然老师布置的作业喂不饱想学的学生,不足以保证教学效果。这样的状况久了,学生想学也上不去了,逐渐也就不想学了。如此逻辑,学生不学,教师责任在首位。在上述问题中,学生的课外学习如何开展,显然更缺。

  我给学生的留言,只能鼓励他课外多实践,并且指点下如何找到和设计自己的实践。对任课教师所起角色的缺失,我无能为力,只能呼吁教师也要改变。我开《大学生学习》课,越讲越觉得,应该让老师们知道学生应该有什么样的学习。再老的老师,也需要更新自己的观念。老师不光是讲课的,改一改,让学生的学习得到更多支持,这是我们教育局面改变的基础。


PS:科学网上有人留言:“正在这样做,不认同这句话:其实,学生“学到了什么”也不是最重要的,最重要的是“学生做了什么”,这才是出功夫的关键。学生学到了什么,是我最关心的事情,因材施教的目的就是学生要学习到东西。照目前来看,很快就需要做一个评估了:按照因材施教的原则,一个老师最多能教多少个学生?不知道您做过这方面的研究没有?”我的答复:“不是研究,正在实践。人多了不能“因材施教”了,各材分别是什么材都没法去差别。点好一灶火,或烧开一锅水,把材们放进去,怎么一个折腾法,由他们去,只要在折腾,各住会折腾出该有的样子。人多是个现实,只能这样做。班级制就是在限制因材施教的,更无论大班了。我强调“做什么”的语境是工程教育,提到的程序设计适合,科学和人文的教育是否这样,没有想。“做”没有否定去学,讲究学做结合。不把“做”提到重要位置,那点“学”是靠不住的。”

  锅、水什么的,我都被自己逗乐了,贴出来,作为补充。

好的,下面是我为你准备的讲课课稿,同时我会结合屏幕演示来讲解快速排序算法。 ## 课程内容:快速排序算法 ### 一、算法简介 快速排序(Quicksort)是一种高效的排序算法,采用分治的思想,将一个大问题分割成若干个小问题进行解决。快速排序是一种原地排序算法,它不需要额外的存储空间来存储临时数据。快速排序算法的时间复杂度为 O(nlogn),是一种性能非常优秀的排序算法。 ### 二、算法步骤 快速排序算法的核心思想是分治法,具体步骤如下: 1. 选择一个基准元素(pivot),将数组划分为两个子序列,左侧子序列所有元素小于等于基准元素,右侧子序列所有元素大于等于基准元素。 2. 对左侧子序列和右侧子序列分别递归应用快速排序算法,直到子序列的长度为1或0。 3. 将左侧子序列、基准元素、右侧子序列依次合并,得到排序后的结果。 ### 三、算法演示 接下来,我将演示一个快速排序的排序过程,假设我们要对一个整数数组进行排序,数组元素为[8, 2, 6, 3, 7, 1, 5, 4]。 首先,我们选择数组中的一个元素作为基准元素,假设选择的元素为8。然后,对数组进行划分,左侧子序列为[2, 6, 3, 7, 1, 5, 4],右侧子序列为[]。此时,我们需要对左侧子序列和右侧子序列分别递归应用快速排序算法。 对左侧子序列[2, 6, 3, 7, 1, 5, 4]进行快速排序,选择基准元素为2,划分后得到左侧子序列[1],右侧子序列[6, 3, 7, 5, 4]。对左侧子序列[1]和右侧子序列[6, 3, 7, 5, 4]分别递归应用快速排序算法。 对左侧子序列[1]进行快速排序,得到[1];对右侧子序列[6, 3, 7, 5, 4]进行快速排序,选择基准元素为6,划分后得到左侧子序列[3, 5, 4],右侧子序列[7]。对左侧子序列[3, 5, 4]和右侧子序列[7]分别递归应用快速排序算法。 对左侧子序列[3, 5, 4]进行快速排序,选择基准元素为3,划分后得到左侧子序列[1, 2],右侧子序列[5, 4]。对左侧子序列[1, 2]和右侧子序列[5, 4]分别递归应用快速排序算法。 对左侧子序列[1, 2]进行快速排序,得到[1, 2];对右侧子序列[5, 4]进行快速排序,选择基准元素为5,划分后得到左侧子序列[4],右侧子序列[]。对左侧子序列[4]和右侧子序列[]分别递归应用快速排序算法。 对左侧子序列[4]进行快速排序,得到[4];对右侧子序列[]进行快速排序,得到[]。此时,左侧子序列[1, 2, 3, 4, 5],右侧子序列[6, 7]。将左侧子序列、基准元素、右侧子序列依次合并,得到排序后的结果[1, 2, 3, 4, 5, 6, 7, 8]。 ### 四、算法总结 快速排序是一种高效的排序算法,它采用分治的思想,将一个大问题分割成若干个小问题进行解决。快速排序算法的时间复杂度为 O(nlogn),是一种性能非常优秀的排序算法。在实际应用中,快速排序算法通常是最优选择之一。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值