APP下载

“C语言程序设计”课程教学改革与实践

2021-05-29靳小燕魏慧琴周围

科教导刊 2021年9期
关键词:专业特色题库C语言程序设计

靳小燕 魏慧琴 周围

摘 要 C语言程序设计课程是大学理工科各专业培养学生计算机应用能力的一门重要的基础课程,也是我校理工类学生选课人数最多的一门编程类课程。针对目前C语言程序设计课程教学中存在的问题进行教学改革与实践。通过C语言程序设计的课程改革,建立高效的在线程序自动批改系统,进行题库资源建设,融合专业特色,对不同专业的学生,可以结合其专业特点,讲解一些和专业知识相关的案例,并进行实践;培养学生学习程序设计课的兴趣,提高编程能力。

关键词 C语言程序设计 教学改革 在线批改 题库 专业特色

中图分类号:G424                                  文献标识码:A   DOI:10.16400/j.cnki.kjdkx.2021.03.055

Teaching Reform and Practice of "C Language Programming"

JIN Xiaoyan, WEI Huiqin, ZHOU Wei

(School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044)

Abstract C language programming is an important technical basic course for cultivating students' computer application ability in various majors of university science and engineering. Programming ability is one of the most demanding vocational skills in today's society. In view of the problems existing in the teaching of C language programming course, the teaching reform and practice are carried out. Through the curriculum reform of C language programming, an efficient online program automatic correction system is established, the resources of the question bank are constructed, and the professional characteristics are integrated. For students of different majors, some cases related to professional knowledge can be explained and practiced according to their professional characteristics; Cultivate students' interest in learning programming and improve their programming ability.

Keywords C language programming; teaching reform; online correction; question bank; professional characteristics

C语言是一种应用较为广泛的面向过程的计算机高级语言,很多高等院校都开设了这门课。在我校,尤其是通信专业,电气专业等本科生必选的计算机基础课程,也是给其他理工科专业推荐的公共基础课。主要是培养各个专业的学生掌握用计算机解决问题的方法,培养学生的逻辑思维能力,为后续的计算机课程或相关的专业课打下良好的基础,比如学完C语言程序设计课,可以再学习C++程序设计;或者电气学院的学生后续学习单片机课,其中的案例也是用C语言编写的。由此我们可以说,C语言程序设计课程的教学质量的好坏会影响后续课程的学习效果。

C语言程序设计课程是我校开设的全校性限选课,共48学时,每年选课人数超过两千人。

1 本课程教学中的问题分析

首先,学习目标不明确,学生学习的积极主动性不够;C语言程序课程的学习有其自身的特点,就是要通过大量具体的上机实验训练,在实践中提高编程的基本能力,并将程序设计的思想逐步理解和应用。尤其对于非计算机专业的学生,似乎不是太明白学习一门编程语言有什么用,也不太清楚此课程对他们自己的专业有什么样的帮助。因此,在教学的过程中为学生建立明确的学习目标是非常重要的。

其次,在实践教学中,由于缺乏高效的课程交流平台,教师无法及时掌握学生的学习情况和学习效果。学生自己在课下的上机环节不能得到老师的及时辅导,通常遇到问题容易放弃,并且存在作业拷贝现象。随着多媒体技术和网络技术的快速发展,通过电子邮件来完成和传统的作业批改方式已远远不能满足当前的发展需要。

第三,目前这门课的教学基于同一个教学大纲,教师讲授的内容范围一致,沒有按不同专业分类。通过调查,了解到多数学生希望在进行综合程序设计中能做和自己专业相近的项目,激发学生的学习积极性,取得良好的教学效果,为后续课程打下良好的基础。例如:电气学院后续专业课程“单片机”,需要用C语言编程。而平时我们对这一块的训练几乎没有。如何将C程序设计课程和学生专业相结合,建设适合不同专业学生学习的教学资源,是课程改革研究的重点。

2 课程教学改革与实践

计算机技术和网络技术的发展为网上学习提供了可能和保障。本课题首先研究了网络教学的特点,结合C语言课程的教学大纲,规划和设计出相应的知识模块,围绕这些知识模块开发制作了本课程所需要的教学资源,比如PPT、各种题型的题目和难度各异的题目以及适用于不同专业的题目,并应用于教学中。

2.1 自动批改系统的实现

通过书面、电子邮件来完成程序实践作业的方式和传统的程序作业批改方式已远远不能满足该课程的实践环节的需要,依托现有平台,建立了自己的题库,实现了C语言程序设计课程的远程作业提交自动批改,平台系统具有对源代码进行编译和执行的功能,并通过测试数据(一般为5组或5组以下)来检验程序运行是否正确,每道题都有评判结果,可以比较被测程序的输出数据和标准答案的情况,然后进行打分,学生也能及时看到自己设计的程序是否正确。

