欢迎来到速发表网!

关于我们 登录/注册 购物车(0)

期刊 科普 SCI期刊 投稿技巧 学术 出书

首页 > 优秀范文 > c语言程序设计论文

c语言程序设计论文样例十一篇

时间:2022-10-20 11:16:52

序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇c语言程序设计论文范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!

c语言程序设计论文

篇1

 

数学地质解决地质问题的一般步骤或途径如下:第一,进行地质分析,定义地质问题和地质变量,建立正确的地质模型;第二,根据地质模型选择或研究适当的数学模型;第三,运用数值分析理论对数学模型进行求解;第四,运用C语言设计计算机程序,并上机试算;第五,对计算机输出成果进行地质成因解释,对所研究的地质问题作出定量的预测、评价和解答。为了很好地解决地质问题,需要同时学好《数学地质》、《数值分析》和《C语言程序设计》三门课程。本文将对《数学地质》、《数值分析》和《C语言程序设计》三门课程的教学内容和方法进行研究,并介绍瓦斯危险性预测数学地质软件的开发。

1数学地质的教学内容及方法

数学地质(mathematicalgeology)是六十年代以来迅速形成的一门边缘学科。它是地质学与数学及电于计算机相结合的产物,目的是从量的方面研究和解决地质科学问题。它的出现反映地质学从定性的描述阶段向着定量研究发展的新趋势,为地质学开辟了新的发展途径。数学地质方法的应用范围是极其广泛的,几乎渗透到地质学的各个领域。

1.1 数学地质的教学内容

数学地质的研究对象包括地质作用、地质产物和地质工作方法。通过建立数学模型查明地质运动的数量规律性。这种数量规律性具体表现为地质体的数学特征、地质现象的统计规律以及地质勘探工作中存在的概率法则。其内容可概括为以下3个方面:①查明地质体数学特征,建立地质产物的数学模型。例如矿体数学特征是指矿体厚度、品位等标志变化的数量规律性。按其属性可划分为矿体几何特征、空间特征、统计特征和结构特征等4类。比如,尽管矿产有多种多样,但矿石有用组分品位的统计分布却服从正态分布、对数正态分布等有限的几种分布律。从它们的分布特征可以分析判断其成因特点,而且各类数学特征还具有不同的勘探效应。②研究地质作用中的各种因素及其相互关系,建立地质过程的数学模型。如盆地沉积过程的数学模型,地层剖面的计算机模拟,岩浆结晶过程的马尔柯夫链分析等。③研究适合地质任务和地质数据特点的数学分析方法,建立地质工作方法的数学模型。论文写作,C语言程序设计。例如,对于地质分类问题,可根据研究对象的多种定量指标,建立聚类分析或判别分析的数学模型,对所研究的地质对象进行分类或判别。又如针对大量的描述性的地质资料,通常可将其转化为0~1变量,建立各种二态变量的多元分析模型(逻辑信息模型、特征分析模型、数量化理论模型等),以解决地质成因分析和成矿远景预测等各类地质问题。论文写作,C语言程序设计。

1.2 数学地质的教学方法

数学地质的教学方法可概括为:①数学模型法。应用最广泛的是各种多元统计模型。例如用于地质成因研究的因子分析、对应分析、非线性映射分析、典型相关分析;用于研究地质空间变化趋势的趋势面分析和时间序列分析方法等。②概率法则和定量准则。由于地质对象是在广阔的空间、漫长的时间和复杂的介质环境中形成发展和演变的,因此地质现象在很大程度上受概率法则支配,且具有特定的数量规律性,这就要求数学地质研究必须遵循和自觉运用概率法则和定量准则。同时,地质观测结果不可避免地带有抽样代表性误差,因此对各种观测结果或研究结论都要做出可靠概率的估计和精度评价。以矿产定量预测为例,不仅要求确定成矿远景区的空间位置,而且应给出可能发现矿床的个数及规模,发现矿床的概率,查明找矿统计标志的信息量、找矿概率及有利成矿的数值区间等。

数学地质的主要研究手段是电子计算机技术,其中包括:①地质过程的计算机模拟,该项技术可以弥补物理模型法和实验地质学法的不足;②建立地质数据库和地质专家系统,以便充分发掘和利用信息资源和专家经验;③计算机地质制图;④地质多元统计计算及其他科学计算。

2数值分析的教学内容及方法

数值分析(numericalanalysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象。为计算数学的主体部分。

2.1 数值分析的教学内容

运用数值分析解决问题的过程:实际问题→数学模型→数值计算方法→程序设计→上机计算求出结果。数值分析的教学内容包括插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法。论文写作,C语言程序设计。

数值分析具有如下特点:第一,面向计算机。第二,有可靠的理论分析。第三,要有好的计算复杂性。论文写作,C语言程序设计。第四,要有数值实验。第五,要对算法进行误差分析。

2.2 数值分析的教学方法

根据数值分析的特点,教学时首先要注意掌握方法的基本原理和思想,要注意方法处理的技巧及其与计算机的结合,要重视误差分析、收敛性及稳定性的基本理论;其次,要通过例子,学习使用各种数值方法解决实际计算问题;最后,为了掌握数值分析的内容,还应做一定数量的理论分析与计算练习,由于数值分析内容包括了微积分、代数、常微分方程的数值方法,学生必须掌握好这几门课的基本内容才能学好这一课程。

3C语言程序设计的教学内容及方法

C语言是一种计算机程序设计语言。论文写作,C语言程序设计。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。

3.1 C语言程序设计的教学内容

C语言程序设计主要有两方面教学内容:一是学习和掌握C语言的基本规则;二是掌握程序设计的方法和编程技巧。“规则”和“方法”即语言和算法,是本课程的两条主线,二者不可偏废其一。从一定意义上说,“方法”更重要,因为它是程序的灵魂。一旦掌握,有助于学生更快、更好地学习和使用其他的程序设计语言。

3.2 C语言程序设计的教学方法

C语言程序设计是一门实践性很强的课程,对C语言初学者而言,除了要学习、熟记C语言的一些语法规则外,更重要的是多读程序、多动手编写程序。学习程序设计的一般规律是:先模仿,然后在模仿的基础上改进,在改进的基础上提高。做到善于思考,勤于练习,边学边练,举一反三,学会“小题大做”,一题多解,这样,才能成为一个优秀的C程序员。

4瓦斯危险性预测数学地质软件的开发

瓦斯危险性预测包括瓦斯含量预测、瓦斯涌出量预测和瓦斯突出预测。在利用数学地质技术进行瓦斯危险性预测时,需要进行大量的计算工作,一般要求用计算机完成其数学建模和未采区预测工作。随着计算机软硬件和可视化技术的发展,编制高速、高效、准确、灵活、用户界面友善的数学地质预测软件,是瓦斯地质研究向定量化发展的需要。论文写作,C语言程序设计。

4.1 数学地质模型的建立

瓦斯含量预测和瓦斯涌出量预测采用回归分析建立数学模型,即通过规定因变量和自变量来确定变量之间的因果关系,建立回归模型,并根据实测数据来求解模型的各个参数,然后评价回归模型是否能够很好的拟合实测数据;如果能够很好的拟合,则可以根据自变量作进一步预测。

瓦斯突出预测采用判别分析建立数学模型,即按照一定的判别准则,建立一个或多个判别函数,用研究对象的大量资料确定判别函数中的待定系数,并计算判别指标。据此即可确定某一样本属于何类。

4.2 数学模型的求解

对建立的数学模型,采用迭代法对线性方程组进行求解,即利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。

4.3 数学地质软件的开发

采用C语言编写计算机程序,开发数学地质软件。瓦斯危险性预测软件的操作较为简便,功能较为齐全。在软件主界面菜单栏的菜单项下面,可分别进入瓦斯含量预测,瓦斯涌出量预测、瓦斯突出预测的对话框模块。在对话框里分别输入变量数据和数据文件,运行数据文件,按下详细资料或判别结果按钮,可以查看运算结果。按下预测未知单元按钮可进入预测对话框。

5结论

1)对数学地质、数值分析、C语言程序设计教学内容及方法的研究为解决地质问题提供了便利途径。

2)瓦斯危险性数学地质软件的开发较好地运用了数学地质、数值分析、C语言程序设计的理论和方法,为数学地质、数值分析、C语言程序设计的教学提供了应用实例。

参考文献:

[1]韩金炎.数学地质[M].北京:煤炭工业出版社,1993.1-282.

[2]姚传义.数值分析[M].北京:中国轻工业出版社,2009.1-373.

篇2

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)04-0059-04

1 背景

如今各大高校均需要一个完整的系统来管理和保存学生的各门课成绩信息,以便后期使用,论文以河海大学文天学院的工科专业学生成绩为例,运用C语言程序设计和程序运行的环境,设计了一个简单的学生成绩管理系统,下面就来介绍该系统是如何构建的。

2 系统需求分析

2.1 系统功能划分

该系统主要功能如下:

1)学生基本信息和成绩的录入;

2)学生成绩的管理,如计算总分、排序、统计等功能。

2.2 系统功能结构设计

这个学生成绩管理系统中包含的学生信息有:学生的学号、姓名、性别、高数成绩、英语成绩、计算机成绩、三门功课总分,主要的功能模块如下:

1)输出学生基本信息并算出总分;

2)按照学号进行排序;

3)按照总分进行排序;

4)统计各门课程平均分;

5)统计男女学生人数;

6)按照姓名进行排序;

7)统计高数成绩优秀(大于等于80分)的人数,并输出符合条件的记录;

8)统计每门功课成绩都在80分以上,或总分在240分以上的人数,并输出符合条件的记录。

C语言中系统的每个功能由一个函数来实现,其系统功能模块层次结构图如下:

图1 学生成绩管理系统功能模块层次结构图

因为函数就是功能,所以对于图1的功能模块层次结构图,每个模块就对应C语言中的一个函数,该系统中所涉及的函导捌涔δ苋缦拢

1)int Menu();

主控菜单函数,有返回值,无参数。用菜单形式显示该系统能实现的所有功能,以供用户查看和使用。函数中的返回值为用户输入的序号code,为局部整型变量。

2)void Read(struct student stud[],int *n);

读入数据函数,无返回值,有参数。形式参数stud为结构体数组,由于调用此函数时实际参数为数组名,因此此处用数组接收;形式参数n为指针变量,由于实际参数为存放学生人数的整型变量的地址,因此n指向存放学生人数的整型变量,这样可以在读入学生信息的同时,还可以统计出学生的人数。

3)void Print(struct student *pstud,int n);

输出数据函数,无返回值,有参数。形式参数pstud为指针变量,指向存放学生信息的结构体数组,这样可以将相关变动信息返回给主调函数;形式参数n为整型变量,存放学生的人数。

4)void total_order(struct student *pstud,int n);

按总分排序函数,无返回值,有参数。形式参数同上。

5)void num_order(struct student *pstud,int n);

