基于五导法的程序设计课程群教学研究与实践_第1页
基于五导法的程序设计课程群教学研究与实践_第2页
基于五导法的程序设计课程群教学研究与实践_第3页
基于五导法的程序设计课程群教学研究与实践_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于五导法的程序设计课程群教学研究与实践基于五导法的程序设计课程群教学研究与实践

文章编号:1672-5913〔2022〕05-0089-03

中图分类号:G642

1背景

程序设计课程群包含的课程主要有程序设计根底〔C语言〕、数据结构、面向对象程序设计〔Java语言〕、程序设计课程设计等,是计算机专业的基石。这些课程之间存在紧密的依存、递进关系。对于广阔的地方高校来说,发展程序设计课程群的教学研究,就是研究这些课程知识的“教法、学法、用法、创法〞。文章将从教与学着手,探讨在教学中的所用、所感、所思、所改。

2五导法

所谓“五导法〞就是在教学过程中进行的导教、导学、导思、导用、导创。

2.1导教

2.1.1知识点化繁为简

对于地方院校来说,计算机类专业人才培养方案中通常会先讲授程序设计根底〔C语言〕、再讲授数据结构、最后讲授最流行的面向对象语言――Java。在这些课程中存在大量的根本语法、原理和技巧,譬如:C语言的输入输出格式控制、运算符、叙述式、运算规那么、赋值语句等,灵活多样;数据结构中指针的使用无处不在;Java语言中包含权限的交叉融合、对象与引用的多态性等。对于初学者来说,教师必须采取有效的策略,比方选择性讲授,即先讲授最常使用的知识、应用方式,且大量运用演示法、案例法,让学生在实例中逐步理解、掌握、熟悉;再逐步延伸,增加深度和广度;最后还需要有画龙点睛的总结。

在C语言教学中,假设只顾及语法知识的全面性、完整性,将会导致顾此失彼、欲速而不达的结果;假设只注重算法,而轻视、无视根本语法,将导致程序代码的编写寸步难行、错误百出。所以,要秉持语法够用的原那么。

在数据结构课程中,大量的教材在讲述顺序线性表时,都是直接采用动态申请连续空间的方式来存储线性表中的元素[1]。这种方式显着地增加了学生学习的难度。为什么不先讲述使用静态的数组来存储元素,再过渡到动态的存储方式呢?所以,教师讲授时要化繁为简、由易及难、逐步深入,遵循循序渐进的认知规律。

2.1.2思维的转化

虽然程序设计的算法来源于数学,但不能照搬数学思维。

譬如:三个数如何求最大值。数学思维使用的是三个单分支的if语句,且每个if语句中的叙述式都是由两个与运算符连接三个关系叙述式构成的;而程序设计思维使用的是一个赋值语句、两个单分支的if语句,且每个if语句中的叙述式只是一个简单的关系运算。显然,后者不仅效率高,而且运用了程序设计中经常使用的一种技巧和思维,即“若第一个数就是最大值〞[2]。

数学思维向程序设计思维的转变,需要一个过程、一段时间,需要培养。

在程序设计教学的推进过程中,还存在着一个程序的main函数向多个子函数的转变〔即程序模块化〕、过程化程序设计向对象化程序设计的转变等,这是思维的转变,也是教学的难点。

2.2导学

2.2.1量变到质变

学习没有捷径,只有经历大量的代码练习,才能保证编程水平质的提高。对于常用算法必须烂熟于心,日积月累,才能熟练生巧,才能应用,才可能有创新。

2.2.2课堂内外“三步曲〞

每一门课程,教师必然对其有着深入的研究;每一节课,课堂上的教学内容必然是丰盛的,重点和难点必然是清晰的。因此,需要学生课前预习、课上专心、课后复习。只有做到了课前预习,课堂上的学习才会是有的放矢;只有做到了课后复习,才能稳固课堂知识。所以,只有真正做到了“课前预习、课上专心、课后复习〞的课堂内外三步曲,才能实现高效课堂。

2.2.3“三动〞学习法

在实际教学中,教师发现,程序设计的初学者,在阅读自己或他人编写的程序代码时,采取的方式只是“动眼〞,即用眼睛死死地盯着程序代码行中的各个符号。这样仅仅了解单个叙述式、单条语句的外表意思,而不可能分明变量值的变化、哪些语句被选择或被循环执行了,也就搞不清变量、叙述式、语句的真正作用和含义,当然不能归纳出程序的功能,也得不出程序的正确结果。

