APP下载

高职“Python程序设计”教学中算法能力提升研究

2023-03-14兰晓天

华章 2023年8期
关键词:职业教育教学设计

[摘 要]本文旨在探讨如何提升高职学生在Python程序设计中的算法能力,并提出有效的教学方法。Python语言作为一门流行的编程语言,其简洁和易学性使得在高职计算机类学科中得到广泛应用。然而,许多高职院校计算机专业学生在学习Python语言时,往往面临算法设计和编程能力较低的困境。为帮助学生提升Python语言的算法能力,本文提出基于项目实践和案例分析的实践教学方法,学生可以通过解决实际问题并编写Python代码提高算法设计与实践能力,同时通过设计翻转课堂等教学方法激发学生的学习兴趣和积极性。

[关键词]Python;教学设计;算法能力;职业教育

一、研究背景

在全球化的信息时代,计算机科学与技术已经成为推动社会进步的重要力量,而编程语言作为计算机科学的基础,更是起着极其重要的作用。Python是一种目前比较流行的解释型编程语言,以其简洁易懂、功能强大、易于上手等特点,广受行业和教学界的青睐,应用领域覆盖了人工智能、大数据处理、网络编程、科学计算等多个方面,這使得Python编程语言在计算机类学科中占据越来越重要的地位[1]。

然而,当前高等职业教育中Python程序设计课程在教学中仍存在一些问题。首先,在教学中学生虽然已经掌握和理解Python语言的基础知识,但是学生在进行更深入的学习和实际开发过程中会遇到各种困难;其次,目前的教学方法较为传统,缺乏针对性和实效性,导致学生的学习效果不佳,对Python的热情和兴趣也难以持久。此外,在教学实践中,部分学生对于Python语言的数据结构和算法的掌握不够准确,以至于在解决实际问题的过程中,缺乏有效的思路和方法,这对于学生的实践开发能力提升有着非常大的

影响。

因此,如何有效提升高职学生的算法设计能力、加强学生对Python数据结构与算法的理解和应用,以及如何通过有效的教学策略和措施,提高学生的实践开发能力,成为当下高职教育领域亟待解决的问题[2]。

二、厘清大数据处理、大数据分析、人工智能与算法设计之间的关系

大数据处理、大数据分析、人工智能和算法设计之间有着密切的关系,它们相互交织并共同推动数据驱动的智能化应用和决策。

首先,大数据处理是指对大规模数据进行采集、存储、处理和管理的过程。它提供了收集和存储大量数据的基础,以便后续进行数据分析和建模。大数据处理技术包括数据清洗、数据集成、数据存储和分布式计算等。大数据分析是指利用大数据技术和算法设计对数据进行统计和分析,以揭示隐藏在数据中的规律。数据分析可以通过描述统计、推断统计、关联分析、聚类分析、分类和预测等方法,从大数据中挖掘出有价值的信息[3]。因此,大数据分析是大数据处理过程中的一个关键环节。人工智能则是利用计算机技术实现人的智能行为。在大数据处理和数据分析的基础上,人工智能技术通过学习和推理,能够自动识别和理解复杂的数据结构和数据规律。人工智能的算法包括机器学习、深度学习、自然语言处理、图像处理等,这些算法通过对数据的学习和模式匹配,使得人工智能系统能够具备解决问题和做出决策的能力。

而算法设计则是人工智能的核心,在大数据处理和大数据分析的背景下,算法设计扮演着极其重要的角色[4]。算法设计既包括常见的统计和数学算法,也包括基于机器学习和深度学习的算法。好的算法设计能够提高数据分析和人工智能系统的准确性和效率,从而实现更好的决策和拥有更强的预测能力。

因此大数据处理、大数据分析、人工智能和算法设计之间是相互依存、相互促进的关系。大数据处理提供了数据基础,数据分析揭示了数据之间的关系及规律,而人工智能和算法设计则通过学习和推理,将这些模式和规律转化为智能决策和预测[5]。

三、目前Python课程中算法设计部分的教学现状分析

(一)学生基础不同:学生的编程基础可能参差不齐,高中层次学生可能没有接触过编程但是数学基础较好,而中职层次的学生可能已经有一定的编程经验,但是数学基础较差。这种情况会对教学产生影响,需要教师在教学中对不同层次学生的学情进行分析,并提供适合不同水平学生的教学资源和辅导。

(二)算法抽象性难以理解:算法设计的内容通常较为抽象,对一些学生来说,难以理解其原理和实现方式。这可能导致一些学生对算法设计产生抵触情绪,从而影响其学习效果。

(三)缺乏实践性教学:在一些高等职业院校Python程序设计课程中,算法设计部分的教学偏重于理论讲解,缺乏实践性教学。学生可能只是单纯地理解了算法的原理,却无法将其应用到解决实际问题中。