按学号排序函数,无返回值,有参数。形式参数同上。

6)void ave_count(struct student *pstud, int n);

统计各门课平均分函数,无返回值,有参数。形式参数同上。

7)void nn_count(struct student *pstud,int n);

统计男女学生人数函数,无返回值,有参数。形式参数同上。

8)void name_order(struct student *pstud,int n);

按姓名排序函数,无返回值,有参数。形式参数同上。

9)void gxyx(struct student *pstud,int n);

统计高数成绩优秀人数函数,无返回值,有参数。形式参数同上。

10)void mm(struct student *pstud,int n);

统计每门课分数不小于80分或总分在240分以上人数函数 ,无返回值,有参数。形式参数同上。

3 C语言程序设计

一个C语言源程序由若干个函数构成,且有且仅有一个主函数,主函数的名字只能是main,其他函数名字由用户自己定义,只要满足标识符的四大规则即可。一个程序总是从主函数开始执行,无论主函数在前还是在后,该系统中除了主函数外,还有十个函数,下面针对其中几个重要的函数进行程序设计。

3.1 主函数程序设计

为了方便读者更好地读懂该程序,部分地方加了注释,以上程序中/* */为注释,计算机并不执行。其中第四行的N为符号常量,表示该系统记录了10个学生信息,每个学生信息用结构体类型的数组来保存,该结构体类型包含4个子成员,每个成员又是另一种类型的数据,其中学号、姓名、性别均由字符数组存储,成绩由整型数组存储,这样就构成了struct student结构体类型,主函数中的第一条语句就是用这种类型定义了结构体数组stud,用来存放十个学生信息。接下来就在主函数中调用各个函数,实现相对应的功能。

3.2 用户自定义函数程序设计

3.2.1 主控菜单函数的设计

在屏幕中显示主控菜单,scanf为输入函数,需要输入一个整数,通过输入相对应的数字序号,可以实现相应的功能,例如输入1,即显示学生全部信息。

3.2.2 读入数据函数的设计

该系统是从文件中读取数据,10名学生的信息存储在文本文件studfile.txt中,如果想修改学生信息,直接在文件中修改即可,不用修改程序,这样既方便又快速,大大节省了时间。

3.2.3 按姓名排序函数的设计

以上程序使用冒泡的排序方法按姓名从小到大排序,系统直接将排序的结果输出到屏幕中,以供用户查看和使用。

4 系统界面

将以上程序输入到计算机C语言开发环境Microsoft Visual C++6.0中,经过编辑、编译、连接以后就可以运行了,运行界面如下:

1)系统菜单界面

当按下回车键,系统进入菜单模式,按照序号选择需要显示的信息。

2)@示学生信息界面

当按下序号1,系统进入显示全体学生信息界面,显示的同时计算出了3门课总分。

3)按学号排序界面

按下回车键继续进入菜单进行选择,当按下序号3,系统进入按学号从小到大排序的界面。

4)统计高数优秀的学生人数和记录

按下回车键继续进入菜单进行选择,当按下序号7,系统进入统计高数不低于80分的人数和记录。

5 结束语

论文主要介绍了学生成绩管理系统的设计与实现过程,分别从系统需求分析、系统程序设计和系统界面设计三个方面展示了系统的设计与实现,其中系统需求分析包括大体功能划分和具体功能结构设计,并设计了功能结构图,描述了各项功能,系统程序设计包括主函数和其他自定义函数的设计。该系统总共实现了八项功能,学生信息来源于文本文件,这样大大方便了学生信息的增删改查等功能。系统中所有功能使用到的方法,还可以实现更多的功能,拓展性能良好,便于各高校各专业使用。

参考文献:

[1] 胡枫. 《C语言程序设计》的案例式教学的设计[J]. 青海师范大学学报, 2010(4).

[2] 谭浩强. C程序设计[M]. 4版.北京: 清华大学出版社, 2010.

篇3

 

1 引言

C语言是国际上广泛流行的计算机高级程序设计语言,他既可以用来编写系统软件,也可以用来编写应用软件。在高等学校的计算机教育中,C语言程序设计几乎成了所有计算机相关专业的必开课程,从本科的计算机科学与技术、软件工程、网络工程等相关专业,到电子信息类理工科各专业,乃至高职的计算机应用技术、计算机网络技术、应用电子技术等相关专业。有的是专业基础课,有的是公共必修基础课,只是课程名稍有差异,常见的有“C语言程序设计”、“高级语言程序设计”、“C语言”、“C程序设计”、“结构化程序设计”等。无论是哪类专业,也无论叫什么样的课程名,其课程的教材选用却无太大差别,大部分以谭浩强主编的清华大学出版社出版的《C语言程序设计》为教材。论文参考网。只是课时分配和教学要求差异较大。本科以学科知识教育为主,高职教育以应用为主,不过从目前的发展趋势来看,本科教育也在向应用为主倾向。

2 赋值运算的定义

2.1赋值运算是各种计算机高级程序设计语言都提供的一种运算

在C语言程序设计中,赋值运算是应用最广泛的运算之一,其定义的一般格式为:

变量 赋值号 表达式

他的作用是将一个数据赋给一个变量。

2.1.1 变量

变量是一个简单变量。

2.1.2 赋值号

赋值号包括两种,一种是“=”,就是C语言中的赋值运算符,他是一个双目运算符,该运算符包括两个操作数。例如:

#include “stdio.h”

void main()

{

int x;

x=5;

printf(“x=%d”,x);

}

其中“x=5;”,他的作用是执行一次赋值操作(或称赋值运算),把整数5赋给变量x。最后程序执行结果是:x=5。

另一种是复合的赋值运算符,在赋值符“=”之前加上其他的双目运算符,就构成了复合的赋值运算符。在C语言中,提供了10种复合的赋值运算符,他们是:“+=”、“-=”、“*=”、“/=”、“%=”、“>>+”、“<<=”、“&=”、“^=”、“|=”。其中前五种是关于算术运算的,后五种是关于位运算的。例如:

#include “stdio.h”

void main()

{

int x;

x=10;

x+=5;

printf(“x=%d”,x);

}

其中:“x+=5;”,等价于:x=x+5;他相当于使x进行一次自加5的操作,即他使x加5,再赋给x。程序的执行结果为:x=15。

再如:x*=y+5,等价于:x=x*(y+5) (注意:此时圆括弧不能省略),他的作用是使x乘以(y+5),再赋给x。还有 x%=5 等价于 x=x%5 等。

复合的赋值运算符可以简化程序,使程序精练,也是为了提高程序编译效率。

2.1.3表达式

表达式可以是:

常量:包括整型常量、实型常量、字符常量、字符串常量、符号常量等五种。

变量:包含C语言中允许的各种变量。

含有运算符和操作数的各种表达式,如:算术表达式、关系表达式、逻辑表达式等。论文参考网。

还可以是数组中的某个元素。

赋值运算符是右结合性的运算符,就是先将右边表达式的值求解出来,再赋给左边的变量,如果变量原来有值,此时就将原来值覆盖了,变量当前值就是表达式的值。

3 赋值运算的读写过程

当赋值运算符的右边表达式是变量时,参与表达式运算的是变量的值,也可以说是变量对应存储单元的内容。而运算符左边的变量是指变量对应的存储单元。这样就使运算符两边的变量有了不一致的说法,使一部分初学者产生了困惑。

计算机高级程序设计语言编写的源程序,计算机无法直接识别,为了使计算机能够执行源程序,必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”(object program),然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序,即二进制指令。CPU进行取指令和执行指令的操作。在执行指令时,如果需要访问存储单元,则要在读、写信号的控制下进行,所谓读操作,就是在“读”信号的控制下,将地址线指出的存储单元中的内容复制一份通过数据线取出,存储单元中的内容不改变。写操作,就是在“写”信号的控制下,将数据通过数据线送入由地址线指出的存储单元,存储单元中的内容被改变。

例如:

z=x+y,读x单元,读y单元,进行类型处理后,加法,结果写到z单元。此例中变量x、y单元的内容没有被改变,z单元的内容被改变。

x+1,读x单元,进行类型处理后,与常量1做加法,结果未做处理。论文参考网。此例对x的操作只有读,因此其内容没有改变。

x=x+x,读x单元,进行类型处理后,加法,结果写x单元。此例中两次读出的是x单元在赋值运算前的内容,最后对x单元进行了写操作,x的内容被改变。

4 结束语

从上面的分析可以看出,只有对变量单元进行赋值运算时,即对变量单元进行“写”操作时,变量单元的内容才会发生改变。如果对变量单元进行“读”操作,变量单元的值不会改变。知道了这样一个过程,对我们学习、理解赋值运算就容易多了。

参考文献

[1]谭浩强. C程序设计(第三版).清华大学出版社

[2]李寅杰.赋值运算中的变量单元.科学时代

篇4

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)36-8369-02

单片机课程实践是高校自动化专业集中实践环节的必修课,是学生学习《单片机原理》课程后,进行的一次全面的综合实践,其目的旨在加深对单片机基础理论和基本知识的理解,培养学生具有单片机系统应用软件设计和开发的能力,在具体实现过程中强化学生的实践意识,提高应用能力、创新意识和合作精神。在项目的实践中,使得学生掌握一定的理论与技术知识,而且应该树立管理理念,建立项目工程思维观念,而这一点正是高级语言编程思维的一种体现。

通过将单片机课程实践和高级语言程序设计实验相结合,使学生在理解单片机理论和高级语言编程思想的基础上,实际动手开发一个实际的应用系统,来提高综合运用所学理论知识的能力。

1 研究内容或对象

引导学生运用已学的单片机理论知识、单片机程序设计方法和高级语言编程思想,具体设计一个实用的小型单片机应用系统,开发设计过程按以下顺序进行――选定课题、调查用户需求、总结归纳数据流程、分析性能、书写需求分析及总体设计报告(包括组成原理图、硬件连接、程序流程、系统功能模块)、完成应用系统的开发、撰写课程实践报告、系统验收、组织课程实践答辩。让学生在这一系列工作中综合运用单片机系统原理以及编程语言等相关课程知识,培养学生的综合素质。

根据单片机课程实践和专业课程实践两个实践教学环节各有4~5周但分散的实际情况,考虑将其进行整合。并在实践教学环节中安排相应的指导老师对学生进行必要的指导和帮助,为学生提供分析思路,解决学生项目完成中碰到的实际问题。

2 研究拟达到目标

通过在单片机课程实践中结合高级语言编程思想,使学生在掌握单片机理论基础知识的同时,通过参与项目的分析、设计与实现,建立软件工程理念,具备一定的理论与单片机实物实践相结合、解决实际应用问题的能力。同时在完成项目的过程中,锻炼科研开发能力和科研论文写作能力,为大四的毕业设计和毕业论文的顺利完成奠定基础,并为以后工作中的理论与实践相结合奠定良好的基础。

