作为一名高中信息技术老师,被技术的发展潮流推动着,不断更新教学内容和方法,以适应快速发展的信息社会。
以前的中小学信息技术课程,老师们各显神通,身怀绝技,教PS,Falsh,网页制作,视频编辑等等,很多学校的信息技术老师还兼任电教,管理学校的投影、打印等。总是处于辅助的边缘角色,学科定位不定,老师们的成就感和积极性也会受挫。一个学科的根本确定后,才能名正言顺的开展下面的教学工作。否则一直都是边缘学科,陪衬的角色。《普通高中信息技术课程标准》把信息技术学科的核心素养包括:信息意识、计算思维、数字化学习与创新和信息社会责任四个要素。计算机科学教育不仅仅包括编程教学,即编程教学并不是计算教育的全部。计算教育还要包括对学生信息意识的培养,数字化学习与创新的应用和承担起相应的信息社会责任。每个学校都有自身的特定环境,有的学校侧重数字化学习与创新的应用,并没有专门的计算机科学方面的课程,课程更侧重于信息技术与各科的融合。国外的学校会有专门的职位来推动这个融合过程,国内的大部分是信息技术老师兼任和各科老师们来开展。
为什么要学习编程?
编程语言是和计算机沟通必须的语言,学习一门新的语言就像打开一扇背后充满各种可能性的窗户,多一种认识世界的角度和方式。类似于几十年之前的英语的学习,先接触英语的一批人就优先的获取了新的讯息和视角。无需人人都从事专业程序开发,但计算思维已经是面向未来的必备基础素养。
为什么选择Python语言作为高中生的入门语言?Python是一种什么样的语言?
没有最好的,只有最合适的。编程语言就像厨房里面的勺子,样式不同,各有特色,满足不同需求,类似于油画的各类笔刷,不同艺术效果需选用不同的笔刷。从底层的机器语言到汇编语言再到高级语言,每种语言都有他们的特色。比如,C语言:操作系统底层;Java:跨平台面向对象语言;Python:人工智能时代的首选语言。
如何教授编程?
从学习分析角度,编程属于技能领域。编程的学习就要遵循技能学习规律。刻意练习是技能学习的不二法门。中小学学生有他们特有的认知和心理特点,不能只是简单粗暴的练习,导致学生们对编程畏难和绝缘。通过以往的教学经验,融入项目教学方法,总结出如下的教学模式流程:
(1)抛出概念问题(项目活动1)
可视化编程可以作为入门课程,比如Python里面的turtle模块。可视化编程可以提供即时反馈,降低初学者入门门槛,学习过渡会顺利一些,另外,可视化编程可以持续激发学生的兴趣。为后面的学习提供动力基础。
艺术创作(绘制创意艺术作品)。让学生体会到编程不仅仅是机械枯燥的数字和抽象模型,通过有限的逻辑控制,实现无限的创意。让学生从新的角度来理解编程。发现艺术中蕴含的编程之美。
语文文本分析(统计词频,数据可视化呈现)通过编程来实现文本分析,并把数据可视化。从信息中提取出有用的知识也是信息社会必备的技能。
数学(输出质数、输出最大公约数、判断是否为闰年、概率统计模拟等)数学是计算机科学的基础,可以通过计算机实现验证某些数学原理,帮助学生深刻理解数学概念。
科学模拟(自由落体、泊松运动等)有趣的科学实验和原理都可以通过计算机模拟实现,也是通过编程来学习科学的一条路径。
生活案例随机点名器(列表和字符串)密码技术(凯撒密码随机替代密码弗吉尼亚密码等)真实的案例和问题给学生提供了学以致用的机会,当用着自己或是学生的产品,会有很强的成就感。学生们也借机体会真实的程序开发过程迭代过程。
游戏开发,编程语言的教学可以借助游戏平台模块或平台进行开展。比如Python语言可以通过pygame模块开发2D的游戏;也可以通过Minecraft开发3D游戏。通过学生感兴趣的游戏入手可以激发学生的学习兴趣。
(2)学生手动体验活动(项目活动2)
(3)编程实现解决问题(项目活动3)
(4)迭代完善(项目活动4)
总结反思实践过程中遇到的困难,如何解决的,如果再碰到类似问题应该如何迁移解决。项目过程中兴奋时刻是什么时候?最抓狂时候是什么时候?是如何解决的?