美章网 精品范文 c语言程序设计论文范文

c语言程序设计论文范文

前言:我们精心挑选了数篇优质c语言程序设计论文文章,供您阅读参考。期待这些文章能为您带来启发,助您在写作的道路上更上一层楼。

c语言程序设计论文

第1篇

西安理工大学工科非计算机专业和计算机专业虽然都开设C语言程序设计课程,但是前者具有鲜明的专业特点,对该课程的要求明显不同,仅仅按照“面向对象教学”的原则,适当调整教学组织活动和教学内容对于后者是远远不够的。针对目前工科非计算机专业C语言程序设计课程教学实践中所暴露的主要问题,笔者积极开展了非计算机专业C语言程序设计课程教学设计的教改工作。

1.1教学设计概述

所谓教学设计,就是为了达到一定的教学目的,对教什么(课程、教学内容等)和怎么教(组织、方法、媒体的使用等)进行设计。教学设计不等同于传统的备课写教案。教学设计有利于教学工作的科学化,使教学活动纳入科学的轨道。教学设计的意义就在于追求教学效果的最优化,不仅关心教师如何教,更关心学生如何学,注重将人类对教与学的研究结果和理论综合应用于教学实践。教学设计主要包括确定教学目标、组织教学内容、分析教学对象、选择教学形式和方法及教学媒体、设计教学过程、教学质量评价设计等基本环节,其中,设计教学过程是课程教学设计的核心。

1.2该课程教学设计的内容

西安理工大学C语言程序设计课程组于2003年出版了《C语言程序设计教程》及配套的《C语言程序设计教程上机实验与学习指导》特色教材。自2011年开始,非计算机专业选用的教材与计算机专业不同。目前非计算机专业选用《C语言程序设计》(第1版,张毅坤教授,高等教育出版社,2011)作为该课程的教材。非计算机专业C语言程序设计的教学设计是一项复杂的系统工程,主要包括课程教学设计、章节教学设计、课堂教学设计和实验教学设计,以西安理工大学C语言程序设计课程教学大纲为指导,以《C语言程序设计》(第1版)及其配套教材为基础,确定课程教学设计的内容:①将该课程的教学目标确定为“掌握C语言的基本语法和语义,理解结构化程序设计的思想和方法,提高学生的编程能力和调试程序的能力”。②组织教学内容的关键是进行教材的组织呈现,理论教学内容包括《C语言程序设计》(第1版)的第一章至第八章,实验教学体现于该教材的第九章及配套教材。③学生作为教学对象始终是教学过程中的重要角色,工科非计算机专业的种类多,分析教学对象就是掌握学生特点与了解专业背景并重。④重点突出课堂教学设计,传统教学与案例教学有机结合,“讲解+多媒体演示+课堂板书”缺一不可。⑤设计教学过程与“组织教学内容”联系最为紧密,主要包括课堂教学设计和实验教学设计,教学过程设计遵循的总原则是:激发学生兴趣,注重能力培养,合理安排教学顺序,讲清重点与化解难点紧密结合,课堂提高与课后巩固拓展有机统一,并预测教学实践中可能出现的意外情况。⑥将学生评价、同行评价、教学督导组专家评价、主管教学的领导评价和教师自我评价这几种评价的结果综合起来,比较客观的评价教学效果与教学质量。

2教学设计的实践及效果

我们连续多年承担非计算机专业C语言程序设计课程,先后承担过西安理工大学电气工程及其自动化(电力)、水文与水资源工程、印刷工程、包装工程和材料科学与工程等专业的C语言程序设计的理论教学和实验教学任务。始终将上述教学设计的内容贯穿于课堂教学和实验教学之中。C语言程序设计本身是一门实践性很强的课程,加之各个理工科专业的特色鲜明,所以结合学生所学专业特点与需求,同一门课程,针对不同专业的学生,适当调整教学设计内容,并在教学实践中检验教学效果。2012年以来,学生对笔者的教学评分一直在95分以上,也给予了肯定性的评价,例如“采用启发式教学,阐述问题深入浅出,重点突出,能理论联系实际或联系学科发展的新成果”;“对于您的授课方式我们很满意,感谢您对这门课程的热忱,我们会努力学下去”;等等。

3结语

第2篇

关键词:移动学习,C语言程序设计,教学

 

1 移动学习

移动学习(M-Learning)是借助移动互连技术,使用移动计算设备(智能手机、PDA、移动电话等)实现学习者随时随地进行不同目的、不同方式的学习[1]。移动的内涵包括:形式上是移动的,即学习者不再受时间、空间和有线网络的限制,可以随时随地进行不同需求、不同方式的学习;学习环境是移动的,学习资源和学习者也是移动的;内容上是互动的,进行教学活动的双方实时交流,教育信息、教育资源与教育服务依靠移动计算技术和互联网技术实现双向“移动”,教与学相互促进,才能更充分的体现移动学习的优越性;实现方式上是数字的,移动学习是基于无线移动设备进行的数字化学习,它是在数字化学习的基础上发展起来的,是远程学习发展的一个新阶段[2] 。

现阶段的移动学习受技术条件的制约,通常作为高校教学的一种辅助学习模式,主要应用于管理和为学习支持服务提供“交互”通道,学生和教师通过使用移动设备(如手机等)方便、灵活地实现交互式教学活动。高校移动学习的主要应用模式分为三大类:基于短信息的在线移动学习,基于连接的在线移动学习以及存储移动学习模式[3]。基于短信息的在线移动学习具有使用费用低,设备普遍支持等优点,主要应用于通信数据少并且可用简单文字描述的学习活动和学习服务,可用于向学习者发送课程安排、考试安排和考试成绩等信息,提供指导、激励和支持等作用。基于连接的在线移动学习和存储移动学习,需要建设WAP站点,提供能够支持移动设备访问和下载的学习资源,着重选取能够贴近学习者生活和工作同时又较为时尚和流行的主题作为学习内容。存储移动学习和基于短信息的在线移动学习将是目前在高校中最切实可行的移动学习应用模式[4] [5]。

2 C语言程序设计课程特点

C语言作为当今最为流行的程序设计语言之一毕业论文范文,不仅是计算机专业的必修课,也是很多

非计算机专业的学习课程。随着计算机的普及,学生运用计算机的能力越来越强,但计算机程序设计课程因其较复杂的语法、编程等知识,依然是众多学生学习上的“拦路虎”。

C语言程序课程知识点琐碎,概念繁多,理论不易掌握;概念抽象且复杂,包含的数据类型和运算符丰富,需预习与复习相结合才产生较好学习效果;对应的规则繁多且易混淆,使用较为灵活,容易出错,使得学生容易产生畏难、厌倦情绪;理论与实验教学学时分布不均衡,导致课堂教学中,对如何分析和解决问题讲得不够充分,学生编程思路不清楚;实验过程中,不能将理论知识应用自如,在处理实际问题时往往不知从何入手,需要在平时教学中注意培养学生动手能力[6][7]。

C语言程序课程的这种特点,适合采用移动学习作为其辅助教学方式。针对C语言理论性强的特点,可以在课前课后发送定时短信,提示预习摘要求较高,不好的缩进格式影响其呈现效果,结构化风格使得程序占用篇幅往往较长等等,这些因素均会制约移动设备的可读性。

3移动学习在课程教学中的应用

根据上述分析,设计移动学习方式如下:总体原则,以传统教学方式为主,移动学习方式为辅,移动学习方式充当课堂教学的重要补充,能够实现课堂知识的延伸,指导和激励学生进行更深层次的学习和实践。实现方式,主要采用基于短信息的在线移动学习方式,配合基于连接的移动学习空间、论坛,以及存储移动学习资源建设。针对课堂教学,精心设计课前案例,提出驱动式问题,相关预习提示,课后设计相关重点回顾,知识点延伸,以短信形式发给学生,对于短信不能很好显示的内容可以邮件形式发送给学生,或者放在相关网站上,以消息的形式提醒学生查收。软硬件支持:考虑到学生普遍拥有设备的程度,将移动设备限定在普通移动手机,软件使用中国移动飞信校园版(EFetion_campus)[10],可以支持PC端向移动手机的短信群发,通过飞信、群、语音、邮箱、空间等多种方式实现互联网、移动网间的无缝互通毕业论文范文,还可以使用日程提醒,邮件提醒等功能打造个性化的学习指导。移动学习具体实现方式如图1。

图1 移动学习应用模式图

3.1功能模块介绍

移动学习做为一种辅助教学模式,能够参与到C语言课堂教学的课前准备,课后辅导以及实验指导等方面。

3.1.1短消息学习模块

(1)课前预习提示。可将每节的学习目标、重点、难点发送给学生,也可发一典型程序,加驱动式问题,发送到邮箱里,同时设置邮件提醒功能。

(2)课堂内容回顾。对前面课程学习过的知识内容以短信形式发给学生,提醒其回顾。

(3)作业提示、阶段测试。也可仿照上述短信设置方式,定时群发给所有的学生。

3.1.2移动学习空间或论坛

移动学习空间既可以方便学生在线浏览,也要努力适应基于连接的移动学习访问,其资料下载模块提供的学习资源,也要支持移动终端设备。移动学习论坛,实现学生自由交流空间。在移动学习论坛上定期设置讨论专题,既可以是关于某个错误进行分析,也可以针对相关程序选题集思广益,还可以是对当前教育进行探讨等等。

(1)课堂内容延伸。可提供诸如:MSDN使用介绍,帮助学生自如设计C/C++程序等;CSDN论坛介绍,提供同资深程序员交流学习的平台。

(2)常见错误提示分析。提供调试程序基本步骤,常见错误解读及可能出错原因。

(3)课程设计选题。设计相关程序选题,使其能够体现课程各个阶段的进度,并且具有一定的实用性,趣味性,能够调动学生的学习积极性。

(4)测试空间。提供一些历年试题,可以帮助学生巩固理论学习。

(5)教育思考。定期对教学进行总结,寻求更好的教学方式,也可以一些高校精品课程网站链接。

(6)资料下载。课程内容的各种学习资源,如PPT课件、多媒体课件、部分课程的录音、录像等;有关课程的各种辅导资料,如各章节的知识要点、课程设计任务库、程序设计案例库、试题库等都可以作为下载的资料。

3.2移动学习内容设计

在高校教育中,学生同时需要进行多门课程的学习,如果在针对某一门课程实施基于短信息的移动学习方式时,设计过多的短信内容,或者发送较多的次数,都将会给学生造成信息轰炸,带来过重的信息负担。配合C语言程序课堂教学,在课前课后发送两条飞信,每次不超过5页,对于无法以短信内容呈现的资源就发送到邮箱,同时以短信形式提醒学生注意查收。程序设计课程所涉及程序对格式要求较严格,一个程序案例通常占用较多篇幅,此时以邮件的方式发送较为合适,同时在相关论坛上设置讨论专题,根据学生回答设置最佳答案,统计学生活跃度,作为平时成绩参照。图2为课前预习的飞信基本内容设计。

图2 飞信基本内容设计

把课程内容按照“章-节-知识点”的层次模式进行组织,整理出每章每节的学习目标、重点、难点、学习指导、参考资料等内容毕业论文范文,并概要总结出每个知识点的核心内容和若干测试题目,学习者可以通过短信息随时随地自由学习、复习这些重要的知识点,并对学习的效果进行测试。设计短信内容时需考虑程序格式问题,屏幕显示行数,尽量控制在8行*5屏=40行,每行8字以内,不要以图片的形式发送(涉及彩信资费问题)。

另一方面,为课程的核心内容提供文档、PPT课件、课程录音、课程录像等多种媒体格式、适合多种移动终端的学习资源,满足学习者不同的学习需求和学习习惯。学习者只要把这些资源通过教学网站,下载到自己的移动终端上,当他们在教室外面、公共汽车上等地方时,都可以通过移动终端来浏览这些学习内容,充分享受移动学习的便捷与方便,而且不需要承担高昂的移动通讯费用。但是供下载的资料要充分考虑移动学习的特点,不仅要考虑学生的设备支持程度,还要考虑移动学习的片段性特点,对其中的部分资料需要进行特殊处理使其适合移动学习方式,主要处理原则,按知识点,将文档,影音资料都处理成片段,确保一个片段一个知识点,每个片段持续10分钟左右。

4 实验分析

借助中国移动飞信校园版,上述大部分移动学习方式都可以实现,从PC端到手机客户

端可以方便的实现短信群发,只要不超过一定数量,免费且易于操作。学生也分常乐意参与到这种形式的移动学习中来,非移动用户除了在接收短信受限之外,也可以加入飞信校园版PC端,可以共享资源。实验证明,使用移动学习方式作为程序设计课程的辅助教学方式能够大大调动学生学习的积极性。但是在学生中间出现了两级分化的现象,部分同学兴趣高涨,能够充分利用提供的学习资源,学习进度甚至出现超前现象,另外一部分同学上课时也在查看手机,学习不仅没有进步,反而沉迷于手机上网。这种现象提醒大家不仅应该注意实施移动学习的方式,同时还要加强大学生的思想教育,使其认识到网络资源的便利性和危害性,能够主动的去寻求有益的资源来提高自己。

使用飞信实现移动学习还有以下必须注意的地方:(1)飞信中涉及大量广告,容易分散学生注意力。(2)短信数量过大,易给学生造成信息轰炸,要限制性的使用。(3)需警惕不法分子盗取飞信或手机号,进行诈骗。可以利用飞信的二次开发功能,屏蔽其他模块,使其更适合校园使用。