使学生在单片机课程实践和高级语言程序编程实践相结合的实践教学环节中,利用所学的单片机系统原理和C语言程序设计基础知识设计单片机应用系统,解决单片机系统应用中的实际问题,掌握高级语言编程思想,借助相关编程工具,完成一个小型项目的自主分析、设计与实现。

3 主要研究方法

教师提供部分项目供学生选择,学生亦可自拟项目,但课题的选择要由教师审查核准。项目尽量选择实际需求的题目,让学生走出校园,通过调查走访,了解国内单片机应用发展的状况,开阔眼界,而且在开发一个真实项目的过程中,带来求知的源动力,激发学生自主学习的渴望以及创造力;对于虚拟项目,要求学生做到切合实际需求,能解决一定的应用问题,有一定的应用价值。

编程开发工具原则上推荐学生使用KEIL C,如果学生认为其它开发工具更适合可由学生自主选择。由于实际可用的编程开发工具与日俱增且不断更新,为此在课程实践中,对学生开发工具的选择不做过多限制,使得学生可以选择自己感兴趣的程序设计工具进行项目开发,既锻炼了学生自学的能力,又能让学生成为项目开发的决策者,这种主人翁意识使得学生变被动学习为主动学习,从而激发学生自主学习的积极性。

为了防止学生对课程实践任务敷衍了事,对课程实践的考核方式由原来的提交程序和文档改变为答辩的方式。且在集中教学环节之前就让学生明确单片机课程实践的任务,同时考虑在集中教学环节结束后适当放宽学生上交可运行的项目程序和课程实践报告以及组织答辩的时间,让学生能更好的延续自主学习的积极性并进一步完善项目的开发。

4 特色、创新及推广应用价值

通过将单片机课程实践和高级语言程序设计基础实验相结合,让学生在项目的分析、设计、与实现的过程中掌握单片机理论知识、单片机系统应用的设计方法和高级语言程序编程思想 ,提高自动化专业学生理论与实践相结合的能力,激发学生的学习积极性和主观能动性,提高学生解决实际应用问题的能力。

《单片机原理》课程实践教学,将单片机课程实践和高级语言程序设计实验两个教学环节有机整合,让学生能在该实践教学环节中综合运用单片机系统原理和高级语言程序设计基础以及相关编程思想等多种知识,培养初步的科研能力和科研论文写作能力以及团队合作精神。并通过组织课程实践答辩使学生进行类似毕业答辩的演习。

篇5

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2014)19-4518-03

Java Programs Applied Undergraduate Teaching and Research Group for the Training of Software Engineers

YU Xiao

(Wuhan Technology And Business University Department of Information Engineering, Wuhan 430065, China)

Abstract: In this paper, application-oriented university training Java software engineers in the process of teaching a number of issues, analyzes how demand-oriented enterprise Java software engineers conduct group teaching curriculum design, including accurate positioning training applied talents teaching objectives, optimize Curriculum reconstruction and the accumulation of experience teaching curriculum system, integration and research.

Key words: Application-Oriented; Training of Software Engineers; Java Curriculum Group; Teaching and Research

1 应用型本科Java课程群的教学现状

随着计算机行业的发展进入到互联网时代,由于 Java语言在计算机软件开发尤其是支持网络编程方面的优势,大多数高校计算机科学与技术专业在培养计划中都设置了Java系列课程的培养方案。应用型本科大学作为第三类大学在进行Java系列课程教学改革中确定Java课程群体系的培养目标是非常重要的。因为应用型本科培养的软件类毕业生在就业中将会与研究性大学本科专科毕业生、职业技术专科学院和职业培训机构的学生进行竞争。为了适应软件行业对Java开发人才的需要,高校简单的开设一门Java语言程序设计是远远不够的[1]。现阶段,应用型本科大学的Java课程体系是参考研究性大学本科课程体系的标准而制定的,并没有突出应用性的特点,而学生在编程方面的能力培养远不及职业技术学院、职业培训机构的学生在实践编程能力的培养。

2 面向培养Java软件工程师课程教学的重要性

现阶段计算机应用软件的开发主要采用.Net平台和Java两大平台,这两个平台各有千秋[2]。在计算机类职业培训机构的课程体系中Java系列课程也是热门的课程。Java软件工程师的职位在目前就业市场中属于紧缺职位。面向培养IT企业需要的软件工程师,为企业输送急需对口人才是各大高校在进行Java课程群的教学建设中需要考虑的问题。但是,很多Java课程体系的教学与市场需求存在脱节的情况。另外,Java教学的知识落后于企业正在使用的技术。计算机行业是发展和更新知识非常快的行业,由于高校教师缺乏与企业交流而导致在Java教学过程中不能及时更新到最新的技术,使得学生在毕业时所学的知识过时。

3 面向培养软件工程师的Java课程群教学思路

3.1应用型本科大学在Java课程群教学改革中的优势

应用型本科大学比科研型本科大学在课程设置上允许更为灵活,所以在Java课程群教学中可采用多种培养方式相结合。例如,在实践教学环节可以加强校企合作。Java的实践课程可以由企业的讲师或软件培训机构的人员参与教学过程,在教学内容上,可以比研究性大学更偏重应用。也可以在高年级的实践教学中的有限课时内让学生直接在企业中实习。为实施素质教育,提高学生的专业技能,培养技术应用型人才,需要不断探索以变更落后的教学方法,改革传统的教学模式[3]。

应用型本科大学在教学过程中比职业培训机构更注重综合能力的培养。比如,应用型本科教学不仅教授的是Java语言,除此之外教学课程体系中还会设置有《数据库原理》、《计算机网络工程》、《操作系统原理》和《软件工程》等重要的理论性指导课程,使学生在计算机应用能力上更具全面性,为学生更好的在职业发展中成为软件工程师打好理论基础,而不仅仅只能成为程序员。

3.2 面向培养软件工程师的教学目标

应用型本科Java课程体系教学应将与Java技术紧密相关的多门课程整合起来形成课程群,以强化课程间的关系,理清课程间的衔接,避免课程内容的重复性。设计课程群中实践课程的递进关系。课程群的建设应紧密结合企业的需求,设计面向培养软件工程师所需的能力项目的定向案例或课题。进行Java课程群教学培养的目标应是面向企业需求的以应用型为主的强化实践编程能力的软件工程师。

3.3 Java课程群体系

根据现有Java技术相关的教学课程选择五门课程组成Java课程群,分别是Java语言程序设计、Java语言程序设计课程设计、Java Web程序设计、Java Web程序设计课程设计、Java技术毕业设计。课程群中前一门课程是后一门课程的基础,课程的难度是递进的由浅入深的介绍Java技术的应用。每门课程都有不同的教学培养的侧重点,如下表所示。

表1 Java课程群的培养与考核

[课程名\&能力培养侧重点说明\&考核方式\&Java语言程序设计\&Java语言基础、面向对象程序设计、图形用户界面编程、文件编程\&理论笔试与实践课程综合评分\&Java语言程序设计课程设计\&三个方向的综合应用程序开发:图形用户界面与文件流结合编程;图形用户界面与网络通信结合编程;图形用户界面与数据库结合编程\&答辩与课程设计论文综合评分\&Java Web程序设计\&JSP技术基础、JDBC、JSP进行动态网站开发\&理论笔试与实践课程综合评分\&Java Web程序设计课程设计\&使用JDBC数据库连接技术进行JSP动态网站开发的综合应用\&答辩与课程设计论文综合评分\&Java技术毕业设计\&使用EJB应用开发、Java API的使用及服务的应用进行小型实际应用项目的开发\&毕业设计答辩与毕业设计论文综合评分\&]

课程群的每门课程都分为理论教学环节、实践教学环节和考核环节组成。每门课程的评分标准根据课程的特点而定。程序设计课程以理论考试与实践课程的程序完成情况进行综合评分,课程设计课程以系统运行演示与答辩结合课程设计论文的综合评分,毕业设计环节需要通过本科毕业设计答辩和本科毕业论文的考核综合评分。

4 面向培养软件工程师Java课程群的教学研究

4.1 面向培养软件工程师Java课程群教学方法的研究

在应用型本科大学教学多年Java课程群的课程以后,根据教学实际情况在教学方法方面进行了归纳总结。在Java课程群教学中应以学生在学习该课程的实际情况为出发点,一方面强化面向对象编程思想,因为面向对象是软件工程的基础,为后续用Java工具进行软件工程与产品设计打基础;另外一方面应突出Java与C++的不同点和各种工具包,主要以图形用户界面与事件作为重难点。具体来说,课堂教学方法上尽量深入浅出而突出重难点,因为一般来说,开设《Java程序设计》课程是在大学本科已经开设了至少两门语言课程《C语言程序设计》、《C++语言程序设计》之后的高年级专业课,一部分内容希望学生在老师的引导下培养自学能力或在后续课程《软件工程》与《Java Web程序设计》课程中逐步强化细节。

4.2面向培养软件工程师Java课程群教学方式的研究

教师在本校应用型本科大学教学过程中与学生进行了多次交流,得到了学生宝贵的反馈,结合教师在不断教学探索与实验教学过程中的体会与思考,对进行培养面向软件工程师的Java课程群教学方式改革进行了总结,得到以下五个方面的改进措施。

1) 实践教学与课堂教学整合

学生反映理论教学在教室学习效率不高,建议安排在实验机房进行教学,理论教学后及时进行上机操作能更好的巩固知识,实现理论与实践的同步教学。课堂教学中的每个知识点在理论教学后布置上机的小实例作业,学生通过完成小实例作业就能很好的检测该知识点的掌握情况,将实践教学与课堂理论教学整合。整个教学全程安排在实验机房完成。

2) 分步式案例教学

Java课程群中的课程的每门课程开始列出该门课程的重要知识点。在教学过程中以一个综合应用案例为线索,涵盖该门课程大部分最重要的知识点应用。将这个综合案例分解成若干部分,整个教学过程中在不同的重要章节中逐步分别讲解案例的某个部分。最后,将分步骤讲解的案例部分组合在一起,完成整个案例的拼接运行与演示。这种分步式案例教学让学生对该门课程有一个完整的知识体系。分步式案例教学在培养学生综合应用能力方面取得了很好的效果,使学生从应用角度对该门课程每章的内在联系有了一个总体的了解。

3) 学生演讲与教师指导相结合

一般来说,学生在学习Java课程群的课程时已经具有了一定程序设计语言的基础,学生在现有的C语言或C++语言学习的基础上进行多种编程语言的对比,能更好更快的掌握Java课程群的新知识。关于Java语言基础和JSP语言基础部分,例如变量与常量、表达式与运算符等知识点,可以让学生进行课下自学,并在上课过程中由学生进行演讲,对比现已学过的语言,分析Java语言或JSP语言的不同点和相同点。教师在学生讲课中及时进行补充或更正学生知识点的讲解。学生演讲与教师指导相结合的方式适用于Java课程群中程序设计语言基础部分。这种教学方式在一方面锻炼了学生的表达能力,在另一方面让学生巩固了以往的知识点并学习了新的知识点。在一定程度上调动了学生的学习积极性和促使学生更加参与课程教学,增加教与学的互动。

