教师不会用计算机,为什么芬兰教师教编程不用电脑?只因他们这么看编程

2023-11-10 01:50

本文主要是介绍教师不会用计算机,为什么芬兰教师教编程不用电脑?只因他们这么看编程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原标题:为什么芬兰教师教编程不用电脑?只因他们这么看编程

看点人工智能时代的到来,让编程成为必学的技术之一。但是枯燥代码排列如何能让孩子们理解并能运用呢?芬兰教师的做法带给我们极大的启示:编程不仅仅是一门技术,更重要是它是一种思维方式。从思维方式的角度切入,编程还可以游戏化,真正做到寓教于乐。

文丨李璨 屠莉娅编辑丨黄晔

教室里,老师正领着学生们做“西蒙说”游戏——

老师与学生们面对面站立,每个学生都全神贯注地等待着老师的指令。

“西蒙说,7 !”听到指令后,学生们迅速地坐到了地上。

“西蒙说,12 !”接到下一条指令后,学生们又立刻将手放到了头上。

根据教师的规定,当“西蒙说”后面的数字为奇数时,学生要立刻坐在地上;当“西蒙说”后面的数字为偶数且该数字大于10 时,学生则要将手放在头上;如果两者都不符合,学生则保持原状不动。

如果哪个学生听到指令后做了错误动作,他就要出局。随着教师的语速越来越快,出局的学生越来越多,坚持到最后的一到两名学生将赢得这场游戏。

看到这里,你可能在想,这大概是一节教学生判断奇偶数的数学课。但事实上,这却是芬兰的一节教学生体会“IF 语句”的计算机编程课。

这只是芬兰编程课的一个片段,让我们来看看芬兰思维下的编程课是如何进行的!

从技术到思想

芬兰思维下的电脑编程课程

eab712a7cf1aaa6f596a05c63bfd4876.png

电脑编程在信息化的今天已经成为学校课程中不可或缺的部分,而将技术教育作为国家目标之一的芬兰,更是高度重视对学生的编程教育。

大部分人常识中的编程课依旧是一门传统的计算机技术课程,学生要通过编程课程了解程序设计的基本概念,掌握程序设计中的基本技巧和常用算法,建立起程序设计的基本思路,以最终通过计算机程序设计语言来控制计算机完成某种特定的任务。但对走在教育改革和创新前沿的芬兰来说,编程课程要达到的教学效果远不止这些。

关注学生的可持续性发展和重视学校学习联系生活实际是芬兰教学最显著的两个特点。芬兰相信,学习的目的除了掌握知识本身,更要让学生能够主动地思考和灵活地运用知识以解决更多实际的问题和更好地应对未来多变的生活。受这样的教育理念的影响,芬兰认为编程课程要做的绝不仅仅是对学生的技术训练,学校更应该关注如何让学生理解和掌握编程背后的思想。

fe98921afb0bb79f1e9b10fb5b22611a.png

因为如果将编程学习仅当做一门技术来学习,那学生最终获得的就将是使用计算机的能力;但如果将编程学习看做是计算机编程思想的学习,那学生所获得的就将是计算机编程的本质原理和可迁移的思维方式,而这种思维方式也将能够被用来开展更多的研究和解决生活中更为复杂的问题。

例如,计算机编程的过程实际是通过抽象和分解来完成复杂任务的过程,传统的以技术学习为目标的编程课更关注的可能是具体的语句编写、程序调试和最终的运行结果。

但如果将编程看做是一种思想来学习,那除了基本的程序设计,教学还应该关注编程过程中给学生带来的思维方式的启示。如何将复杂而庞大的问题系统分解为一个个具体的问题单元,如何用合适的方式来阐释和归纳同类型的问题,如何选择恰当的方法对问题进行转换以使其更易处理等,都是编程课应当关注的内容。

如此一来,学生除了学习到了具体的编程技术,更培养了化整为零的思维习惯。这种习惯一旦养成,受益的将不仅仅是编程学习,其能够为学生生活的各个方面带来积极的影响。因此,芬兰希望学校的编程教育要能够做到:教授相关编程知识的同时,有意识地对编程思想进行解释,构建其与学生生活之间的各种联系,让学生体验到科技与生活是息息相关的,实现用编程和代码来激发学生各方面的学习兴趣。

创想无极限

没有电脑的编程课

一提到学习编程,多数人脑中出现的画面一定是学生一边听老师的讲解,一边敲击键盘进行练习的画面。但学习编程真的要用到电脑吗?我们不妨先看看芬兰的教师们是如何做的。