正确的做法是:拿出笔、摊开纸,依照程序语句的次序,认真地手工执行程序代码,把每个变量当前的值记录下来,如果存在循环,那么把循环体重复执行3~5次,这样才能清晰掌握每个变量值的变化情况、每条语句的执行情况,进而推导、得出程序的功能或结果。也就是说,对于一段程序、一个算法,只有手工执行,才能理清其执行过程、功能。

因此,在学习程序设计时,务必坚信不劳而获是天方夜谭,务必时刻执行勤能补拙,务必每小题实践着“三动〞学习法,即“动手、动脑、动眼〞[3]。

2.3导思

2.3.1思考的广度

自顶向下、逐步求精,是程序设计的原那么之一。任何复杂的问题都可以找到简单的原理或者雏形。

譬如:3个整数求最值、10个整数求最值、数组求最值、选择排序等。这些问题的求解包括从顺序结构到选择结构、到一重循环、到二重循环;从单一的main函数实现到使用子函数实现。从这个例子可以看出,只有深刻理解求最值的雏形,才能顺利向广度推进。

再譬如:使用线性表实现各种汇合运算,对顺序存储来说根本操作就是元素的移动〔即选择性赋值〕,对链式存储来说根本操作就是链的连接〔即指针赋值〕。

2.3.2思考的深度

在求最值的例子中,包含着这样一个拓展的问题:如何求解一个数组中的最大值和次大值。一种算法是这样的:max1=max2=a[0];

for〔i=1;iif〔max1max2=max1;

max1=a[i];

}

elseif〔max2}

但这个算法存在Bug,即如果第一个数就是最大值,那么求出的次大值是错误的。修正Bug的方式有多种。从此例可以得出:要保证算法的正确性,必须多方测试,特别是边界、极限、特例等问题。

对于求最值的问题,如何使用面向对象的思维来求解呢?如果是在main主办法中直接对数组求最大值,而没有定义任何其他成员变量和成员办法。这样的话,就完全没有运用面向对象的思维。正确的思维是:类中包含相应的成员变量、成员办法,尽量通过成员办法去操作成员变量。问题的关键是类中包含几个成员变量最适宜呢?需要几个重载的构造办法呢?解答了这些问题,设计出的类才具有普适性、重用性,才是真正面向对象的思维。

2.3.3思考的维度

随着学习的不断深入、知识的不断积累,随之而来的是思考的深度、广度以及维度。解答一个问题可能有多种算法,通过多维度的思考、比拟、分析,才能挑选出最清晰、最高效的算法。

譬如:1-2+3-4+...…-100

解答这个问题有多种办法,如每次把符号位乘以-1、判断当前项的奇偶性、把奇偶项分开计算、使用模运算来确定符号位、使用位与运算来确定符号位等,关键点在于实现各项的正负相间。这些办法中最后一种办法无疑是最“高大上〞的。

思考是建立在对相关知识熟练掌握根底之上的,否那么就是缘木求鱼、胡思乱想。

2.4导用

学习的目的不是为了考试,是为了应用。

譬如:在C语言中,模运算〔即%〕的意思是两个整数相除,〔商是整数〕取余数。根本应用有奇偶数的判别、素数的判别、整数各位数字的别离等,进一步的应用有求最大公约数、数学黑洞等,高级应用有模幂运算、孙子问题〔中国残余定理〕、凯撒密码等[4],这些都是模运算的经典应用。在近年广受关注的群众化竞赛“蓝桥杯全国软件和信息技术专业人才大赛〞中,也不乏模运算应用的试题。

在模运算的应用从低级到中级、再到高级的过程中,往往是混合多方面知识的综合应用,应用绝对不是生搬硬套,而是建立在模仿、思考根底之上的。

2.5导创

应用的升华就是创新,或者说应用的最高境界就是创新。教、学、思、用都是为创新效劳的。在“群众创新、万众创业〞的时代背景下,让学生广泛参与到各级各类竞赛、创业、创新活动中,以赛代练,在活动中学习、思考、应用、创新。

3教学资源和平台

为保证“五导法〞教学方式的顺利实施,构建了三维的教学资源和平台。

借助精品课程教学资源、网络资源,进行教学资源的二次开发,形成特色鲜明的校本教学资源,建设成理论教学“点资源〞、实践教学“线资源〞、网络共享课程“面资源〞的教《W资源体系。在教学中推行分类教学平台,实现资源汇集;在实验教学中实现理论学习与实践的对接;利用幕课平台和资源,实现学分认证;利用共享课程资源发展翻转课堂学习。多维的教学资源和教学方式,满足和丰盛了学生多元化学习的需求和开展。

4结语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论