三次不同的函数课

2024-03-12  本文已影响0人  书一

最近在给学生讲编程的函数,函数是重点也是难点。一直没有好的方法能给学生讲得更明白。看了一些教程,也思考了很多,但是没有找到更好的方法。一共上了三次课,主要是为了照顾一些请假的学生,如果不从头讲,他们就无法正常跟上节奏。

第一次课,采用的是直接讲授法。先是让学生通过常规的做法去写一个乘方的程序。这个对学生来说不是难事,然后让学生写一个a的平方+b的三次方+c的四次方的程序。这里面用到三次乘方运算,从来引出函数的概念。然后引导学生去尝试写出乘方的函数。这个子函数是在乘方程序中写出来的,学生会感觉有点突兀。

第二次课,采用的是写内置函数法。因为初中生还没有接触到函数,但是以前面的编程中,学生已经使用过ceil()函数,对这个函数有一定的了解,ceil函数是一个向上取整的函数,因此先是让学生用此函数编写一个根据输入的数字,实现向上取整并输出的程序,学生非常轻松就可以搞定。然后,我让学生思考ceil函数的工作原理,引入子函数的概念,让学生自己写一个类似ceil功能的子函数,然后在主程序中调用。这种方法感觉比直接讲授的方法要好得多,有助于学生去理解函数的含义,并且因为前面已经有了对ceil使用的理解,学生掌握起来相对容易一些。在此基础上,再让学生写一下绝对值、向下取整等内置函数,可以掌握更多函数,还进一步明白函数的工作原理。

第三次,采用的是主程序移植法。本来这节课不打算讲函数了,因为已经有了两节课的基础了,但是发现又有新来的同学,如果不讲,学生的信息学之路可能就此打住了,因为根本没有时间补课。如果再讲以前的题目,学过的孩子就没有挑战性了。这节课本来设计的关于素数的题目,所以临时又改成新授了。我让学生写一个判断素数的程序,在学生完成之后,告诉学生在c++中内置了一个判断素数的函数,让学生猜测函数的结构应该是什么?学生马上就能得到结论。只是这个函数其实是不存在的,但是由于前面已经编写了判断素数的程序,我引导学生如果我们可以调用第一个主函数就可以实现当下的功能了,但是一个程序之中不可能有两个主函数,所以要把第一个程序降为子函数,然后根据函数的结构,把程序移植到第二个程序当中,跟学生一起进行修改,让学生也进一步理解函数,感觉效果还是不错的。

接触编程接近30年了,一直对函数存有胆怯,没有很好的方法去帮助学生更好地理解。通过这三次不同的课,我对函数的理解也更加深入,不断思考究竟哪种方法更适合孩子?很多知识自己能够理解,但是能把自己的理解简单准确地传递给别人却很难。

对于老师而言,教授的不应该是知识,而应该是掌握知识的方法和路径。

上一篇下一篇

猜你喜欢

热点阅读