85bd9d312d623b02c107efb71f38d62e.png

案例一:人体B-Box

这是一节学习循环结构的编程课。循环结构是对某一算法的重复执行,其大大减少了相同语句重复书写的工作量,是最能发挥计算机设计特长的程序结构之一。很多看似复杂的程序设计,实则都是由一个个循环运行的循环体构成的。

就如同现实生活中很多看似复杂的大工程,其实也都是由各个小工作任务按照不同的方式循环而成的,B-Box 音乐就是一个典型的例子。

B-Box 是口技的一种形式,人们利用唇、齿、舌等不同的部位模仿出不同乐器的声音,再按照一定规律对不同的声音元素进行重复和叠加以汇编成一段富有节奏感的音乐。得益于B-Box 和循环结构所体现出的相似的工作原理,教师设计了这样一个人体B-Box游戏来帮助学生更好地领会循环思想——

如下图所示,教师先对学生进行分组,每组学生负责演奏一种声音,如第一组学生负责拍手,第二组学生负责用嘴发出“哔哔”声,第三组同学负责用嘴发出“嘣嘣”声等。而后为每组学生设计一个演奏图式,并给出图式的循环次数和开始下一个动作循环的指令。

bd148b344e87287210ec3ebd93b2e9c5.png

根据上图的要求,整个演奏从负责拍手的小组开始,并在拍手小组完成一个循环体后,负责发出“哔哔”声的第二小组加入进来;第二小组完成一个循环体后,负责发出“嘣嘣”声的第三小组再加入进来,从而实现不同声音的叠加和重复,形成了一段完整的B-Box 音乐。

在熟悉了游戏规则后,学生可以自己添加其他的平行循环或嵌套循环,或是改变各组的演奏图式和循环方式,创作出自己喜欢的音乐。

案例二:机器人操场

“IF 语句”是计算机编程中最常用的判断语句之一,其要按照给定的判断要求,根据判断结果的真假来执行对应的操作步骤。“IF 语句”对学生的逻辑思维能力提出了较高的要求,如何用简洁明了的判断条件及其对应的操作步骤来代替重复而烦琐的单个执行语句是学生在学习“IF 语句”的过程中要重点掌握的内容。

在这节课的教学过程中,芬兰教师带领学生做了个名为“机器人操场”的游戏——

教师将学生分为两组,一组学生扮演机器人,另一组学生扮演机器人的操控者,帮助机器人越过各个障碍物。

首先,教师带领学生来到空旷的操场,并让学生共同完成对障碍训练场的布置。他们可以利用如下图所示的直观的引导符号,也可以利用学校里的桌椅板凳等设施来布置供“机器人”穿越的障碍训练场。各个障碍物布置好以后,学生分成两组,一组学生扮演机器人,一组学生扮演机器人的操控者。其中扮演机器人的学生要将眼睛蒙起来,这样他们就真的像机器人一样——缺乏操控者的指令就无法行动。

f9e47758de3f6bbc4ab14bcb8dce36cc.png

“机器人操场”引导符号

与一般的游戏不同,该游戏中教师要求学生用简短的“IF 语句”来代替繁杂而重复的独立语句。例如,一般情况下操控者可能会对机器人说:“先前走两步,而后从板凳上爬过去,再前走三步,接着从桌子下面钻过去。”但在这个游戏里,教师要求学生用这样的“IF 语句”向机器人发出指令:“接下来你要面对六个障碍物,在碰到下一个障碍物之前你先保持直走,如果那个障碍物很高,你就从它下面钻过去;如果比较矮,你就从它上面爬过去。”

在这两个教学案例中,学生所看到的、学到的不仅仅是“Do…”或“IF…Else…”等直白的计算机语句和编程技术,他们更理解了如何在解决具体问题的过程中使用循环思想和条件判断来对问题进行加工和处理。

第一个案例中,学生最后要共同创作出一段B-Box 音乐。一段音乐里有不用的乐器和音节的排列组合和重复,看似是个十分复杂的工程。但通过最开始教师指导下的“循环程序”的演示,学生知道再复杂的任务也是由一个个部分组成。要形成完整的音乐,就要先找到音乐里所包含的各个元素和片段,而后对这些小的部分进行重复和循环设计,便能形成最后的完整的乐章。

第二个案例中,学生被要求用尽量简短的“IF 语句”来发号施令,这使得学生不仅仅学到了“IF 语句”的一般用法,更从走一步、看一步、做一步的短视性思维转换为从整体出发的全局性思考,无形中锻炼了学生的逻辑思维能力。