移动学习对学习者也要有一定要求毕业论文范文,比如说需要一定的自学能力,自制能力,以及较强的学习动机等[8][9]。现阶段的移动学习在高校教学中应该起辅助作用,但不能排除其对研究生,博士生及在职人员充电的作用,所以还是要做好移动资源的建设工作,注意打上数字签名保护知识产权。

5 结论

当前,移动学习是教育界的研究热点。将移动学习方式引入语言类课程的教学中已取得较大进展,但将其应用到C语言程序设计课程教学中来,还属于尝试阶段。移动学习给教学改革注入新鲜活力,其对高校教学的促进作用,不仅依赖教师的合理使用和学生的大力配合,还依赖于软件平台的设计。本文所使用的飞信校园版,受到发送短信条数,广告绑定等不利因素的限制,不仅要考虑课程特点,还要考虑软件的使用规则,不能充分发挥移动学习的优势。下一步需要改进的地方,不仅在于移动学习资源的建设,还要建设实施移动学习的软件平台,不仅要适合移动终端在线浏览,还要能够与校园各个系统整合,充分利用现有资源,更加适应程序设计课程的要求。

参考文献:

[1]德斯蒙德·基更.移动学习:下一代的学习[J].开放教育研究.2004

[2]刘豫钧,鬲淑芳.移动学习——国外研究现状之综述[J].现代教育技术.2004

[3]王建武.3G网络下基于彩信的被动式移动学习实践研究[D].西安:陕西师范大学.2009

[4]张珑,王建华,张军,邸佳奇.移动学习在高等学校教学改革中的应用[J]. 计算机教育.2010(6):34-37

[5]王伟,钟绍春,吕森林.大学生移动学习实证研究[J].开放教育研究,2009,15(2):22-27.

[6]张素芹,吴连生.独立学院“C语言程序设计”教学改革实践[J]. 计算机教育.2010

[7]顾钧.程序设计语言课程的概念体系及教学策略探讨[J].中国成人教育.2010

[8]李望秀.高校教学中的移动学习[D].长沙:湖南师范大学.2008

[9]徐楠.M_Learning在现代远程开放教育中的应用研究[D].南京:南京师范大学.2005

[10]efeixin.10086.cn/product/category_15.html

第3篇

关键词:数学地质,数值分析,C语言程序设计,教学方法

 

数学地质解决地质问题的一般步骤或途径如下:第一,进行地质分析,定义地质问题和地质变量,建立正确的地质模型;第二,根据地质模型选择或研究适当的数学模型;第三,运用数值分析理论对数学模型进行求解;第四,运用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.

[3]贾宗璞,许合利.C语言程序设计[M].徐州:中国矿业大学出版社,2007.1-378.

第4篇

1  实践课程简介

本课程属于我校计算机类本科生的第一门专业基础实践课,课程内容包括C++语言程序设计的理论和实践两个部分。基础理论部分内容包括C语言程序设计的基本概念、C++面向对象程序设计、类、对象、继承、派生、多态、模板等概念。实践部分则包括C++语言程序设计的基本训练、类和模板的设计编程、几个算法的实现、简单应用等。

C++语言程序设计是计算机类本科生的一门程序设计语言基础课程,虽然现在大多数程序员使用Java语言做项目开发,但作为程序设计的入门语言,考虑到在培养程序员思维方式的转变过程中,既要兼顾理解计算机硬件和软件的结合,又要程序员从传统的数学逻辑思维方式继承并成功转型到计算机逻辑思维方式。目前也只有C或C++语言能够较好的满足这种需求。

本课程注重采用C++编程语言的最新国际标准[1],结合我们学校实验室硬件的情况,尽可能采用国际上正在流行的比较新的编程软件进行实践教学。使得课程的讲授内容始终跟踪C++程序设计语言的前沿性和先进性。积极学习和引入国内外同行的先进教学方法和教学案例。简单介绍C++语言程序设计的几个流派、现实的应用情况及未来发展趋势。

本课程强调学生在认真听课、阅读理解课本上的有关程序设计的概念、方法外,还要善于利用互联网的资源,特别是学习C++语言程序设计的几个官方网站、几个行业大牛的网站上的知识。在理解理论的基础上展开实验验证,不断的修正自己的理解偏差,使自己学到的知识不断完善,形成体系,为后续课程的学习打下一个坚实的基础。在C++语言程序设计实践教学过程中,强调合作能力的培养,团队意识的形成。自2004年以来,本课程教学效果得到学生的一致肯定,锻炼和培养了学生的实践能力,比较好的完成了本门课程的教学任务。

2  实践教学目标

本课程的实践教学目标包括:学生通过本课程的学习、实践,让学生从中学生传统的数学思维方式转变为结合计算机软硬件特点和计算机逻辑的计算机思维模式去分析问题、编写程序、实现解决问题。通过C++语言程序设计课程的实践训练,了解什么是面向对象的设计思想,养成良好的程序设计风格。利用C++语言程序设计来解决一些实际问题;学会自顶向下,逐步细化,会把复杂问题拆解为几个更为简单的问题,利用面向对象技术进行设计和编程。培养团队协作和开放意识,为计算机类专业后续课程的学习打下一个良好的基础。

3  实践教学方法、手段(举例说明采用的各种教学方法及手段的使用目的、实施过程、实施效果)

①建立以转变传统数学逻辑思维方式为结合计算机软硬件特点的计算机逻辑思维方式为主线的,分层级、渐变式的实验教学体系。首先训练学生学习计算机编程的三种基本逻辑,数组等数据的组织方式,学会排序等几个简单常用算法、解决一些简单问题。然后学习把数据和定义在数据上的操作整合在一起引入类的概念、学会类的定义、理解继承、派生、多态、学会模板的定义和使用、学习文件的使用方法。使学生养成良好的程序设计风格、形成计算机逻辑思维模式。

②采用灵活多变的教学方法,加快提高学生的编程能力。实践教学过程中,针对一些具体的例题,先解决基本问题,然后分析对于一些语句进行适当修改和加入新的语句就可以解决类似的其他问题。设计、利用一些实验数据发现所设计的程序的关键性问题,然后引导学生去解决此类问题。因为本门课程是学生接触的第一门实践性课程,教学过程中引出的问题有些是当前阶段可以解决的,一些问题还要通过后续课程的学习提高能力后才能解决,不一定马上就要把问题解决掉、重点是培养学生继续学习的兴趣。激发学生自主学习的积极性、主动性和能动性。

鼓励学生自主组建C++语言程序设计兴趣小组去找协作课题、完成课程设计作业。实验课堂上也鼓励学生多走动、多交流。建立网上资料、技术分享机制、鼓励学生分享解决问题的方法,老师根据学生的分享情况,适当增加学生的平时成绩。

③逐步建立学校和社会的协同培养模式。在教学过程中,课外时间如有可能,适当组织部分学生走出校门,利用校友资源,组织参观企业、科研院所、地方政府等单位在计算机方面的应用情况。了解社会需求、拓展视野、激发学生学习本专业的积极性。形式多样的人才培养协同创新模式。教学团队通过学院与广州易数信息科技有限公司、广东省信息安全测评中心、广州杰赛科技股份有限公司、广州腾科网络技术有限公司等企事业单位建立了长期战略合作关系。这些都为创新型人才培养打下了坚实的基础。

4  实践教学考核方法

本课程的总评价分数包括平时考勤,平时作业,中段考试、期终前上机考试、课程设计与新技术资料翻译,期末考核六部分。分别占10%、10%、15%、15%、10%、40%。其中,平时作业主要是针对课程中每章节后,为巩固所学内容所布置的习题编程实现;课程设计则主要是训练学生的协作能力和解决实际问题的分析、设计、编程能力、要求提交一份相对完整的设计文档;英文资料翻译采用自主选择网络上国外近半年来计算机类的英文资料、鼓励组团分解翻译大块文件,要求每人翻译至少2个A4版面。期末考试通过闭卷方式考核程序设计的能力,期终考试占总成绩的40%。

5  实践教材

本课程的实践教材为本课程主持人及参与人员王玉山等所编著的《C++语言程序设计实践》,该教材现在只有电子稿,还没有正式出版。

6  实践教学环境和教学资源

本课程的实践教学环境为:①学习版的微软公司的Visual Studio Visual C++的集成开发环境。②Bloodshed Dev-C++(C++开发工具)V5.11.0中文免费版。③奇趣科技开发的跨平台C++图形用户界面应用程序开发框架Qt。

教学资源:

①课程概要:课程简介、教学大纲、课程特色、教学效果。

②在线课堂:课程PPT。

③实验指导:实验指导书和实验报告。

④部分大作业选题目录。

⑤C++语言程序设计课程及研究常用、重要网址列表。

7  实践教学效果

经过多年探索和实践,教学团队在人才培养模式、教学方法、实践教学改革、试验教材编写等方面取得了一定的成绩。团队成员发表相关教改论文10余篇,获得过2010年广东省千百十校级人才项目,主持广东外语外贸大学校教学研究课题“毕业设计管理系统”,2010年度、2012年度广东外语外贸大学优秀科研业绩奖二等奖,周咏梅和林华两位老师获得过年度优秀个人。教学团队成员具有丰富的教学改革实践经验和理论基础,保证了本门实践课的教学质量。

通过大作业与新技术资料翻译,提高了学生主动学习的积极性、培养了团结协作精神。提高了解决问题的能力。组织部分学生到相关企业参观、坚定同学们学习本专业的积极性。

指导学生积极开展科研实践和申报项目,获得成绩如下:

①在王玉山老师的指导下,软件系2015级大学一年级新生林泽聪等获得了广东省团委的攀登计划项目:个人健康档案,获得资助2万元。

②在周咏梅和蒋盛益老师指导下,彭金原等同学获得广东外语外贸大学校级大学生创新创业项目:网络舆情构建关键问题研究―以微博客为分析对象(2011年校级);黄确君等获得:面向高校图书馆的推荐系统(2012年校级)。

国家级学科竞赛获奖情况:

Innc多媒体解析语言,2007年在天津举办的全国第10届挑战杯比赛3等奖,2004级软件工程专业,文羲畅。指导老师王玉山。该项目同时获得广东省2007年第九届挑战杯1等奖。

省级学科竞赛获奖情况:

①四灵象棋――基于互联网与移动设备联合开发,广东省第18届“高校杯”软件作品赛一等奖,2006级计算机专业:郭勇、刘荣科、何健,指导老师:林华、蒋盛益、吴彩虹、王玉山。

②基于Web3d的网上服装商城 , 第十七届广东省“文泰高校杯”软件设计(本科组)竞赛1等奖,  2004级软件工程专业学生,指导老师,王玉山。

泛珠三角安利杯大学生计算机作品赛:

2006级计算机专业,陈俊平,余雯. 基于C++语言程序设计的垃圾邮件识别系统, 泛珠三角大学生计算机作品赛广东赛区, 二等奖,2009。

2006级计算机专业学生,“任意达”――私人定制高校客车联盟系统,大学生计算机作品赛暨泛珠三角大学生计算机作品赛广东赛区选拔赛三等奖 , 指导教师林华。

8  实践课程特色及价值

《C++语言程序设计》作为大学计算机类1年级新生的第1门实践课程, 肩负着既要把学生从传统的数学思维方式向结合计算机软硬件特点的计算机思维方式转变,又要转变学生的应试教育模式学习方式向探索式、实证式、协同式、全球互联网求助式、开放式教育学习方式转变。还要求学会面向对象的程序设计思想方法,为后续课程的学习打下一个良好的基础。课程内容本身要求理论联系实际、在理解理论的基础上进行实践验证并不断修正、完善自己理论体系。学习本课程后,要求能够进行面向对象的类的设计,能够解决一些实际问题。本课程的特色和价值主要表现在:

①课程内容理论联系实际,所用软件实验工具、环境要符合时代需要、要采用最新的C++语言程序设计国际标准进行实验讲学,在试验中老师要善于对于同一个程序代码、进行适当变换就可以讲解、实验几个概念和方法,争取用较短的实验时间获得尽可能大的教学效果。

第5篇

关键词:C程序设计;C语言;课程;教学

1概述

C语言是当今计算机应用中最重要且被广泛使用的一门程序设计语言,它兼具高级和低级语言的优点,特别适合于编写计算机系统软件。高校的很多计算机专业课程,如数据结构、操作系统、算法设计等,多选用C语言作为教学语言。学生学好C语言,不仅是一门课和一种技能的问题,而且涉及到能否学好整个专业课。因此,C语言程序设计的教学越来越被提高到重要的位置,各校纷纷进行C语言教学方法的改革和试点工作[1-3],并取得了一定的经验和成绩。

笔者所在高校也进行了有益的探索[4]。在国家级教学团队“计算机基础系列课程教学团队”共同确立的教改思想和指导原则下,各授课教师根据自己的教学经验,进行了多种教学方法的尝试,取得了良好的成果。其核心思想是,不断加大C语言的实践课时,注重学生编程技巧和编程能力的提高。尽管如此,部分学生仍然不能很好地掌握C程序设计技术。在C语言考试中,学生更易于完成填空、选择、判断正误等检验“基础知识”的题型,程序设计或上机编程题则完成质量较差。直到学习数据结构等课程时,部分学生仍然难以用C语言编写算法,这直接影响到了数据结构等课程的教学效果,对后续课程造成了影响,甚至严重影响了毕业论文的进度和质量。