(四)缺乏实例和练习:学生对于算法设计需要大量实例和练习来加深理解。然而,在一些课程中,实例和练习的数量较少,这导致学生的实际应用能力和编程能力得不到充分锻炼。

(五)理论与实践脱节:在某些课程中,算法设计的理论与实践之间存在脱节现象。学生虽然掌握了算法的原理,但却无法将其转化为实际的可行解决方案。

四、建立Python算法设计部分的教学模型

(一)确定教学目标:明确Python算法设计部分的教学目标,例如学生应该掌握什么样的算法设计知识和技能,以及能够解决怎样的问题。

(二)制订教学计划:根据教学目标,制订教学计划,包括教学内容、教学方法和教学资源等。教学内容可以涵盖常见的算法设计思想和技巧,例如递归、动态规划、贪心算法等。教学方法可以结合实例和练习,以及项目实践,让学生在实际操作中学习算法设计的过程。教学资源可以包括教材、课件、示例代码等。

(三)分层教学:根据学生的基础和能力水平,进行分层教学。对于初学者,可以从基础的算法设计思想开始讲解,例如递归和循环等。对于进阶学生,可以深入讲解更复杂的算法设计思想和技巧,例如动态规划和分治法等。

(四)实践教学:注重实践性教学环节,通过编程实例、项目实践等方式,让学生亲自动手实践算法设计的过程。教师可以提供一些实际问题,并引导学生运用算法设计知识解决问题,加深学生对算法设计的理解和掌握。

(五)引导思考:在教学过程中,应该引导学生进行思考,而不仅仅将算法设计的步骤和代码呈现给学生。教师可以提出问题,引导学生思考解决问题的思路和方法,培养学生的算法设计思维能力。

(六)反馈与评估:及时反馈学生的学习情况,并进行评估。可以通过作业、小测验、项目实践等形式对学生进行评估,了解学生对算法设计的掌握程度,及时发现问题并进行指导。

在建立Python算法设计部分的教学模型时,可以根据实际情况进行调整和改进,以提高学生的学习效果和应用能力。同时,教师和学生的互动和反馈也是不可忽视的重要环节,通过与学生的互动和反馈,可以进一步优化教学模型。

五、教学设计案例

下面以“斐波那契数列”为例(Python归并排序的教学设计示例)。

教学目标:通过编写代码来实现斐波那契数列的计算,并让学生理解递归和迭代的概念和应用场景。教学时长:1小时。

准备工作:一台计算机或设备,安装 Python 解释器。可以编写和运行 Python代码的环境,如 Jupyter Notebook 或文本编辑器和终端。

(一)引入斐波那契數列的概念(5分钟):

解释斐波那契数列的定义和规律:前两个数字为 1,之后的每一个数字都是前两个数字之和。举例说明斐波那契数列的前几个数字:1, 1, 2, 3, 5, 8……

引导学生思考:如何通过编写代码来计算斐波那契数列?

(二)解释递归的概念和实现斐波那契数列的递归算法(15分钟):

介绍递归的概念:函数调用自身的过程。编写递归函数`fibonacci_recursive()`来计算斐波那契数列。使用递归函数计算斐波那契数列的过程进行示范。强调递归算法的特点:简洁但效率较低。

(三)解释迭代的概念和实现斐波那契数列的迭代算法(15分钟):

介绍迭代的概念:循环执行一段代码的过程。编写迭代函数`fibonacci_iterative()`来计算斐波那契数列。使用迭代函数计算斐波那契数列的过程进行示范。强调迭代算法的特点:效率较高但代码较复杂。

(四)代码原型以及应用方向讲解

斐波那契数列是一个非常经典的数列,每个数都是前两个数的和。斐波那契数列在实际中有许多应用,下面介绍其中几个常见的应用场景以及详细的Python代码解释。

1.自然科学中的建模:斐波那契数列可以用于描述一些自然界的现象,如兔子繁殖、植物生长等。例如,当一对兔子从出生后的第3个月起(包括第3个月)每个月可以生一对兔子,而每对兔子从第2个月起(包括第2个月)才能生育,则兔子的总数符合斐波那契数列。

2.金融和投资领域:斐波那契数列可以用于研究金融市场中的股票价格走势、利润增长等。一些技术分析工具和交易策略也以斐波那契数列为基础。

3.算法和编程:斐波那契数列在算法和编程中也有一些应用。例如,可以使用递归算法或动态规划算法来计算斐波那契数列。

4.练习与实践(20分钟):

