1. 引言
1.1. 研究背景
随着信息时代的到来,计算机技术应用到生活的方方面面,并且对人们的日常生活产生了极大帮组和促进。当今社会中,信息技术在生活的方方面面起了不可替代的重要作用,对于人们的未来发展方向也起到了直接而深刻的帮助和影响,算法在现代社会中具有重要性和广泛的应用价值。随着科技的不断发展和创新,算法已经成为各个领域中解决问题和优化过程的关键工具。首先,算法在信息技术领域中的重要性不可忽视。算法被用于处理和分析大量的数据,例如数据挖掘、机器学习和人工智能等领域。在这些领域中,算法可以帮助我们发现数据中的隐藏模式、预测趋势、做出决策,并构建智能系统。其次,算法在网络和通信领域中的应用也十分广泛。例如,路由算法用于确定网络中最佳的数据传输路径,以提高网络性能和可靠性。压缩算法用于减小数据的存储和传输开销。加密算法用于保护数据的安全性和隐私。此外,算法在金融领域中也扮演着重要的角色。金融市场中的交易和投资决策需要依靠算法来分析市场趋势、预测价格变动和优化交易策略。高频交易和量化投资也依赖于复杂的算法模型进行快速决策。还有很多其他领域也广泛使用算法,如物流和运输、医疗诊断、社交媒体、自动驾驶汽车等。算法可以帮助优化资源分配、提高效率、实现自动化和智能化,从而提升生活质量和工作效率。然而,算法的应用也带来了一些挑战和问题。其中之一是算法的公平性和可解释性。一些算法可能存在偏差或歧视性,需要在设计中考虑公平性的原则。此外,某些复杂的机器学习算法可能很难解释其决策和推理过程。综上所述,算法在现代社会中具有重要性和广泛的应用价值。随着技术的不断发展,我们可以预期算法将在更多的领域带来革新和进步。然而,我们也需要关注算法的使用方式和潜在的影响,以确保其公平、可靠和可持续发展。所以综合当今以及未来的个人以及国家社会发展的角度,对于中学生这个群体而言,在日常学习和生活中接触算法思想,渗透算法基本步骤内容成为目前中学教学中不容忽视的一部分 [1] [2] [3] [4] [5] 。
随着算法在现代社会中的重要性越来越受到关注,许多国家和地区开始在教育体系中引入与算法相关的教育政策和课程标准。这些政策的目标是培养学生的算法思维和数据处理能力,以应对日益复杂的信息技术环境。教育政策的制定通常考虑以下几个方面:算法思维的培养:教育政策旨在培养学生的算法思维能力,让他们能够分析问题、设计解决方案,并将其转化为算法的形式。这涉及到培养学生的逻辑思维、问题解决能力和创新意识。数据科学和人工智能的引入:政策可能要求将数据科学和人工智能的相关概念和技术引入到适当的学科中,例如数学、计算机科学、信息技术等。这可以帮助学生了解数据科学的基本原理和应用领域,以及人工智能的基本概念和算法模型。实践和项目导向的学习:政策可能鼓励学校采用项目导向的学习方法,让学生通过实际的项目和应用场景来学习算法和数据处理技术。这种实践性的学习可以帮助学生将理论知识应用到实际中,并培养他们的合作能力和问题解决能力。
跨学科融合:教育政策可能鼓励学校在课程设置中将算法和数据处理技术与其他学科进行融合,例如科学、工程、社会科学等。通过跨学科的学习,学生可以了解算法在不同领域中的应用,并培养跨学科思维和创新能力。此外,一些国际组织和学术界也制定了与算法教育相关的课程标准,例如国际计算机驾驶执照(ICDL)和计算机科学学习标准(CSTA)。这些标准提供了一套共同的指导和框架,帮助学校和教育机构设计和实施与算法相关的课程。总之,与算法相关的教育政策和课程标准旨在培养学生的算法思维和数据科学能力,并为他们应对现代社会中的信息技术需求做好准备。这些政策和标准的实施有助于提高学生的信息素养和创新能力,促进社会的数字化转型和可持续发展。
就现阶段的课程标准而言,为全力推进学生养成现代化信息思维模式,树立对未来发展至关重要的信息意识,养成一定的恰当的运用信息的习惯,同时也促进教师和学生共同在数据化信息化的时代背景下,在日常教学安排合理有效的渗透信息技术,为学生打造良好的学习环境,为师生更好完成教学目标服务。而且算法作为国家公民开始融入社会并且服务社会的第一步,算法教学理应成为从小渗透的基本知识,在中学融入算法也将成为我们国家积极融入提升自身现代化水平的不二选择 [5] - [10] 。
1.2. 本课题的研究意义
目前在各个学段中,并没有特别重视算法教学,使得我们国家中学生的算法意识和思想与其他国家还存在一定差距。目前中学阶段对于基本的计算机操作和程序图的绘制和步骤的书写识别在教学中经常被忽视。一方面是教师对于算法知识的缺失和不完善,而且对于算法思想没有引起足够的重视,其直接表现为在授课的过程中没有对这部分重点提出讲解和练习。另一方面是学生由于应试压力,因而根据分值决定学习该部分的方式方法和强度,所以没有对这一部分特别重视,只满足于考试题目的完成。因此目前我们对于算法教学存在很多问题,值得我们着手解决,并不断尝试提出行之有效的解决方法。笔者意识到这一问题,通过了解实际情况,结合访谈等方式做了许多尝试,总结当前比较突出的几个方面问题。并且尝试对该部分的教学进行探讨,提出几个可行的解决方式,设计不同的突出重点的教学方案。为教师在教学中提供参考,从而有效提高学生算法意识,提升学生逻辑思维,为之后在各个领域内应用该部分思想方法打下坚实基础。
1.3. 研究方法
第一:走访座谈法,通过对于各学段的学生访谈,了解他们对于这部分的学习情况,掌握他们对算法的认知水平。
第二:分析文献法,经过对已有的研究成果的考察和前人的工作经验来掌握算法的发展情况。
第三:行动研究法,通过自身已有的文献资料和经验,提出解决方案,给出算法教学中可以执行的教学设计。
2. 基本概念
2.1. 什么是算法思想
当今社会发展的一个重要力量是现代科学技术,而此依赖与最基础的思想是算法思想。算法思想具有悠久的历史,在中国几千年的发展中起到了越来越重要的必不可少的作用。算法在中学中普遍应用在于经过一定的计算,这个计算通常用流程图来表示,这起点输入某个数,经过这个算法后在终点得到另一个数作为结果对的一个过程。并且基本要求是此算法不是无限循环或者死循环,经过固定而准却的每一步得到一个输出值。根据算法的定义以及应用,可以得到基本的算法思想是指在遇到具体问题时,能够准确的解读并且分析问题,具体确定整个过程的流程后,在每一步都思路清晰的条件下,把每一步用具体的程序表示出来,之后保持整个过程清晰明确,完成整个计算,用以解决实际问题的一种基础思想。
2.2. 算法思想渗透在教学中的必要性
算法思想随着社会的进步以及信息技术大趋势的流行,必定逐步融入中学教学范畴。首先由于现代社会中教育资源的改善和提高,随着接触计算机的频率增长,学生应具备基本的计算机技术,以使自身达到社会发展的要求,成为对社会有用的人才。其次,教育环境资源的改善和提升也需要教师恰当的渗透在教学中,才能更好的从根本上提升教学质量和水平。另外,算法也是数学思想的重要组成部分,从古老流传至今,未来也必定在数学的进步历史中成为中坚力量。当今在中学教学中融入算法不仅仅是社会发展的需求,也是数学发展的必然选择。所以在中学中引入算法也是对整个数学事业发展的贡献。
3. 中学算法教学调查研究
3.1. 调查方法与过程
笔者在2021年初寒假时,针对所在市的部分同学通过发放问卷的形式,想要了解中学生对于算法的基础内容的掌握情况。问卷设计了以下几个方面,第一方面是对于上课时,老师的对于算法部分内容的讲解方式,和学生对于这种授课方式的喜爱程度,以及学生在实践过程中,对于算法部分内容的题目的正确率情况,还有一些算法的基本知识点。在预先告知学生要按照实事求是的原则进行作答的前提下,学生完成了问卷。但是结果却出现了极大的偏颇,通过对结果汇总发现,极大部分同学表示对正确率和自我认知部分得分极高,而关于算法的基础概念却一点也不了解。针对这次结果的矛盾情况,此次问卷的作用并不大,为了进一步了解学生真实情况,笔者改变了调查方式,改为座谈访问的形式对不同年级和不同水平的学生进行了座谈访问了解他们对算法学习的真实感受和技能水平。
3.2. 调查结果分析
3.2.1. 初中的算法学习与教学现状
通过对于义务教育阶段中年级的学生的座谈发现(见附录),在日常生活中,他们对于电脑的使用并不多,并不了解算法对于现代科技的重要性,基础的算法知识不了解,例如算法结构图的各部分作用不清楚,算法基本的题目含义不了解,算法设计无法完成也并没有接触过。对于算法思想以及其在当今社会中的重要性不了解,对于算法学习的必要性和紧迫性也完全不懂。
学生表示平时上课时,老师虽然在遇到对应算法问题时会讲解,但是基本没有系统讲过算法的思想、步骤、内涵等。
3.2.2. 高中的算法学习与教学现状
通过对于高中学生的座谈发现(见附录),随着生活水平的提高,电脑进入了千家万户。随着年龄的增长,学生使用电脑的机会也相应的增多,在日常生活中也逐步掌握了使用计算机的基本步骤,懂得一些基本的操作。对于算法在计算机中的意义并不明确,搞不清算法和计算机的联系。对于一些简单基础的问题也无法与算法练习起来,不会建立算法来解决问题的基本方法步骤思想。不能将算法很好的理解并应用于实践中。在日常课上学习时间,由于课业压力和高考的压力,导致对此部分的基础定义解释、流程图的含义用法也不能完全理解,学习程度仅仅限于通过已知流程来做题,通常形式为输入某个数再求经过流程图输出的数值等。
综合学生的学习特点:学习背景不同:学生可能来自不同的学科背景,对算法的理解和应用能力有所差异。学习风格不同:有些学生更喜欢通过实践和项目来学习,而另一些则更倾向于理论和抽象的学习方式。数学基础不同:学生的数学基础可能存在差异,这会影响他们对算法相关数学概念的理解和掌握程度。
教师的教学水平:知识储备:教师是否具备足够的算法知识和教学经验,能够针对不同学生的需求进行教学?教学方法:教师采用的教学方法是否多样化,能否满足不同学生的学习风格和需求?激发学生兴趣:教师是否能够激发学生对算法学习的兴趣,提高他们的学习积极性和参与度?
基于以上分析,可能出现的算法教学问题包括:学生学习兴趣不高:由于算法涉及到较多的数学和逻辑知识,一些学生可能对其缺乏兴趣,导致学习动力不足。学生学习能力不均:不同学生的学习能力和学科基础存在差异,一些学生可能需要更多的支持和指导才能理解和掌握算法知识。教师教学资源不足:一些教师可能缺乏足够的教学资源和培训,无法提供多样化的教学内容和方法,导致教学效果不佳。教学内容过于抽象:部分教师可能过于强调算法的理论和抽象概念,缺乏实际应用和案例分析,导致学生难以理解和应用所学内容。
针对以上问题,可以采取一些措施来改进算法的教学效果:多样化教学方法:教师可以结合讲授、实践和项目等多种教学方法,满足不同学生的学习需求和兴趣。强调实践应用:在教学中注重算法的实际应用和案例分析,帮助学生将理论知识转化为实际问题的解决方案。差异化教学:根据学生的学习特点和水平差异,采用差异化教学策略,为每个学生提供个性化的学习支持和指导。提供丰富资源:为教师提供丰富的教学资源和培训机会,提升他们的教学水平和教学效果。通过以上措施的实施,可以有效提高算法的教学效果,促进学生对算法的理解和应用能力的提升 [11] [12] [13] 。
4. 分学段对与算法教学的讨论
4.1. 学算法之前阶段提前渗透
在现代科学技术已经融入了人们的日常生活中时,有更多的家长本着孩子的教育不能输在起跑线的原则,很多的地区兴起少儿编程兴趣班,以满足广大家长的需求。通过少儿编程所带领的浪潮,家长和学校对算法学习的意识增强。在具体的操作过程中,校外的编程辅导,水平参差不齐,学生学习效果也不定。笔者通过对当地学习少儿编程的小学生抽样访谈发现,他们的课程主要是可视化的方式为主,通过图片的组合呈现一定的内在逻辑,以这种方式来使学生具有基本逻辑思维能力。能够从一定程度上推动学生创新水平和思维能力的发展。
要从大范围推动这种良好的算法思想启蒙,还需要学校的教育方式的配合。学校在素质教育活动中加入一定的具有算法思想的活动或者小游戏,来逐步影响学生。在课堂上也可以通过一定实验课程来逐步探索,为学生算法思想启蒙打下基础。
以小学数学中简单的解方程问题为例,尝试教学设计。
教学分析:
小学已经学过的解一元一次方程后,在此基础上从基本的最简单的方程问题入手,通过让学生计算简单的方程复习导入新课,再设计简单的实际生活相关的应用题,回顾之前用数学内容解决简单的生活问题。通过让学生没有任何压力的方式做好铺垫。下面首先给学生出示几个简单的流程问题,教师带领学生解读流程图。再让学生自主实践,把之前已有的方程问题改写为流程图。
教学目标:
1) 知识与技能:会读懂基本的流程图,会把简单的生活问题转化为流程图解决。
2) 过程与方法:通过教师带领下,自主探索。
3) 情感态度与价值观:通过一系列的导入和自主探索,增强学生的逻辑思维能力,培养对数学的兴趣。
教学重难点:
1) 流程图的识别和解读;
2) 实际生活问题与流程算法结合,算法在实际生活中的应用。
教学方法:
1) 体验式教学法;
2) 讨论教学法;
3) 演示教学法;
4) 启发教学法;
5) 案例教学法。
学情分析:小学五年级学生具备了一定的数学能力和思想,在学过解方程的基础上,学生会解简单的一元一次方程,并且学生也学过用方程解决实际问题。带领同学解读简单的流程图后,通过模仿,学生有能力把解方程问题转化为了流程图的形式,从而使学生具备基本的算法思想。
教学过程:
1) 复习导入,易于理解
教师在大屏幕上出示简单的一元一次方程问题,学生自主练习,教师巡视派代表交流答案。3X = 15,5X = 25,2X + 4 = 14,3X + 5 = 26。
教师评价后,再展示几个简单的应用题,小组合作解答并且交流过程。
今年农副产品价格疯涨,大蒜更是势头迅猛,涨到了20元一斤,是原来的四倍。问涨价前,大蒜多少钱一斤?
动物园里面已知有老虎25只,猴子的数量少于老虎,老虎的数量是猴子的六倍多一只,问猴子有多少只?
学生小组合作交流,代表发言,教师点评。
2) 引入新知:教师黑板展示几个简单的流程图,并且讲解过程