C语言是一门程序设计语言,它是程序员和计算机相互交流的语言。作为语言学习,它也遵守人学习语言的最一般规律:在实践中学习语言,重视单词的学习和积累,重视语言的交流能力。

2像婴幼儿学习说话一样,学习计算机语言

婴幼儿学习语言的方法对C语言程序设计课程的教学组织具有很大的启示作用。

2.1跟着大人,重复学习说话

婴儿学习说话,是从“mama、baba”开始,爸爸妈妈积极应答,并鼓励孩子继续“说话”。期间没有人在意,孩子是有意识或者是无意识的,孩子的发音是否准确,只要有声音,就给予足够的鼓励。之后,婴儿继续学习其他称呼和各种词汇,会说“开门、妈妈抱”等短句,直到“我要出去”等简单的句子。这一语言学习的过程特征很明显:跟着大人,重复说话,不在乎语法是否正确,能简单表达意思,大人能听懂即可。

C语言学习也一样。教师把自己看作大人,学生就是婴儿。从语言教学上看,不首先去强调语法等规则,而是教授“例子”。教师可以在课堂上重点讲授一个又一个例子,在课堂上编译、连接并调试运行程序,让学生课后去重复这些程序。这种方法可以让学生在最短的时间内,真正“接触”到C语言,通过老师的程序实例和计算机实现对话。教师通过作业,鼓励和引导学生修改这些简单的程序,并鼓励学生独立完成一些新的程序。这种方法使学生在刚开始上课时就接触计算机,重视学生快速和计算机建立联系,让学生在编辑、排错、调试和运行程序的实践过程中,和计算机对话,达到从实践中学习的目的。

“在例子中,学习和计算机的对话,让计算机训练自己。”

2.2不断学习单词,丰富语言的内涵

会说话的婴儿有了新的渴求,他需要通过不断学习,拓展自己的知识和生存空间,大人们也非常配合他,不断教他新的“知识”,这些新知识,首先就是“单词”。婴儿会指着电视机“啊啊”地叫,大人们教给他说“电视”,于是婴儿学会了“电视”这个单词。他可能说“宝宝要电视”,虽然不符合语法,但他已经勇敢地清楚地表达了自己的需求。宝宝在大人的纠正过程中不断学习,掌握的词汇越来越多,他也越来越具有和人交流的能力。这种能力是通过不断学到“新词”开始的,是不断被大人们纠正提高的。

C语言学习也一样。教会学生编写基本的C程序后,接下来的工作,不是要写复杂的“让计算机唱歌跳舞”的程序,而是让学生不断掌握新词汇,扩大和计算机的交流范围。在C中,这些新词汇就是C的库函数。C语言提供了丰富的库函数,程序员不可能脱离开这些库函数妄谈编程。以往的C教学中,可能会忽视这些库函数的介绍,只有在课本的附录里,才能找到他们的索引。教师课堂上的主要时间,花费在介绍C的各种语法上。考试中,这些语法就是“基础”知识,这又会把学生的学习重点,引导在学习和背这些语法上,无形中又忽视了实际编程能力的培养和锻炼。这是造成学生不会“写程序”重要原因。

婴儿不认识新事物,就无法开口说话。学生如没有很好地掌握库函数,就难以写程序。比如,若没有printf()函数,学生就不可能知道如何把信息显示在屏幕上。因此,学习写C程序,首先需要学好C的库函数。教师在课堂上的重点,就在于在例子中,尽可能多地使用库函数。让学生“见过”并“知道”有这样的库函数可以用,再通过编程作业,促使学生掌握库函数。库函数就是C语言中的“单词”,有了这些单词,才能开始编程,和计算机“对话”。

“不仅要会和计算机说话,而且可以天南海北地聊。”

2.3多说多练

学会说话的婴幼儿对这个世界充满了好奇,他已经长大了。他不仅和他的爸爸妈妈说话,他还要和其他人说。他要去上幼儿园,可以和老师说话,可以和幼儿园的其他小朋友说话,他的语言能力不断进步,他会唱歌,会背唐诗、三字经、弟子规,他已经像个大人了。

学生学习C语言也一样。最开始模仿老师的程序,编写程序,按照老师布置的作业练习编程,最后可以根据自己的兴趣,编写一些应用程序。学生解决问题的能力越来越强,可以排除程序中的错误,掌握调试程序的方法,逐渐能够书写小规模的程序了。

这些能力的提高和培养不是教师在课堂上能够完成的,需要学生在实践中提高。此时教师可以使用特殊资源了,即上机课时。高校中C语言的课时一般由3部分构成:课堂学时、课后机时和专门的上机课时。利用上机课时,教师可以布置小规模的系统编程作业,让学生去完成。通过这种作业,让学生系统掌握C的编程知识,提高程序设计能力和水平。

“多写多练,可以和计算机讨论问题。”

2.4上学后,我们再学语法

婴幼儿长成了小学生,他要开始上学了。在学校,他开始学习课文,通过课文认字、认词、认成语,写字、写词、写句子,他开始锻炼写作文。不知不觉中,他读了很多书,从童话开始,到小说、散文、诗歌,最后是名著。他开始系统学习语法,主谓宾定状补,不胜枚举。

C语言的学习也没有止步。实际上,C语言程序设计课程只能完成上述2.1~2.3部分的内容,这些部分教会了学生写程序,而不是教会了学生C语言的语法。C语言的语法,可以融于课堂的例子中,通过程序设计和调试,直观地介绍C的语法,通过程序练习和调试,由计算机来告诉学生,怎样符合规则,怎样不符合。对于一般的语法,要求学生自学。C程序中的众多语法,比如C语言从main()函数开始执行、变量定义位置、注释写法、函数命名、参数以及函数返回、变量作用域、运算符的优先级等,多是规则,并不难理解,需要学生记住并掌握,而单调的看书和记忆,效果远不如在程序排错和调试过程中学习。

通过程序实践和例子学习语法,而不是只是在课堂上讲授语法。这样,当学生有了一定的编程能力后,再回过头去研究语法,可以更好地提高对C语言的理解水平。如果在一开始就把重点放在语法上,可能反而无法掌握C程序设计技术。

实际上,C的一些语法细节在实际工作中是不常用的。例如,判断闰年的逻辑表达式:( Year%4==0 && year%100!=0 )||year%400==0,其中涉及到运算符、运算表达式以及运算符优先级等问题。若要计算该表达式的值,当然需要记住表达式的优先级顺序等语法知识。但实际工作中,是不鼓励把程序写成那种样子的,实际工作中,要求程序书写清晰明了,简单易懂,强调程序的可读性。因此,上述代码可以写为:

(( ( year%4 == 0 ) && ( year%100 != 0 )) || ( year%400 == 0 ))

“不仅让计算机能听懂,而且要易于听懂。”

2.5学无止境

经过了中学阶段的学习,孩子已经完全掌握了“汉语”这一门语言,此后能否成为编辑、记者、作家、诗人,则需要更多的学习和锻炼。他需要研读名著,体验生活,笔耕不辍。

C语言也如此。C语言课程结束后,学生可以通过参加课外兴趣小组、各种计算机编程竞赛、后续的专业课学习、毕业设计等,不断锤炼自己用C语言进行程序设计的能力。他可能逐渐接触到C语言课程永远无法讲授的东西,比如socket编程、进程与多线程、并发与竞态、Linux驱动程序、Windows驱动程序、研究开源代码等。他成了一名高级程序员、资深程序员、专家,他开始“用Word写程序”。

“计算机编程,一个玩具(计算机)的更高级的玩法(写软件)而已。”

3结语

C语言是一门程序设计语言,教学的目标在于让学生“掌握”C语言。所谓掌握,不仅指C的基础知识、语法结构等,最重要的目的是会用C语言写程序。C的其他所有知识,都在程序编写和调试中得到学习和掌握。

本文根据婴幼儿学习语言的特点,提出了C语言的教学思想和教学方法,其主要思想为:教学目的在于教会学生用C语言写程序,让学生在不断实践中提高程序设计的水平;课堂上,主要通过程序讲授编程的方法和技巧,强调C语言的库函数学习及其使用方法,通过程序重点介绍难点和重要语法知识,一般语法由学生自学;强调大量的C程序锻炼,在C语言的编写、调试中,由计算机教会学生编写程序,在编写程序和调试程序中,学习C语言的语法。

致谢:本论文得到了国家级教改项目“国家级教学团队――计算机基础系列课程教学团队”的支持。

参考文献:

[1] 李莉. C语言程序设计的教学改革[J]. 计算机教育,2009(12):28-29.

[2] 李业丽. “C语言程序设计”课程建设的思考[J]. 计算机教育,2009(12):31-32.

[3] 赵金萍. “任务驱动式”的C语言程序设计教学[J]. 计算机时代,2007(8):25-26.

[4] 王冰. C语言程序设计课程教学方法的探讨[C]//王永生. 研究型大学建设本科教学改革的研究与实践. 北京:北京交通大学出版社,2008:624-628.

Teaching Methods of C Programming Language Learned from Baby’s Language Learning

ZHAO Shuaifeng, HU Shaohai

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

第6篇

关键词:单片机;课程实践;答辩;KEIL C

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

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

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

1 研究内容或对象

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

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

2 研究拟达到目标

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

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

3 主要研究方法

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

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

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

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

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

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

在自动化专业学生的单片机课程实践教学环节中,通过团队合作的方式,以共同完成项目为目标,让学生在单片机课程实践中综合运用所学的单片机系统原理和高级语言程序设计基础的理论知识来完成项目的分析与设计,并借助相关的编程语言来完成项目的编程实现。将原本独立但有高度关联的两个实践教学环节进行有机整合,可以让学生有更多的时间来系统而连续的综合运用所学的相关知识,进而更好的将理论与实践进行有机结合,激发学生的学习热情,提高学生的学习积极性。

第7篇

当前社会职业的多样化,学生就业的需求,高等教育中非计算机专业的计算机基础课程体系也应该有相应的改革,使得新的课程体系,可以提供给理科、工科、文科、艺术类等其他不同的专业进行计算机基础教育时更丰富的选择。使各个专业的毕业生将来在择业时在计算机教育上能够更贴近用人单位的要求。《非计算机专业计算机公共基础课的教学改革与实践》的主要的目标针对我校非计算机专业计算机公共基础课教学进行课程体系改革的研究与实践,与此相应的教学方法、教学内容、教学模式、实验教学、教材、计算机基础课程考核方法应同步改革。

二、我校的计算机基础教育新旧课程结构的比较

根据高等教育的发展,对我校非计算机专业的计算机基础教学提出了新的要求,相应的课程体系改革为:计算机基础分为大学计算机基础、计算机技术基础和计算机应用基础三个层次,为必修课或选修课。其中:理工类建议选择C语言程序设计、java语言程序设计等,文科类选择VB程序设计、web程序设计等;第四、五学期各专业可根据专业培养需要选择。同时为了使同学们能更好的掌握知识,将《C语言程序设计》《java语言程序设计》《VB程序设计》《web程序设计》《动漫设计》课程分为两个学期完成,称为《C语言程序设计(1)》《C语言程序设计(2)》,其他课程以此类推。

三、教改具体措施以及效果

(一)全程机房教学,增强动手能力

教学方法是为实现教学目标、完成教学任务所采取的措施。传统的三中心(教师、教材、课堂)教学方法既不适应社会发展的需求,也不符合计算机教育的特色,必须改革。我校的《大学计算机基础》由原来的课堂教学,改为全程机房教学,使同学们在边听教师讲解的同时,可以直接上机进行操作,在学习理论知识的同时,可以立刻得到对计算机操作的感性认识。通过三个学期的教改实践,完善了全程机房教学模式,对同学们使用计算机的动手能力有很大的提高。

(二)配套教学软件,提高学习能力

本课程组为《大学计算机基础》课程开发了一个《大学计算机基础辅导练习系统》,该系统分为抽题模块、答题模块、判卷模块,本系统为C/S结构,当管理员在服务器端设置好本次模拟练习的题型比例后,系统自动生成一套模拟试卷;所有的同学们可以在客户端进行答题,当答卷完毕时,由服务器端自动进行判卷并将本次练习的结果反馈给同学们;该系统可以提供给学习本课程的同学们经过教师的指导后,在课堂内外自行进行练习。以便同学们完成练习后,自己可以评判自身的学习程度,并在下一阶段的课内外学习中调整自己的学习状态。本系统已经提供给2005级大一学生进行了初步使用,体现了较好的作用。

(三)开发网络平台,整合教学资源

本课程组在调研了周边各高校的计算机基础教育的情况,开发了一个本校的《计算机基础教育中心教学平台》,在本教学平台上,提供了基础部课程的相关介绍,教学信息的,教学资料的下载等等功能,可以提供给任课教师所任课程重点难点详细介绍。对课堂教学起到了很好的补充作用,方便了同学们在课余时间继续学习计算机基础课程。在本课题的后续时间里,拟设计开发计算机基础教学课程的基于校园网教辅系统,使得同学们可以开展课余时间自由学习。该平台具有以下优点:①发挥以计算机为基础的现代多种媒体的作用,使教学信息组织超文本化。多媒体的超文本特性可实现教学信息最有效的组织与管理。②在培养高级认知能力的场合中,因特网和校园网是协作学习的主要形式,实现了协作式教学。③教学过程的生动性是多媒体计算机的强大魅力之所在。在教学中可以同样重视教与学这两个部分。强调学生的参与意识,教与学成为两个相辅相成的部分。调动学生学习的主动性,培养学生的“发现式”学习能力,使学生不仅学会,而且会学。④在短时间里要获得大量的信息与知识,这在传统的教学模式中是可望不可及的,而以多媒体网络作为传播信息的渠道,使教师与学生、学生与学生之间,可以同时传播大量的信息,大大提高教学效率。

