标题 | 应用性本科水保专业C语言循环结构教学实践探讨 |
范文 | 摘要:应用性本科是国家高等教育的一个新生事物,具有鲜明的技术应用特征。C语言对于我校应用性本科水保专业非计算机专业的学生学习起来具有一定的难度,而循环结构又是三大基本结构中最重要、最复杂、最广泛的一种结构。该文从C语言的课程性质入手,介绍了循环结构的重要作用,分析了教学对象及传统教学存在的问题,创新了教学模式,以For循环结构教学为例,采用“七步法”组织教学,开展C语言循环结构教学实践。 关键词:循环结构;单元设计;C语言 中图分类号:G642? ? ? ? ? ?文献标识码:A? ? ? ? 文章编号:1009-3044(2018)36-0122-02 1 概述 《C语言程序设计基础》课程是江西环境工程职业学院应用性本科水土保持专业开设的必修课之一,也是当代大学生应用性人才所需掌握的内容之一。C语言课程实践操作性极强,既要了解相关概念,又要真正动手编程。该课程的开设旨在培养学生严谨的工作作风、敏捷的逻辑思维能力以及互助的团队合作能力。同时,这门课程也是“全国计算机等级考试”二级考试的主要语种之一,通过课程的开设使该专业大部分学生能够顺序通过“全国计算机等级考试”二级(C语言)考试。 C语言是一种面向过程的结构化程序设计语言,而循环结构是三大基本结构(顺序结构、选择结构、循环结构)中最重要、最复杂、最广泛的一种结构。学好循环结构是学好C语言课程的关键,它是学好数组、指针、函数等内容的基础和前提。在日常工作和生活中通过循环结构的应用可以很方便地解决许多问题。例如,求全班学生课程的总成绩和平均成绩;求任意两个正整数的最大公约数和最小公倍数;九九乘法表的打印输出等。本文将结合作者多年教授程序设计语言的教学实践经验,从课程背景、教学对象与教学现状分析、教学组织实施实践等几个方面来对循环结构教学实践进行探讨。 2 应用性本科水保专业教学对象与教学现状分析 2.1 教学对象分析 我院水保本科班是与南昌工程学院联办的应用技术型本科班,这些学生具有鮮明的技术应用的特征,他们的培养目标与高职生和普通本科生完全不一样。这些学生主要是以应用型本科教育培养的本科应用型人才,不是学科理论知识的学习,更加注重的是动手能力和创新能力的培养。普通本科生培养的是从事科学研究和学术研究的研究生人才,教学过程中注重理论知识的传授,更多的侧重系统理论基础的学习,培养学生的理论创新能力。而应用型本科生培养的是高科技行业以及技术密集产业等高级应用型人才,教学过程中理论与实践并重,培养学生实践创新能力。这些学生大部分入校时高考成绩比普通本科生成绩要低,学习基础要差一些,所以在授课过程中接受能力比普通本科生要弱,讲得太快,学生跟不上进度,讲得不深,学生听不懂。 2.2 传统教学存在的问题剖析 “C语言程序设计基础”课程大部分高校在开设时采取两节理论教学和两节实验教学的模式,理论教学多安排在多媒体教学上课,实验教学安排在机房练习。有时上完理论课后,上机课隔好几天才上,这两个教学环节脱节,由于许多学生不会及时去复习上课内容,从而导致学生在上机过程中经常发现上过的东西都不会做。C语言传统教学方法单一,教学方面其一,采取讲授为主,在循环结构内容讲授过程中的一般步骤是先分析如FOR循环的语法格式,然后再重点讲解FOR循环的语法规则,最后通过一个小例子来理解FOR循环。这种授课方式,上面环节内容相对枯燥,容易使得学生产生厌学心理,而对于应用型本科学生来说,他们的专业基础知识不强,学习的主动性有待加强,学习效果不是很理想。其次这种以教师为主体的灌输式教学模式,使得学生能动性较差,容易出现上课睡觉现象,学生上课时对上课内容缺乏思考,上完课后对于编程应用还是无从下手。传统教学方式忽视学生应用能力及创新能力的培养,与应用型本科人才培养要求不符合。 3 教学组织实施实践 C语言课程对于非计算机专业学生来说学起来比较吃力,三大基本结构:顺序结构、选择结构和循环结构是整个课程的一个重点,而循环结构相对其他结构而言较为抽象,学生学习起来比较困难,怎么才能破解这个难题,让学生学习“循环”内容从抽象变成形象呢,为此作者在教学过程创新教学模式,是以项目为载体,围绕一个个独立的项目实施过程开展教学单元设计,遵循“由简到繁、由易到难、由学到用、循序渐进、逐步提高”的原则,从七个方面组织教学,具体如下:(1)新课导入与项目展示;(2)项目任务描述;(3)任务分析;(4)任务实施;(5)相关知识点;(6)技能拓展;(7)指导与评价[3]。 3.1 新课导入与项目展示 运行该项目源程序,为学生演示本章项目各个任务的实现效果。 (1) 新课导入 首先导入新课问题:我们都清楚,在C语言中,每门课的成绩录入,一个人成绩录入简单,一个班的成绩录入怎么办?数学图形有很多种,如三角形、矩形、菱形,如果要输出一个菱形怎么办?其实要解决这些现实问题有比较简便的方法就要通过我们今天即将要讲得内容:循环结构,通过循环结构可以比较容易解决上面的问题,实现一个班的成绩录入和菱形等图形的输出。 (2) 项目展示 3.2 项目任务描述 项目1 打印几何图形——菱形 本项目中,通过设计一个算法输出一个几何图形,图形的形状为菱形。具体输出图形如图2所示: 3.3 项目任务分析 该图案是一个菱形,共有9行,每行由空格和星号“*”换行符组成,第1行至第5行的空格呈递减趋势,而星号“*”呈增加趋势,第6至第9行的空格呈增加趋势,而星号“*”呈减少趋势。图案输出时可以用“For循环”来控制输出,此项目中要用到嵌套的For循环,外循环控制图形行的输出,两个内循环分别用来控制空格和星号“*”的输出。 3.4 项目任务实施 本项目中,根據项目描述及任务分析进行详细的代码设计。首先打开C-Free集成开发平台进行本项目的程序代码设计,点击“工程”菜单的“新建”菜单项,输入项目的工程名称为“ex4_1.cfpg”,然后再点击“文件”菜单的“新建”菜单项,新建一个名称为“ex4_1.c”的C语言源文件,将打印图案的算法代码录入完毕,最后在C-Free平台上调试运行,输出结果。 1) 主要代码如下: void main() { int m,n ; for(m=1;m<=5; m++) {? ? ?//1至5行数据输出 for(n=1;n<=5-m; n++) printf(“”); //输出图形的空格数:5-m个 for(n=1;n<=2*m-1; n++) printf(“*”); //输出图形的星号数:2m-1个 printf(“\n'”); //换行输出 } for( ;m<=9; m++) {? ? ? //6至9行数据输出 for(n=1;n<=m-5; n++) printf(“”);? ?//输出图形的空格数:m-5 for(n=1;n<=2*(9-m)+1; n++) printf(“*”);? ?//输出图形的星号数:2(9-m)+1个 printf(“\n'”);? //换行输出 } } 2) 程序设计思考 (1) 此实例中使用函数printf()来实现星号和空格符的输出时,如果使用putchar(),括号内的参数是什么引号呢,是“”还是‘? (2) 为什么程序中第二个for循环语句的第一个表达式是空的? 3.5 相关知识点 1. For 语句 (一)for语句的格式 for (变量初始化;表达式2;表达式3){ 循环体主体; } (二)for语句的使用说明 for语句中三个表达式可以为空,但分号符一定要有,如果表达式2为空,那么就假定该循环条件为真。for语句中变量初始化工作在程序开始时完成,只运行一次,表达式2用于判定循环是否继续执行,若为真,则执行循环体主体语句,然后再更新表达式3,进行下一次条件表达式2的判断,若条件表达式为假,则整个循环结束。 (三)for语句的注意事项 (1) 设置一个循环控制变量来实现递减或递增1;(2)for语句圆括号内的3个表达式是可选的,都可以省略,但分号一定要保留。如果省略了条件表达式,那么默认为真;(3)可在一个for循环语句中提供用逗号分隔的表达式3和表达式1,但表达式2只能有一个;(4)for语句变量初始化部分声明的变量,其作用域只局限于for语句内部。 3.6 技能拓展 (一)break语句 (1) 语法格式 break; (2) break语句的作用 在while、for、 do-whiler或switch结构中执行break语句时,break语句会造成程序从该结构中退出,程序接着执行该结构之后的第一条语句。 (3) 注意事项 执行break语句后,for语句的表达式不被执行。 (二)技能拓展训练 项目2? 打印输出1~100之间的全部素数 3.7 指导与评价 按小组进行分组训练,小组同学相互交流,并对各小组学生的任务实施过程进行全程跟踪指导,并对其出现的问题进行总结和评价,指出各组学生在程序编码过程中存在的某些共性问题。例如,程序源文件命名不规范、程序编写格式不规范、死循环、无注释或注释不清晰等问题。 4 结束语 在C语言程序设计课程的教学过程中,循环结构是整个课程教学的重点和难点,是学好C语言的关键要素,如果没有学好它,数组、函数和指针的学习就难上加难。因此,在教学过程中,教师要不断创新教学模式和教学方法,优化C语言循环结构教学单元设计,让学生在快乐中学习,提升学生对循环结构内容的掌握能力,达到举一反三的程度。另外,在教学过程中注重学生程序设计思想的培养,针对不同的教学内容,选择恰当的教学方法,帮助学生更好地去化解学习中的疑点,注重从计算思维上对学生进行启发训练,发现和总结问题求解的规律,设计正确有效的求解算法[2]。加强教学过程中编程实践操作,采用分小组方式加强组员之间的沟通和交流,提高学生学习的积极性,引导学生自主学习。 参考文献: [1] 宋建萍. C语言教学中循环结构的教学法探讨[J].科技视界,2016(6):52-53. [2] 敖勇平.基于岗位核心能力的“Java面向对象程序设计”课程设计与实践[J].电脑知识与技术,2016,12(34):131-132. [3] 唐红杰. C语言教学中循环结构教学探讨[J].软件工程师,2014(10):49-50. [通联编辑:王力] |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。