13e2e48584f439580959112ec96dabbf.png

值得一提的是,芬兰教师并不反对在编程教学中使用计算机。在学生掌握了编程背后的思想之后,芬兰教师也会让学生在电脑上进行相关程序的编写练习。他们只是强调,不要让计算机限制了编程学习的范围。除了常规的编程技术的学习,编程过程中所体现出的各种思维方式和解决问题的方法也是教学过程中应当关注的内容。

“学编程真的要用到电脑吗?”到这里,这个问题的答案已经显而易见了:

如果将计算机编程看做是门单独的技能学科,那么计算机编程当然得有电脑才能学习。如果认为学习计算机编程更为重要的是理解其背后的概念,理解计算机与生活的关系,理解计算机与人的思维方式的区别,那么就要先在生活中理解和体会计算的本质,然后再去用像计算机这样的工具来实现计算目标,这样才算是达到了学习目标。

打破课程的窠臼

发现学习的乐趣

659260e3a9950af86b720634cd5bf858.png

75154d0ccbf659a68bf020306582f794.png

芬兰的教学注重创新、注重学生兴趣

与传统的计算机编程课相比,这种没有电脑的编程课因不受授课形式的约束而大大增添了学生学习的趣味性。游戏化课程是芬兰编程课的最常见形式,在游戏的过程中,学生全身心投入。一个个精心设计的与学习目标相关的游戏任务,除了让学生在轻松的氛围中自然而然地学习和体会到编程背后的本质思想之外,还充分调动起了学生的脑力、创造力和动手能力。这种寓教于乐的教学方式,在增强学生的学习参与度的同时,让学生收获了愉快的学习体验,从而让学生更加积极地投入到学习过程中来。

除了增强课程本身的趣味性外,让学生发现学习与其自身的联系和意义,也是帮助学生发现学习乐趣、提高学习积极性的重要方式。曾在美国波士顿公立学校工作过的亚冉• 明茨在哈佛大学教育研究生院攻读博士学位时,对美国26 个州共110 所中学的81,499 名学生进行了调查,她发现,大约三分之二的在校学生有厌学的情绪。

0a6d640712842070f8f367d3eebb3a42.png

为什么会这样呢?最主要的原因是学习材料枯燥无味,缺乏针对性,挑战性也不强。有的学生说:“学校学习很乏味,大家昏昏欲睡,一点都提不起劲来。”更有60% 的学生说:“我不知道课堂上学习这些东西有什么用。”

同样地,如果只将编程作为一门技术来学习,多数在校学生,尤其是低年级的学生,仍然难以理解学习编程于其自身的意义所在。这时学习就会变成一种机械的、被动的行为,一旦脱离了学校的环境和教师的指导,学生将不再想要学习,甚至对学习感到无从下手。这种学习与芬兰所追求的可持续性的学习显然是相悖的。

因此,芬兰的编程课程关注程序背后的原理,将编程学习与学生的实际生活联系起来。原本孤立而深奥的编程语句,因为一个个与学生相关并让学生真实参与进来的活动而变得亲切又充满生气。此时的编程课程或许依旧神秘,但是对学生而言它已经充满吸引力,因为学生开始理解编程背后的原理和依据了,学习编程已经变成一项有趣而有意义的事情。

正如最初开发Linux 系统的芬兰人林纳斯• 托瓦兹所说:“程序就像是一种魔法,由你来开发程序以告诉计算机要做什么。如果你要理解的是编程的本质,那学校的编程教育就将会是一件有趣的事,而不再是一件因为大家都要学所以我也必须要学的事情。”

本文转载自公众号 第一教育(ID:diyijiaoyu)

限额120人

Python编程冬令营—进阶课程开启!

从面向对象的编程技能

到编写图形用户界面

再到做出具有动画效果的APP

做出人工智能的小项目

Python编程进阶课

由佩恩教授带你走进

专业性与实用性兼备的Python应用世界

责任编辑:

这篇关于教师不会用计算机,为什么芬兰教师教编程不用电脑?只因他们这么看编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379723

相关文章

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

C#异步编程ConfigureAwait的使用小结

《C#异步编程ConfigureAwait的使用小结》本文介绍了异步编程在GUI和服务器端应用的优势,详细的介绍了async和await的关键作用,通过实例解析了在UI线程正确使用await.Conf... 异步编程是并发的一种形式,它有两大好处:对于面向终端用户的GUI程序,提高了响应能力对于服务器端应

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错