(四)编制多媒体课件,增加课堂吸引力

根据我校计算机基础教学的实际情况,我们重新编制了《大学计算机基础》《计算机程序设计A》《计算机程序设计B》的电子课件,使之更符合我校的实际教学情况,更符合浙江省计算机等级考试的要求。其中《计算机程序设计A》课件获得中国计量学院首届多媒体课件竞赛二等奖。改编后的课件具有以下优点:界面清晰、美观,结构清晰,例题丰富、并附有书本外的课后习题。

(五)出版教辅材料,同步教学改革

根据高等教育中对计算机基础教学提出的新要求,和结合浙江省计算机等级考试的要求,本课题组编制了《C语言程序设计实验与习题指导》面向21世纪高等院校计算机系列规划教材,该教材由“科学出版社”出版,并于2005~2006学年第二学期开始投入我校、浙江工业大学等高校使用;根据我校学生应考浙江省计算机等级考试的需要,本课题组编制了《C语言辅导与讲义》、《VB程序设计辅导与讲义》,并与2005~2006学年第一学期开始投入使用,学生们反映良好。

(六)开发考试系统,改革测试手段

计算机基础课程是一门应用技术学科,主要凭试卷来检测大学生的学习效果,并不能完全反映出学生的实际能力。而且试题类型目前多是测试学生对所学知识是否了解,不是考核学生解决问题的能力,并没有挣脱应试教育的樊笼,严重影响了创新型人才的培养。现在这种考试方法,使得学生为了考试而学习,不能提高学生学习的积极性,不能发挥学生的创造力,这种考试方法与素质教育大相径庭。本课题组开发了《大学计算机基础上机考试系统》,本系统具有抽题功能、答题功能、判卷功能、存储功能、输出功能,对其中的实践部分从以前的“纸上谈兵”改为“上机实战”。其中的判卷功能、存储功能、输出功能也使得该课程实现无纸化考试,该考试系统于2004~2005学年第二学期开始投入使用。新的考核方法给了学生一个发挥才能的空间,变被动的死记硬背为灵活的实践操作,使学生成为知识的主人。

四、实际作用与效果

通过对非计算机专业计算机公共基础课的教学改革与实践,对提高教学质量,效果明显。我校非计算机专业学生在学习C语言和准备迎接浙江省计算机二级考试中,选择了我校自行编制的《C语言程序设计辅导与讲义》《VB程序设计辅导与讲义》,取得了较好的成绩。 在该完成该课题的过程中,陆慧娟老师等于2005年11月在“首届大学计算机基础课程报告论坛”发表了《多科性大学计算机基础教学课程体系的改革与实践》教改论文,该文以本校的计算机基础教学为背景,探讨了非计算机专业计算机基础教学课程体系的设置、教学方法的改进和师资队伍建设等问题。黄俊老师等于2005年11月在“首届大学计算机基础课程报告论坛”发表了《配对编程教学模式在程序设计课程教学中的探索与实践》教改论文,配对编程方法是两学生并排在一台计算机上工作,协同完成一个设计、代码编写和调试的新的程序设计学习方法,该文对配对编程教学模式在计算机基础课程教学的应用进行了探索与实践,提出了配对编程在程序设计基础教学过程中存在的问题和解决的办法。

第8篇

关键词:网络课程;教育软件;网络教学

随着计算机技术、网络技术和多媒体技术的发展与深化,教学手段不断改进,经历了从板书、教具、多媒体课件到网络课程的发展阶段。网络课程是建立在网络技术、多媒体技术等现代信息平台上的一种新型教学模式,与普通的多媒体课件不同,网络课程是通过计算机网络来表现教学内容和实施教学活动的教学模式。通过网络课程的构建可以整合丰富的教育资源,突破了学习的时空限制,实现了自主化学习、个性化学习和远程交互途径,学习模式由传统的基于课堂的教师讲授转变为立体化、多元化学习,因此网络课程是实现教育信息化的重要体现和手段。

1“高级语言程序设计”网络课程的意义

高级语言程序设计是计算机专业的一门核心基础课程,是学生从事软件开发的必备技能。这门课程概念繁多、抽象难懂,逻辑性和实践性极强,学习容易枯燥,如何利用开放式网络教学环境,创建生动的、个性化、研究型教育模式,是现代教育在观念、内容、方法、手段和结构上的一次全方位变革,“高级语言程序设计”网络课程的构建与实施,变静态的、形式单一的教学模式为动态的、多元化的网络多媒体教学模式[1],是高校教育改革的重要举措和内容。其意义体现在以下几方面:

1) 转变学生的学习方式。网络多媒体课程的自主学习方式使学生变被动接受为主动构建者,有利于培养学生的主动性和创造性思维。学生从课程中不仅学到了专业知识,更重要的是通过检索和利用各种信息资源,获得了信息素养能力的训练,为工作和科研培养了良好的信息能力[2]。

2) 学习资源突破了时间和空间的限制、使得课程资源的交流和共享成为可能,使学习更加便利,有利于培养学习的自主性和积极性。

3) 提供了丰富的教学资源,突破了课堂教学内容的狭隘性,扩展了学习范围,开阔了思维,使学生科研能力和创新能力得以提高。

4) 强大的多媒体功能可以提供实验和实践的模拟和仿真,化抽象概念为生动具体的情景,使得学习更加轻松和容易。

5) 网络的及时性、开放性和交互性也是普通课堂教学无法比拟的,留言簿、论坛、电子邮件、及时通信等方式使学生之间、师生之间的交流更加轻松。

6) 在线考试为学生检查学习效果,减轻教师阅卷负担提供了可能。

2 “高级语言程序设计”网络课程的目标

基于传统多媒体课件的“课堂演示型”教学方式给学生带来了图文并茂的生动效果,但这远远没有发挥多媒体的交互性特点,课件只不过成为了电子版的板书,学生只能够被动地接受知识而不能主动参与教学活动。要实现教学的开放性、交互性和自主性,就需要把网络技术和多媒体技术结合起来,构建网络课程正是实现这一目标的途径。

因此,“高级语言程序设计”网络课程的总体目标是:构建一个导航清晰、界面生动友好、教学内容充实、教学主线设计合理,具有教学、个性化学习、网上答疑及讨论、自测等功能的教学系统平台。具体表现在:

1) 教师可以整合丰富的教学资源,各类教学资源、提供教学大纲、周历、课后作业、实验作业、电子教材、软件下载、试题下载、源程序下载、相关论文等。

2) 学生通过留言本、论坛、邮件等方式与教师或同学之间进行交流,轻松实现互动和远程交流。

3) 课程的实践性要求课后要加强编程练习,网络课程要围绕课后习题这一重要教学环节,使学生最大限度地参与练习与实习,达到理想的教学目标。

4) 采用以章节为单元的折叠式树型目录导航结构,循序渐进,合理的信息分类与链接使自主学习得以顺利进行。

5) 整合大量教学资源和素材,弥补教材内容的不足和课堂讲授时间的不足,创造并提供自主学习环境,提供全国计算机等级考试介绍、全国软件水平考试介绍、二级C语言考试大纲和试题、二级C语言模拟考试软件等。提供C语言的论文和相关科研训练,提高理论水平和扩展思维。

3网络课程特色栏目设计

网络课程建设就是要按照学科知识体系以及网络教学要求,对各种教学资源进行集成和综合[3]。教学内容是网络课程设计的主体,在网络课程中教师是组织者、设计者、指导者,在教学内容的设计上应按照网络环境的需要和教学目标进行合理分解与重组,并根据不同内容的知识特点选择不同的媒体表征形式。以便使教学内容适于以网络化形式和手段表现出来。

以“高级语言程序设计”网络课程的需求为例,为了让学生了解课程内容、方便学生选课需要进行课程介绍,为了实施教学内容需要对每一章节进行讲解,为学生提供课件、源代码、论文等大量学习资源,为了实现教学的互动还要实现在线的师生交流和答疑,为了配合国家计算机等级考试、加强练习还需要提供二级考试大纲、模拟软件和试题等。

根据以上需求分析,本网络课程采用以章节为教学单元的模块化结构,采用纵向树型目录导航结构组织知识点和章节,根据具体的知识要求采用文本、图片、音频、动画、视频等多种形式。共分为5个栏目。

1) 课程简介:包括课程介绍、理论课和实验课教学大纲、周历、考试方式、教师信息等方面的内容。

2) 教学内容:共分10章,是网络课程的核心模块,按照C语言知识体系的结构循序渐进行详细讲解,分别介绍预备知识,C语言基础,顺序结构,选择结构,循环结构,数组、函数和编译预处理,结构体与共用体和文件。课件采用PDF格式,单击每一章的标题链接,即可打开相应的PDF文件。

3) 学习资源:提供上机习题、教材源程序、课件下载、C语言运行软件下载、参考论文和电子书等。

4) 交流平台:有留言本和论坛两种方式,留言本针对师生之间,学生提问留言,教师作为管理员可以回复和删除某个学生的留言。而用户在论坛中注册后就可以发贴,并且无论是学生还是教师都可以回复贴子,轻松实现开放式答疑和交流。教师还可以定期地创建不同主题的讨论组,引导学生进行讨论、分析和思考问题,开扩编程思路。

5) 计算机二级考试:提供全国计算机C语言二级考试大纲、C语言二级考试模拟软件下载和历年真题。网络课程的整体结构框图如图1所示。

4网络课程开发流程

4.1教学素材收集

教学素材是网络课程的基础,是需要规范的重点和核心。教学资源主要分8类:试题库、试卷素材、媒体素材、文献素材、课件素材、案例素材、常见问题素材和教育资源索引[3]。学习资源包含了大量支持学习的材料,除了课程本身的专业知识点以外,还可以链接到互联网上的其他参考资料,如视频、软件、国内外优秀教学网站、全国计算机等级考试、计算机水平考试等。教师是学习资源的组织者和设计者,通常要经过搜集、筛选、分类、整理、组织与数字化等工作过程,同时还要考虑方便学习者的使用[4]。因此我们按照教学大纲将每一章的知识点制作成图文并茂的多媒体课件或PDF文件。课后习题和上机实验习题制作成网页文件,试卷和二级考试真题制作成网页或Word文档。教材源程序制作成压缩文件以供下载。C语言论文和电子教材使用PDF格式。搜集相关软件,包括C语言集成开发软件,如TurboC、Visual C++、WinTC、C语言二级考试模拟软件等。

4.2动画制作

为使页面生动友好,迅速引起学生的注意力并激发其学习兴趣,在首页应用Flash MX制作了动画和标题滚动字幕;为使学生能够更好地理解和掌握C语言中比较抽象难懂的概念,如函数的递归调用、冒泡排序、选择排序等,制作了递归曲线的生成动画,递归调用的汉诺塔动画、显示回溯搜索过程的八皇后动画、显示广度优先搜索过程华容道动画等,这些动画形象地展示了算法实现的过程,化静态的思维过程为动态的实现,有利于学生更好地掌握这些知识点。汉诺塔动画如图2所示。

4.3开发实现

网络课程的开发技术分为前台开发技术和后台开发技术两部分[2]。前台开发技术是指网页的设计与制作技术,利用DreamweavMX、Flash、Fireworks等软件来实现,教学网站导航清晰是关键,因此首页采用嵌套框架布局,上面是标题,左边是按模块组织的树型目录,每个链接单击后目标文件显示在右边,下面是版权、制作者信息和日期时间。在页面中使用了文本、图像、表格、超链接,Flash 动画和视频动画等。后台开发技术使用了Web服务器编程技术ASP(Active Server Pages)。本网络课程的论坛模块、留言本模块通过ASP编程实现与网络数据库的连接和动态交互访问,能够对各种数据资源不断地更新和维护。

4.4编写脚本程序

为了实现生动的动画效果,脚本的编写是网络课程制作过程中重要的一环,运用JavaScript脚本程序和HTML代码可以实现以下特效:1)折叠式树型目录,可以展开和折叠每个栏目。2)滚动字幕,显示在首页标题上,用C语言程序设计代码实现。3)当前的日期和时间,以下脚本代码仅在网页底部输出年月日和时分秒(其余代码略)。

document.write( year + "年" + month + myweekday + "日" + day);

document.write( myhours + myminutes);

4.5引用层叠样式表

层叠样式表(CSS)是一系列格式设置规则,CSS样式是对HTML语言的一种扩展,主要用于控制Web页面内容的外观和页面风格设计,在网页制作过程中起着非常重要的作用,掌握CSS能够有效地提高制作网页效率。CSS扩充了HTML各标记的属性设置,丰富了网页视觉效果,而且CSS样式可通过脚本程序来控制,这样便可以有效地对网页的外观和布局进行精确的控制,从而使网页的表现方式更加灵活和美观[5]。为了统一网站页面的风格,在页面中定义了大量的样式来统一的页面背景图片、字体大小等,部分样式定义如下所示。