4) 分组答辩式教学

学生的课程设计或教学演讲都可以采用分组的方式,例如一个班级30人,一般将该班级分为6个组,每组5人。因为企业大型项目开发都是以团队的方式进行的。在应用型本科Java课程群的课程设计类课程中以团队方式进行答辩,每组团队得到相同的分数等级。使学生更具有团队合作意识,增进团队合作能力进行编程,使学生在企业中作为软件工程师能更快适应软件开发团队。

5) 案例式扩展教学在实践教学过程中的应用

Java课程群中实践课程教学可以采用一个应用实例贯穿到每个实践环节。从课内小案例的添加功能就可以完成该门课程的大案例,再在这个大案例的基础上进行优化完善可以完成综合课程设计,然后添加高级应用功能可以达到毕业设计的要求。使实践课程体系中的所有课程共同使用一个应用实例使这些多门实践课程具有内在的连续性,又可以很好的扩展性,使一个应用实例不断进行加强与优化。

参考文献:

篇6

1 CDIO工程教育模式

CDIO工程教育理念中C代表构思(Conceive)、D代表设计(Design)、I代表执行(Implement)、O代表运作(Operate)。CDIO表述一种工程教育模式,从产品研发到产品运行的过程中,让学生把理论知识和实践动手两者有效衔接在一起。其中构思,以工程实践为目的,首先让学生掌握基础专业知识,用以确定以后的发展方向;设计,以解决某一具体的问题为目的,通过产品设计、规划、研发,然后得以实现;执行,该环节实施一体化的课程实践教学,主要考验学生应用掌握的理论知识来进行实践操作;运作,学生必须了解产品应用的各个环节,同时能为市场提供服务[1-3]。CDIO工程教育理念,注重培养学生基础知识学习能力、个人能力、团队协作能力、工程系统能力。

2 电子工程系《C语言程序设计》往届教学情况

我系电子信息、电气、机械专业,《C语言程序设计》在大一上学期开展,集中在教室进行理论教育。我院为培养学生良好的学习习惯,对于大一新生不允许带电脑到学校,杜绝沉迷游戏荒废基础课学习的情况。但是,造成学生无法在课后练习C语言编码,区分各种语法的差别,验证代码正确性,C语言学习效果不理想。进入大二学习《单片机》课程时,由于先修课程基础不牢固,用C语言进行编程困难。先修课程没有为后续课程起到很好的辅助作用。通过对往届学生的调查,学生反映了《C语言程序设计》教学的问题。教学过程中过于注重语法细节,强调语法知识,为配合知识点的讲解,引入的案例都是以辅助讲解语法规则为目的,学生学习起来既觉得抽象又觉得无法引起兴趣。学生觉得难以接受,学习缺乏动力,导致课堂气氛沉闷,学生缺少学习兴趣,造成学习效果不理想,更不可能真正理解程序设计的精华所在。《C语言程序设计》课程沿用传统的教学模式,易疏忽于对学生程序设计能力、程序代码编写能力以及团队共同合作能力的培养。如果不注重积累工程经验,学生不具备工程能力与动手能力,造成所学与实际所需相脱节。《C语言程序设计》改革当务之急是如何借鉴先进的教育理念和方法,改变师生之间角色,让学生成为课堂的主角,教师成为课堂的观众,从而激发学生主动学习积极性。

3 基于CDIO的《C语言程序设计》课程教学改革

3.1 调整课程设置,注重培养学生动手能力

根据CDIO工程教学理念,以培养学生动手能力、团队协作能力、工程能力为目的。在大一上学期和下学期分别开设C语言程序设计和C程序实训课程。《C语言程序设计》课程教学中注重“抓大放小”。“放小”,不拘泥于语法要素的细枝末节,避免学生在学习时容易产生厌学;“抓大”,侧重循环、数组、指针、自定义函数等知识点的讲解,让学生掌握并熟练应用这些知识点。对于非计算机专业学生,在算法上不做过高要求,只要求会灵活应用现成算法解决问题。因此在教学过程中注重基础知识的讲授,通过引入具有代表性的案例,让学生仿照这些案例的思想来解决类似的问题,让学生从学习过程中获得成就感,激发学生的学习兴趣。后续的C程序实训课程,通过单项目实训和综合项目实训的方式,加强学生动手编制较大规模程序的能力。培养学生团队合作意识,训练学生工程动手能力,积累工程经验和编程经验,奠定坚实的基础,无论是后续的专业课程学习还是将来的工作,学生都将显现较好的分析问题和解决问题的能力。

3.2 结合多种教学方法,提高教学质量

3.2.1 “做中学”

“做中学”是CDIO的核心思想之一,该思想的主要目的是激发大家的学习兴趣。为较好获得“做中学”的效果,把学生学习地点从教室转换到实验室机房,让学生边学习边实践。在《C语言程序设计》教学中使用课堂案例和实验案例,二者功能不同。课堂案例主要用于教师课堂讲授,让学生模仿编程进行验证;实验案例主要用于小项目编程调试。实验案例是让学生独立编写程序、调试程序,并叙述编程思路。程序设计的结果有助于增强学生的成就感,激发学生程序设计的热情。

3.2.2 开展项目教学,培养学生团队协作能力

CDIO另一个核心思想是“基于项目的教学”。“项目教学法”,主要通过实现一个完整的项目,让学生明白,项目任务如何分配,如何协作完成,明白个人力量和团队的力量。这一教学活动目的是把理论知识学习与实践动手教学有效结合在一起,最大程度挖掘学生的创造能力,让具备学生分析并解决实际问题的能力。在C语言程序设计和C程序综合实训课程的教学过程中实施“项目教学”的理念,我们把项目教学分为小项目教学和综合项目教学。在C语言程序设计教学中实施小项目教学。所谓小项目教学就是教师把一个具体的管理系统拆分为几个模块,让学生针对这些模块展开讨论和设计,然后整合这些功能模块,最后老师按照完成情况给予学生。通过小项目将教学,让学生懂得如何编写和调试程序。在C程序综合设计教学中实施综合项目教学。在综合项目教学中,老师提供若干个项目题目以供小组选择。学生由2-3人组成一个项目小组,各自明确分工,小组完成程序设计、代码编写、代码调试、归纳形成小论文和制作PPT参加答辩,最后由老师根据各个环节完成情况给出成绩。通过小项目教学和综合项目教学,不仅培养了学生动手实践调试能力,而且逐步培养学生项目设计与实现能力,项目结题时的表述、演示能力。希望通过这种学习方式,使学生有更多的主动学习的机会。

3.2.3 借助网络学堂,培养自主学习

利用学院网络学堂平台,教学案例,便于学生在课堂验证程序,掌握语法知识;同时,每节课学生往网络学堂上传课堂练习程序,便于老师督促学生在课堂认真学习。由于课堂时间有限,另外在网络学堂布置实验案例,让学生在课后完成,并提交到网络学堂便于老师检查。把学生编写得较好的程序,公布在网络学堂,不仅是对学习较好同学的肯定,更是对其他同学的激励,激发他们学习《C语言程序设计》的信心和决心。借助网络学堂的讨论区,老师和学生、学生和学生可以在网上开展问题讨论,学习不再局限于有限的课堂时间。

4 结束语

CDIO教育模式是理论联系实际,激发学生创造能力,培养学生用发散型思维来思考问题并且解决问题,是一种卓有成效的教学方法。我们在《C语言程序设计》理论教学和程序综合实训中引入CDIO教学思想,通过案例和项目教学,让学生在“做中学,学中做”;通过项目教学,整个教学充满挑战,进一步提强学生的学习主动性,培养学生解决实际问题的能力,具有了一定程度的项目开发、调试能力。

【参考文献】

篇7

中图分类号:TP311.1 文献标识码:B

文章编号:1671-489X(2017)06-0084-03

1 引言

C语言程序设计是理工科专业(如电子信息与科学、通信工程、物联网技术和应用数学等)的基础课程,嵌入式系统中的单片机与DSP程序设计,采用C语言编写应用程序比汇编语言可读性更强,且更易于维护[1]。该课程的学习目标是不仅要使学生学习程序设计的基本概念和基础方法,学习编程规则,还要培养学生的计算思维能力、理论与实践相结合的解决专业领域问题的应用能力,提高专业化教育过程中的创新培养层次。

然而绝大多数学生在刚开始接触C语言程序设计这门n时,对计算机语言、算法和数据结构知之甚少,更不具备抽象建模、程序设计技巧的相应知识[2]。加上这是第一门程序设计课,大量的新概念、新名词让学生感觉应接不暇,在刚刚接触编写程序时毫无头绪,只能仿照现成的例子照猫画虎,进行浅层次的验证性实验,根本掌握不到程序设计的精髓,更达不到计算思维能力的培养,以致该门课程教学质量普遍不高。

为了解决这些问题,笔者在长期教学实践中总结教学经验、探索教学方法,提出“基于专业内容,以解决本专业问题为导向,以计算机围绕专业问题服务为原则,促进学生个体发展,增强学生创新意识,产生创新能力”的教学思想。针对C语言程序设计课程特点,从教学理念、考核形式、教学方法、课程内容等方面做了大胆的改革与创新,采取多种教学方法和教学手段相结合,提高学生学习兴趣,取得良好的教学效果。

2 精心设计以解决本专业问题为导向的教学案例

在以往的教学活动中,大部分学生的基础知识虽然掌握得不错,但在灵活解决实际问题方面,还是有不小距离的。他们虽然心中有一些解决问题的模糊思路,但不会将想法转换成程序,甚至还有一些学生直到最后也不会把实际问题变换成算法设计。针对上述问题,课程组教师在教学内容的安排上注重在C语言教学中紧密结合本专业特点,本着“精讲多练,重实用,重算法”的原则,结合专业方向对C语言程序设计课程教学内容的差异化要求,确定分专业分层次的教学内容,制度详细的教学任务,选择各专业的经典问题作为课堂教学案例。以专业知识为基础,以解决专业问题为目标,采取任务驱动、因材施教的方式,创建多元化的教学体系,能够激发学生的学习兴趣。

将单纯的C语言程序设计教学与专业领域应用相结合,把计算机程序设计作为解决专业问题的工具,有利于学生了解C语言程序设计作为“专业工具”的作用,便于学生对C语言精髓的掌握,能够培养学生的计算思维能力、逻辑思维能力和逻辑推理能力,以及利用计算机解决本专业问题的能力,提高学生学习本课程的主动性、积极性,促进学生个体充分自由地发展,培养学生的应用能力和创新能力。

3 项目递进驱动教学法

在实验教学过程中,制定各专业领域相关实训项目,以由易到难、循序渐进为主线,采取多层次的项目拓展训练、递进式的螺旋式教学方法,让学生整体提高程序设计能力。整个教学设计分为三个阶段。