教师:这个图形表示的是求解B的过程,对于已知的数值A加2得到B,用方程表示即为,设未知量为X,x = a + 2,给一个a的值后,通过这个过程得到B。那么在已知方程,要求解方程的过程中,也可以用这种方式表示。
学生自主将之前布置的计算题,改为这种形式。自主完成后,教师提问学生代表讲解思路,教师补充,教师评价。
学生将二道应用题改为上述算法的形式,教师指定学生带代表板书过程,其余同学自主完成。
教师讲解:第一道应用题设出未知量为涨价前的价格为X,列出方程为4X = 20,解方程时即是用已知的20除以4得到结果,所以在程序中输入20,经过除以4,得到输出量。
第一步:输入已知的涨价后是20元;
第二步:20除以4;
第三步:输出数值5。
第二道题目,设出未知量,猴子是X,列出方程,6X+1=25,求解X,发现这个过程相当于是,对于已知的25,第一步先是减去1,第二步为对于上一步的输出量再除以6,得到X。与上一个程序不同是经过了二步,得到结果。
第一步:输入已知的25;
第二步:25减1;
第三步:得到24再除6;
第四步:得到4;
第五步:输出数值。
思考并交流通过这种方式写出的流程与通常的直接解方程相比有什么不同。
学生小组交流,学生发言,教师补充发言。
学生1:这种方式解方程,整个过程直观形象,减少计算错误量。
学生2:如果已知量发生变化,可以直接带入程序计算,可以重复利用。
教师评价并且总结异同。
3) 巩固提高
教师大屏幕展示几个流程图,同学讨论交流流程图所代表的含义,学生代表发言。
教师评价并且补充总结
4) 总结提高,布置作业
教师:经过这节课,同学们有什么收获?
学生代表发言,教师评价。
教师:本节课作业是对于几个之前做过的解方程问题,用本节课所学的新方式表示出来。
5) 课后反思,教师授课后写下感受。
除了再尝试在活动课进行这种类似的形式之外,还可以在校内建立相关的社团,首先由感兴趣的同学积极参与,同时带动其他同学形成学习算法的意识。
4.2. 初中阶段建立算法基本思想
有了小学一定的奠定基础后,对于初中学生的算法学习十分有利,在正式进入中学阶段的学习后,对于一个具体问题,除了可以用口语表述以外,还可以在简单的流程图的基础上,加深复杂度,学生学会解读复杂的程序。通过解读现成的程序,学习思想方法,加强自身的逻辑思维能力。
同时升入初中后,计算机的基础知识已经根据课程标准融入日常课程中,学生学习计算机的机会变多,在日常授课结合算法知识来讲解计算机的基础知识,使学生更直观的了解到算法在计算机技术中不可替代的作用,并且鼓励学生积极主动的上级实践自己的想法。使算法能够生动的展现给学生,也能够从很多程度上增强学生的学习算法的兴趣。
4.3. 高中阶段的算法能力达到基本要求
高中阶段的中学生逻辑思维能力增强,对算法的接受程度也加深,除了引导学生由生活中问题入手,用算法的思想尝试建模,在寻找算法的过程中提高自身的逻辑思维能力,不断增强利用算法思想建模来解决实际问题的能力。在寻找算法过程中,由于个体思维差异和他们熟悉的算法不同,可能会出现不同的解决方式,全班每一个学生的思想都不尽相同,这种情况也非常正常,算法差异化明显也不需要特意规范,防止群体思想僵化。针对这种情况,教师应鼓励学生提出自己的算法,尊重算法差异化,同时也多听多学别人的算法,扩宽思路。而且借此可以顺势引导学生交流讨论不同算法的差异和优劣,教师辅助学生探索算法思想的差异,在分析清楚这些思想差异后,教师应让学生自主总结,并且能够增强学生的辨别能力和对不同算法的敏感度,可以更好的综合完善自己的算法。按照以学生为本的原则,根据具体情况辅导学生,帮助学生逐步建立起自己的一套解决问题的有效方式。以此方式也可以作为算法优化的入门第一步,为之后进一步学习更深层次的算法思想和相关知识奠定良好的基础。
当设计算法教学时,以下是一些建议和设计原则,以确保具有可操作性和实用性:针对学生的背景和兴趣定制教学内容:了解学生的学科背景和兴趣,以确定他们对算法的理解和应用程度。根据学生的水平,逐步引入算法的基本概念和技术,建立坚实的基础,并随后进行更复杂的主题讲解。强调实际应用和案例分析:将算法理论与实际应用相结合,通过展示真实世界的问题和案例,帮助学生将所学算法应用于实际场景中。提供实际案例的解决方案和代码实现,让学生能够将所学算法应用于具体问题。实践和项目驱动的学习:设计实践和项目任务,让学生亲身实践算法的设计和实现,以解决一系列问题。这样的实践经验可以增强学生对算法的理解和应用能力。确保项目具有一定的挑战性,激励学生思考和探索更高级的算法。个性化教学:了解每个学生的学习风格和学习能力,并提供辅导和支持,以满足他们的个性化需求。鼓励学生参与讨论和解决问题,促进他们的自主学习和思考。使用多媒体和互动教学工具:利用多媒体资源和互动教学工具,例如演示视频、在线教学平台、交互式程序和游戏等,增加教学的趣味性和可操作性。这样的工具可以帮助学生更好地理解和应用算法概念。实时反馈和评估:为学生提供实时反馈和评估,帮助他们了解自身的学习进展和不足之处。通过定期的测试和个人评估,鼓励学生发展自学能力和自我评估能力。持续学习和实践机会:提供持续学习和实践机会,例如在线资源、编程竞赛、实习等,以帮助学生巩固和应用所学的算法知识。综上所述,通过个性化、实践驱动和多媒体互动等教学设计原则,可以提高算法教学的可操作性和实用性,确保学生能够理解、应用和实践所学的算法知识 [14] [15] 。
附录
以下是关于算法对学生的访谈提纲:
1) 介绍
你能简单介绍一下你自己吗?包括你的年级、专业/学科以及对算法的了解程度。
2) 对算法的理解
你是如何理解算法的?在你看来,算法是什么?
你认为算法在现代社会中的作用和重要性是什么?
3) 算法在学习和工作中的应用
你是否在学习或工作中使用过算法?如果有,能分享一些具体的例子吗?
你认为学生在学习过程中如何能更好地理解和应用算法?
4) 算法教育
在你所在的学校或教育机构,是否有与算法相关的课程或培训?如果有,你对这些课程的看法如何?
你认为学校应该如何改进算法教育,以更好地培养学生的算法思维和数据处理能力?
5) 挑战与机遇
在学习或工作中,你遇到过与算法相关的挑战吗?如果有,你是如何克服的?
你认为算法对于你未来的学习和职业发展会带来什么样的机遇?
6) 总结与展望
总结一下你对算法的看法和体会。
你对未来算法发展和应用的展望是什么?