.STYLE1 {font-size: 18px}

.STYLE2 {font-size: 18px; font-weight: bold; }

body {background-image: url(../image/ back1.JPG);}

5结语

随着计算机网络技术的迅猛发展和信息化的逐步深入,网络课程在高校的应用也日趋广泛,为了更好地配合课堂教学,笔者将先进的信息技术与教学内容相结合,创建了“高级语言程序设计”网络课程,获2009年云南省多媒体教育软件大赛二等奖。网络课程提供了丰富的教学资源,将课堂延伸到课外,为学生创造了获取资源、评价学习效果和师生互动的环境。将课堂教学与网络课程相结合,使学生不仅学到了专业知识,还能更多地进行信息检索和独立思考。“高级语言程序设计”网络课程为教学提供了一种全新的教学手段,对于推动高校教学改革具有参考价值。

参考文献:

[1] 杜文,曹旭斌,庞先伟. 高校体育网络(教程)的构建与应用[J]. 北京体育大学学报,2007,30(1):104-106.

[2] 熊鹰. “信息检索与利用”网络课程的教学设计与实现[J]. 图书馆论坛,2006,26(2):23-25.

[3] 程晓旭. 高校网络教学研究[J]. 中国成人教育,2007(19):118-119.

[4] 董飞,王广新. 成人教育网络课程开发的关键问题分析[J]. 中国成人教育,2005(12):64-64.

[5] 玲. CSS层叠样式表在DHTML中的应用[J]. 鞍山师范学院学报,2006,8(2):63-65.

Research and Development of High-level Language Programming Network Course

DING Hai-yan, ZHAO Zheng-peng, LI Wei-hua

(Information Institute, Yunnan University, Kunming 650091, China)

第9篇

关键词 C语言程序设计;过程监控;螺旋式上升

中图分类号: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.

[2]姚志宏.中等职业教育中C语言教学改革[J].实验教学与仪器,2013(6):45-47.

第10篇

关键词: C语言 提高 教学质量 对策

一、引言

目前,许多高等院校开设了《C语言程序设计》这门课程。然而,学生普遍认为这门课程枯燥难懂,没有学习信心和兴趣,学习效果不容乐观。教师作为教学过程的主导者,有责任认真反思教学中存在的问题,创新教学观念,改革教学方式,努力增强教学效果。

二、现状分析

1.C语言自身有一定难度。

C语言涉及的概念复杂、规则繁多、语法严格、使用灵活,且基于DOS运行环境缺乏直观性,一般的编程枯燥乏味。以上特点给师生的教学和学习带来了一定的难度,严重制约了学生主体作用的发挥。

2.教学要求相对专业培养目标孤立。

《C语言程序设计》作为一门重要的基础课程,要为后续的数据结构、操作系统、编译原理、面向对象程序设计等课程打下坚实的基础。然而,课程教学大纲如何不闭门造车,适应专业培养目标的整体要求?其修订工作往往为人所忽视。

3.缺乏较好的教学方法[1]。

尽管当前大多数《C语言程序设计》课程采用了多媒体教学手段,然而,多数依然沿用以教师和教材为中心的讲授教学模式,基本上把教材的内容原封不动地输入到课件,形成了效果更差的以课件为中心的模式。在这种模式下,学生往往按照教师的讲授速度被动学习,缺少及时地消化理解,更谈不上进行知识的内化和再创造,丧失学习兴趣的也不在少数。

4.重理论,轻实践。

教师容易走入一个误区,即把授课重点放在大量的概念、术语和语法解释上,忽视程序设计思想和能力的培养。许多教师不能对实践环节进行系统的教学设计,往往把上机作为验证理论的手段。尽管教师们不愿承认,但正是这种重理论、轻实践的思想使得学生的学习目标模糊不清、学习方法事倍功半,枯涩难懂的抽象理论甚至把一些学生拒之门外。

5.学生学习目的不明确,学习积极性不高。

一些非计算机专业的学生认为这门课程与所学专业毫不相关;一些计算机及相关专业对编程有所了解的学生认为C语言是过时的语言,应该学一些C++、JAVA等当前主流的语言。还有许多学生习惯于应试教育下的教学模式,一旦遇到困难就会产生畏惧、排斥心理。基于以上种种原因,许多学生对学习C语言没有兴趣,毫无疑问对增强教学效果起到了负面作用。

6.学生学习水平参差不齐。

有些学生基础较差,高中阶段未学过计算机语言,甚至没有接触过计算机;有些学生逻辑思维能力强,不满足于课堂上教师教授的知识;有些学生学习能力相对较弱,理解和掌握各知识点速度较慢;有些学生不重视实验,课前不预习,上机就是机械地打字,课后抄袭实验报告;有些学生反映上课能听懂,上机时不知从何下手;上课开小差、打游戏的学生更是屡见不鲜,等等。面对这些千差万别的教学对象,大多数教师采取折中的方法,即以中等学生的学习能力作为教学的标准,这种“齐步走”的方法使相当数量的“两端”学生逐渐失去了学习的兴趣。

三、对策研究

教学是教与学的总称,教学活动由教师、学生、教学内容和教学环境等四个要素组成,这些因素互相作用,共同影响着教学活动的效果。以下针对四个要素分别阐述提高教学质量的对策。当然,在实际应用中要把它们看做一个有机的整体。

1.教师层面。

(1)转变观念,努力提高自身素质。

教师要树立以学生为本的理念,明确以培养学生的程序设计思维、创新意识和实践能力为目标,努力提高自身素质,尤其是教学设计和实践教学能力,争取成为“双师型”教师。

(2)以人为本,强调因材施教。[2]

教学目标归根结底是让学生学到了什么,而不是教师教了什么。在教学过程中,应以学生为中心,以激发学生的学习兴趣、提高学生的能力为关键,针对学生的需求和特点组织教学,根据学生的反馈及时调控教学进度,同时注重不同层次学生的差异,针对学生实际的认知水平和能力水平,因材施教。

(3)认真钻研,不断改进教学方法。

所谓“教无定法”,教师、学生、教学内容、教学环境任何一个因素的改变均可使用不同的教学方法。因此,教师应认真研究教学规律[3],根据学生基础、教学目标、教学内容、教学条件,对教学方法进行不断深入的改革和实践,方可保证教学质量的稳步提高。

在多年的实践过程中,广大教师已总结了不少值得借鉴的教学方法,如讨论法、演示法、实验法、案例法、发现法等。在教学过程中,不能盲目照搬他人模式,应将各种教学方法相互融合,力求做到深、活、透、新,建立完整的教学模式体系。

2.学生层面。

(1)激发学习兴趣,端正学习态度。

教师通过明确C语言在专业学习中的地位、精心选择教学内容、合理设计教学方法,不断激发和保持学生的学习兴趣。然而,学习不能仅凭兴趣,更要有持之以恒的精神和毅力。特别是随着学习目标的不断提高,困难也会越来越多,此时教师要多加引导,帮助学生克服畏难情绪,端正学习态度。

(2)明确学习特点,强调学习方法。

C语言概念复杂,使用灵活,不能局限于基本语法和规则的掌握,更强调程序设计的思想和方法。鉴于此特点,教师要引导学生重视实践在学习过程中的重要地位,采取适合自身的学习方法,在程序设计、调试分析的动态过程中达到预期目标。

(3)理论联系实践,重视实验环节。

有些老师把实验课完全交给了学生自主进行,教师的任务是为有疑问的同学解决问题,这种方式是极不可取的。实验环节“教师主导,学生主体”的模式仍要贯彻执行。教师不仅要进行讲解答疑,而且要明确教学目标,安排实验任务,分析典型算法和解题思路,鼓励学生独立完成。

(4)加强程序设计思维训练。

程序设计课程的基本任务就是训练学生的逻辑思维和程序设计思维能力。在教学中,要淡化语法、强化算法,把算法分析与设计思想贯穿于程序设计的教学过程中,为以后编写程序、软件设计奠定基础。

(5)培养自主学习和创新思维能力。[1,4]

教师要“传道、授业、解惑”,我认为“传道”即“授人以渔”。教师传授的知识往往是抽象、机械、静止、片面和孤立的,学生不知道如何灵活地综合运用这些知识解决实际问题。因此,培养学生自主学习和创新思维能力,对解决本门课程乃至工作岗位上的问题至关重要。

3.教学内容层面。

(1)针对专业,制订教学大纲。

教学大纲是教学活动的重要依据,要明确学生在知识、能力、素质等不同层面上要达到的要求。不同的人才培养目标必然由不同的知识和技能构成,目前我们缺乏细致的教学研究,除认真分析各专业的共同点之外,更要深入挖掘各专业对程序设计基础能力的不同要求。

(2)依据大纲,精选教学内容。

无论教材编写得多好,其深度和广度不一定适合本校学生的具体情况。因此,教学内容不能等同于教材,教师应根据教学大纲的要求,认真钻研、补充、优化教材,采取“有所取、有所不取”的策略,精心选择教学内容。

在课程内容的设计上,不宜过分注重语法知识,而应该重点强调程序设计技术的基本方法,要合理选配和组织那些基本的、核心的、重点的内容,做到少而精,对于一般性的、扩展的内容,可以组织学生进行课外自学。

(3)减少验证性实验,增加综合性、设计性实验。

在实验环节设计上,要注意验证性、设计性和综合性实验的比例,在保证验证基本理论和训练基本技能的基础上,增加设计性和综合性实验项目。有些高校在课程结束时增加了实训或课程设计环节,使学生对所学知识综合运用、融会贯通,这将有利于培养学生的创新思维、独立分析和解决问题的能力。

(4)合理设计作业任务。

针对每堂课的知识点,安排适量作业,以便及时强化和巩固所学内容。作业布置要符合学生的学习目标和学习规律,难度和题型要适合学生学习状态,兼顾理论和实践形式,兼顾语法规则和算法设计。还要针对作业中存在的问题,及时适当调整下堂课的教学设计。

4.教学环境层面。

(1)合理运用教学手段。

利用现代化的教学手段,可以丰富课堂教学内容,提高课堂教学效率,降低理解难度,达到直观、快速、标准、深刻的教学效果。然而,要防止对现代化教学手段的盲目和随意使用,为达到不同的教学目标需要选择不同的教学媒体。在适当的时候,“黑板+粉笔”是最佳的媒体选择。

(2)建立课程网站。

课程网站通常提供教学大纲、教学日历、电子教材、授课录像、多媒体课件、实验指导、作业与习题、网上答疑、在线测试及经验交流等功能。有效地利用课程网站可以调动学生的学习积极性,弥补教师在因人施教难免存在的不足,为教学质量的提高起到重要的保障作用。

四、结语

以上是我近十年来在《C语言程序设计》课程教学改革中一些体会。随着社会需要、计算机发展和学生知识结构的变化,对该课程的深入改革是一项长期而艰巨的任务,但只要勇于探索,善于总结,就一定可以取得理想的成效。

参考文献:

[1]董卫红.C语言程序设计的教学改革与实践[J].常州轻工职业技术学院学报,2007,(1):35-38.

[2]谢少安.关于大学互动教学设计的探索与思考[J].教育探索,2010,(223):61-63.

第11篇

关键词:游戏教学法;游戏案例;激励机制;案例教学

中图分类号:G431 文献标识码:A 文章编号:16727800(2013)009019203

基金项目:国家自然科学基金项目(61171075);湖北省自然科学基金项目(2011CDB297);武汉市教育局重点科研项目(2011020);湖北省教研项目(鄂教(2011)32);湖北省教育厅科研项目(B20129003);湖北省教育厅科学研究项目(B2013254);校本重点研究项目(2013JZ06)

作者简介:周方(1982-),女,硕士,武汉生物工程学院计算机与信息工程系讲师,研究方向为分布式系统与软件工程。

0引言

纵观笔者所在院系人才培养方案,除去专业实习与毕业设计环节,专科学生在校学习5学期,程序设计类课程开设共持续4学期,本科学生在校7学期,程序设计类课程开设共持续6学期,虽然经过长时间的系统学习,但是效果并不理想。该系针对面向过程和面向对象两类程序设计类课程,开设有《C语言程序设计》、《面向对象程序设计》、《Java语言程序设计》、《Delphi语言程序设计》、《C#语言程序设计》、《.Net语言程序设计》等一系列程序设计类课程,期望用程序设计语言的高覆盖率换取高就业率。但大多数学生均感觉投入了过多的精力,却没有精通任何一门程序设计类语言,并且从事计算机相关工作的毕业生

人数比例不到25%,这与人才培养初衷出现了严重的不一致。针对该现象,汲取各程序设计类课程任课教师的经验,在现有教学学时的基础上,通过调整人才培养方案,寻找各类程序设计类课程教学方法、教学内容、考试方式、教学评价等的通用性研究,并构建知识共享平台,摸索出一套适合本校校情的程序设计人才培养模式,并争取向其它兄弟院校推广。

1游戏教学法定义及创新

所谓游戏教学法,就是在分析常规教学方法的基础上,结合在校大学生爱玩游戏的实际情况,采用学生普遍感兴趣的游戏案例作为载体,教学过程中,注重与学生平等、信任关系的建立,实现“寓教于乐”的最高境界。具体创新如下:

(1)该方法通过深入剖析计算机相关专业程序设计类课程之间的关联关系,将其组成群组进行立项研究,通过调整教学大纲、注重第一门程序设计课程的教学、利用案例特别是游戏案例进行知识点讲解等方式,从多个角度激发学生学习程序设计的积极性,达到提高学生工程实践能力的目的。