编程基础准备阶段 本阶段的教学内容主要是以本专业的经典问题作为课堂教学案例,引出本课程单元基础知识。在这一部分教学中通过教师对教学案例的讲解,学生通过实训项目的上机操作,会出现输入、编写等问题,通过解决实训时出现的问题加强对语法、编程规则的掌握。本着“精讲多练,重实用,重算法”的原则,用大量典型案例进行实训,起到拓展学生编程思维的作用。如在为数学专业设计程序三大基本结构项目时,本阶段的教学案例分别为分支结构为分段函数的计算、循环结构为求1到10之间的自然数的和。

项目拓展阶段 通过基础阶段的训练,学生已经初步对程序设计有感性认识,并有一定的计算思维基础,本阶段的任务设计上以第一阶段的任务为基础,将与此相近、相关的案例进行总结,主要是通过实训项目的形式来巩固基础阶段的训练成果,养成良好的编程习惯。如在为教学数学专业设计程序的三大基本结构项目时,本阶段让学生完成的项目有:求1到100之间自然数的和、判断某数是否为素数、求1到100之间的素数、打印杨辉三角形、输出各种形式的九九乘法表等。实训题目按类别设计,同类的实训项目一般设计多个,每个题目又根据难易程度设置不同的分值(方便后期的多元立体化评价),学生可根据自己对知识掌握的情况和自己的兴趣爱好选择一部分题目来练习。但不管是容易的题目还是难度较大的题目,都必须严格按照要求提交相关文档以及编写的程序代码。

项目递进阶段 本阶段让学生自由组合成3~5人的互助式小组,以大作业的方式对整个学习阶段的效果进行巩固,同时进行测试和验收。由于任务量比较大,所以该阶段主要在课下完成。在本阶段中,教改组成员在对不同专业做了详细调研的基础上,精心设计若干个与大学生各类竞赛紧密结合的、贯穿整个教学过程的大项目作为本阶段的任务。教改组成员为数学专业学生设计的课程大项目是学生成绩管理、分析系统,该系统用到大量的数学分析函数来实现对学生成绩的统计分析,要求学生尽量自己编写这些数学分析函数,然后和系统提供的函数做出比较。为电子信息科学与技术专业学生设计的课程大项目是汽车导航系统,该系统用到硬件之间的通信和C语言基础编程,让学生看到原来C语言还可以做出如此高级的产品。这一阶段主要以学生自主完成作业、教师负责答疑的形式进行,教师对学生提出的问题并不直接给出答案,仅仅给予学生一定的指引,引导学生通过各种途径查找资料,促使学生自觉利用互联网、校园网、图书馆、BBS教学网站系统来辅助本课程的学习,帮助学生学会文献检索的技能,为学生在以后的学习和工作中保持继续学习打下坚实的基础。在这一阶段中,要求学生必须提供完整的项目文档并完成教师组织的简单答辩。

以上三个阶段中,除第一阶段由任课教师为学生写出项目文档大纲、学生进行补充完善外,其他两个阶段学生都要独立撰写项目文档。在第二、三阶段中,教师将学生分成若干小组,每个人作为小组的成员,都有分工,每个小组选出一名小组长负责整个小组内部以及小组之间的协调和管理工作,小组和小组之间以竞赛的形式完成各个实训题目并相互评价。教师H仅起到“导师”的作用,帮助学生打开解题思路,及时引导学生总结归纳编程技巧和语法知识,为学生提供技术支持。通过小组学生之间的讨论和协作,提高他们学习C语言的主动性,同时也锻炼了学生的团队协作能力[3]。最终要求学生以小组为单位提交相关文档以及编写的程序代码来检验本阶段的教学效果,避免了以前个别学生抄袭别人报告的现象。

4 制定合理的过程监控机制,有效记录学生的学习过程

积极探索有效记录学生学习过程的监控机制,以上每个阶段结束,任课教师都会及时对学生项目中的亮点和不足进行分别讲解,并认真对学生的每个项目进行批注,以便学生进行改进。同时为每次作业划分等级,让学生明确自己本次学习所处的层次,让学生既有学习的兴趣,又有学习的压力和动力。期末考核方式参考平时作业成绩,采取“笔试+实验考核+开放式作业+课程论文”的形式进行过程考核,积极探索C语言程序设计课程的“嵌入式”考核方式。

5 以解决本专业问题为导向的教学法的教学效果

基于专业内容的案例教学,培养了学生的学习兴趣 以“加强基础、拓宽专业、注重实践”为原则,以案例教学、任务驱动、螺旋式上升模型等多元化的教学体系引导学生学习,把计算机程序设计作为解决本专业知识的工具,以本专业经典问题为导向的课堂教学案例,促进学生对专业知识的加深理解,使学生体会到C语言程序设计课程在专业学习中的地位,培养学生的计算思维能力、逻辑思维能力和逻辑推理能力,以及利用计算机解决本专业问题的能力,提高学生学习本课程的主动性、积极性,促进学生个体充分自由地发展,培养学生的创新能力。

螺旋式上升的项目任务,激发了学生的求知欲 项目递进驱动的教学法,通过一个比较实际的切入点,特别是再通过附加一些微视频,微视频中教师一步步的详细演示使学生感觉能够入手,解决了学生学习程序设计课程的恐惧心理,然后再将此实例不断修改、扩充,加大难度,引出与此实例相关的一组例子。在这样的案例教学中,因为有提出问题、解决问题、扩展问题、再解决问题、对解决问题的方法进行评价、优化设计等几个环节,实际上是一个循序渐进、螺旋式滚动上升的过程[4]。

在案例教学过程中,学生和教师相互提出问题、共同解决问题、深化和扩展问题、再提升解决问题、并对问题解决方法进行评价,这就是一个不断渐进、提升的过程,在这个螺旋式上升的过程中,能够非常自然地调动学生的参与。通过不断扩展一个问题的多种解决方案并对多种方案进行对比,有效开阔学生的思维,强调学生的学习主体地位。这种层层推进的教学方法避免了学生“三级跳”式学习,而有了“走台阶”的扎实基础,使学生在解决实际问题的过程中完成学习任务,实现计算思维能力培养与专业实际应用的无缝融合,激发学生的求知欲,增强学生的自信心。

立体化的过程监控机制,克服了学生临时抱佛脚的学习劣习 “笔试+实验考核+开放式作业+课程论文”的“嵌入式”过程考核机制,使得学生重视学习过程,避免考试前临时抱佛脚的学习劣习。这种监控机制和“课堂教学实验教学创新实践”理论与实践相结合、相辅相成、相互促进的螺旋式上升模型新教学手段,更符合各专业的教学需求。

6 结语

综上所述,从专业内容出发,以解决专业实际问题为导向的C语言教学方法是以建构主义学习理论为指导,通过选取专业领域的经典问题,以协作学习的方式开展学习,通过完成最终的工程项目来达到意义建构。它突破了一般的教学模式,通过解决学生本专业的经典问题来实现学生对C语言程序设计知识的掌握,学生通过螺旋式上升的递进教学法的学习,计算思维能力、解决专业领域实际问题的能力有了极大提高,大大提高了学习本课程的积极性和主动性。本文的教学理念和教学方法不但对非计算机专业学生的C语言课程教学效果比较好,对计算机专业学生的C语言教学也是很好的借鉴。特别是针对目前学生学业水平差异大、自主学习能力差的现状,加上本课程应用性强的特点,本文的教学方法有其卓越的表现。

参考文献

[1]马玉春,汪文彬,王冬,苏静.面向工程技术的C语言程序设计教学实践研究[J].琼州学院学报,2011,18(5):64-68.

篇8

一、C语言程序设计教学工作的重要性

C语言是一门长盛不衰的程序设计语言,深受广大软件爱好者的喜爱。它功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,而且有着比较丰富的数据类型、运算符以及函数供以选用,又直接与内存打交道,使修改、编辑其他程序与文档变得轻松、简单,因此而广受业内人士的青睐。在中等职业学校,C语言程序设计作为一门高级语言程序设计课程,是各理工科专业的公共基础必修课。所以,开展好C语言程序设计的教学工作具有非常重要的理论意义和现实意义。

作为中职学校的C语言程序设计教师,我认为要想让学生学好这门课程,不仅要通过认真讲解课本知识让他们掌握教材内容,更重要的是通过上机实践增强和巩固他们的知识,达到活学活用的教学目标。要让学生在理论学习和基础实验的基础上,提高他们的实际操作能力,培养他们综合运用理论知识来分析和解决实际问题的能力、严谨的科学态度和良好的程序设计习惯,最终实现由知识向智能的初步转化。在课堂教学中,要把注重教师的教转向注重学生的学,要让学生充分参与、充分体验、充分感受C语言程序设计,通过自主合作探究和动手动脑实践操作熟练掌握编程技巧,将课本上的理论知识与动手实践有机地结合起来,既锻炼他们分析解决实际问题的能力,又提高他们适应实际、实践编程的能力。这是在传统教学中难以实现的,因此突破传统教学的禁锢和束缚,全面深化课堂教学改革,发挥现代课堂的生机与活力,激发学生的学习热情和求知欲望已经成为当代教师义不容辞而且迫在眉睫的重任。

二、推进C语言程序设计课堂教学改革的紧迫性

本人任教的重庆工商学校创建于1987年7月,1996年被认定为首批国家级重点中等职业学校,2002年被确定为中国――澳大利亚职教合作项目五所项目学校之一,先后获得全国职业教育先进单位、全国成人教育先进单位、全国中等职业学校德育工作先进集体等荣誉称号。经过27年的办学实践探索,我校已成为目前中国西部地区规模最大、综合办学实力最强的中等职业学校之一。但是,我校的C语言程序设计教学工作还存在一些亟待解决的问题,迫切需要我们一线教师更新观念、大胆创新,积极推进这门课程的课堂教学改革,点燃学生的学习热情,提升课堂教学实效。

从教师的角度来说,由于C语言程序设计是各理工科专业的公共基础必修课。因此涉及这门学科的专业较多,由于不同的专业根据实际情况制定了不同的人才培养方案,导致各专业在C语言程序设计课程上设置的学时数、考试性质等不尽相同,教学大纲也会根据人才培养方案中对该课程的不同安排再进行修订,这就为我们一线教师增加了教学工作需要不断变换的难度。为此,我们教师应该坚持学习,努力提高自身的教育教学理论水平,把不同专业的不同学时合理地分配到顺序、选择、循环三大基本结构和数组、指针、函数等教学内容当中去,并通过大胆尝试和积极摸索,全面推进课堂教学改革,培养学生对C语言程序设计的兴趣,激发他们的学习实践热情,提升课堂教学实效,让学生通过这门课程的学习切实掌握技能,全面增强能力。