让学生编写代码,使用递归方法来计算斐波那契数列的第10个数字。提供一些额外的挑战和问题,如计算斐波那契数列的第n个数字,或者通过字典来优化迭代算法的效率等。

5.总结与讨论(5分钟):

让学生分享其代码和解决方案,在课堂上进行展示和讨论。与学生一起总结递归与迭代的优缺点,以及斐波那契数列的计算方法。引导学生思考和讨论其他优化斐波那契数列计算方法的可能性。

六、Python算法设计部分教学设计的重点与难点

(一)基本数据结构:重点是理解和应用Python中的基本数据结构,如列表、字典、集合等。学生需要了解每种数据结构的特点、方法和操作,并能够根据问题的需求选择合适的数据结构来解决问题。

(二)算法设计和分析:重点是培养学生的算法设计思维和分析能力。学生需要理解不同的算法设计思想(如贪心法、分治法、动态规划等)和常见的算法模式(如递归、迭代、回溯等),并能应用这些思想和模式解决各种问题。此外,学生还需要学习如何分析算法的时间复杂度和空间复杂度,以评估算法的效率和资源消耗。

(三)问题建模和抽象能力:重点是培养学生的问题建模和抽象能力。学生需要学会将实际问题转化为计算机可处理的形式,包括定义输入输出、确定问题的核心要素、设计数据结构和算法等。这需要学生具备良好的问题分析和抽象能力,能够从复杂的问题中抽取出关键的信息和特征,并将其转化为清晰的问题描述。

(四)算法调试和优化:重点是培养学生的算法调试和优化能力。学生需要学习如何调试算法中的错误和问题,包括利用调试工具和技巧进行代码的断点调试、变量跟踪等。另外,学生还需要了解常见的算法优化技术,如剪枝、缓存、并行计算等,以提高算法的效率和性能。

结束语

本文对Python程序设计课程中算法设计部分的教学设计进行了研究,重点讨论了在教学过程中应注意把握的重难点,以提升学生的算法能力。通过充分分析教学内容、学生需求和教学目标等因素,得出以下结论:

首先,对于算法设计部分的教学设计,应注重的重点包括:一是强调培养算法思维,通过分析真实问题和解决方案设计,引导学生掌握算法设计的基本思想和方法。二是注重训练算法优化与效率,教师应引导学生评估和改进算法,提高程序的运行效率。三是加强实际应用训练,通过案例演练和项目实践,培养学生将算法知识应用到实际问题的能力。

其次,在教学设计中,需要重点关注以下难点。一是学生初学阶段可能对算法设计的复杂性感到困惑,教师应采用启发式问题和实例讲解等方式,帮助学生理解和掌握算法设计的核心概念。二是算法优化和效率问题对学生来说可能是一个挑战,教师应引导学生学习采用常见的算法优化技巧,并通过实践对比分析不同算法的效率。三是实际应用的培养需要学生进行更多的实际项目和综合性任务的实践训练,教师可以设计真实的案例和项目,激发学生的兴趣和积极性。

只有把握好重难点问题,才能更好地指导教学实践,提高学生的算法能力。在此基础上,可以思考将其他领域的算法应用和案例引入教学中,进行学科交叉教学,以培养学生的跨学科思维能力和创新能力。相信通过不断改进和创新的教学设计,高职“Python程序设计”课程将能更好地提升学生的算法能力,为学生的职业发展和科学研究打下坚实的基础。

参考文献

[1]刘东文.信息时代:计算机科学助推建筑业智能化发展[J].区域治理,2019(46):61-63.

[2]王琳,张学波.递归算法课堂教学设计探讨[J].电脑知识与技术,2021,17(27):208-209,250.

[3]张骏.信息技术学科核心素养落实策略:以制作课程表一课为例[J].中国信息技术教育,2020(15):97-99.

[4]岳彦龙,张学军,梁屿藩.人工智能教学如何培养高中生的计算思维?基于人工智能案例驱动的Python编程教学的实证研究[J].基础教育,2022,19(1):74-84.

[5]于宁,聂清林.突出问题求解能力训练的Python课程设计[J].计算机时代,2022(3):110-113.

作者简介:兰晓天(1981— ),男,汉族,贵州贵阳人,贵州经贸职业技术学院,副教授,本科。

研究方向:计算机应用技术。

猜你喜欢

职业教育教学设计
“动能教育”模式下的工匠人才培养路径研究
论七年一贯制体系下本科学科建设中职业教育的重要性
高中数学一元二次含参不等式的解法探讨
“仿真物理实验室” 在微课制作中的应用
刍议职业教育校企合作的有效性
翻转课堂在高职公共英语教学中的应用现状分析及改善建议
提高课堂教学有效性的研究
翻转课堂教学模式在《PLC应用技术》课程教学中的应用