(2)该方法首次将软件产业中的角色定位和角色职能,引入高校计算机教学课堂,以便学生对该行业有所了解,更早、更好地涉及该领域,从而定位和充实自己的职业生涯。

(3)该方法在进行案例教学过程中,以小组协作方式进行学习,以提高学生的团队合作意识;依照“将课堂还给学生”以及“授人以鱼,不如授人以渔”的思想,让学生自己组合成小组,自己参与管理,摸索适合自己团队的激励机制,促使学生在提升程序设计能力的同时,也相应提升其管理能力,这样有助于培养技能和管理相结合的复合型人才,全面提高学生的综合素质,以适应我国软件产业迅猛发展的需要。

(4)本项目研究坚持强化学生的抽象思维能力和设计(动手)能力的培养,从教学过程的一点一滴入手,逐步引导学生建立创造性学习和创造性工作的意识,以达到培养创新人才的目的。

(5)本项目以游戏案例为载体,快乐学习为理念,通过寻找程序设计类课程教学的通用性并建立通用性案例库等方式,达到缩短能力培养周期的目的。

2游戏教学法具体内容

该教学方法以《C语言程序设计》、《C++语言程序设计》为主,《数据结构》和《数据库》为辅,通过对这4门计算机软件系列类课程立项进行研究,针对学生爱玩游戏的特点,通过对知识点进行提取、整合,构建核心知识体系,将其融入到游戏案例中, 从教学计划、教学案例、教学方法、教学模式、教学内容、教学反思、评价体系、考核形式、激励机制等9个方面进行研究,具体内容如下:

2.1教学计划研究

虽然网络游戏已经盛行,但暂时还没有进入高校计算机专业的课堂教学,因此很难借鉴其它兄弟院校的教学计划,而培训机构和游戏公司却充当了先行者。可以借鉴其课程体系结构和人才培养方案,例如:开设游戏策划基础、游戏构架设计、Flash、Flex、Java、网络游戏程序设计、网络游戏算法设计、游戏数理概论、游戏渲染技术、游戏平台设计、游戏组建开发等课程。

2.2教学案例研究

建设程序设计专用案例库,以便复用。以游戏案例为切入点,结合当前计算机业内的热点,选取游戏中的某个片段,结合程序设计的理论知识,带领学生去实现,例如:人人网、腾讯网、雅虎网平台上的社区类游戏。案例收集过程中,兼具趣味性和实用性,例如:交通信号灯程序、打字程序、计算器、猜数程序等,以此来吸引学生,学生对其了解后,可进行适当的完善和修改,以培养其创新意识。

2.3教学方法研究

教学过程中,要综合考虑学生的知识水平、认知规律、学习特点和接受能力,同时也要清楚地意识到第一堂课的重要性。能否上好第一堂课,直接影响到整个课程的学习,在上第一堂课时,教师应帮助学生明确学习该门课程的目的和学习任务,建立一个完整的学习框架,使学生能树立为用而学的学习动机。在课前充分了解学生的基本情况,包括他们的入学起点、已学课程、对该门程序设计类课程的认识和需要、兴趣爱好和关心的话题等,还要对课堂上可能遇到的各种问题予以充分估计,并拟定多种相应的教学方案。

讲解知识点时,加入公司实际运作时岗位分工的介绍,例如:美工、前台程序员、后台程序员、游戏策划、运维等工作人员应具备的知识体系等,让学生依据自己的兴趣爱好,有针对性地培养和提高自己在该方面的能力,以便更早、更快地与工作接轨。

2.4教学模式研究

采用“以例激趣—以例说理—以例导行”的教学模式,激发学生的求知欲和表现欲,寓教于乐。心理学研究表明,良好的心境可以使思想活跃,思维敏捷,表达欲增强。游戏能激发学生的学习兴趣,能给课堂营造良好的氛围。游戏活动能激发学生的创新意识,针对青少年模仿能力强、好动、好玩、爱表现的天性,将游戏元素引入课堂,通过游戏案例对程序设计类课程教学方法进行改革,打破传统的“概念—命令—程序”一条线的教学安排,让学生能够轻松接受新知识,调动他们主动学习新知识、探索新方法的积极性,使得学习逐步进入一个良性循环的轨道[1]。

2.5教学内容研究

重设授课内容顺序。程序设计类课程,通常是按知识的体系结构进行组织,即“数据类型—基本结构—数组—函数—模块与项目—文件”的章节顺序,在课程起始阶段,系统地讲述各种数据类型和基本语句,需要花费大量的时间,映证相关内容重要性的例子又相对缺乏,导致许多学生在此阶段开始就丧失了学习的耐心和兴趣。按此授课内容顺序不利于案例教学法的进行,而授课时以案例为载体,将核心知识体系贯穿其中,则有利于加强学生对抽象知识的消化与吸收。

2.6教学反思研究

教学反思是教师进步的阶梯,是教师进步的重要途径,进行教学反思能够充分激发教师的教学积极性和创造性,并为其专业发展提供机会和条件。教学反思鼓励教师通过多种策略和方法审视、分析自身的教育观念及教学活动,充分尊重教师的主体地位,发挥教师的能动性、积极性和创造性。只有通过不断的教学反思,才能够逐渐提高教师的教学监控能力,提升教师的专业素质、综合水平等[2]。

2.7评价体系研究

要检测教学效果,必须有完善的评价体系,只有各个方面的评价指标都较高,才能真正做到教与学的完美结合,从而促进游戏案例教学在程序设计类课程教学中的发展。评价主要包括两个方面:对学生而言,应该从知识的掌握程度、理解程度和是否具备了独立设计管理软件的能力等指标来进行评价;对教师而言,主要从案例的选取、课堂实施效果以及教学艺术等方面进行评价。

2.8考核形式研究

计算机程序设计类课程的实践性决定了它不注重学生死记硬背各种语法规则,而看重学生利用程序设计解决实际问题的能力。因此,可以将考试形式多样化,采取闭卷、开卷、考查、免考、实验报告、口试(类似于毕业答辩)、现场操作、小论文、作品等方式,精心营造“创新”的浓厚氛围,通过全程考核来激发学生学习的主动性和积极性。

2.9激励机制研究

激励有两种对象:一种是游戏玩家,对游戏而言,激励就是游戏的可玩性,即如何使得玩家能够对某个游戏乐此不疲。从游戏的视觉效果、声音效果,到人物设计、剧情编制,乃至规则制定、操作设置等方面都充分发挥其激励作用。将玩家类型分为成就型玩家、探索型玩家、社交型玩家和杀手型玩家,研究其特点并制定相应的激励机制;另一种是学生,在项目的分工合作中,也需要构建健全的激励体系。

3结语

本方案已在笔者所在院系实施了3年半的时间,效果良好。该教学方法的实施,不仅提升了本系计算机相关专业学生的程序设计能力,而且锻炼了学生的创新思维能力。通过对学生进行试点,并跟踪调查,提升了学生在程序员岗位的就业率,同时也提高了学生对计算机相关专业的认知度和对学校的认可度。

参考文献:

第12篇

关键词:民办高校;C语言;教学改革

中图分类号: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语言程序设计》这门课程的教学改革国度,加强教学研究,发表高水平教学论文,完善网络教学资源,加强课程在线学习手段,提高学生的自主学习能力,最终增强学生对所学知识的综合应用能力。

参考文献:

[1] 任淑美, 李宁湘, 陈杰. 《C语言程序设计》课程教学改革与实践[J]. 计算机时代, 2014(7): 65-67.

第13篇

关键词:C语言;课程体系;融合教学;融合实践;卓越工程师计划;ACM/ICPC

C语言程序设计既是高等学校一门重要的公共基础课程,也是计算机专业的一门专业基础课。由于逻辑性和实践性强,使该课程的教学和实践存在一些误区,主要表现如下。

1) 学生不清楚本专业的特点。多数高校将本课程安排在大一的第一学期,由于对于本专业的课程体系了解不够,导致新生对各专业特点混淆不清,有的学生去报考计算机等级考试,结果有的还不如非计算机专业的学生,致使一些学生学习消沉。我们通过和学生谈心,得知不只是大一有这种现象,大二的学生甚至也存在这种心理[1]。

2) 学生学习本课程目的不明确,兴趣不高。在教学中,有不少学生问,既然C#和Java是现在的主流编程语言,为什么还要让我们学习C语言?所以我们在第一堂课介绍计算机语言发展时,将C语言和其他语言作比较,强调C语言是当前程序员共同的语言,它使程序员互相沟通,比流行语言都更接近机器。C语言更适合解决某些小型程序的编程,在编写底层的设备驱动程序和内嵌应用程序时,往往是更好的选择。有了C的基础,在需要时进一步学习其他语言,也是很容易过渡的。当然,第一堂课上,我们把重点放在培养学生的兴趣上,所以会用1个学时去展示历年实训的优秀作品,这些作品都是完整的系统,除了包涵基础知识,还有高级技术。我们向学生灌输学习这门课程的境界:Beginner―Advanced―Professional。

3) 任课教师对课程的定位、理解和把握不够。老师只有有一桶水,才能教给学生一碗水,教得了学生不等于教得好学生,学生的评教正说明了此问题。

通过实践,我们对计算机专业本课程教师的要求是:“复合型”的教师――既要精通这门课程,还要有3年以上实际项目开发经验,并且非常熟悉计算机其他学科的知识,而“教师的成功在于培养出值得自己崇拜的人[2]”。

因此,我们对本课程的定位是,以程序设计为中心,掌握语法,了解算法,重在算法的实现――编程。算法是灵魂,语法是基础,编程是中心。处理好三者的关系,直接决定了教学的成败。

算法尽管重要,但本课程不是算法设计课程,不可能过多地介绍算法,更不是在研究算法。我们要在学生学习编程的过程中,介绍相关的典型算法,引导学生面对问题去思考如何构造算法,编写程序的过程本身就是设计算法的过程。

为此,我们对本课程体系进行了改革,并将本课程与计算机其他学科进行了融合教学与实践,取得了非常好的效果。

1课程体系的改革

1) 修改教学环节。

我们把原计划一学期的教学时间调整为一学年。第一学期进行C语言程序设计基础的教学,第二学期进行C语言程序设计的进阶教学,在学年末进行该门课的实训,接着的暑假进行校外实习。根据不同专业,我们还开了小学期,在小学期里有连续12周的实验环节。

2) 修订培养计划和大纲,改革考核方式。

我们把本课程的教学改革与本学院的“卓越工程师计划”相结合,组织教师外出考察、研讨,然后重新修订了培养计划、教学大纲、实验大纲、实训大纲、实纲。相应地,考核方式也作了调整:基础教学由笔试转向机试,试题难度高于非计算机专业的等级考试,每次考试的题库都将重新命题和审阅。进阶教学由考试转向完成3 000行以上大作业形式的考查,实训由过去的全班一个模拟题目转向提供多个实际验收签定过的项目,进行C版本的再次开发,实习由过去的只是到实习基地参观调整为直接进企业拜师跟班学习。

3) 丰富配套的教学资源。

我校组织编写了《C语言程序设计基础及进阶教程》,被评为“十一五”国家级规划教材,已于2010年由清华大学出版社出版发行。我们还配套编印了上机实验的实践教程(将在今年教材的第二版时一并出版),以及实训时的实训教材和实习的实习教程,并建设了精品课程在线学习平台,供师生讨论和交流。制作了与教材配套的课件与教案,供教学参考。

我们专门搭建了学校ACM/ICPC在线测评平台,并组建了容纳120人的竞赛专用机房,成立了ACM/ICPC竞赛班。2008年起,河南省计算机学会主办一年一次的河南省大学生程序设计竞赛,我们每年都组队参加,在过去的三届竞赛上,共获得4枚金奖、2枚银奖、1枚铜奖。2009年参加亚洲区赛现场赛获得优秀奖。2010年参加第35届亚洲区赛,通过预赛,获得天津赛区、杭州赛区和成都赛区的决赛资格,并在成都赛区获得1枚铜牌,排名第59名,是河南省该项赛事最好成绩,为学校争得了荣誉。在学校内部,我们从2009年开始每年组织两次全校程序设计竞赛,至今已经主办了四次校级竞赛。

4) 转变教学理念。

我们提出了C语言与计算机相关课程的融合教学与实践的教学理念。

5) 采用新的教学方法。

在课堂教学中,我们使用任务驱动、课堂讨论、3W1H教学法、现场编程教学法、课堂陷阱教学法、任务分解教学法、任务贯穿教学法、分散集中教学法、两段教学法、实训优秀作品展示激励法、融合教学法等多种教学法,在课外使用网上在线讨论与答疑、竞赛辅导拨高法、课题组观摩讨论法。我们打破大学考试试卷不评讲的一贯做法,在第二学期的进阶课程第一堂课评讲上学期期末试卷[3]。

(1)3W1H教学法。即:What――解决什么问题,Why――通过实际生活例子引入为什么要解决这个问题,Where――在什么条件下能够解决,How――如何运用学到的方法、技术来解决问题。

(2) 现场编程教学法。在讲授有代码编写的理论课时,当一个理论知识介绍完后,教师出一个难易程度适当且有代表性的题目,让学生随堂写代码,并抽学生到黑板上写,或者抽几份学生作业当场点评。