从学生的角度来说,C语言程序设计课程既不算是文科,也不算是理科,因为文科就算一个论文再长,写100张纸也总有写完的时候;理科的数学题再难,只要套上了公式就能得出答案,1就是1,变成2就错了。但是计算机语言并不是这样,如果要写一个程序,你可能2天就做出来了,也有可能两个月都做不成。再加上这门课程概念繁杂、知识点多、内容枯燥、难度较大且实用性不强,很容易让学生产生畏难情绪和厌学情绪。而且由于教材对知识的介绍是分散的、循序渐进的,学生在学习过程中接触到的例题也大都比较简单,仅为说明某种特定算法而已。与之相反,我们在实际工作中将面临的问题会复杂得多。另外,C语言提供了大量实用函数和扩展功能,这些往往是学习过程中无法涵盖的。因此经常会出现这种情况:学生把课本上的知识掌握得滚瓜烂熟,但拿到一个设计却无从下手,这也会严重削弱学生的积极性。针对这种情况,唯有教师改革课堂教学手段,把理论与实践结合,把知识与能力并重,才能真正提升课堂教学实效,达成这门课程的教学目标。

三、C语言程序设计课堂教学改革的具体举措

1、改变“满堂灌”的教学方式,把注重教师的教转向注重学生的学

课堂上,我们要一改往日“满堂灌”的授课方式,通过提出问题,引导学生分析问题,让他们自己去找寻解决问题的方法;然后再给出源代码,分析源代码,引出新知识点,对知识点进行讲解;最终留给学生一个设计任务,让他们自主合作探究,通过小组讨论、齐心协力共同完成任务,达到巩固知识点的目的。这样的授课方式与“满堂灌”相比,更为形象直观,而且学生可以主动参与到问题的分析与讨论中来,把注重教师的教转向了注重学生的学,更有利于集中学生的注意力,更有利于发挥学生的主观能动性,课堂效率也就自然而然提高了。

2、把理论与实践结合,把知识与能力并重

篇9

摘要:计算机基础课程在信息技术飞速发展的今天,更需要在网络这个开放的环境中,为学生提供在线开放课程并共享课程资源。文章以清华大学计算机基础课程为例,提出课程开放与共享的几个方面,包括教学理念共享、教学设计共享、教学资源共享、实施方案共享和学习机会共享,讨论教学资源开发中的指导思想问题、需求分析问题、标准化问题和知识产权问题。

关键词:教学资源;开放课程;在线学习;资源共享;基础课

随着信息技术的快速发展,人们的学习方式也在发生着变化。信息技术不仅可以令学习不受时间与空间的限制,而且使得教师和学生可以通过网络实现教学过程,令没有机会进入校园的学习者可以在网络这个更广阔的范围内学习自己需要的知识。在这种形势下,计算机基础课程如何利用网络开放的环境为学生提供他们需要的在线学习资源,是一个值得思考的问题。

1 开放共享课程的现状与思考

大量开放共享课程正在不断涌现,主要由课程作者或教育机构开放课程或在线学习课程。开放课程的受益者主要是学习者,也就是要向学习者开放学习机会,但这并不够,共享问题并没有得到很好的解决。目前强调得比较多的教学资源共享,实际上只是教学资源公开。公开不等于共享,如果公开的仅仅是教学资源,那么这些资源将很难使用,原因在于教师不知道这些资源是根据什么样的教学理念设计和开发、需满足怎样的教学设计目标以及应如何利用这些资源实施教学过程。

目前,国家精品资源共享课程是一个有效的机制,但是仅有平台和形式还不够,教师和教育机构还需要从理念上认识到共享的意义,从机制上保障和促进共享,真正愿意共享课程。同时,开放共享的资源需要标准化,这样便于资源在不同的平台间共享。另外,开放共享还需要有完善的知识产权保护机制。

2 课程开放与共享

2.1 教学理念共享

教学理念共享是课程开放共享的基础与前提。教学理念就是人们对教学和学习活动内在规律的认识的集中体现,同时也是人们对教学活动的看法和持有的基本态度和观念,是人们从事教学活动的信念。教师对一门具体课程的教学理念,是其对教学目标、教学内容、授课对象、教学模式等的理解。教学理念是指导教学设计、课程建设、教学活动实施的指导思想和总纲。

教学理念共享的内容至少应该包括课程目标、课程建设与实施的指导思想。例如,清华大学计算机公共系列课程的目标是培养能够运用计算机科学理论与技术从事其他专业研究的跨学科人才;课程体系设计理念是宽口径、厚基础、强实践、重创新。其中,程序设计公共课目标是培养学生运用计算机程序设计技术从事本专业科学研究与工程开发的能力。课程建设与实施的指导思想是以理论为基础、以能力为目标、以技术为手段,鼓励多样化人才发展,提倡教师引导下的学生自主学习,鼓励协作学习和共同知识构建,加强实践环节和增强实践能力,引导和鼓励创新。我们的课程设计与实施和课程资源建设正是在这样的教学理念指导下进行的。

2.2 教学设计共享

教学设计包括教学内容的选择、讲授的线索和逻辑。所有教学环节的设计不仅包括教学活动和考核方式的设计、教学活动中涉及的资源,还包括多种教学模式和教学环境设计。同一个教学活动可以针对学习者的不同需求在不同环境下实施,如听课环节让学习者既可以在实际课堂上听课,又可以在线听课。

教学设计要根据不同的教学目标,为教学活动设计不同的资源与环境,如掌握知识和理解理论需要多种形式的课程内容(录像、讲稿、文字教材等),学会技术和掌握技能需要例题、案例演示、习题、实验环境等,进行设计、创意/创新需要协作学习环境和设计开发环境等。只有共享教学设计,使用者才能明确知道每种资源分别应用于什么目的和哪一个教学环节。例如,C++语言程序设计的教学设计主要包括以下内容。

(1)课程内容以面向对象的思想为主线,介绍程序设计基础知识、类与对象的基本概念、继承与多态、输入输出流、常用数据结构基础知识,此外还简单介绍泛型程序设计。

(2)教学模式是多种模式相结合,给学生自由选择学习方式和考核方式的空间,真正实现以学生为中心的自主式学习。

(3)学习模式包括常规教学模式和网络教学模式。常规教学模式包括大课、实验辅导和答疑;网络教学模式包括网上自学在线课程、在线讨论、在线提交作业和评分。

(4)考核模式包括常规卷面考试、自选题目的论文(包括答辩)和自选题目的项目训练(包括答辩)。

2.3 教学资源共享

教学资源共享是落实教学理念和教学设计共享,一般来讲,教学资源包括教材、教学录像、讲稿、题库、实验/案例等。例如,C++语言程序设计课程的教学资源包括以下几个方面。

(1)教材有《C++语言程序设计(第4版)》《C++语言程序设计案例教程》《C++语言程序设计(第4版)学生用书》《C++基础教程学生用书》《面向对象程序设计经典实验案例集》(包括87个实验项目,数百个题目)等。

(2)教师用书《C++语言程序设计(第3版)教师用书》。

(3)多媒体课件包括《C++语言程序设计(第4版)》讲课录像、《C++语言程序设计(第3版)》配音课件、《C++语言程序设计(第3版)》视频课件、《C++语言程序设计(第3版)》讲课录音。

(4)案例学习系统。

(5)教学网站包括清华大学网络学堂(主要面向校内学生)、开放学习社区(http:∥)、清华大学出版社“智学苑”()等。

2.4 实施方案共享

实施方案是指课程所有教学环节的具体实施方案,包括学时、具体教学和考核方式。只有共享实施方案,才能使得其他的共享落到实处。实施方案的共享途径包括教师互访和听课、以文字形式共享教案、在线呈现教学过程。C++语言程序设计课程实施方案主要包括以下内容。

(1)大课:2学时/周。以应用引导,以实际开发环境进行讲解。

(2)课外辅导。其中,教师补充例题讲解:1学时/周;学生分组讨论:2学时/学期·人。

(3)作业批改模式为考试系统自动批改加助教批改。

(4)案例学习内容包括学习《C++语言程序设计案例教程》或通过在线案例学习系统学习。

(5)基础实验课:2学时/周。助教辅导并当堂验收。

(6)项目训练,包括选题与需求分析报告、系统设计、程序实现、用户手册测试报告、总结报告、答辩。

2.5 学习机会共享

学习机会共享是为学习者提供开放公平的学习机会,使得没有机会进入校园的学习者能够享有同样的学习机会,以实现人人拥有公平的学习机会。具体方式可以是将课程在线开放、提供录像及学习资源下载、提供在线学习指导和答疑、针对学习者的特点提供尽量真实的课堂教学体验或者适合在线学习的网络课程。要实现学习机会共享,仅有上述开放方式还不够,还需要解决面向社会服务的运营模式问题,才能真正为学习者提供合适的服务。

3 教学资源开发

3.1 指导思想问题

开发共享的教学资源,首先要从指导思想上具有共享的诚意与服务的意愿。无诚意的共享往往是因为某种课程建设和教材建设项目的要求而提供一部分教学资源,但是不提供最关键的资源,使得教师无法充分利用共享资源。其实,很多开放课程旨在开放却无意共享,因此只向学习者开放,并不提供给其他教师使用。诚意共享就应无保留地完全共享教学理念、教学设计、课程资源、实施方案、学习机会,并且要本着为教师和学生服务的指导思想认真分析需求,以需求为导向开发共享资源。

3.2 需求分析问题

任何一个项目在开发之前都要进行需求分析,而开发教学资源则往往会忽略需求分析。需求分析包括以下两个方面。

(1)适用对象分析。面向全日制学习者的主要教学环节是以面授为主,包括大课、面对面答疑、习题课、实验课等。亲临现场聆听教师的观点、对知识的诠释、对理论的演绎,其效果远远优于看录像。由于全日制学生的主要任务是学习,因此他们可以利用完整的时间段进行系统性学习。网络学习环境是对面授的补充和对课外学习的支持,因此主要包括资源、答疑、讨论、练习和扩展学习。业余学习者以及在师资缺乏的学校和地区学习的学生,则需要使用网络教学获得优质的学习资源和方便的学习环境。

(2)学习过程需求分析。典型的学习过程主要包括新知识和理论学习、思考质疑和交流讨论、实践练习、尝试创新。网络学习系统应该为学习过程各个环节提供支持。

理论课程学习需要的资源包括多种形式的课程内容(录像、讲稿、文字教材等)、拓展阅读资料、例题/案例演示、习题;实践课程需要的资源包括实验指导和实验演示、虚拟实验素材/构件库、交互式虚拟实验、测试题等。

3.8 标准化问题

标准化是资源共享的基本技术保障。标准化有利于优质资源复用、有效管理和高效检索,因此能够促进共享;有利于管理信息互联互通,实现全局有效管理、异地学习、终身学习,促进教育公平;有利于优秀教学系统软件共享,能够缩短系统开发周期、降低开发成本、实现共建共享。

