◎邓学明 (东莞市电子科技学校,广东 东莞 523710)
1.人工智能教育的重要性
时代的快速发展、经济的迅猛提升、科技的不断进步造就了当下的互联网+时代,其中,不得不提的就是人工智能与大数据,这两者的相互影响正逐步渗透到各行各业当中.可预知,未来世界格局如何发展和变化必然与人工智能息息相关.基于此,我国在2017 年7 月就提出了全民人工智能教育,在《国务院关于印发新一代人工智能发展规划的通知(国发2017[35 号])》中提出在中小学阶段设置人工智能相关课程[1].这表明,人工智能教育早已经在国家层面提出了明确的规划和要求,在中小学阶段渗透人工智能教育为人工智能人才的培养做好铺垫,人工智能的相关人才直接关系到国家的未来发展.因此,我们必须承认的是实施人工智能教育已经成为教育当中的一个趋势.
2.中职数学课开展算法教学的第二课堂的可行性
随着大数据时代的发展,中职学生从素质到特点都发生了变化.他们对于时下的各种人工智能产品非常感兴趣,比如机器人、智能手机、无人机、无人驾驶等诸多智能产物.以我校为例,无人机专业的学生对无人机非常感兴趣;电子商务专业的学生在互联网+的背景下进行电子商务创业,很有想法;计算机专业的学生对网络数据结构方面有很好的兴趣和认识;体育运动专业的学生在健美操、足球、篮球方面取得非常突出的成绩;艺术专业的同学在3D 动画设计方面很有特色.所有这些实际上都和大数据、互联网和智能化不可脱节.随着我校三二分段的专业设置,每年都吸引着一批比较优秀的学生入读,在这批学生中有相当一部分学生数学成绩非常好,数学思维也很活跃,他们对于数学非常感兴趣.因此,在中职数学课中,结合我校特色,我校开展算法教学的第二课堂,吸引对于人工智能、计算机编程及数学思维有兴趣的同学参与,以此探索人工智能教育在中职学校如何开展是可行的.
笔者以我校为例,开设第二课堂的算法教学,探析中职学校如何借助数学课开展人工智能教育.
1.介绍算法的含义与实例
中职学生对于算法的概念多数停留在如何进行加减乘除乘方等运算层面,因此在开展算法教学的第二课堂,有必要向中职学生介绍算法的概念.
为了让同学们对算法概念有一个初步正确的理解,教师可以让同学们从狭义和广义两个层面进行认识.广义上的算法范围广泛,比如同学们练习广播操的分解步骤是一个算法,机器的使用说明书是一个算法,具体到数学上来,求解方程的根是一个算法,求两个数的最大公因数也是一个算法.狭义的算法概念的表述更为严格,不同的学者对于算法的概念理解略有不同,但是本质上基本类似,亦即算法是为解决某一问题的程序或者步骤,必须具有以下几个特点:确定性、有穷性、可行性、有序性和通用性[2].算法的表达形式通常有三种,分别为自然语言、程序框图以及代码或者程序[3].
2.介绍人工智能与算法的关系
人工智能的本质究竟是什么,学习算法又是为了什么,回答了这两个问题,对于中职生来说很有必要,不仅可以让他们明确人工智能是什么,也可以提升他们学习算法、了解人工智能的兴趣.为此,在算法教学的第二课堂,教师有必要向学生回答上述两个问题.
人工智能得以实现,必须借助的工具就是计算机;而计算机之所以能够以其强大的运算功能来解决问题,离开不了的是算法及其指导下的操作程序.可以说,人工智能的发展本质上离开不了算法的发展.因此在培养学生人工智能素养时,必须重视算法教学的开展,为学生理解人工智能乃至未来从事人工智能相关行业的工作打下一个良好的基础.
3.中职学校如何开设模块化的算法教学
根据中职学生的数学思维水平及其学习特点,笔者认为在开展算法教学这一第二课堂时,对于算法教学的内容必须遵循从具体到抽象,从简单到复杂,必须符合中职学生的认知水平,从而实现中职学校的人工智能教育的普及和发展.为此,笔者认为可以把算法教学进行模块化,然后以模块的形式进行教学,并进一步阐述如何实现人工智能在算法教学中的渗透.
教学模块一:实际生活的算法实例教学.这一模块的主要目的就是让学生直观认识算法,并进行算法自然语言的训练,达到初步学习算法的目的.例如,家里烧开水的步骤可以叙述为:
第一步:用烧水壶装好水;
第二步:把装好水的烧水壶放好并插电;
第三步:烧水壶跳闸后取水.
通过这样的训练,让学生掌握把一个问题的解决方法进行拆分,写出若干个可以操作的简单步骤,达到通过生活实例去感知算法的初步目的.在这样的教学中,学生容易体会算法的基本特点.
教学模块二:智力游戏的比拼教学.这一模块的教学目的是拓展学生的思维领域,激发学生的潜在天赋.例如:有一个猎人带着一条猎狗、一只兔子和一筐蔬菜来到大河边,而河边只有一艘很小的船,猎人每次只能带狗、兔子和蔬菜中的一个过河,为了保证兔子不被狗吃掉,菜不被兔子吃掉,那么猎人应该如何过河? 回答这一问题,可采用如下的算法步骤:
第一步:猎人把兔子运到河对岸;
第二步:猎人独自返回;
第三步:猎人把狗运到河对岸;
第四步:猎人放下狗,把兔子带回;
第五步:猎人放下兔子,把菜运送到河对岸;
第六步:猎人放下菜,独自返回;
第七步:猎人带着兔子过河.
这样的智力游戏,让学生主动思考,积极参与到如何解决问题中来,可以很大程度上调动学生学习的兴趣,为算法教学进一步打下坚实的基础.
教学模块三:简易的纯数学算法实例教学.这一模块的教学目的是让学生通过解决数学问题,能够对算法在数学中的体现有更为深刻的认识.例如,写出求解方程2x-1 =0的算法步骤,它可以表述如下:
第一步:两边同时加1 化简方程为2x=1;
第二步:两边同时除以系数2;
第三步:算出方程的解x 的值.
如常见的判断一元二次方程ax2+bx+c =0(a≠0)是否有根的算法用自然语言可表述如下:
第一步:输入系数a,b,c;
第二步:计算Δ=b2-4ac 的值;
第三步:判断Δ 与0 的关系,如果Δ≥0,则输出“方程有实数根”,如果Δ<0,则输出“方程无实数根”.
通过将解决数学问题的方法细化为多个步骤,让学生体会算法的可操作性、顺序性、有效性,提升算法教学的专业化程度.
教学模块四:我国古代数学问题中的算法教学.在这一模块,由教师展示我国古代数学著作中的经典问题,例如《九章算术》中记载的“今有人共买鸡,人出九,盈十一;人出六,不足十六,问人数和鸡价几何?”《孙子算经》中的“韩信点兵”问题等.然后教师帮助学生理解这些数学问题,并转化成现代语言,引导学生进行思考,如何求解.通过对这些著名问题的求解训练,一方面弘扬我国的数学文化,一方面也让同学们提升兴趣,怎么用现在所学去解决古代的数学问题.可以为算法教学起到良好的润滑作用.
教学模块五:算法初步即程序框图的教学.通过把自然算法语言转化成程序框图的学习,使得人工智能教育得到进一步升华.如前面提出的判断一元二次方程ax2+bx+c =0(a≠0)是否有根的算法用程序框图可表示如下:
通过程序框图的教学,为数学算法转化为计算机程序语言打下基础,也是人工智能得以实现的一个关键环节,因此笔者认为本模块的教学相当重要.在这一模块的教学中,让学生学会制作程序框图,内容较为困难,因此需要进行深层次的挖掘和研究,以便更加适合中职学生学习.
教学模块六:计算机语言的程序设计教学.这一模块的教学目的是让学生学会把数学算法转化成计算机程序,实现人工智能的转化.如前面提出的判断一元二次方程ax2+bx+c=0(a≠0)是否有根的算法用计算机语言可表示如下:
计算机语言(basic 语言):
INPUT“a,b,c;”Δ=b2-4ac
IFΔ≥0 THEN
PRINT“有实根”
ELSE PRINT“无实根”
END IF
END
这一模块的教学对于中职数学教师提出了较高的要求,它首先要求教师对于计算机语言掌握得很好,然后对于算法和计算机语言之间的相互转化要了然于胸,唯有如此才能在教学中深入浅出让学生明白如何书写计算机程序语言.笔者认为,这一模块的教学可以尝试用数学教师和计算机教师结合的双师合作教学,这样的新型合作教方式,可以扬长避短,一方面,克服数学教师在计算机语言中存在的困难,另一方面,让学生体会数学和计算机结合的人工智能的实现方式,从而提高教学效果.
笔者通过对学生的问卷调查和我校计算机以及数学教师的访谈,提出通过以上六个模块的算法教学,开展我校基于算法模块教学的第二课堂,达到培养中职学生人工智能素养的目的.对于各个模块的内容设置多数同学表示非常感兴趣,多数教师也认为可以实现.不同于普通高中开展算法教学的目的更多是应付高考,中职学校完全可以按照学生兴趣加大课时,充分利用三年时间中的第二课堂,逐步推进人工智能教育的开展.因此,笔者认为利用这种方式进行人工智能教育的渗透,在中职学校是可行的,也期待相关课题得到进一步完善和研究.