(3) 课堂陷阱教学法。在期中检查座谈会上,有的老教师说学生很难发现自己程序的错误,而课堂上即使是老师手下的一个笔误,学生也能发现并喊错了。我们正是可以利用学生这种“容许自己范错,不许老师失误”的习惯,对于学生书写代码时容易出错,或者上机碰到的共性问题,我们在课堂上演示时设下陷阱,故意把代码写错,有的学生当时就能发现,而有的学生在编译时才发现有错,我们用自己的错误来吸引学生注意力,加深学生的印象。

(4) 课题组观摩讨论法。我们组织本课题组教师每两周进行一次教学观摩讨论,取长补短,相互学习,推广好的教学方法。

(5) 实训优秀作品展示激励法。我们在第一学期基础课程的第一堂课上展示往届的优秀实训作品,让学生觉得既好奇又深奥,极大地激励了学生的兴趣。临到毕业,大部分学生还能对这堂课记忆犹新。

2与计算机相关课程的融合教学

通过近5年的实践与总结,我们认为如果把C语言程序设计与计算机相关课程进行融合教学,必将促进学生对该门课程的理解,同时凝聚专业特色,促进其他课程的学习,对于学生的自学与综合能力的培养都有积极的作用。

1) 与数据结构融合。

在讲到C语言中的基本数据类型与构造类型时,围绕数据结构的一条主线――四种结构两种存储,联系数据结构中的数据类型,在抽象数据类型ADT中只定义了基本操作,复杂的操作是通过基本操作实现的。在抽象数据类型中定义的操作与C语言中的各种类型的运算,比如取余运算符“%”,在C语言中仅限整数。在讲到查找与排序时,对照数据结构中的查找与排序,介绍一些经典和效率高的算法。在讲到递归函数调用时,用数据结构中的递归调用时栈的进栈出栈变化过程讲解。在讲到scanf函数和其他读取字符函数时,将内存与键盘输入缓冲区结合,使学生更容易理解数据的输入格式。

2) 与操作系统融合。

在讲到变量的数据类型及变量的存储类型时,结合操作系统的内存结构,讲解内存区域分为6个不同的部分来存储不同的数据,使学生了解内存组织的有序性。特殊地,寄存器变量不占内存,而字符串常量存放在符号常量区,通过讲解内存结构,学生就明白静态变量为什么第一次使用时会初始化,以后再使用时用的是上一次的值。在讲解数组的连续存储、链表的动态存储时,结合内存就会理解得更透彻些,甚至可补充内存中堆与栈使用的知识[4]。

3) 与计算机组成原理融合。

入学时,教师介绍计算机发展,一般都会讲到冯•诺依曼原理,那么为什么要学习语言呢?还得从计算机组成原理来讲,从电脑城装配电脑介绍起,首先运用BIOS程序,然后再启动操作系统,最后再运行用户的应用程序。而BIOS程序、操作系统和应用软件都是用语言开发出来的软件,之前都曾经有过C语言版本,BIOS现在还是C语言编写的,而操作系统的一些内核也还有C语言的许多代码。因为大一第一学期的计算机科学导论与本课程是同步开设,学生对计算机的了解还是有限的。同样地,在讲到C语言的三种进制数、位运算、指针时,与计算机的字长、补码运算、指令加以对照,就容易理解些。

4) 与面向对象语言融合。

掌握好一门语言,可以自学其他语言。做到这点不容易,因为大学专业课的特点是学一门结一门,没有哪所大学或哪个专业开设了所有语言,所以在语言课之间融合对照学习,会收到非常好的效果。比如讲到结构体时,与面向对象中的类对照,将结构体变量与对象对照,就比较好理解数据类型和类不占内存,对象与变量占内存了。讲到函数时,与方法对照,讲到函数参数时,补充面向对象中引用的使用,对将来学习面向对象语言和数据结构非常有益。

5) 与数据库原理融合。

程序所需数据从哪儿来?运行结果保存到哪儿去?在讲到文件操作时,将C语言中用到的文件与数据库中数据文件作比较,再联系结构体成员与数据库中的字段、记录,使学生对程序的理解更完整一些。

6) 与编译原理融合。

在演示程序开发过程、多文件的操作、编译预处理时,均可以联系编译原理中编译器的词法/语法分析,教师可以演示单步编译,鼓励学生思考编译的过程。

7) 与高等数学、线性代数、概率论、离散数学、数值分析、运筹学等融合。

如果能将学习C语言与离散数学中的集合论、代数系统、图论结合,再解决高等数学、线性代数、概率统计、几何、数值分析和运筹学中的数学问题,能够极大提高学生的兴趣,也巩固了所学的知识。

8) 与网络融合。

使用C语言可以开发C/S结构的客户端与服务器端程序,在实训和实习时可以分层次进行一些高级的练习,比如C/S结构的网络编程。再提出一些问题,比如如何实现抓图和打印等,培养学生的自学习惯。

9) 与软件工程融合。

结合专业特点,讲解软件开发不仅仅是写代码,还是一个模型的开发过程,对于学生将来毕业做好毕业设计与写好毕业论文有指导意义。特别是软件工程和软件测试专业更是需要了解。

其实,我们在讲授C语言程序设计时,几乎可以和所有计算机专业课程联系起来,比如选修课算法分析与设计,还可以和ACM/ICPC结合,通过ACM/ICPC竞赛的题目寻找合适的教学切入点,有时也可以引入离散数学中的逻辑推理知识,或者构造一种教学情境,让大家感兴趣,能被吸引住,使学生一步步跟着往前走,比如抽几名学生排队讲排序算法。

也可以和非计算机专业课程联系起来,比如计算机英语。同样地,在教学过程中,融合一些新的技术,比如物联网、CPS计划等,学生会更感兴趣。如何融合比较教学,既能深入浅出地完成教学任务又不拖延学时,需要把握好这个度。

3与计算机其他课程的融合实践环节

除了做到融合教学外,在实践环节上如何融合也至关重要。

1) 搭建ACM/ICPC校内在线测评平台。

我们采取竞赛辅导拔高法,成立竞赛班,采取“讲-帮-带”的方式,建立了郑州轻工业学院在线测评平台,如图1所示。丰富了题库,组织校内选拔赛,教师带队参加竞赛。

自2009年开始,我们每年举办两次全校性质的大学生程序设计竞赛:12月举办新生程序设计竞赛(个人赛)、5月举办一次全校程序设计竞赛(组队赛)。均有IT公司赞助,并有开幕式和颁奖仪式,极大地提高了学生的编程热情。

参加ACM/ICPC竞赛,有助于培养学生的抽象思维、逻辑思维、心理素质、团队合作和协同能力[5]。

2) 与考研结合。

我们从大一第一学期就让学生思考自己将来的出路:工作或考研。如果工作就必须学好知识,重视实践,提高动手能力。

3) 与操作系统、C++融合实训。

在后续的操作系统和C++的实训时,安排我们C语言程序设计课题组的教师参与实训,使得C语言程序设计课程的学习更加长期有效。

4) 把等级考试当做门槛。

我们把全国和河南省历年计算机等级考试的题目穿插到平时的教学中,让学生把握每个知识点。

5) 介绍学生参加教师的项目。

我们在授课的同时,也有心培养一些勤于思考用心的学生,介绍他们参与到教师的应急系统、嵌入式、GIS、网络等实际项目开发中,引导学生自学C++和Java、JSP等工具,让他们从实践中得到锻炼,积累经验。

6) 跨学科实训并总结。

在第二学期期末的实训环节,我们让学生分组去做一些稍微大一点的题目。比如C语言语法分析模拟器、BIOS模拟器、科学型计算器、TC模拟器、Windows小游戏、信息系统等。在实训结束后,我们安排优秀实训作品展示总结会,也是对一学年课程学习的总结。有很多外专业的学生自愿来参加。通过展示交流,学生看到了别人的成绩,也看到了自己的差距。

4结语

通过对C语言程序设计存在问题进行思考和分析,我们结合学校实际,提出了C语言程序设计与计算机相关课程的融合教学与实践。经过4年的教学与实践检验,取得了较好的教学效果,对C语言程序设计,以及其他程序设计语言的教学都有一定的指导意义。

参考文献:

[1] 李玉梅.“C语言程序设计”课程的“教、学、做”一体化的探索与实践[J]. 科技创新导报,2010(28):164.

[2] 朱立华,俞琼. C语言教材建设的研究与实践[J]. 计算机教育,2009(13):150-153.

[3] 徐小青,李晓东.“高级语言程序设计”课程教学改革与实践[J]. 计算机教育,2009(13):46-48.

[4] 王祥瑞. C语言中的内存泄漏分析[J]. 长春大学学报,2009(6):27-29.

[5] 武建华. 基于ACM模式的数据结构实践教学改革与探索[J]. 计算机教育,2009(13):114-116.

Integrated Teaching and Practice of C Language Program Design and Other Subjects of Computer

YAN Hongyan1, JIN Baohua1, ZHANG Xiaojuan2, XU Hongxia3

(1. School of Computer and Communication Engineering, Zhengzhou University of Light Industry, Zhengzhou 450002, China; 2. Department of Foreign Language, Zhengzhou Tourism College, Zhengzhou 450009, China; 3. Art Design Department, Jiyuan Vocational and Technical College, Jiyuan 454650, China)

第14篇

关键词:计算机专业;创新能力;多维平台

在高等教育阶段,大学生创新能力培养的主动力来源于学生自身,但授课教师、学习环境等因素也对学生创新能力的培养起着重要作用。国内诸多学者对高校大学生的创新能力的培养进行了相关的研究和实践,取了一定的成果[1-5],但研究主要还是集中在具体课程或教学方法改革方面,对于创新能力培养平台构建的研究相对较少。本文针对计算机专业学生的特点,在对西安科技大学计算机学院近900名本科生进行问卷调查的基础上,深入分析了高校计算机专业学生创新能力的现状,并以此为基础,构建并实践了高校计算机专业学生创新能力培养的多维平台。

一、创新能力培养的多维平台构建

2015年笔者对西安科技大学(以下简称“我校”)计算机学院近900名本科生进行了创新能力问卷调查,通过对调查问卷的分析,了解到影响学生创新能力的关键因素包括:学生主观能动性、教师创新能力、课程内容、实践环节、竞赛参与、职业规划等。以调研结果为依据,以创新能力培养为导向,建立课堂、实践和课外三层教学体系,并在课程、学生、教师各自的维度进行具体分析,找出每个维度的关键目标,并寻求跨维度三层教学体系各目标之间的对应关系,以此来构建大学生创新能力培养的多维平台的基本框架,并据此设计各个维度的具体任务,达到贯穿维度与教学体系创新能力培养的目标,其中大学生创新能力培养的多维平台的基本框架见图1。在课堂教学层上,教师教授给学生相应的理论知识,学生通过课堂上对于教材、辅导资料的了解,掌握相关课程的基本知识和原理,这个也是创新能力培养金字塔的基础。而在实践教学层上,主要是对于学生实验课程和设计内容的安排,在实践层上,学生通过教师的指导,逐步具备运用知识与工具的技能,教师在这一层的主要任务是对实践操作的指导。最顶层的课外教学层,教师的主要任务就是引导并激发学生的学习兴趣,对学生的职业规划给出合理的意见,而学生更多是通过学科竞赛和实习活动将前两层中掌握的基本知识、方法和工具加以运用,并结合自己的兴趣,寻找创新点。

二、大学生创新能力培养的教学实践

(一)课堂教学

1.更新教学内容。本论文主要依托于陕西省教育厅教改项目及西安科技大学教改项目,而项目组主要成员承担的课程为:C语言程序设计、Java程序设计、程序设计方法学,因此本项目主要围绕上述课程进行教改活动。对Java程序设计课程内容进行改革,引入Java认证考试真题讲解,因学生对此类题目比较感兴趣,因此引进相关内容可以激发学生学习的积极性。在程序设计方法学课程中添加设计模式的内容,学生普遍反映此知识模块与就业应聘的笔试内容关联度较高。在C语言程序设计教学中,加大了算法设计教学内容的比重,将往届的蓝桥杯程序设计大赛的填空题和编程题作为例题补充,激发了学生的学习兴趣,也对相关竞赛的难度有了提前的了解和准备。2.重编教材。重新编写了《C语言程序设计教程》和《Java语言程序设计教程》。与以往教材相比,《C语言程序设计教程》引入案例化教学思路,侧重培养学生的程序设计思维能力和实践能力。教材分为基础篇和实践篇,其中实践篇内容安排了俄罗斯方块、贪食蛇、英文单词小助手、计算器、万年历和保龄球计分系统,学生通过对这一教材的学习,获得了C语言程序设计的基本知识、基本算法设计思想和实践编程技能,具备了分析问题和解决问题的能力。3.开发多媒体课件。在调研了优秀获奖多媒体课件后,根据C语言课程的特点,开发制作了C语言程序设计各章节的多媒体课件,该课件通过1个年级9个班的学生的使用,受到学生普遍欢迎和高度评价。对程序设计方法学课程的多媒体课件,引入了设计模式的相关内容,并通过图片与动画进行设计展示,使得互动效果更明显。4.开发课程网站。本课题通过Java程序设计课程网站直观的课程内容,简单直接地提供给学生关键学习热点,让学生可以在线留言,方便教师与学生进行及时的互动交流;同时网站后台可以随时教师当前的授课计划或者备课的教案,方便学生进行课前预习。充分利用互联网平台,在C语言的教学过程中,可以建立微信平台,教师可以在平台上推送相关知识内容,这样有助于拓宽学生的知识面。同时教师还可以对个别课程的核心知识点进行微课的设计。5.整理学习资源。在教学过程中,主讲教师还需对所讲内容进行相关资料的收集整理,提供给学生可拓展视野和思路的网络新闻、学习网址、参考书籍或者网络视频等电子资料,也可布置相关的关键词,由学生自发查找并在课堂进行专题报告,这样既可以挖掘出学生真正的兴趣,又可以深化知识内容。重视作业的点评与讲解,将往年学生的电子版作业进行整理,在布置给学生作业前进行往届优秀作业展示,学生可在此基础上进行功能拓展,在Java程序设计课程中,使用此方法进行作业的布置,学生普遍反映在展示优秀作业后,对自己的作业有了新的启发,完成效率明显高于无参考作业的课程。6.改革教学手段。引入并实践项目驱动教学模式、探究式教学模式、翻转课堂等教学模式,实施“观察—实践—启发—创新”的创新能力培养的教学模式。在Java程序设计课程中实践项目驱动教学模式及翻转课堂教学模式,可以有效培养学生的创新能力。