标准化指的是按照标准的格式描述教学资源的属性。标准化与个性化不矛盾,通过属性的描述可以更准确地描述资源的特征。标准化有助于保护知识产权,标准属性中具有与知识产权相关的属性。目前,我国已教育信息化相关的7项国家标准和7项教育行业标准,待12项国家标准和6项教育行业标准,正在研制23项国家标准和4项行业标准。国际标准化组织ISO/IEC JTCI有一个分技术委员会SC3,专门从事学习、教育、培训领域信息技术标准的制订。

我国已的教育信息化国家标准如下:

·GB/T 21364-2008信息技术学习、教育和培训基于规则的XML绑定技术

·GB/T 21365-2008信息技术学习、教育和培训学习对象元数据

·GB/T 21366-2008信息技术学习、教育和培训参与者标识符

·GB/T 26222-2010信息技术学习、教育和培训内容包装

·GB/T 5271.36-2012信息技术词汇第36部分:学习、教育和培训

·GB/T 28824-2012信息技术学习、教育和培训学习对象分类代码

·GB/T 28825-2012信息技术学习、教育和培训数字权利描述语言

·GB/T 28823-2012信息技术学习、教育和培训平台与媒体分类代码XML绑定规范

3.4 知识产权问题

篇10

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2015)30-0104-03

《C语言程序设计》是针对我校理工类专业大一新生所开设的一门重要的专业基础课程,该课程是目前高校最流行和实用的一种计算机高级程序设计语言,是进行程序设计教学和计算机软件开发的主要工具之一,也是理工类专业学生学习其他相关专业课程的一座重要桥梁,因此,该门课程一直是高校所开设的高级语言课程之一。

1 现状分析

笔者通过问卷调查的方式,了解目前我校教师在《C语言程序设计》这门课程教学方面的现状及学生的学习情况,分析,总结了师生普遍感到这门课程难教、难学的原因,觉得有以下几个方面。

1.1 我校学生的学习积极性处于比较低层次

大多数学生是少数民族,入校时学习基础比较薄弱,对中文的学习能力和理解能力比较弱,逻辑思维能力和动手能力相对比较差,对学习的自信心不太强,学习的主动性和积极性也有所欠缺,大部分同学自主获得知识的能力偏差,总的来说,他们的学习能力处于较低层次,学习方法比较落后,在学习过程中,对中文的理解能力欠佳,大多同学,不理解课堂上老师所讲的内容,只会采用死记硬背的方法,被动地记忆教师讲授的基本概念、语法知识等,上机也只会调试程序,根本设计不出程序,对上机实践操作兴趣不高,缺乏对所学知识的综合运用能力,不会举一反三,给自己增大了莫名的学习负担,编程上遇到一些困难就容易退缩。尤其是在大一第二学期阶段,有不少学生对计算机的基础知识及操作还不太熟悉,程序设计课程对初学计算机的非计算机专业学生来说显得更加抽象、一些程序设计的流难以理解,这往往是导致学生的学习兴趣不高,产生畏难、甚至恐惧情绪的原因,最终导致厌学的后果。

1.2 教学内容的组织不太合理

教学内容的组织和教学方法对培养和增强学生的学习兴趣和学习信心起着极为重要的作用。《C语言程序设计》这门课一般都是在大一阶段第二学期开设,此时学生对计算机的系统结构、工作原理有了一定的了解,但对高级语言程序设计方面的内容,了解的甚少。因此,针对我校学生的基础特点,现对《C语言程序设计》这门课程内容进行提炼,减少传统的C语言教材较为复杂语法知识、算法等知识,传统教材一开始上来的几节课便是介绍和计算机硬件结合紧密术语、数据类型、语法规则,算法流程等基本概念,学习内容显得相当的抽象、繁杂、枯燥,新概念名词和规则如排山倒海般涌来,学生在学习过程中感觉学习的内容相当多,而且比较枯燥乏味、跟实际生活毫无关联,顿感学习压力很大,对程序设计的好奇心和期待随着前几节课云山雾罩般语法知识和规则的涌来消失殆尽,一开始满怀的学习热情受到压抑,因而失去进一步的学习兴趣和学习信心,失去学习动力,甚至有极少学生因而产生畏惧情绪选择放弃,不利于课程的进一步学习。

1.3 上机实践存在问题

《C语言程序设计》是一门实践性很强的课程,主要培养学生的动手能力和编程能力,所以,实践教学对这门课程来讲,非常重要,很多理论知识必须要通过上机动手调试才能够加深理解,帮助学生掌握和巩固所学知识。目前,许多高校的《C语言程序设计》这门课程的考试形式基本上是采用笔试,考试的主要内容仅仅是对所学的理论知识进行检测。这种考试形式使得学生在平时只注重理论知识的学习,不太重视实验实践的环节,另外,也有因为硬件环境或课时原因而造成学生上机实践课时不足,使得学生的理论知识学习与实践环节脱节,反过来影响了对理论知识的深入理解和掌握。

2 教学内容的改革

重构《C语言程序设计》课程教学大纲,包括理论教学大纲和实践教学大纲,课程内容分为2个阶段,第一阶段C语言基础,第二阶段是程序设计。制定的新课程教学大纲“本着理论够用,重在实践”的教学理念,强调学生的自主学习能力、创新能力、程序设计能力和对所学知识的综合应用能力。教学内容由浅入深,由易到难,降低程序设计的难易程度,加强程序设计中分析问题和解决问题的深度和广度,教学内容循序渐进,螺旋式上升。增加新知识、新理论以及交叉学科知识的介绍,补充教材难以编入的学科发展的前沿知识,充分体现该课程教学大纲的系统性、实用性、实践性、科学性、先进性。

该门课程的开设64课时,其中理论32课时,实践32课时,在教学实施过程中,在充分掌握理论知识的同时,加强实践教学。通过修订教学大纲、课程标准、授课计划等相关教学文件,着力加强实践教学,并对实践过程进行单独考核。另外,为了弥补不同层次学生对不同知识的需求情况,将实验项目计划增设了选做内容和必做项目,要求学生根据自己的学习情况选做相应的项目,利用业余时间完成。在实践教学过程中推行“项目驱动、小组合作”的实践教学模式。选择趣味性强且与学生生活贴近的项目作为教学主线,合理布局第一个项目,将每个实践项目分解成一个个体现相关的知识点又与实际生活紧密相连的子项目,对应理论教学的各个教学知识点,把相关的知识点融入到项目的各个环节中去,层层推进项目。通过对项目中的问题的深化和知识点的补充,来拓宽学生对所学知识的深度理解,实现独立完成项目的目的,从而达到学习知识、培养能力,提高实践能力的目的。

另外,在教学内容的选择上,尤其是介绍新内容时,避免选取复杂程序或学生不熟悉的数学、物理等问题作为案例,尽量选择学生平常比较熟悉的问题来进行分析讲解程序设计。在学生了解了新的知识点及新的编程方法后,再扩展介绍新方法的应用和一些常见的技巧,由浅入深,有利于学生了解掌握有一定难度但常用的一些编程技巧。

在教学内容的安排上,以程序设计思想为教学内容的主线,围绕着一个学生熟悉项目,努力让学生能主动而非被动接受新教学内容。用教学项目把整个课程诸多关联的知识点有机地联系起来,紧紧围绕着一个案例,如学生进行计算器的设计,从这个主题出发,循序渐进,逐渐延伸、拓展,随着带领学生不断提出新的用户需求并主动设法解决,引出能满足新要求的方法和相关知识点。

3 教学方法的改革

按照我校学生的实际情况,制定符合我校学生实际的课程标准、教学大纲,围绕本课程的教学目标,根据《C语言程序设计》课程和学生的特点,按“够用、实用”为原则对传统的教学内容进行重新组织,合理取舍设置教学内容。教学内容上舍弃了一些不常用的语法和章节,注重强调基础性、实用性和实践性,同时,兼顾教学和自学两方面的适用性。例如:可以先带领学生完成一个简单的项目――设计一个简单“加减乘除”的计算器程序,做简单的输入二个数据、然后计算结果和输出计算结果的工作,而后再给学生进一步讲解完成每一步工作所用的相关语法知识和需要注意的问题。而学生对两个数据的“加减乘除”的处理方法很熟悉,学生通过把平常熟悉的工作用计算机语言描述出来并在计算机上运行得到所需的工作结果,让学生体会到C语言程序的神奇而不神秘,有趣而不难学,体会到用计算机解决问题步骤的条理性、逻辑性和掌握相关语法知识的重要性,减少、消除学生初学程序设计语言时的神秘感和恐惧感,激发学生的学习兴趣和求知欲望。

形成“三结合一补充”的教学方法,即:“理论教学与实践教学相结合、自主学习与过程评价相结合、平时考核与开放考试相结合,模拟项目对课堂教学进行补充”的教学方法;充分利用信息技术手段,满足学生的个性化发展,包括多媒体教学手段、网络课堂、数字图书馆等。

3.1 采用任务驱动式的项目教学法

在理论教学过程中,抛弃传统的从介绍基本概念、语法知识和规则再到举例说明它们的应用的教学方法,采用任务驱动式教学方法。在教学过程中,全程贯穿任务驱动式教学的思想,按照提出问题、分析问题、解决问题的逻辑思路,引导学生主动参与从接受任务到如何完成任务的整个过程中,改变以往的被动接受为主动学习,充分发挥主观能动性,积极地思考、学习和掌握编程知识和编程方法,锻炼提高分析问题和解决问题的逻辑思维能力。

3.2 采取有效的讲课方法

在课堂教学过程中,采取有效的讲课方法,调动学生积极性。如采用师生互动法,避免传统的“满堂灌”、“填鸭式”教学方法,以免学生因被动学习产生抵触情绪。加强师生互动,采用小组合作的教学模式,融“教学做”为一体,引领学生积极参与教学中,主动提问题,积极思考解决问题。在利用基础知识解决问题的过程中,培养学生举一反三的能力,适时提出或引导学生提出一些进一步的要求,拓展学生的思路,让学生从如何编出程序能解决问题再进一步提高到如何把问题解决的巧妙些、任务完成的更好些、程序的质量更高些,培养学生的问题求解、编程及创新能力。

图1 采用“教、学、做一体化”的教学模式图

对于重点、难点的问题,要采取有效的讲课方式和思路进行讲解,如启发式、循序渐进式、师生互动式、实例法、类比法等方法,可以有效突出重点、化解难点。如帮助学生对循环控制变量作用的理解,可以类比环形跑道上的长跑裁判员统计运动员所跑的圈数并给出最终判断。

对于一些比较抽象的、难于理解的内容,借助动画将其转化为直观的形象便于学生理解。如讲解数据冒泡排序时,我们老师做了教学动画帮助学生理解一组数据排序的过程及最后最终结果,这样学生对抽象的一组数据的排序就容易理解了。