2.2 融合专业特色的C语言程序设计课程

在C语言程序设计课程的教学过程中,除了基本的C语言基本语法知识的介绍,程序设计方法的建立,将数学领域一些有趣的问题引入课堂中,调动学生学习的积极性,例如,针对数学专业的学生可以增加如下专题——数学黑洞问题,比如6174问题,任何不同的四位数(四位都一样的除外),通过从大到小和从小到大的排列,得到差后再重复上述运算,至多7次,得到的答案都是6174。

算法可以分为以下几个步骤:(1)分离整数中的各位数字;(2) 将各位数字重新排列成可能的最小数; (3)将各位数字重新排列成可能的最大数。要将各位数字重新排列成可能的最小数,这就涉及排序问题,排序算法非常重要,应用广泛,从这一点,可以引导学生对排序问题进行研究,弄清楚有哪些排序算法,每种算法的思路和实现过程,开拓思路,寻找更好的算法。

对于电信学院的学生,增加如下案例,计算汉明距离,汉明距离是以理查德·卫斯里·汉明的名字命名的。汉明距离是指两个字符串(等长)对应位置上的不同字符的总个数。也就是说,将一个字符串变成另一个字符串所需要换掉的字符个数。例如1011101 与 1001001 之间的汉明距离是 2。2143896 与 2233796 之间的汉明距离是 3。在一个有多个编码的集合中,任何两个编码之间的汉明距离的最小值,我们称它为最小汉明距离,这个值越大,码组的抗干扰能力就越强,参考程序如下:

#include

int hamdist(char *a, char *b)

{

int dist = 0;

while (*a && *b) {

dist += (*a != *b) ? 1 : 0;

*a++;

*b++;

}

return dist;

}

int main()

{

char a[100], b[100];

fgets(a,100,stdin);

fgets(b,100,stdin);

int dist = hamdist(a, b);

printf("%d\n", dist);

return 0;

}

在程序中,可以定義数组,指针和函数,并学会使用fgets函数和函数调用等知识和编程小技巧。

在教学过程中,对于每个小问题都给出多种解决方案,让学生体会在程序设计过程中可以在多种算法中灵活选择,这样就可以调动学生进行主动思维的积极性,课可以让学生对所学的内容进行更好地理解。

2.3 学习资源的建设

首先将不同专业学习的共同内容按照知识点组织学习资源库,然后再按专业组织不同的学习内容和案例,设计按专业分类的训练题目。数字资源表现形式多样性;注重资源建设和学生的交互性。有利于整体提高学生的实际编程能力,取得好的学习效果。题库中的题目如图1、2、3所示。

图1

课程资源初步建成后,大部分C语言代课老师使用题库中的题给学生布置作业,编程题和改错题放在C平台上,300多道选择题放在教务处课程平台上,供校内非计算机专业的学习程序设计课程的学生练习。通过对题库的使用,以适合的方式让学生进行试用,能提高学生的学习兴趣,提高编程能力,取得了较好的教学效果。下一步将对反馈意见进行分析,更好地进行教学改革。

3 展望

将专业特色融合到计算机程序设计课程中,不但可以增强学生的学习兴趣,而且可以提高学生的编程能力和自信心。经过教师们这几年的教学实践,我们看到教学效果还是比较好的。同时,对老师们提出了更高更严格的要求,需要花费更多的时间精力来备课,在课堂上需要额外讲解与专业相关的案例,给平台题库补充更多的与专业相关的题目,不断丰富课程资源,学习各专业的一些基本知识,课后及时对学生的问题进行答疑和解决。

对于目前C语言程序设计教学过程中存在的一些问题和不足之处,本文希望能够理论与实践相结合,探索C语言程序设计课的改革思路,优化教学内容和资源,重视基础教学的同时,融合专业特色,提高学生的编程能力。

参考文献

[1] 苏小红,王甜甜,张羽.基于大班翻转课堂的混合教学模式探索与实践.中国大学教学,2017(7):54-62.

[2] 何钦铭,颜辉,苏小红,等.“程序设计基础”课程教学实施方案[J].中国大学教学,2010(5):62-65.

[3] 赖晓晨.程序设计课程创新教学模式探索[J].中国大学教学,2008(7):42-44.

猜你喜欢

专业特色题库C语言程序设计
“整式的乘法与因式分解”优题库
脑力急旋风
基于专业特色的公共计算机基础课程建设研究
低碳能源技术与油气储运工程专业特色建设探索
以“学生为中心”的《C语言程序设计》教学设计探究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究
浅谈《C语言程序设计》课程的教学改革
《C语言程序设计》课程的教学改革与实践
猿题库技术压阵 深耕 K12在线教育市场
城市地下空间工程专业设置研究