(二)实践教学

1.实验指导书的编写。针对Java程序设计中面向对象的新特点,在实验指导书编写中设计丰富有趣的实例,引导学生主动思考,开放式的实验内容能使学生可以更好地发挥自己的创造力。在程序设计方法学课程的实验指导书编写中,根据不同学生的程度划分基本要求和提高要求,学生可根据自己的水平进行选择,鼓励学生尝试高级别的实验项目。2.课程设计。一般第3至第7学期每学期将会安排至少2门的课程设计,但教师发现这一安排不利于学生学习效果的提升。为了解决这一问题,在软件工程专业,试点进行了Java程序设计课程和软件工程课程的联合课程设计,合并两周的课程设计时间,教师在原有大纲知识覆盖的标准下,重新设计能结合两门课程知识要点的综合性题目,有益于学生对综合知识的运用与实践。3.实训环节。不仅重视校企联合实习实训基地的建立,还要充分利用实习实训基地的相关师资力量。计算机学院与高新软件园的几家企业均签订了校企联合基地的相关协议,因此在实训环节由这些企业选派优秀企业导师对学生的专业综合技能进行培训,对提升学生实践能力,夯实学生的基础知识大有裨益。在2015和2016年的生产实习环节,笔者带领部分专业学生走进企业进行实地学习,有效提高了学生学习的积极性,对学生创新能力的提升也起到了非常积极的作用。

(三)课外教学

1.建立本科导师制。鉴于各学校近年来引进人才的规模加大,学院现有师资力量及水平逐年增强,建立“导师制”,由一名教师对每个年级的若干名学生进行指导,教师不仅可以对学生学习中存在的问题进行答疑解惑,还可结合自身科研方向,鼓励学生参与其中,增强学生的创新能力。近三年我校相关导师指导学生申报并获批大学生创新创业实验国家级3项,省级6项。这些题目的来源都与导师的科研项目相关,对学生更早接触和了解新技术和新知识起到了积极的推动作用。2.成立学生团队。成立正式的软件协会,面向全校招募有意在计算机领域发展的学生,并通过考核筛选出符合要求的成员,随后协调一批经验丰富的教师,对学生的创新能力进行定期培训。同时可结合教师的科研项目和各类竞赛项目,选择团队学生作为主要参与人员积极参与科研项目。由学生自主管理,小组进行学习和交流,并进行项目申报,为学生的创新创业实验和学科竞赛项目进行知识储备和项目实训。3.鼓励学生参与学科竞赛。针对全校程序设计大赛甄选出的优秀选手,选派具有丰富经验的指导教师进行算法专题讲座和培训,为创新中的核心技术储备人才。在近几年的数学建模比赛、蓝桥杯大赛、ACM程序设计大赛上我校取得了喜人成绩:其中2014年蓝桥杯全国总决赛二等奖3人,三等奖6人;2015年一等奖1人,二等奖4人,三等奖7人,团队赛总决赛二等奖;2016年二等奖3人,三等奖7人。2016年中软杯全国总决赛三等奖一项,ACM省赛三等奖两项,互联网+省赛银奖1项,铜奖1项,近3年学生获得软件著作权20余项。由此可见进行学科竞赛可大大提高学生的创新能力。4.构建信息平台。集合课堂、实践和课外三个维度,构建网络化信息平台,引进项目管理的新思路,在平台上建立以项目为引导的学习小组,将学生参与竞赛的项目整合在平台上进行信息化管理。在使用过程中,要注意采纳学生的意见和建议,进行平台功能的重构,可引入竞赛信息板块,创业项目板块,并将课程内容增加到网络信息化平台中,使学生可在此平台上能够进行有效学习。

三、结语

大学生创新能力培养多维平台的构建,解决了现有高校学生创新能力培养缺乏系统体系的问题,从多维度进行实践,摸索并总结出了基于此平台培养学生创新能力的一系列经验,下一步将聚焦于如何在该平台下建立学生和教师的激励及成效评估机制,以便保证大学生创新能力培养平台的可持续运作。

参考文献:

[1]陈新.以科技竞赛培养学生创新能力[J].发明与创新(综合科技),2011(2):42-43.

[2]罗晓霞.融合式的实践教学在软件工程专业中的应用[J].科教导刊,2015(12):101-102.

[3]史晓楠.软件工程专业学生创新能力培养的探索与实践[J].科技创新导报,2014(10):226-227.

[4]史晓楠,贾澎涛,罗晓霞.计算机专业学生创新能力培养研究:以西安科技大学为例[J].软件导刊(教育技术),2015(11):30-32.

第15篇

关键词:高职院校,程序设计,语言,教学方法

 

一、引言

近年来,随着科技的进步,各行业对计算机技术的应用越来越普及,为适应社会对高层次人才的需求,各高校也在非计算机专业加强了计算机知识的教学,在一些理工科专业中开设了计算机公共基础课程,并进一步提升了程序设计课程的重要性。另外,程序设计课程是高职高专院校计算机专业的专业基础课程之一,它不仅可以培养学生的编程能力,增强学生的逻辑思维能力,还是学生学习好后续专业课程的前提和保障。

为了将学生顺利地领进计算机程序设计语言的大门,为了培养和训练学生的逻辑思维能力和编程的实际动手能,为了取得较好的教学效果和提高教学质量。笔者通过近年来的教学经验,对程序设计课程教学中存在的实际问题做个分析、在教学思路与教学方法上提出一些建议。

二、教学中存在的问题

1、学习目标不明确,兴趣不浓,积极性不高

由于高职院校学生的入学成绩相对较低,学习基础和学习能力相对较差,对知识的渴望程度有限,在没有明确的学习目标指引下,很难学好一门课程。免费论文参考网。在教学中本人发现,有很多学生不清楚学习程序设计语言课程的重要性,认为程序语言设计课程与他未来的工作毫无关系;有些学生认为学习程序设计语言太枯燥,不如学习多媒体或网络的一些课程;有些学生是因为学习程序设计需要较强的逻辑思维能力和一定的数学、英语基础,因而在学习程序设计时显得力不从心,不能掌握应用计算机解题的基本思维方式,对计算机程序设计产生畏惧感,知难而退。

2、教学方式呆板,教学内容陈旧

在教学过程中,有许多教师仍在沿用传统的教学方法,偏重知识的传授,忽视能力的培养。课堂上往往只是知识的传授者、灌输者,以教师作为课堂的中心,以广大学生为讲授对象,教师一边讲解教学内容,一边进行演示,课堂气氛沉闷,师生间缺乏互动沟通,课堂上留给学生练习的时间偏少,忽视了学生的认知主体作用,无法激发学生的积极主动性,所有学生被迫按照老师的讲授速度进行学习,不利于培养思维能力与创造能力,多数理论停留在纸上谈兵的阶段。

教材内容陈旧、枯燥,脱离课程教学目的,脱离实际。有些教师往往把很大的精力甚至是主要精力放在程序设计语言的语法规则和语义上,不自觉地把“程序设计”课变成“程序语言”课,在考查方式上也常常是一张试卷决定该课程的成绩,导致了学生学习精力的偏移教材中的例题和习题大都是立足于程序语言本身的语法规则,与现实生活相差太远,致使部分学生觉得学习编程语言是一件枯燥的事。

3、过于注重理论学习而忽略了编程实践能力

在高职院校中,非计算机专业的程序设计语言课程的课时量往往很少,例如我校安排的理论课时和实践课时加起来总课时为64课时。在教学过程中,很多老师由于受到课时的限制,无法按照正常进度讲授完所需的课程知识,或者无法对知识进行详细展开讲解,只好占用上机时间讲授理论知识,导致学生过度重视课本上的理论细节的东西,忽略问题的整体结构,轻视实验课上的上机操作。

三、提高语言程序设计教学质量的几点思考

1、努力培养学生学习兴趣

对于计算机程序设计语言而言,由于许多学生在进入大学以前并未接触过它,所以,他们会认为计算机语言很深奥、很难学,导致对计算机语言的学习缺乏信心。教师应该采取适当的方式激发学生的积极性和自信心。

“兴趣是最好的老师”, 因为高职学生有基础较弱自律性不强的特点,所以在讲授语言程序设计课时更应该优先考虑如何调动学生的积极性,激发学生的学习兴趣,点燃他们的学习热情。所以在上课伊始应该向学生介绍作为 21世纪的大学生在计算机应用方面的要求,以及计算机应用对于他们今后就业的影响以及工作中的用途。另外,在刚进行计算机语言教学时,不易涉及难度大、不易理解的内容,要突出趣味性、易学性,降低学生对新事物的困难感。可在课堂上当场编写一些小程序、小游戏,并进行演示,以调动学生的兴趣和积极性。

2、采用灵活多变的教学方法

1)实例教学法

教师根据本节课的教学目标,确定本节课的教学目的,然后再精选具有一定代表性的、能涵盖本节课要讲的知识点的案例程序,通过对案例程序的简单讲解引出本节课要讲的语法知识,运用语法反过来分析程序的运行结果,根据程序的执行过程分析程序的功能,根据程序的功能反过来分析编程思路,理解了上述编程思路后,运用这种方法结合原程序结构再来完成一系列类似程序的编写。

下面以本人C语言课程中“for 语句”的教学过程为例,详细阐述一下运用实例教学法如何来实施课堂教学。

①根据本节课在教学大纲中的要求:熟练掌握for语句的使用,利用任务驱动的方式为本节课设定任务。(任务:求1-100之间所有的奇数和)

②精心选择案例程序。

③以案例程序引入本节课的for语句的语法知识,介绍for语句的一般形式,讲解for语句的执行过程。

④通过前面两项的讲解,将所学知识运用到案例中去,画出程序执行的实际过程,从而得出程序运行的结果。

⑤针对案例进行编程思路上的分析,让同学们真正地理解各变量及表达式在for语句中所起的作用,以便于他们今后独立编写程序。

2)比较归纳法

程序设计语言中有很多的定义、概念、语法规则,它们的使用灵活,功能强大,但是难以记忆。教师可以通过比较归纳的方法将这些概念、语法归类,使学生获得的零散知识系统化,对知识理解的更深刻,掌握得更牢固。

下面还是以本人C语言课程为例,在讲解完指针这一章后,及时归纳和总结指针的数据类型是至关重要的。学生们普遍反映这样一个问题,前面的章节学得挺明白的,一到了指针这一章就开始糊涂起来。而指针又是C语言的一个重要概念,也是 C语言的一个重要特色,如果不掌握指针就是没有掌握C的精华。免费论文参考网。所以在教学中一定要提醒学生,在学习本章内容时要多思考、多比较、多上机,应用的时候应十分小心。

3、突出上机实践的重要地位,加强操作环节教学指导

为了锻炼学生解决较大型复杂问题的能力,老师在安排实验课内容时,可以布置一个大题目作为长期任务,再按不同功能模块分解开来,形成一个个短期任务。每次实验课要求学生完成其中一个或几个简单的功能模块,这样,每次实验课就好像一条铁链上的一个个铁环,紧密联系。仅以VF语言课程教学中的“学生信息管理系统”为例,把这个系统作为一个长期任务,然后把这个系统划分为若干个小的模块。免费论文参考网。比如输入输出学生信息、添加学生信息、修改学生信息、查询学生信息等模块。这样,当学生完成每一个功能模块后,便发现原来自己实现的是一个复杂的程序。通过这种方法,一方面可以大大降低学生对大型复杂程序的惧怕心理,另一方面也可以培养学生结构化程序设计方法的思想。

四、结束语

程序设计语言课程作为高职院校学生的计算机基础课程,直接影响到学生的后续课程的学习以及未来就业中的实践能力,所以在为高职院校的学生讲授该课程时,一定要从内因和外因两方面进行深入研究学生的状况,合理利用教学环境中的各种教学资源,注重以兴趣为导向设计教学内容,并且采用有效的教学方法,这样就能够使该门课程的教学质量上一个台阶。

参考文献

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

[2] 杨延广.对高职程序设计课教学方法的研究与探讨.高教论坛,2006(2).

[3] 范新明.高校非计算机专业《程序设计基础》课程的教学模式研究与实践[J].电脑知识与技术,2009,5(20):5 462-5 463.