在教学手段上,充分利用多媒体教学和传统板书的优势互补,在碰到难点内容时,我们制作微课,帮助同学们理解较为抽象的内容。使用多媒体电子课件和微课相结合的方式,演示程序设计中的难点部分,提高教师、学生的教、学效率,利用微课,提高学生的学习积极性。因此,结合传统板书来讲课,写出重点难点,画龙点睛,帮助学生加深对重点内容的印象,理清程序运行过程中的数据变化情况。尤其在初期讲解程序设计时,利用板书逐步写出程序的效果更好些,这样在整个板书过程中能够有效控制要讲解的内容,思考、提问、修改等环节有机结合起来。使得学生的思路能与教师的讲解保持同步。

3.3 实验教学的改革

让学生明确编程理论知识必须要通过上机动手调试才能加深理解和掌握,思维能力、编程能力等都需要通过实践教学来培养,建立重视实践教学的新理念,主动积极参与实践教学。将实验内容设为基本篇和提高篇,基本篇用以锻炼学生应用基本知识编程解决简单问题。在此基础上提出更高的要求,设为提高篇用以锻炼学生能灵活运用所学知识编程解决较为复杂的问题,培养学生探索创新能力和实践能力。

为保证实验的效果,要求学生必须做好上机前准备,设计源程序和调试中可能会出现的问题及解决方法,实验结束上交源程序,课后上交实验报告。

3.4 建设多元的立体化教材

积极进行立体化教材的建设和实践。其中包括教材、教学大纲、实验大纲、实验指导、教案、电子多媒体课件、微课堂、教学网站、题库、习题集等。 出版1部教材。由笔者参编的《C语言程序设计项目教程》是以项目教学为编写思想,在该教材中融入大量最新的以同学们生活非常贴近具有趣味性的教学案例和操作性非常强的实例,力求提高教材的通读性和实用性,强化学习实践操作能力,做到“教师易教,学生易学,技能实用”。

教案中除教学目的与要求、教学重点和难点、教学内容等内容外,根据《C语言程序设计程序设计》课程特点,编写了课后的作业题、思考题等内容,电子教案内容非常充实,充分体现了教师与学生之间、学生与学生之间的互动;在多媒体课件内容的设计上,尽量简明扼要,突出重点,只要有用的;知识点之间的衔接思路清晰,既包括了教材的所有内容,在又能激发少数民族学生的学习兴趣,取得良好的教学效果;本课程电子课件、作业、课后思考题、教学大纲等均通过网络以精品课程的形式对全校所有同学开放,另外有充足的网络教育资源加上对于该门课程的难点内容利用微课来展现,这些对提高学生的自主学习能力,培养学生的学习兴趣,发挥了积极作用。

4 考核方式的改革

考核对学生的学习起着重要的引导和促进作用。改变以往以笔试为主的考试方式为全面考核,既要考核学生的理论知识,也考核学生上机动手实践能力。为了更加公平、公正的检测学生的学习效果,体现教学改革的效果,《C语言程序设计》课程采取“过程考核”和“期末考试”相结合的方式,改变传统的一考定成绩的方式,过程考核是以上机操作为主,突出学生的实践能力的培养,在进行完一个知识点的学习后,就进行相应的考核,让学生更好地掌握自己的学习情况,以及与同学之间的差距,根据考核结果调整学习计划;期末考试,以试卷考核为主,主要考查同学对所学理论知论的综合应用能力。

5 评价方式的改革

在《C语言程序设计》这门课程的教学改革中,对考核的评价方式作了大量的修改,制定了符合我校学生实际,又能激发学生学习热情的考核方式。在该门课程的考试中,除了期末的考试由教师来评价之外,对学生的实践操作采取了过程性的考核方式,其中过程性的考核采用了“学生评价、学生互评、教学评价”等多种评价方式,激发了学生的学习兴趣。

6 总结

本课程的教学改革在我校实施一年以来,取得了一定的成效,但教改成果与国家精品课程标准有相当大的差距和不足,我们将继续加大《C语言程序设计》这门课程的教学改革国度,加强教学研究,发表高水平教学论文,完善网络教学资源,加强课程在线学习手段,提高学生的自主学习能力,最终增强学生对所学知识的综合应用能力。

参考文献:

篇11

随着微电子技术的发展和广泛应用,基于单片机上的系统开发,C语言作为一种高级的编程语言,越来越受到人们的关注。现在,无论是嵌入式系统开发企业还是电子设计竞赛、毕业设计等,一般都以C语言为主要开发工具。结合单片机的系统资源,用C语言开发符合实际工程需要的单片机系统,对于编程者来说就有重要的意义。

1.C在单片机教学中的地位

C语言作为一种结构化的程序设计语言,它是程序开发工具中使用最广泛一门编程语言。C语言具有很强的功能性、结构性、可移植性。用C语言编写程序比汇编更符合人们的思考习惯,程序开发者可以摆脱与硬件不必要的接触,更专心地考虑程序的功能和算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。由于它具有良好的程序结构,适用于模块化程序设计,因此采用C语言设计单片机应用系统程序时,采用结构化的、自顶向下、逐步求精的程序设计方法,将功能模块化,由不同的模块完成不同的功能。这样可使整个应用系统程序结构清晰,易于调试和维护。

2.单片机教学现状

单片机技术是现代电子工程领域一门飞速发展的技术,是现代电子技术中的一项不可缺少的重要技术。随着技术的不断进步和日益普及,单片机技术已渗透到各个领域,影响着我们的日常生活和工作。因此电子技术及相关专业的学生学习单片机技术越来越成为社会发展的需求。当前,各大高校的电子、计算机类专业均开设单片机课程。

《单片机》是我院电子系一门实践性极强的专业主干课程,是我校电子系重点建设课程之一,是本专业学生的必修课程。为了提高我系单片机教学效果,我们对单片机教学进行了大胆改革,使用C语言开发单片机,且课程的设计打破了学科体系的框架,将单片机和C语言的相关知识和技能按“项目”进行整合,并将《C程序设计》课程列为电子类专业核心基础课程之一。因此,《C程序设计》课程教学效果的好坏,将直接影响学生后续专业课程的学习。

从近几年我系《C程序设计》课程的教学效果来看,学生普遍反映该课程的学习比较困难,课程的语法知识较多,理解和记忆都不太容易,即使记住了语法知识也不能灵活应用;不知道学习C语言究竟有何用处,学完C后不能很好地利用C进行单片机小型系统的开发,缺乏知识的灵活应用能力。因此,根据以往单片机教学所得经验,我觉得教师有必要在《C程序设计》课程的教学过程中在以下几个方面引起足够的重视,并在教学中加以改进,为后续单片机课程的学习打下坚实的基础。

3.《C程序设计》课程教学方法探索

3.1上好每堂课,激发学生的学习兴趣

语言程序设计教学被认为是一种需要师生双方改进的一门课程,因为大多数语言教材中通常先给出一般的语法格式,然后逐步讲解语法要点,再给出实例。这种顺序灌输会使学生失去学习的兴趣,所以我认为在课堂教学环节应采取以学生为主体、以教师为主导的教学模式,要求学生自己先看有关知识点,并识记。教师采取精讲实例,在这过程中引出相关知识点,然后再举一类似实例让学生自己分析,巩固知识点。教师应把主要精力放在算法的分析和各语句语法的具体应用上,同时培养学生自学能力,采取互动机制,迫使学生主动学习。

3.2注重演示,强化实验,提高实践操作能力

因为授课对象是一年级新生,所以教师多用通俗易懂的语言进行讲解,多举实例,使学生容易理解和消化。在教学过程中,尽量采用讲解、演示方法,如在讲解经典算法后,按照理论方法所述,用DEV C++软件进行编程演示,从而加深学生对教学内容的理解。

在教学过程中,教师应将理论知识与实验内容进行整合,根据教学内容并结合实际应用设置实验题目,让每个学生独立完成。遇到学生不能解决的问题,教师应利用多媒体进行演示解决问题的过程,从而加深学生对教学内容的理解并提高实践操作能力。  3.3培养良好的编程风格

3.3.1优化程序

由于在许多工业测控领域中的嵌入式系统都采用单片机开发,它们所需要的计算和控制工作日趋复杂,其中软件的设计是最复杂和困难的,工作量大,特别是对于控制系统,设计人员需要考虑单片机的软硬件资源分配,但是单片机系统是一种资源十分有限的系统。这主要表现在CPU和片内结构简单、程序存储器资源的不足。因此在用C语言进行单片机开发时,如何使用好这些有限的资源就显得十分重要。虽然C语言具有许多的优点,但是生成的代码相对要长,基本多占用存储空间20%—50%。因而,在“C程序设计”课程教学中,教师不仅要教会学生如何编写程序,而且应在教学过程中向学生灌输优化代码的思想,让学生从大一开始就有开发项目的一些经验。

3.3.2合理选用数据类型

C语言在程序开发中提供了的丰富的数据类型,尤其是关于用户界面开发和一些动画与图像技术的实现。但是在开发单片机系统时,我们要按照实际需要,合理地选用数据类型。C语言中有Char等少数的数据类型是机器语言直接支持的数据类型,用此类数据类型的语句所生成的代码较短,而其它的数据类型如整型、浮点型等数据要有一定的内部程序或内部函数的支持,相对来说较复杂的数据类型的语句生成的代码也复杂,不利于转化成单片机的代码。因此,在“C程序设计“教学过程中,要向学生适当说明选择合适数据类型的好处,并尽可能地减少程序中使用的数据类型的种类,为以后学生的单片机学习打好基础。

3.3.3灌输模块化程序设计思想

在普通微型计算机上进行C语言程序开发设计时,只需考虑程序功能实现,而不必考虑程序代码的长短。但是在单片机上进行C语言程序设计就必须考虑系统的硬件资源,要求设计的软件程序结构是合理、紧凑和高效的。同一任务,有时用主程序完成是合理的,但有时需子程序效率最高,占用资源最少;有时并不是程序的算法越简单、长度越短越好,由于有一些算法要调用一些内部的子程序和函数,生成的机器代码质量反而较低。不同的算法对程序代码效率影响很大。因此,在进行“C程序设计”教学时,教师应适当向学生灌输模块化程序设计的思想,在不影响程序功能实现的情况下可以采用一些优化算法,并且把程序分成若干个功能独立的模块,为学生今后的单片机项目开发做好铺垫。

4.结语

单片机系统采用C语言开发与设计,极大地促进了单片机在生产、生活各个领域的应用,提高了程序开发效率。因而,C语言学习效果的好坏,对今后单片机课程的学习具有深远的影响。除了讲解C语言的基本语法外,更重要的是改善教学方法,利用各种方法培养学生的学习兴趣,并向学生灌输良好的编程风格与编程方法,为今后的单片机课程的学习打下良好的基础。

参考文献

[1]向艳.“C程序设计”课程教学体系和模式探讨[J].计算机教育,2010,(3):112-114.

[2]董蕴宝,潘旭君.浅谈C语言在单片机中的程序设计[J].科技信息,2009,(13):59-67.

[3]张洪静.电类专业C语言教学探讨[J].电脑知识与技术,2010,(29):8280-8281.