admin 管理员组文章数量: 1184232
2024年4月22日发(作者:就聊app官网免费下载)
ISSN1009-3044
ComputerKnowledgeandTechnology
第17卷第10期(2021年4月)
电脑知识
与技术
Vol.17,No.
10April
2021
E-mail:*************.cn
Computer
http
KnowledgeandTechnology
电脑知识
与技术
://
Tel:+86-551-6569
地方高校C语言程序设计课堂教学内容探讨
洪留荣
(淮北师范大学计算机学院,安徽淮北235000)
摘要:针对C语言程序设计课对于地方高校初学者学习上的困难,本文探讨了在课堂教学上的一些教学思路。从数据类
型、表达式以及复合语句三个方面探讨了教学上应关注的重点和核心,分析了这样做的优点,强调了课堂教学从教材上提
炼相关课堂内容的重要性。
关键词:C语言程序设计;课堂教学;数据类型;表达式;复合语句
中图分类号:G642文献标识码:A
开放科学(资源服务)标识码(OSID):
文章编号:1009-3044(2021)10-0117-03
C语言程序设计是计算机类专业的重要专业基础课,教授
的对象一般是高校低年级学生,地方高校学生优点是视野天
阔、个性强、接受新事物的能力强,不足之处在于自控能力差、
缺乏目标、自我学习能力欠缺。因此,目前出现了诸多教学模
式的探讨。文献
[1]
提出了基于“学习成果导向”理念的计算机基
础教学改革模式,从教学设计到最后的评价进行了改良;文献
[2]
针对学生能力提升问题改了教学模式,提出了培养学生C语言
编程能力和工程实践能力的教学模式;文献
[3]
和
[4]
从教学的教法
上进行了C语言教学改革,分别讨论了翻转课堂和网络教学模
式的应用;文献
[5]
从精炼课程内容上入手并提出了“MOOC+翻
转课堂教学模式”。这些改革的方法均发挥了各自的优点,考
虑到无论教学模式如何,将课堂教学内容简化、厘清知识的本
质是最根本的问题,它可以有效提升学生学习的兴趣,使学生
乐于进一步探索学习,更好地发挥新教学模式的作用,从而有
效地培养他们的计算思维能力和编程能力,因此,本文从三个
方面探讨C语言程序设计课堂教学的教学思路,抓住本质,简
化学生理解难度。
1以“数据类型”与“地址”统领整个C语言程序设计
教学
绝大多数人在谈到C语言时,都把“指针”作为它的精华,
但这只对了一部分,C语言真正的精华在于“数据类型”,从指
针的运算、格式符对值的解释、各种数据类型的转换、数组及函
数等均是在“数据类型”这个概念的基础之上处理的,而且指针
仅是一种数据类型,其表现出的形式是整型值。
基于此,在课堂教学中,从讲述常量和变量的概念起,把重
点放在内存地址的概念以及格式符对内容的解释上,包括存放
的字节数、符号位、存放的格式与数据类型的关系,以及获取
值、赋值、格式符与数据类型的关系,培养学生理解数据与数据
类型的密切关系,讲清了这种关系,学生就可以快速地理解各
种类型数据的核心本质,从而准确地理解类型提升与强制转换
这些概念以及在这些过程中发现的变化,也为后续需要用内存
解释C语法打下很好的思维基础。比如,初始时,把握了这个
本质学生自己就很容易解释像float型数据用“%d”输入输出时
出错的现象,少犯一些自己无法解释和无从修改的低级错误,
这些错误如果经常出现对许多初学者的学习积极性打击非常
大,从而失去学习的兴趣。
数组作为重要的构造类型,在C语言中占重要地位,它的
应用非常灵活,数组名的意义是关键内容,许多高校使用的教
材把重点放在了数组所定义的变量上,重点讲述各变量的引
用,这使得学生在后续的数组作为参数以及与指针的关系理解
起来困难非常大,经常出现一个例程中的语句照抄到自己的代
码中也出错的现象,尤其是二维数组、多维数组这些复杂的结
构。因此,在数组一章中,如果用数据类型对数组名和它的元
素进行分析,指出数组名本身的数据类型就是数组本身;数组
名作为表达式的操作数时是地址(sizeof(数组名)、&(数组名)除
外),此地址指向的数据类型就是数组元素的类型,这样,学生
就可以很容易把数组名赋值给指向一维数组的指针、指针数
组、多级指针时,从数据类型的角度考虑问题。这样当用数组
名作为实参传值给指针类型的形参时,就容易正确定义形参的
数据类型及结构。当时参与形参类型不一致后出现的运行错
误,可以再根据数据类型这个关键的东西进行分析。
强调数据类型,可以非常明确地把指针变量转换成C语言
的基本数据类型变量一样的思维方式来理解,指出指针变量就
是一个变量,只是类型与基本数据类型不同,其存放的是整数
形式的值,即地址,因为前面讲述的地址概念到此处学生已经
非常熟悉,已经形成良好的思维模式,所以理解起来很容易,所
以此时的指针概念只是地址换了一个说法而已。
收稿日期:2020-06-10
基金项目:安徽省高等学校省级质量工程项目,计算机类一流本科人才示范引领基地(项目编号:2019rcsfjd044);安徽省教学研究项
目(项目编号:zhtx18084);安徽省高等学校省级质量工程项目(项目编号:2018ylzy022)。
作者简介:洪留荣(1969—),男,安徽宿松人,主要研究方向为计算机应用研究。
本栏目责任编辑:王力
计算机教学与教育信息化
117
ComputerKnowledgeandTechnology
电脑知识
与技术
为了突出指针变量是“值”且数据类型为指针类型的概念,
在教学过程中,把声明指针变量的一般写法,如教材上定义指
针变量的方式,如int*p;,强调成(int*)p;这样的方式,指出数
据类型为(int*),后面只是一个简单变量,并提醒学生引用时数
据类型的一致性;这样,把指针变量使用的思维与使用一般基
础类型变量的方法统一起来。强调指针变量的数据类型相同
指的是它指向的数据类型一致这个概念。例如,二维数组名作
为实参时,其对应形参的写法就非常容易理解了;再如函数指
针(*fun)(),强调不同函数的数据类型不同,学生就可以快速理
解一个函数指针做形参的意义以及实参的正确写法。
在抓住了这些本质以后,一些同学还可以比较好地理解像
这样的函数指针数组int(*s[10])(int),并且可以正确调用它,而
这并不在教学内容之列。
这种以数据类型为纲的教学思路,可以把构造类型的变量
转换成基本数据类型这种简单的变量进行理解。从笔者多年
的教学经历来看,学生对指针和数组(包括二维数组、多数数
组、多级指针)之间的传参、指向一维数组的指针、指针数组以
及函数指针这些相对较复杂的概念理解起来并不存在大的困
难,有些平时训练多一点的同学,可以写出水平较高的代码,调
试时遇到的一般性问题通常有解决的思路。学生如果有了这
些核心知识和思维的铺垫,指针一章的教学内容并不是困
难的。
以数据类型为主线,同时对后续结构体类型、共同体类型
等都可以转换成基本数据类型的思维方式来理解,只需要强调
一下各自类型的独有特点就可以了,比如结构体类型成员变量
的赋值、输入与输出等,剩下的教学重点就可以放在算法思维
上了,即如何应用结构体这些数据类型解决链表问题。
有了数据类型这个本质基础,在课后阅读别人所写的纷繁
复杂的代码时,也就变得相对容易,从笔者的教学经历来看,学
生如果把握了数据类型这种C语言本质,就可以很好地理解本
科生C语言程序设计教学大纲上规定的重点和难点,加之适当
编程练习和阅读代码就可以把握核心内容。更重要的是学生
持续学习C语言的能力增强,这是因为能理解代码增加了他们
学习的积极性,有了积极性,学习C语言兴趣更高,更加乐于去
实践,更能加强理解,起到一个良性循环的作用。
2以表达式的值统领各表达式的讲解
地方高校学生在开始接触C语言时一般在低年级,并没有
好的计算思维能力,很多人在入学前,没有真正接触过台式电
脑,因此往往以一般性逻辑思维和高中时的数学表达式思维来
看C语言的表达式,经常会以一般的逻辑方式去考虑问题,而
许多教材所给内容又恰好加深了这种误解,例如,所给的例题
多类似if(x>60)这样的写法,如果教师也以这种方式去讲解,许
多学生就会陷入“如果x大于60就执行什么”的思维方式中,因
而,
while(1)
对表达式的理解就不透彻,比如对于后续常用的像if(!x)、
中的表达式要作为逻辑表达式或关系表达式等内容,
这样的写法理解起来非常吃力,要花时间去讲解这些
给学生造
()
成思维上的混乱。所以,表达式的讲解一定要以C语言标准上
如C11、C17标准)的定义进行简化,强调表达式的结果是一个
值,以值的方式去理解,单个变量是一个表达式、函数是一个表
达式,表达式中的运算符,根据优先级和顺序点参与运算,它们
都有一个最后的结果值,这样学生对诸如x=3、a>b>c这样的表
达式理解起来就方便了。有了这种基础,后续讲解选择语句、
118
计算机教学与教育信息化
第17卷第10期(2021年4月)
循环语句等就()中的表达式值以0和非0值作为统一标准进行
讲解,即当表达式为非0时执行语句,为0时不执行语句,这样,
初学者对if(!x)、while(1)写法理解起来就很容易,并很快能阅读
并编写出类似的代码,也不会把“a>b&&b>c”这样的表达式写
成“a>b>c”。因此,强调表达式的值,可以统一所有选择语句和
循环语句中涉及的表达式部分,可以用“值非0执行,0不执行”
这样简单的话来描这类语句的执行过程。这不仅适用于关系
表达式、逻辑表达式,也适用于函数表达式,同时也与_Bool类
型的值统一。
3以复合语句统领选择语句和循环语句
代码阅读不会存在大的困难,
C语言初学者一般容易理解基本的选择语句和循环语句,
也可以写出比较简单的程序代
码,
else
但对于这类语句的嵌套结构理解起来就相对困难,
中又嵌套其他循环的情况。对于这些知识点,
语句if部分和else部分分别嵌套有if或if-else
像if-
可均以复合语句
语句;for循环
作为切入点进行教学,以while循环为例,首先给出while语句
的基本语法结构:
while(
强调上述全部代码是一条
表达式)一条语句;
while语句,其执行过程为当表
达式值非0时,只执行其后的一条语句,如果当表达式值非0
时,需执行多条语句,需要用{}括起来。这个一般教学中都会讲
到,但很多教材并没有强调{}是一条复合语句,如果把{}这个看
成一条语句,则while{}后面如何复杂,都与while语句定义的格
式一致,
while(i>1)
是一条while语句。比如有以下代码:
{
printf("%d
for(j=1;j
",i);
{
}
jc=jc*j;
while(a--)
jc=jc+5;
i++;
}
t++;
按照上述以语句的分析方法,把while循环作为一条语句,
则学生很容易看出整个代码实质上是两条语句:
while
t++;
语句
行完成,
while()
再执行
后跟一条复合语句,
t++;语句,然后再介绍
执行的过程是先把
while中的复合语句的分
while语句执
析,它只包含四条语句:
printf("%d
for
while
语句
",i);
i++;
语句
外层while()中的表达式值非0时,依次顺序执行这些语句。
因为把循环看成了一条语句,这也意味着这四条语句中先执行
完printf("%d",i);,然后执行for这条语句,这条语句执行完才执
行后面的while语句,所以从顺序上看这非常清晰,学生容易理
解,且须记的内容很少。
本栏目责任编辑:王力
(
第17卷第10期(2021年4月)
ComputerKnowledgeandTechnology
电脑知识
与技术
把问题拆成一条一条语句的讲授方法,有以下好处:
(1)选择语句、循环语句以语句统一,函数体内语句就可以
用简单的顺序结构进行思维。对于初始者,这样的简单描述,
使学生容易理解、掌握程序代码的执行过程,如果当教学中没
有给出这种简易的结构说明,而只是用一段代码来说明什么是
多重循环且用代码来解释它们的运行过程,大多数学生的注意
力往往就会集中在每一行代码本身,缺乏整体的概念。强调复
合语句看成一条语句,可以把表面非常复杂的代码进行简化,
让学生容易从整体上把握编程的思路,培养他们的算法思维能
力,同时可有效提升他们的编程能力和阅读代码的能力。
(2)可以间接培养学生函数递归调用的部分思维,为后续
学习函数打下基础。选择语句、循环语句当中的复合语句可包
含选择语句、循环语句,虽然这部分内容没有讲述到“递归”的
概念,但这里实际上已经切入了函数递归调用的部分思维,这
种思维就是外层中有相同内层。
(3)可以为模块化编程打下思维基础。这里复合语句虽然
没有说明模块化,但用整条语句进行分析,可以让学生体会到
一条语句是作为一个整体,一条语句可以包含多条语句,以完
成一定的任务,这些虽然在课堂教学中没有指出,但这样的方
式显然可以引导学生做这样直觉性的思考,从而为后续模块化
编程的教学打下思维基础。
极性相对不足,更需教师在课堂教学上多下功夫。我国古代最
早一篇专门论述教育、教学问题的论著《学记》中强调的教师应
[6]
“其言也,约而达,微而臧”,因此,提炼出C语言的本质,以简
单的过程描述复杂的问题显得非常重要。本文把前后教学内
容有意识的提炼、提前铺垫,用简单的方式去解释C程序设计
中纷繁复杂的代码,使学生易于理解,更好地提升他们的学习
兴趣,培养他们的算法思维能力和编程能力;思维的铺垫可以
让学生在前期逐步形成学习后期知识的所需的思维意识,这样
后续新知识的学习就相对容易。
参考文献:
[1]张翠平,赵晖.基于“学习成果导向”理念的教学研究——以C
语言程序设计课程为例[J].计算机教育,2020(3):153-156,161.
[2]陈涛,朱俊,裔传俊,等.面向编程能力培养的C语言教学模式
研究[J].计算机教育,2020(1):100-103.
[3]何迎生,王从银.基于慕课的C语言程序设计翻转课堂教学
实践[J].计算机教育,2020(1):160-163.
[4]骆春妹,袁三一.基于网络教学平台的C语言课程教与学研
究[J].教育教学论坛,2020(9):372-373.
[5]李薇,黑新宏,王磊.C语言程序设计课程的金课建设实践[J].
计算机教育,2020(6):142-146.
[6]王凌皓,姬天雨.中国古代师道观评析[J].河北师范大学学报
(教育科学版),2019,21(1):15-20.
【通联编辑:光文玲】
4结束语
C语言这种简洁紧凑、灵活方便计算机语言,学好它有一
定难度。从整体上讲,一般地方院校的学生自学能力和学习积
(上接第109页)
参考文献:
[1]刘爽,郑燕林,阮士桂.ARCS模型视角下微课程的设计研究
[J].中国电化教育,2015(2):51-56,77.
[2]张剑锋.ARCS模型在激发大学英语听力学习动机中的应用
[J].技术与创新管理,2008,29(4):428-431.
[3]袁丽容.MOOC教学视频中的动机激发策略研究[D].深圳:深
圳大学,2017.
[4]柳春艳.SPOC在中小学教育中的应用模式探索——基于
ARCS模型视角[J].中国电化教育,2015(12):120-125.
[5]张金磊,张宝辉.游戏化学习理念在翻转课堂教学中的应用
研究[J].远程教育杂志,2013,31(1):73-78.
[6]王立亭,张斌.基于ARCS动机模型的微课设计与实施研究
[J].中国信息技术教育,2015(17):83-85.
[7]郑燕林.ARCS模型视角下翻转课堂的教学设计与实践[J].现
代远距离教育,2020(3):18-23.
[8]陈天仙.基于ARCS动机模式的微课设计与应用研究——以
小学信息技术课为例[D].武汉:华中师范大学,2017.
【通联编辑:王力】
(上接第113页)
[2]邓秋实.校企深度合作办学机制的探究[D].哈尔滨理工大
学,2014.
[3]易新河,文益民,陈智勇.我国校企合作研究二十年综述[J].
高教论坛,2014(2):36-41+68.
[4]孙蓓雄.“双师型”背景下的高职院校青年教师培养机制研
究[J].黑龙江高教研究,2012,30(2):102-105.
[5]李薇薇,孙秀玲.浅议高校应用型人才培养方案的制定与实
施[J/OL].当代教育实践与教学研究,2017(10):92(2017-
10-16).
【通联编辑:王力】
本栏目责任编辑:王力
计算机教学与教育信息化
119
版权声明:本文标题:地方高校C语言程序设计课堂教学内容探讨 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713737738a649243.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论