c语言程序设计实验报告范文

时间:2023-04-02 18:47:07

导语:如何才能写好一篇c语言程序设计实验报告,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

c语言程序设计实验报告

篇1

实验目的

1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。

2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。

3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。

实验内容

计算并输出1000以内的10个素数以及它们的和。

要求:

在程序内部加必要的注释。

由于偶数不是素数,可以不考虑对偶数的处理。

虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。

输出形式为:素数1+素数2+素数3+…+素数10=总和值。

算法描述流程图

Main函数:

判断素数:

源程序

#include

#include

int sushu(int n)/* 判断素数的函数 */

{

int t,i;

t=sqrt(n);

for(i=2;i1;i-=2)/* x为奇数时,做函数计算 */

{

n=sushu(i); /* 做判断素数的函数调用 */

( 励志天下 )

if(n!=0)/* 对素数的处理 */

{

a[j]=n;/* 把素数由大至小存入数组a[ ]中 */

篇2

关键词:C语言;教学内容;教学方法与手段;教学改革

中图分类号:G642 文献标识码:A

1引言

我院“高级语言程序设计”课程是以C语言作为指定语言的。它不但成为计算机专业的必修课,而且也越来越多地成为非计算机专业的学习课程。但在“高级语言程序设计”课程教学中,许多学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,且程序设计课程逻辑性又很强,学生不能很好地理解算法,编写程序也很困难,教师教学和学生学习都感到困难,并在不同程度上产生畏难心理。特别是我院将C语言作为学生进校后首先接触的第一门专业基础课,这种现象尤为明显,而C语言基础打不牢会直接影响后续专业课程的学习。因此如何改革“高级语言程序设计”课程,进一步提高教学效果,成为专业课程建设中的一个紧迫任务。

本文根据多年的程序设计课程的教学实践,对“高级语言程序设计”课程从教学内容、教学手段、教学方法等方

面提出几点建议。

2教学内容

2.1教材的选择

我院一开始使用的教材是由谭浩强教授编著的《C程序设计》,该书的特色是针对初学者的特点和认知规律,精选内容,分散难点,降低台阶,例题较为丰富,通过深入浅出的叙述,阐明C语言复杂的概念,知识结构系统、清晰、通俗易懂。但在编程思路和编程技巧方面较为欠缺。

在2005级学生中使用了Harvey M.Deitel和Paul J. Deitel编著的《C程序设计经典教程》,该书的特色是应用软件工程原理讲述结构化程序设计方法,加强对控制语句和模块化的有效使用,并强调程序的清晰性,通过从各种渠道收集来的大量实例、习题以及项目,让学生能够有机会来解决现实世界中有趣的问题,对学生编程思路和编程技巧有很好的帮助。但在整个知识结构方面不如谭书系统和清晰。

由以上分析可知,两本教材各有利弊,经过实践比较,并结合我院学生的实际情况,现在计算机科学与技术系仍然使用《C程序设计经典教程》教材,而其他系使用《C程序设计》教材,但都给出若干本参考书,以弥补各自的不足。如电子信息工程系的参考书为:

《C语言设计教程》,薛万鹏等译,机械工业出版社

《C程序设计经典教程》,(美)Harvey M.DeitelPaul J.Deitl著,清华大学出版社

《从问题到程序――程序设计与C语言引论》,裘宗燕编著,机械工业出版社

《The C Programming Language》,Brain W.Kernighan,清华大学出版社

2.2课堂教学内容的改革

以谭浩强的《C程序设计》为例,教学内容主要包括C语言语法基础、数据类型、程序控制结构、函数、指针、文件等。教材在内容组织上,在语法上讲解过细、过多。在各章节的编程例子中,多数难度较大,分析较少;不够形象,学生较难理解,且适用性不强。笔者本着“深入浅出,突出实用”的指导思想,在课堂教学过程中,对教学内容重新进行了归纳,将难点再次分散,以缩小台阶,达到循序渐进。例如,C语言数据类型、运算符、表达式种类繁多,放在一块讲授,学生学习起来难度较大,且过于枯燥,于是笔者就将其分散在不同的章节。譬如,先介绍算术型的数据类型、运算符以及相关的表达式,使学生学习起来没有想象中的那么难,紧接着又教学生编写简单、实用的C程序,然后趁机引入基本输入、输出函数就顺理成章了。这样一来台阶小了,学生的信心也增加许多,学习积极性很快就被提高起来。对于生硬的语言叙述,尽量改用生动的、学生熟悉的例子进行比喻,进行详尽引导。例如,在开始学习指针的概念时,教材对“间接存取”叙述比较深硬,学生难以理解,就借用比喻:将A房间的钥匙放在B房间里,若要取A房间里的物品,就需要先打开B房间,取出A钥匙,再打开A房间,取出A房间的物品,这就是“间接存取”。学生很快就能理解,也加深了指针的概念。在教学过程中,还应及时查阅英文版教材和有关报刊杂志,对较难理解的概念,用不同的方式给以解释。

2.3实验教学内容的改革

“高级语言程序设计”是一门实践性很强的课程,既要掌握概念,更要动手编写程序。其主要任务就是培养学生具有一定的阅读程序、设计编写程序的能力,分析问题、解决问题的能力和逻辑思维的能力。因此,上机实验是学习程序设计语言必不可少的实践环节,特别是C语言灵活、简洁,更需要通过编程的实践来真正掌握它。

笔者对实验内容上进行了认真的探讨,在实验题目的设置上,应根据课时安排以及要掌握基本知识进行,一般一次实验给出2~3个实验题目,分为必做与选做。这样做的好处是一方面保留基础性实验,相对简单的基础编程实验。使学生能够较顺利地编写出程序,并及时理解和消化课堂教学内容,同时也使学生获得一定的成就感,使其学习热情得到进一步的提高。另一方面,增加一些实用性强的、难度略大的实验题目,以进一步提高学生的编程能力;同时还可以满足较高层次学生的需要。下面以电子信息工程系为例介绍实验内容的设置。

我院为非计算机科学与技术系和信息安全系开设的“高级语言程序设计”课程的实验学时是12学时,共4个实验。由于实验课时较少,在实验内容的安排上就显得十分重要。第一次实验安排在约6学时以后,实验内容是“熟悉上机环境、编写简单程序”,其目的是让学生熟悉C语言上机环境,学习完整的C程序开发过程和程序调试方法;理解简单的C程序结构。为学生课下上机练习打下良好的基础。鉴于函数、指针和文件是C语言的重点和难点,我们分别将其作为第二、第三、第四次的实验内容;其他各章我们也给出相应的实验题目,让学生课下自己上机练习。

另一方面要重视实验的总体要求,强调上机实验要经历三个步骤:

(1) 上机前的准备

让学生写出实验预习报告。内容包括对实验题目的理解和分析,选择适当算法,画出流程图并编写程序。分析可能遇到的问题及解决的对策。准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。

首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后进行调式。在调试过程中,要充分利用C语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值的变化等。整个过程应自己独立完成。不要遇到一点小问题就找老师,学会独立思考,勤于分析,通过自己实践得到的经验用起来更加得心应手。同时加大实验的辅导。

(3) 整理上机实验结果,写出实验报告

实验结束后,要求学生整理实验结果并认真分析和总结,写出实验报告。实验报告要包括如下内容:

实验内容:实验题目与要求。

算法说明:用文字或流程图说明。

程序清单

3教学方法与手段

在教学方法上,从以教师为主体的“满堂灌”的方式转向以学生为主体、教师为主导的教学方法。有效地培养学生的分析问题与解决问题的能力。以“选择排序”为例,笔者没有平铺直叙地介绍算法与程序代码,而是先给出例题:在长度为10的数组中找出最小元素,并与第一个元素对调,引导学生编写出相应程序。然后给出新的问题:在后9个元素中最小值与第二个元素对调应如何修改;……;在后10-i个元素中最小值与第i+1个元素对调应如何修改;最后总结出选择排序算法的全过程,直至整个程序编写完整。即沿着问题带出算法,由算法带出程序设计语言的思路讲述C语言中的各个知识点。整个讲解过中结合板书,逐步引导,层层深入,取得很好的教学效果。

在C语言教学过程中,注意各章节讲述中的前后呼应和类比,加深学生的理解与应用。例如以“求1000以内的所有‘水仙花’数”例题为例,笔者先后分别在循环控制、数组和函数三章中进行了讲解,让学生自己总结出最佳的程序结构,提高编程能力。同时通过不同的解题方法,有利于学生加深对所学知识的理解,让学生真正体会到C语言的灵活性,激发学生的学习兴趣和求知欲。

另外在C语言教学过程中,还要充分发挥学生的积极性与主动性。笔者针对这门课程的特点,激发学生主动思考,课前可以给学生布置几个专题,让学生利用课余时间去思考、收集资料,并在课堂上组织学生发言和讨论。这种教学法不仅可以让学生获得许多课外知识,同时也促进教学内容的改革,而且也有利于充分挖掘学生的学习潜力。

在教学手段上,积极采用现代化的教学手段,如多媒体教学、网络教学等,这样有利于激发学生的学习兴趣,发展学生的主体能力;同时由于多媒体信息量大,也能够优化教学过程。但多媒体教学也有一些不利之处,主要体现在不恰当的使用会分散学生注意力,影响主要问题的理解,也不利于发挥学生的想象力。在C语言程序设计课程教学过程中,考虑到课程的特点,扬长避短,将传统教学与多媒体教学进行了有机的结合。例如可以将一些概念、语句的格式、大信息量的案例代码制作成课件,在课堂做展示供学生增加信息量用。但对于案例分析或程序的编写过程,就发挥传统教学的优势,进行课堂讨论、板书讲解、结合提问,将问题层层剖析、层层深入,达到师生互动的效果,学生的想象力也会得到充分的发挥,对问题的理解也变得更容易。另外,充分利用网络资源,将电子教案、大纲、课件、习题等放在网上,供学生自行调用,同时通过其QQ、E-mail等形式对学生的提问进行

答疑、讨论,以弥补课堂教学的不足。

4改革课程考核办法

建立一个服务于课程目标的学生学习评价方法是一项非常重要的工作,考核不是目的,“以考促学”才是考核的本质。

传统的期末“笔试”这种单一的、“一考定终身”式的考核方式,已远远不能满足课程的需要。为使考核真正发挥“以考促学”的作用,我们改革了考核内容和考核方法,重视对学生学习过程的考核,重视实际动手能力的考核,侧重考核学生对知识的融会贯通和灵活运用能力,而不仅仅是基本理论、基本知识的掌握。具体的改革措施如下:

(1) 变单一考核为复合考核,从多个方面对学生进行考核。课程总成绩由平时成绩、实验成绩、期中成绩、期末成绩四个部分构成。其中,平时成绩考核包括对出勤、随堂实训、课堂提问、作业等部分;实验成绩考核是针对课程的4次实验成绩。

(2) 衡量这门课学习的好坏,不是看学生“知不知道”,而是“会不会干”。期末试题考核的方法不用是非题和选择题,把重点放在读程序、编制程序和调试程序。

实践表明,这种考核方法不但能更客观地反映学生的学习情况,同时也能促进学生学习,起到良好的教学效果。

5结束语

本文教学内容、教学方法与手段的改革,是根据实际教学过程中学生存在的问题提出的,并已经在“高级语言程序设计”课程教学实践中加以运用,得到大部分学生的认可,取得了较好的教学效果。当然,同样的教学内容面对不同的学生,在使用与设计某种教学方法时,还要求学生的配合才行,也就是说教的方法与学的方法要有机统一。我们将继续努力探索,使“高级语言程序设计”课程教学日趋完善。希望本文能对大学计算机基础教学有一定的借鉴作用。

参考文献:

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

[2] (美)Harvey M.Deitel,Paul J.Deitl.C程序设计经典教程[M].4版.北京:清华大学出版社,2005.

“High-level Language Programming” Course Teaching Reform and Practice

XU Xiao-qing, LI Xiao-dong

(Department of Computer Science and Technology, Institute of Beijing Electronic Science and Technology, Beijing 100070, China)

篇3

[关键词]C语言程序设计 实验教学 Wiki协作学习

[中图分类号] G642.0 [文献标识码] A [文章编号] 2095-3437(2013)24-0083-02

长期以来,C语言程序设计实验教学环节一直是高校教学改革的重点之一。[1]利用基于Web 2.0的Wiki技术,近年来我们通过引入网络化协作学习模式,探索进一步丰富C语言程序设计的实验教学手段、提高实验教学质量的有效途径,取得了良好效果。

一、建构主义与协作学习

建构主义强调以学生为中心,学生是认知的主体,是知识意义的主动建构者,教师只发挥辅助、促进作用。协作学习模式是一种比较突出地体现建构主义思想的教学模式。[2]它通过建立学习小组,以对话、协商、讨论形式开展学习。为实现特定的小组学习目标,小组成员共享信息、观点和认知结构,通过合作互助完成知识的意义建构。

Wiki具有易用性、共享性、开放性和社会性等特点,目前基于Wiki的网络化协作学习研究越来越受到人们的关注[3,4,5]。比如,课堂教学与Wiki知识库相结合的双平台协作学习模式、基于Wiki的学习共同体、基于Moodle的网络学习模式的教学模式等为我们开展C语言程序设计实验教学改革研究提供了有益参考。

二、实验教学中面临的主要困难

当前,C语言程序设计实验教学面临的主要困难包括:

(一)加强实验指导的困难

因近年来招生规模扩大,不少班级人数超过50人,以致任课教师的教学压力陡增,理论教学环节尚可勉强维持,但实验教学过程则显得不堪重负。通过增加实验辅助人员可在一定程度上缓解部分压力,但因他们缺乏对学生特点的足够了解,实验指导的效果大打折扣。

(二)满足不同层次学生学习需求的困难

因学生的学习基础和能力差异明显,要满足不同层次学生的学习需求存在困难。学生的两极化趋势突出,有的学生读大学前已学习过基本的编程方法、学习兴趣较浓,喜欢挑战有难度的编程问题。而另一些学生在理解C语言的函数、递归、指针时显得吃力。

(三)培养学生学科竞赛能力的困难

目前,大学生程序设计竞赛已成为省教育厅认可的重要学科竞赛。C语言学习对培养学生的计算思维、协作能力等有关键作用。如何将传统课程实验教学环节与学科竞赛能力培养目标相接轨,具有一定难度。

三、基于Wiki协作学习的实验教学设计

针对以上问题,我们尝试以基于Wiki的网络化协作学习模式改革现有的C语言程序设计实验教学,实验教学活动的设计如图1所示。实验开始前由教师确定实验目标、选定实验任务,并到面向所有学生的“主Wiki”。实验教学分组进行,先由学生参考学习资源进行课前预习,然后各小组从“主Wiki”自由选择实验任务,各小组的任务可不相同。实验开始后以小组为单位,基于“小组Wiki”协作实验,组员可面对面对话或网络交互协商和讨论,可在“小组Wiki”共享自己的知识和成果,通过相互启发、互助合作,实现共同学习。而教师通过教学巡视,有针对性地引导学生积极思考,适时答疑解惑,推动学生自主强化知识的理解和运用。

图1 基于Wiki协作学习的实验教学设计

实验结束后各小组须提交实验报告到“主Wiki”。教师再评价实验结论,评选优秀实验报告,并采取一定的激励机制,奖励表现优秀的学生或小组。实验过程中每名学生需充分发挥主观能动性,通过组员的全力合作才能争取最佳的实验成绩,从而有利于促进学生提高自主构建知识的质量。

四、实验教学实施的关键环节

为实现预期的教学改革目标,基于协作学习的实验教学实施过程中需注意以下关键环节。

(一)合理构建学习小组

小组规模以3~5人为宜,应包括不同学习基础和能力的学生。研究表明,在研究性学习和探讨式学习中,将不同性格和思维特点的学生混搭,通过思维撞击和头脑风暴可获得更好的学习效果。[6]小组长是非常重要的角色,他应成绩优秀且领导力强。可在开学第一周内组建学习小组,教师可召开讨论会了解学生个性,组织逻辑测验、参考高考成绩了解学生的学习情况,再竞选若干候选小组长、组织其他学生报名,在教师协调下,考虑小组构成的合理性后确定学习小组。

(二)营造竞赛式实验学习氛围

引入大学生程序设计竞赛的竞争机制,可有效提高学生的学习效率。每次下发任务即启动一次竞赛,平台支持实验计时和提醒,以及C程序在线编译和评判功能。根据完成速度和程序执行耗时评定成绩。适当的激励机制有利于营造更好的学习气氛,比如,每次实验完成情况纳入平时成绩考核;每次表彰一个最优小组,可给予一定的象征性物质奖励。

(三)优化实验任务

作为大学生接触的第一门专业基础课,C语言程序设计的实验目标是建立基本编程素质,培养计算思维能力,所以实验任务不能停留在基本概念的验证和传统算法的复制,强度不宜过大、难度不宜过高。在融入大学生程序设计竞赛试题时要进行优化,避免学生产生畏难心理,通过设计一些较贴近现实生活的计算问题,提升学生的学习兴趣,让其体会到挑战性和成就感。

五、网络化协作学习的教学实践

教学实践中使用的实验协作平台如图2所示。首页即“主Wiki”区域,“实验任务”模块展示了教师的习题。小组长完成选题后组员登录即进入“小组Wiki”页面。组员可提交和修改任务代码,系统自动记录版本状态以及失败次数,将其列入考核指标。实验过程中教师可进入小组Wiki参与讨论、巡视进度,以便及时发现问题和不足并进行辅导。实验评定后,可将正确答案到“主Wiki”。平台也支持小组,由其他小组应答的实验任务并对其手工评判,以便促进小组间的学习交流。

图2 实验协作平台

通过近年来的实践,基于Wiki的协作学习模式取得了显著效果。老师辅导实验的压力得到缓解,小组长的积极性被调动后带动了团队的学习进步。通过融入大学生程序设计竞赛试题,培养了学生的计算思维能力和团队协作能力,为我校学生参加学科竞赛打下良好基础。近三年来我校学生报名参加省级大学生程序设计竞赛的人数持续增加,并在省级竞赛中多次获奖。

六、结语

作为一所应用型本科院校,培养具有较强实践能力、应用分析能力的高素质应用型人才是我校教学改革研究的核心目标。基于网络化协作学习平台开展实验教学,有利于提升C语言程序设计课程的教学效果,提高人才培养质量。今后我们将根据教学实践反馈情况,进一步完善协作学习平台,并通过对协作学习模式的深入研究不断提升协作学习效果。

[ 参 考 文 献 ]

[1] 吕风杰,马士明.C语言实验教学改革初探[J].中国电力教育,2012,(10):118-119.

[2] 贺东光,孙博文,孙百瑜.网络教学协作学习模式的设计与实现[J].计算机教育,2010,(2):90-93.

篇4

关键词:C语言程序设计;实例;能力

中图分类号:G622 文献标识码:A 文章编号:1009-3044(2008)23-1094-02

The Reform of the Teaching on Public "C Programming Language"

LI Ni

(Yuncheng University Public Computer Teaching Department, Yuncheng 044000, China)

Abstract: "C Programming Language" is one of the necessary courses of college students in science and engineering studying and can electe one of the students learning process design technology-oriented courses. This article assesse the methods described in reforming on C programming language teaching form inspireing students to learn from the interest and enthusiasm, and the comprehensive understanding of the course content, teaching experimental ,approch of testing.

Key words: C-language programming language; example; capacity

公共计算机课程的教学改革应在更高的层面上考虑人才培养模式,营造更加柔性、更加生气勃勃的氛围。教师应从所教学生本专业实际应用着眼,在给学生传授算法、语言的基本理论与方法的同时,更加注重培养学生解决实际问题的能力。

C语言的功能强大,能直接访问计算机的物理部件,目标代码质量高,可移植性好,但其丰富的运算符、数据类型以及自由、灵活的程序设计却给初学者带来了不少的困难。尤其是对于非计算机专业的学生,怎样才能让他们快速入门,并迅速掌握程序设计的方法和能力,成为许多公共课教师考虑的问题。下面就C语言程序设计课程的教学从以下几方面和大家一起探讨。

1 激发学生的学习兴趣和积极性

由于我们面向的对象是非计算机专业的学生,他们对计算机编程一无所知,或略知一二,也可能对计算机课程不感兴趣,所以课程开始的第一次课是非常重要的。要求教师必须认真准备这次课,从C语言出现的历史背景、C语言的优点到开设本课程的原因,都要给学生一个全面的介绍,同时结合学生所学的专业,列举一个或几个实例,让学生先对C语言程序有一个整体的认识。第一次课的主要目的是提高学生学习C语言程序设计的兴趣、认识C语言程序设计的全貌、树立学习C语言程序设计的信心,可以先不用介绍具体的内容。这样的教学安排,可以使学生很快了解C语言程序设计的全过程,并有豁然开朗的感觉,从而产生浓厚的学习兴趣和积极性。以此为契机,在以后的课堂教学环节中,不断增添程序内容,学习更高标准和要求的程序就不是一件困难的事情了。

在第一次课激发了学生学习C语言的兴趣和积极性后,一定不能让学生的热情冷却,以后的每次课都要使用新知识设计一个或几个吸引学生的实例,课前展示实例,让学生先对这个例子产生兴趣,引出他们必须要解决这个问题的欲望,带着兴趣开始学习,这对于提高学生学习的自觉性,活跃课堂氛围可以起到积极的促进作用。

2 对课程基本内容做简单全面地介绍

在《C语言程序设计》课程教学中,许多教师和同学都认为,无论是教材还是教师上课,都是先介绍数据类型和表达式,再介绍各种语句的语法规则,然后是函数、指针、数组、字符串等。这种编写安排或教学模式不利于学生编程能力的提高。学生在学习C语言时,开始怀着神秘兴奋的心情进入课堂,随着几节关于大量难以理解和记忆的新术语、新规则的介绍,枯燥乏味的例题分析后,学生会慢慢失去兴趣,觉得学习C语言很枯燥,往往在一学期快结束时,才对编程有了一点点地理解。这样的教学内容安排,使学生很到厌倦,许多学生都是被动的学习。

针对这种情况,建议教师先把各部分的基本内容抽取出来,太难理解的部分比如结构体、公用体、文件等内容可以先不介绍,在讲解这部分内容时,精心设计一些简单有趣的实例,让学生对C语言的基本内容有一个全面地认识,这样他们所掌握的知识是完整地,而不是零碎地。

3 精心组织课堂教学

结合课程特点和21世纪人才的需求,课程教学内容改革的重点应是“扎实学习语言知识,突出程序设计能力培养,强调信息素养提高”。为了进一步提高学生的综合素质,拓宽学生的知识面,加深理解所学的语言基础知识,培养学生应用或自学程序语言知识的能力,能够独立或协作解决专业实际问题,在教学内容的设计上既要注重培养学生的创新设计能力,从知识整体性出发,巧妙设计例题和作业,使学生在课程学习中得到较完整的案例设计的基本训练;也要求教师不断激发学生的创新欲望,营造创新环境,培养创新意识、思维、方法和技能,通过淡化知识记忆,加强分析综合和系统训练,采用案例教学法、进行小组讨论协作学习等,使教学内容改革实现两个转变:(1)由过去的脱离专业向专业紧密结合转变,使程序设计课程与专业技术统一起来,提高学习者兴趣和创新欲望。(2)由过去重语言知识点学习和程序设计结果再现向提高综合分析和设计能力转变,培养学生算法构成与设计创新能力和综合应用知识解决实际问题的能力。

本课程既有高度的抽象性,又有很强的实践性,许多概念需要在动态调试过程中才能准确理解、精确描述、完善应用。为此,使用信息化教案、过程演示、大屏幕视频投影机等设备,由教师边讲解、边点动演示的方式,使学生在学习时可直接观察、参与到设计过程中,引导学生讨论、协作学习,激发起学生的好奇心,加快对概念和原理理解速度,提升学习效果。

在教学方式上,可以将课堂教学过程分成四部分:通过案例引出新内容、知识传授、小结和作业布置。开始上课时先演示一个由教师精心设计的、吸引学生注意并包含当天上课新内容的运行结果。这个过程实际上也就是向学生提出了一个新的问题,即如何实现它?接着讲解新内容,在讲解新内容的过程中,要特别注意教师“教”和学生“学”的互动。增加提问和讨论的环节,形成一个以学生自己动脑为主,教师引导与点评相结合的启发式教学模式。遇到问题时要更多地鼓励学生们自己想办法解决,教师可以提供解决问题的思路或方法,具体过程由学生自己主动完成。这样可以提高学生独立提出、分析和解决实际问题的能力,提高教学效果;最后做适当的小结,并结合本次课内容给学生留作业。

对于学生课后遇到的问题,通过定时答疑或电子邮件的方式与教师交流。教师将学生讨论、答疑中出现的典型性的问题加以综合集中讲解,对学生中有创新的程序设计方法和算法予以公布,并对这样的学生提出表扬,以达到提高学生的学习积极性和创新意识

4 加强实验环节的教学管理

上机实验是学生掌握基础知识和算法理解,提高程序设计能力的重要一环,应该和理论教学同步进行。在上机实验课前,教师结合所讲的内容布置好实验题,提出具体要求;学生根据教师的要求在上机实验课前先完成作业要求,并写成书面的预习报告;上机实验课时,对自己的分析结果进行验证,提交电子或文字方面的实验报告。要求分别注明自己的分析结果和上机运行结果,这样教师可以从学生出现的问题中了解学生的学习动态,达到更好的教学目的。

在完成课内的基本实验外,还可以增加一些特色实验。由教师精心设计一些具有较强的实用性、综合性和一定创新性的题目,不向学生具体提出要求,只提出需实现的功能,学生可以选择学习伙伴,由他们自己设计实验方案。在学生完成的过程中,教师一定要做好学生的参谋。这样的实验可以提高了学生的创新思维,培养学生对知识系统的整体认识,注重学生的参与,加强学生的实践训练,拓宽学生的知识面,提高学生的创新设计能力与动手实践能力,提高学习兴趣与教学质量,适应时代对于人才的需求。

5 改革考核机制

衡量学生学习效果的好坏,都是通过考试来检验的。常用的考核方法就是卷面答题,通过一些选择题、填空题、程序改错题、编程题等,这样的考核往往忽略了对学生其它能力的培养。因此应该把重点放在编制程序和调试程序上,对学生学习成绩的评定,可以采用综合考核法,将平时同学之间的合作、参与问题讨论的效果、书面作业、实验作业等与期末卷面成绩进行综合,得出本课程综合评分。这种方法不但能更客观地反映学生的学习情况,同时也能促进学生自主学习,起到很好的教学效果。

这种考核方式增加了对学生学习过程的测评,也是对学生学习课程的阶段性考核,其根本目的是要加强对学习过程的指导和管理,及时反馈学习信息,指导教学,提高学生的综合素质和能力。最后学生的总成绩可以按照下列分数比例给出:

总成绩=平时学习表现(10%)+作业(20%)+实验(30%)+期末考试成绩(40% )

教师在各自的教学过程中,可以对上述比例灵活调整。

以上是从五方面对C语言程序设计课程的教学的一些思考,希望对公共课教师的教学起到帮助作用。

参考文献:

[1] 施金良,汤仕龙,余群威.《C语言程序设计》课程教学改革的探索与实践[J].中国冶金教育,2003,(3):40-42.

篇5

【摘要】在高职院校,计算机是一门很重要的学科,而《C语言程序设计》则是计算机学科中一门基础专业课

程,如何让基础比本科生差的高职院校的学生去学好这门课程,是许多高职院校计算机专业课教师的难点。

本文是笔者在C语言教学过程中的一些教学改革,希望对调动学生的积极性和教师素质的提高起到一些促进

作用。

【关键词】C语言实验教学高职院校

一、引言

C语言是一门各大院校的基础计算机课程,等级考试二级的考试语言。并且C语言是一种通用性计算机

程序设计语言。它兼有汇编语言和高级语言的双重优点,运用它既能编写操作系统软件,又能开发各个领域

的应用软件。C语言计算机语言的入门基础语言,学好了C语言,不管今后再学习其他各类语言,就有了坚实

的基础。但是在职校,学生本身的基础就比较薄弱,又缺乏学习的主动性和自觉性,很多学生只能简单的掌握

C语言的一些基础知识,像函数调用,指针的引用,结构体,共用体的知识点就掌握不了了,而且C语言是

没有固定的计算机老师来教授的,几乎任何计算机老师都上过这门课程,但大部分老师都没有精力去钻研

这门课程,基本操作也不熟练,调试程序也难通过,这样一来学生就出现厌烦,消极的情绪,达不到实验

的教学效果[1-2]。

二、网络环境下C语言实验系统的设计

1、系统设计思想

C语言实验系统具有比较完备的C语言知识体系的介绍,有培养兴趣的综合性实验设计题,具有出现各种

问题的解决方法和资料库,这个系统是用JSP开发B/S模型的网络环境下的C语言实验系统[3]。

2、系统设计模块

(1)新手上路模块:主要是介绍C语言的入门基础知识。

(2)基本操作模块:主要是介绍调试环境。

(3)进阶实验模块:每一实验章节都有50道实验题,学生可以抽取调试,不会的有答案介绍。

(4)问题中心模块:学生可以提问,老师定时回答。

(5)专题汇总模块:包括计算机等级考试二级的模拟试题,在线模拟考试,评分。

三、实验教学过程

严格制定C语言实验课的成绩和评分标准,课后严格要求学生填写实验报告。以2010级计算机软件(1)

班为例,学生实验课按学号和姓名上机登陆,根据自身的能力选择题目的难易进行实验,进入相应的章节

,题目会自动出来,然后根据题目编写和调试程序,上机老师随机抽出实验题目,由老师边调试边讲解让

学生记住常见语法错误和熟悉调试程序的过程,这样对学生既有压力又有动力,学生可以学到知识(实验

教学过程如图1所示)。

选择难度低又完成较早的同学可以重新登陆,选择难度较高的题目再做,对于学习好的同学在完成自已的

实验任务后可以进入C语言的在线学习,遇到问题可以自已查找资料学习,遇到的难题可以在线和老师同学

交流。

在这样的教学过程中,学生开始慢慢对C语言编译器有了进一步的了解,对编译器的提示也开始看得懂了,

对调试程序也有了兴趣,可以在线讨论,学生在这里可以交流心得体会,好奇和求知欲在他们体内逐渐膨

胀。

四、教师素质的提高[4]

"双师型"的教师要求教师既要能将课上好,又要能将实际应用带入课程,使教学从实践中来,又服务于实

践。随着教学改革的深入,现代教育技术和成果的应用,以及应用型人才培养的需要,对老师素质提出了

更高要求。在将实验平台搭建于课堂之上后,由于是在课堂上编写程序,而不是已编写好的程序的展示,

这就要求老师具有良好的计算机编程工具的使用能力、字符输入能力和程序设改革以往的考试由任课老师

自己命题并且考核成绩为平时成绩(30%)+考试成绩(70%)的模式,实现教考分离,准备建立网

上考试系统,把平时测验和期末考试有机地结合起来。严格按教学大纲要求建立高质量的试题库,并根据

教学的发展积极探索考试内容和方法的改进,不断的充实和完善试题。

五、结束语

采用在网络环境下C语言实验教学系统进行教学以来,老师不用对同一错误讲解多遍,几乎所有学生都

会参加程序的调试,老师和学生配合得更好,形成了良性循环。本着教学内容突出基础理论知识的应用和

实践能力培养的原则,以应用为目的,以"必需、够用"为度,加强针对性和实用性,教学效果显著。但在

实验前学生无法知道实验内容和题目而进行准备,还有些学生由于底子薄自学能力和动手能力不够高,在

具体实验过程中无法完成实验任务,所以在今后的C语言教学实验过程中还须做进一步的进行改革和摸索。

参考文献

[1]徐章艳."C语言程序设计"实验教学的探讨[J].电子电气学,2004,(2):84-85

[2] 孙仲廷.《试讨论如何实施C语言实验教学》省略

[3]杨红云,邱晓虹,于义科.计算机相关专业适应市场需求的教学改革初探[M].江西人民出版社,

篇6

关键词:模块化;程序设计;实验教学

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2009)15-3964-03

Research and Practice on Modular Test Teaching of Programming

HUANG Wei1, ZHOU Ming-zhen2

(Dept. Computer Science and Technology of Anhui University of Technology and Science, Wuhu 116029, China)

Abstract: Test teaching is an important part of the courses of computer programming in Engineering Colleges, its teaching result will directly effect the whole teaching process. Aiming at the current deficiency, the paper proposes a test teaching mode based on some structural computer programming courses. The actual teaching effect seems to be very satisfied because of the modular thought. It will cultivate the practical ability of the college students.

Key words: Modularization; Programming; Test Teaching

1 引言

高校非计算机专业计算机基础教学改革势在必行。应该根据现代教育思想和教学理论,改进教学方法,正确选择教学内容,改革课程体系和教学模式,更新教学手段,强化实验教学[1],改进考核方式,加强师资队伍建设,以提高计算机基础的教学效果和教学质量。掌握和应用计算机知识,是培养新型人才的一个重要环节,是高等学校全面素质教育中极为重要的组成部分。

结构化程序设计语言类课程在多数工科院校均普遍开设,作为计算机基础教育课程,非计算机专业学生选课面较广,学生人数也较多,课程教学效果的好坏将直接影响到是否能有效培养和提高学生的程序设计思维和动手能力。由于程序设计课程非常注重学生实践能力的培养,因此实验教学环节尤其重要。非计算机专业程序设计课程的教学同样非常强调对于学生实践和动手能力的培养,实验教学是程序设计课程的重要组成部分,实验效果的好坏直接影响到课程的整体教学质量。课堂的理论知识,能否被学生真正接受并加以应用,是通过实验这一重要环节进行消化、吸收的。但是目前在实际的教学过程中,出现了诸多急待解决的问题,如实验教学过程控制不合理,教学方法和内容陈旧,教学效果不佳等等。本文针对实验教学存在的不足,提出基于一般结构化程序设计语言类课程(如C语言,FORTRAN)的实验教学模式,将”模块化”思想应用到整个教学过程中,以培养和提高学生的实践动手能力为导向,以教学大纲为基准,根据学生专业背景和掌握程度的差异设置不同的实验环节,在实际的《C语言程序设计》课程教学实践中取得了比较好的效果,学生反映良好,此方法还可推广到其他课程的实验教学中去。

2 对于传统教学模式的分析

实验课程教学实际上是程序设计教学过程当中的重头戏。近几年随着高校的扩招,学生人数急剧上升,但师资却没增加多少,从而经常出现一个老师同时辅导多个班级的实验。实验课上学生网上聊天、打游戏、听歌、看电影等现象比较严重,从而导致实验环节的教学质量大大下降。目前多数实验还是验证性的,这样做固然有它的好处,但这不利于学生的创新性教育,使学生失去了学习计算机的兴趣。根据对所在学校情况的分析调查和研究分析,大部分专业的学生对于程序设计类语言课程实验环节的学习主要具有以下特点:

1) 由于专业背景和能力的不同,学习中大都有畏难情绪。课程初期阶段,学生都有一定的学习兴趣,但是到最后能坚持下来的寥寥无几。很多学生抱怨程序看不懂,不会编,久而久之丧失了学习下去的信心。

2) 在非计算机专业同学中,有一部分学生对于F语言程序设计的基本理论和知识掌握比较好,但是缺乏一定的实际动手设计能力,实验设计环节效果不理想,遇到具体问题不能很好地编程解决和实现。

3) 由于课程结束后要参加统一的省级考试,所以相当一部分学生为了应试,只能硬者头皮来上课,导致课堂教学气氛沉闷,很多学生不认真上课,而是利用上课时间做水平考试的练习题。综上所述,现有的程序设计课程实验教学重点大多放在了程序设计的理论知识点上,没有很好地考虑到实际应用和各专业学生的学习特点和状态,因此存在各种各样的问题急待研究和改革。首先,现有的教学模式下,实验教学理论知识和实践应用相脱节。理论知识不能很好地体现在实际的教学内容中。学生普遍感觉到实验教学与实际的专业和具体应用联系不紧密,没有什么用处。比如在F语言程序设计实验教学中,对于输入输出语句的格式控制部分,由于现有内容设置不够合理,很多学生感觉到没有什么实际意义。

其次,实验内容和教学方法陈旧。实验教材质量的好坏会直接影响到整个实验教学过程的效果,现有的实验内容虽然对实验类型做了划分,但是还没有能够很好的考虑到学生的专业和个体差异,只是“一刀切”,如何合理科学地设置实验内容和教材是一个急待解决的根本问题;授课教师把精力主要放在了理论教学环节上,而现有的实验教学方法几乎是空白,只是学生在实验课做实验,完成实验报告而已,实验教学不能很好的被控制,同时也导致理论和实践相脱节。

另外,现有的实验教学管理水平不高,对于学生的实验秩序管理,实验内容管理和实验教学的效果评价等诸多问题还没有较好的通用解决方法。最后,学生对于实验教学的兴趣度比较低,普遍存在实验上课态度不认真,准备不充分,实验完成后不认真总结分析写报告,甚至抄袭。

针对以上问题,如果不很好地反思和改革我们现有的实验教学模式并解决相应的问题,那么将会在很大程度上阻碍我们的程序设计课程教学总体质量。

3 模块化教学思想

3.1 模块化的理论根据

设函数F(x)定义问题x的复杂程度, 函数E(x)确定解决问题x需要的工作量(时间)。对于两个问题R1和R2,如果F(R1)>F(R2),显然E(R1)>E(R2)。

根据我们解决一般问题的经验和过程,可以找到另一个规律是 F(R1+R2)>F(R1)+F(R2),于是E(R1+R2)>E(R1)+E(R2)[2]。这个结论是模块化的根据――把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。

根据模块化理论观点, 实验教学课程体系可视为一个由许多独立的课程子系统(即实验内容)构成的, 课程子系统从属于课程体系这一大系统;而各课程子系统又彼此构成完整的实验教学体系。每个专门的课程子系统都有独立而特定的功能。课程子系统与课程体系之间,以及彼此的子系统之间通过内在运作机制建立起和谐的关系,当系统间的耦合实现平衡时,整个课程体系的综合功能就能达到最佳。按照这一系统功能运作,模块化的实验教学效果就能发挥出来。借助模块化思想可以对现有实验教学的各个层面进行改进和完善。

3.2 基于模块化的实验教学模式

3.2.1 教学目标模块化

教学目标模块化的目的在于针对学生掌握知识的不同情况来设置各个层次的学生在教学活动中所要达到不同的学习目标。可根据学生的不同专业来区分,可归结为计算机专业和非计算机专业两类。对于计算机专业学生,程序设计能力是必须很好掌握的;而对于非计算机专业学生,既要培养他们基本的程序设计能力和思维以适应今后的实际专业工作需要,又不能过于苛求.因此可在实验教学大纲中依据情况设置不同的教学目标作为指导。

3.2.2 教材及教学内容的模块化

实验教材及内容是实验教学的基本材料。现有的程序设计实验教材或指导书数量较多,难度各异,层次不齐。为适应不同层次不同专业的学生,本着因地制宜的原则,教师应根据模块化的教学目标做到从实际出发[3],选择相当难度的教材,最好同一课程组的各授课教师能根据实际情况组织自编实验指导教材,以使得实验内容满足模块化的原则。

首先根据教学目标和实际要求确定程序设计课程的实验次数以及实验类型,设置一般验证性实验,设计性实验和综合性实验等,每种实验类型均要设置相应数量的设计题目和要求以供选择,各类型实验之间力求做到通用性和灵活性,教师要把实验教学的内容和具体要求阐述清楚;其次,针对每次实验内容,同样进行模块化分层,如图1所示,分别设置基础编程题(验证性实验),应用设计题和能力拓展题。

基础编程题和应用设计题主要针对掌握程度一般及非计算机专业学生,应用设计题和能力拓展题则针对掌握程度较好及计算机专业的学生,这样可以做到各取所需, 能力拓展题可划分为选做题范围,主要涉及一些综合性设计内容,也可结合课程设计内容来设置。分层的好处在于适应不同的情况,同时也在侧面可对实验教学进行有效管理,每个同学完成的实验内容都有所不同,就能在一定程度上避免实验报告的抄袭现象。另外,尤其对于设计性实验,教师要主动积极融入到实验环节中来,而不是被动地等待学生问题的出现。设计性实验一般都有一定的综合应用特点,对学生而言也有一定的难度和自由性,教师可参与其中做相关的必要指导,例如可预先根据理论内容提出一些设计要求,让学生在实验过程中灵活选择,这样可提高设计性实验的效果,避免学生的盲目性。

3 教学过程的模块化

在整个实验教学过程中,也要以模块化思想为主线,这样可促进对于实验教学本身的有效控制和管理。对于一般验证性实验,要让学生有准备这一环节和过程,即事先建立算法编写好程序在进行上机实验,实验完成后提交实验验证报告;对于设计性实验和综合性实验,可设置同步教学和实验讨论两个必要的过程,教师可在实验室利用相应的授课手段(如多媒体)进行同步教学,参与到设计性实验中,而学生之间可针对与具体要求进行实验讨论和互动,这样既可调动学生的积极性,也可大大提高实验的效,实验完成后可提交实验总结和研究报告。

4 基于模块化的实验教学实践

以结构化语言《C语言程序设计》课程的教学实践为例,在实验教学的各个实际层次应用了模块化思想,从而很大程度上提高了程序设计课的整体教学质量。循环结构是结构化程序设计中过程描述的主要语句,C语言中分为for语句,do while循环语句和do loop循环等几种主要形式,一般均要设置相应的实验内容模块以训练学生,下面以循环结构的实验教学为例,介绍实际的教学过程, 模块化教学的整个过程如图2所示。

4.2 制定分层的实验教学内容

课堂上我们主要将授课重点放在分析程序的算法模型上,重点讲解程序的设计思想和循环结构的实现,明确将一个实际问题转化为计算机能够实现的算法模型的过程,指导学生“分析具体问题,建立算法模型”,培养学生分析问题的能力。学生通过大量的上机实验解决“怎样将算法模型转化为最终的C语言程序循环结构”的问题。其次设置具体的实验内容, 实验指导书中明确指出了每次实验的实验目的、实验要求和实验内容,用以保证实验的进度和试验的效果,实验难度中等为宜。对于验证性的内容,我们在实验教材中设置了一定数量的基本编程题目,例如”求500以内3的倍数的总和”,“统计全班某门课程不及格同学的人数”等,每题都要求使用不同的循环形式来实现,主要针对多数学生以锻炼他们对于循环语句的基本表达和应用能力;对于设计性的内容,我们也给出了相应总体设计目标和要求,例如“思考如何实现彩票机的功能,程序可以随机按要求输出号码”,“实现小型计算器”等,在实验过程中激发了很多学生的设计兴趣。

4.2 制定分层的实验教学管理

在实验过程中,非计算机专业学生对于基本的for语句,do while循环语句和do loop循环等三种形式均掌握不够好,在程序书写过程中常常搞错系统关键字,究其原因主要是语法知识不清楚,因此教师的指导和主动管理就非常关键。在实验之前,我们要求所有的非计算机专业学生写出并上交实验报告,主要是把他们对于循环结构语句的学习掌握情况和实验预习情况进行反馈,让他们把还不理解的问题,想要用循环结构解决的问题全部表达出来, 这样教师就可有的放矢,通过这一过程我们了解到很多学生对于怎样把具体问题转化为三种循环结构还不了解,在实验中可允许这类同学相互讨论;对于设计性实验和综合性实验的管理,我们要求实验完成后提交实验总结和分析报告,要求学生在报告中分析解决具体问题的思路和实现的过程,已经实现了什么功能,还有哪些没有很好解决或有待改进,而不是把源程序简单抄写一下。

4.3 制定分层的实验教学组织

我们根据各专业学生的具体情况,借助模块化的灵活原则,组织了程序设计实验课程小组,一个教学班级中由学生自愿组合并在老师的协调下组成若干小组,有的小组中学生能力较好,可设置为综合性实验组;也有的小组中学生对基本的循环结构掌握一般甚至较差,可设置为验证性实验组,各层次小组可进行动态的模块化重新组合,实际证明这种实验组织方式优于传统方式,使得各层次学生能够彼此帮助和协作。我们规定四至五个同学为一组并根据实际情况作了调整,实践结果表明,有85%的同学基本掌握了for语句和do while语句,70%以上的实验内容学生均能很好掌握。

4.4 实验教学效果的评价

对于学生反馈的实验报告,我们根据实验类型的不同,给出不同的评价结果,可总结为“ABC”法和“123”法。对于一般验证性实验,依据学生的实际完成情况和态度给出A,B,C三个等级, A代表完成较好,能够利用循环结构处理一般问题;B表示完成情况一般,可能有语法错误;C等代表完成情况较差。对于设计性和综合性实验,给出积分结果,即根据具体设计需求目标,思路正确但未实现的可得1分;思路合理并部分实现的可得2分;完成较好得3分,由于有一定的设计难度,评价结果要对学生有积极促进作用。实践结果表明,有一半做验证性实验题的同学得了B等, 近三成做设计性实验内容的学生得了2分。

5 结论

本文针对实验教学存在的不足,提出基于一般结构化程序设计语言类课程的实验教学模式,将”模块化”思想的灵活优点应用到整个教学过程中,在实际的《C语言程序设计》课程教学实践中取得了比较好的效果,学生反映良好,此方法还可推广到其他课程的实验教学中去,但是在实际的程序设计实验教学组织管理和评价中还有很多的问题值得今后进一步研究和改进。

参考文献:

[1] 瞿葆奎. 教育评价[M].北京:人民教育出版社,1999.

篇7

关键词:智慧教育;云平台;教育云;实践教学

0引言

传统时代的智慧教育通常是用一套公众接受的带有真理性质的思维模式来启发和教育学生。进入信息化时代,人们对智慧教育的认识又发生了改变:智慧教育是一种通过信息技术来改革传统教育各个方面,目的在于培养学习者的创新能力、批判思维能力、问题解决能力等高阶思维能力,即发展学习者的智慧[1]。信息时代的智慧教育是利用现代的科学技术,来改进或完善传统教育的缺陷,通过对教育的不断优化来培养学习者终生学习的能力和发展学习者的智慧。智慧实验是智慧教育的一个分支。云计算作为分布式计算的一种,其在教育领域的迁移称为“教育云”[2]。国外研究者在2009年前后开始关注教育云[3]。根据国家十二五规划《素质教育云平台》的要求,各个地区涌现出了诸多教育云的教学应用案例[4]。例如,2014年5月,重庆市召开了教育“云课堂”项目应用推进工作研讨会,会上展示了教育云课堂教师讲授与同学学习和互动的整个过程,整堂课利用云平台+微课+PPT来呈现,学生在课堂上利用平板电脑学习,实现学习资源的共享。明确感受到了实验教育云未来发展的强劲趋势及学校自身发展的需要和办学定位,我校——长春工业大学计算机科学与工程学院的科研团队结合学院自身需要研发了实验教育云平台。

1实验教育云平台的功能设计、架构设计及实现

1.1实验教育云平台的功能设计

实验教育云平台功能模块主要包含系统管理模块、实验教学管理模块和实验进度管理模块。系统管理模块包括班级管理、权限管理、课程管理和镜像管理子模块。班级管理子模块主要是系统管理级以班级为单位导入学生的姓名、学号和密码。权限管理子模块是系统管理者为实验教师和学生分配不同的使用权限。课程管理子模块为教师分配本学期的实验课程。镜像管理子模块为不同的实验课程分配不同的实验环境。实验教学管理模块主要是教师进行实验教学的管理,包括教师上传实验指导书,课前布置每堂课使用的实验环境。教师可以查询学生的实验报告完成情况,并对学生的实验相拟度进行查询,并最终给出学生的实验成绩。实验进度管理模块的操作者是学生。首先学生完成实验教育云平台的登录,然后根据实验指导书的实验内容对实验环境进行实际操作或程序设计,完成实验内容后截图并提交实验报告,最后由教师给出实验成绩后,学生在学生端查询实验成绩。实验教育云平台的功能设计如图1所示。

1.2实验教育云平台的架构设计

在图2中,Web服务器的主要功能是通过互联网接入Web服务,通过虚拟现实技术将虚拟实验环境移植到Web页面和生成动态网页[5],这样使用者就通过虚拟生成的实验环境进行实验操作。将多个Web服务器组成了云端Web客户群。应用服务器端主要负责数据采集,并对采集后的数据进行数据分析和处理,然后将处理后的数据的结果传送到数据库服务器进行保存,同时将处理结果通过Web传送到Web服务器端。由于此可,这种B/S结构极大地简轻了云端Web服务器的工作负荷,只需安装Web浏览器作为云端的运行平台同时只负责一小部分的人机交互的业务逻辑处理工作,主要的业务逻辑处理工作由服务器群实现。所以这种“瘦客户端/胖服务器”模式易于后台管理和维护,并具有良好的稳定性、鲁棒性和可扩展性。

1.3实验教育云平台的实现

按照实验教育云平台的功能设计与架构设计,其教育云平台的实现如图3所示。图3的左侧为学生的实验指导书的内容,图的右侧为R语言的实验环境。学生提交实验报告后,教师可以在后台查询实验报告提交情况和录入实验成绩。

篇8

关键词:新升本科院校;C语言程序设计;课程质量保障

新升本科院校的前身多为专科学校,其在教学管理、师资、教学质量保障各方面存在一系列的问题。为了保障教学质量,培养学历和能力兼备、知识和素质齐飞的高素质人才,建立健全、科学、有效的教学质量保障体系迫在眉睫。

C语言程序设计是计算机专业的专业基础课,在计算机教学中举足轻重, C语言程序设计课程被很多学校作为计算机专业的入门课程。该课程具有很强的理论性和实践性,课程的教学目标是使学生学会程序基本的逻辑表达,培养分析问题、解决问题的能力,使学生养成良好的编程习惯,为后续专业课程的学习奠定坚实的基础。

为了达到人才培养方案制定的教学目标,落实教学内容,课程组教师长期进行教学手段、教学方法的改革和信息化建设以保证教学质量,提高教学效率。主要在以下几个方面进行了努力:

1 教学方法的改进

为了实现教学目标,学生不仅需要掌握编程语言的语法知识、编程技巧和算法,更要掌握程序设计的思想方法,培养分析问题解决问题的能力和探索创新的精神。在教学方法上主要进行了以下改革:

1.1 强化实践锻炼,注重能力培养

在教学过程中,以实用性、熟练性为基本要求,注重学生分析问题、解决问题能力的培养,强调程序设计的实践。学生多加练习,才能真正掌握语法知识,理解和掌握程序设计的思想和方法,进而能够利用计算机解决实际问题。主要采用基本练习和综合练习相结合的方式展开。具体如下:

1)通过大量作业反复地练习,使学生熟练掌握基本的语法知识,具备编程基础;然后通过完成一些难度较大的作业,将语法知识和程序设计的内容结合起来,加深对内容的全面理解和掌握,培养语言的应用能力,提高编程水平。

2)实施项目教学,提高学生综合应用能力。采用综合练习,让学生真正掌握程序设计的思想和方法。整个过程以学生独立完成为主,教师只提供必要的辅导。这种方式不但可以培养学生问题求解能力和综合运用的能力,还能够培养学生的自主学习能力和探索创新的精神。

1.2 目标分层次递近

C语言的语法相对容易掌握,但算法难以把握,同一个问题可以有多种算法,其优劣差别很大。编程能力的培养是一个循序渐进逐步提高的过程。因此,把培养的过程分为五个层次:

第一层次:分析问题,描述算法。先让学生掌握解决问题的思想方法。

第二层次:了解程序整体结构。以一个完整的程序为例,介绍程序的组成结构。学生看到一个程序要能够识别出程序的各个组成部分,比如预编译命令、函数定义部分、变量函数的声明部分、语句块等。

第三层次:认识每条语句。让学生认识程序中的每个符号,比如标识符、关键字和数据结构等。

第四层次:理解语义。讲解每条语句的语法功能。让学生通过阅读分析程序的执行结果。

第五层次:编写程序。让学生自己编写程序,先编写比较简单的,难度逐步增大。

本课程是专业基础课,教学过程中遵循“以入门为主,以多数同学掌握为目标”,从最基本的开始,循序渐进,最终达到教学目标。程序设计能力因人而异,培养时间也较长,需要课后主动再学习,不能单纯依赖课堂。

1.3 实施启发式教学

为培养学生自主学习能力和创新能力,教学过程中遵循启发式教学原则,采用多种教学方式和手段激发学生的学习欲望,使其积极投入到学习活动中,积极思考,能够发现问题,提出问题,并学会解决问题。例如,在讲解程序设计时,首先引导学生分析问题,找出解决问题的方法,然后再写出其算法,最后编写出完整的程序,在这个过程中,每一步都是与学生一起讨论的,让学生在启发下思考问题,在思考中解决问题,逐步掌握分析问题、解决问题的方法。

1.4 激励个性化学习

由于学生存在个性化差异,因此,在教学内容的实施上,考虑多样性和灵活性,让学生有选择的余地。例如,在实践教学中,每项实验都包括必作题和选作题两部分,鼓励学生根据自己水平和兴趣,自由选取其中的模块,选择适当的数量和难度,自主安排学习进度,使自己得到充分的发展和提高。鼓励学生参加计算机等级考试和各类计算机大赛,挑战自我,实现自我。

1.5 采用丰富多样的教学方法

单一的教学方法不能适应教学过程的复杂性,无法取得好的教学效果。老师针对不同的教学内容要选择适宜的教法,才能体现教材与教法的结合。例如对程序设计的基础知识,以讲授法为主,自学讨论法为辅;对程序设计的三种基本结构和函数,则选用引导分析、提问、实例演示、实际操作等方法;对数组、指针、结构体、文件类型等难度较大的内容,则选用启发式、归纳法和实验等方法,通过老师的操作演示,学生理解总结出知识点,并在计算机上进行实践验证。

1.5.1 固定框架法

目的是让学生掌握分析问题的方法。入门阶段都以“输入,处理,输出”三个顺序步骤分析和实现编程,对任何一个问题,教师都从这三个方面入手,往往从“输出”倒过来分析,在讲解用C语言如何实现这三个步骤。要求学生做习题也如法炮制。在讲解例题时,分析是重点,分别对输入、处理、输出三块分析,并给出如何用语言表达。由分析给出算法,再由算法写出程序。要求学生遇到问题都从这三个方面分析,每一步都落实到“在C语言中如何实现”, 这样做不至于初学者无从下手。如果遇到还没有涉及的语法点,鼓励学生查找资料学习,形成分析问题的框架,这样即使没有完全实现,也能写出基本的算法来,消除了初学者的畏难情绪,这对本课程的入门有很大好处,特别是对少数民族地区基础差的学生更有帮助。

1.5.2 案例驱动法

案例驱动法的目的是提高学生的学习兴趣,主要强调任务是有应用背景的,学生的学习目的就更明确。通过典型程序,按照提出问题—分析问题—引入新知识解决问题—总结提高的思路教学,过程中能够调动学生学习的积极性,能够主动参与,而且通过问题的不断扩展,能有效开阔学生的思维,使得学生在课堂上真正地成为主体,变被动为主动。

1.5.3 任务驱动教学法

任务驱动法主要运用在实验教学中,对综合设计性实验,给学生一些基本目标,让学生通过讨论、查找资料等手段主动运用所学知识解决问题。这样,不但使大部分学生完成了学习要求,建立起学习的兴趣,又可以使少数程度较高的学生充分发挥潜能,给出个性化的设计,培养了学生的创造性。这种教学方法给学生提供了较大的发挥空间,进一步培养学生的创造性和自主学习能力。

1.5.4 探索式学习

目的是培养学生的研究能力、自主学习能力和探索精神。在C语言程序设计教学中,寻找一些有趣且具有实际应用背景的问题,引导学生运用C语言表达自己求解问题的想法,帮助学生树立“算法”的思想[1]。引导学生在解决问题的过程中学习程序设计与算法分析所必须的知识,借助其他人的帮助,利用必要的学习材料,通过意义建构的方式获得知识[2-3]。

2 教学手段的改革

2.1 制作多媒体课件

课题组老师根据教学大纲要求和教材内容,制作了C语言程序设计课程的多媒体课件。课堂上,根据内容需要在多媒体教室采用传统板书与课件等多种手段相结合的方式进行教学,使课堂教学形象、生动,取得了好的教学效果。多媒体教学具有可重复再现的特点,有助于适应学生的差异,使学生可以根据自己的能力水平适当调整进度,积极、主动地学习,做到真正意义上的因材施教,因人施教。特别是对加快操作技能的训练速度能起到事半功倍的效果。

2.2 建立和利用网络资源

在教学过程中充分应用网络化辅助教学手段。课题组建立了教学网站,提供了丰富的网络资源,其中主要包括教学进度、教学大纲、电子教案、实验指导、多媒体课件、样卷、习题库、参考资料等,为学生的自主学习提供了平台。

利用先进的现代教育技术手段、丰富的网络资源进行教学,使教学形成了一个信息交流的立体网,同时引导学生参与软件设计等活动,极大地调动了学生的积极性,激发了学生的学习兴趣,使教学效果得到明显提高。

2.3 引入评测系统

评测系统的核心是“比赛”机制,事先设计好实验题目和正确的测试数据,然后让学生在规定的时间内进行实验,每做完一道题学生都可以自行提交,系统进行检查,并可以给出提示,学生能快速知道结果,然后根据结果再修改,系统支持多次提交,并对参加比赛的用户按照提交正确任务的多少及所用时间进行排名,排名可以更好地激发学生的学习积极性。

我相信,将评测系统引进到实验教学中,一定能够更好的提高教学效果。

3 作业和考试改革

应试性学习转变为研究性学习,注重考试结果转变为注重学习过程,这样更有利于优秀学生才能的充分施展和发挥。

3.1 作业改革

丰富作业内容,增加作业形式。一般教材中的课后作业题型单一、内容不够丰富。我们提供了大量与教材同步的习题,题型多样,知识点覆盖全面,有助于学生理解和消化所学内容。

单纯使用传统的作业形式对于本课程来讲明显存在不足:作业本上的程序代码未经编译系统的语法检查,容易存在着许多简单的语法错误,而这些错误又是较容易发现和避免的。程序最终是要在计算机上得以实现的,对于程序设计语言的作业来讲,编译系统是最严谨的作业批改者。因此,我们设计3种类型的作业形式,即书面作业、实践作业和综合作业。

书面作业由老师根据授课内容和知识点,布置的偏重基本知识作业,规定完成期限,学生提交作业后,教师公布解答,由学生自行批改更正。这类作业的目的在于加深对基本概念、基本知识的理解和掌握。

实践作业是由教师布置的对基本知识的应用类的作业,分为选作和必作两类,对于必作作业,要求学生上机调试正确之后提交电子作业解答,教师批改。这类作业考查的是知识的全面理解和掌握,培养的是编程能力和分析问题的能力。

综合作业先由教师命题,学生分成小组,自由选题,然后就要解决的问题,进行分析和讨论,查阅资料,确定解决方案;紧接着进行组内分工,分别进行算法设计、编码调试,合作完成后,提交源程序和报告。整个过程学生小组相互协作完成,老师只提供必要的辅导。这类作业,要求学生真正掌握程序设计的思想和方法,能够应用解决实际问题,不仅能提高学生的实际编程能力和对知识的综合运用能力,还有利于培养探索、创新和团队协作能力。

3.2 考试改革

在课程考核中,采用多种考核形式。课程成绩由笔试、上机实验和平时作业三部分成绩综合评定,分别从不同的方面考核学生理论知识掌握情况和程序设计的综合能力,真实反映学生对该门课程的掌握程度。

3.2.1 笔试

主要考核语言基础、基本的阅读和编写程序的能力。题型主要包括:选择题、填空题、判断题、程序阅读题和编程题。

3.2.2 实验

主要考核程序的编码和调试能力。

实验考核采用平时实验、平时上机测验、期末上机考核相结合的方式。平时实验:通过学生动手操作并提交实验报告来考核;平时上机测验:根据课程教学的需要,由任课教师随堂出题考核,要求学生提交答卷。采用这种考核方式,可使教师及时了解学生学习情况,并对学生的学习和实验起到督促的作用。期末上机考核:学期结束时,由教师命题,学生上机完成。考核学生在规定的时间内正确编写和调试程序的能力。

3.2.3 作业

主要考核学生的学习态度。

4 结束语

要提高教学质量只有教学方法和教学手段还远远不够,好的师资队伍和监督机制也是必不可少的。

师资队伍建设是教育保障的一个重要条件,新建本科院校在引进师资时应掌握学科特点,充分发挥教学委员会的控制筛选作用[5],引进紧缺的专业教师。

学校现有的听评课制度、督导制度、教学检查制度和学生评教制度是对教学的一种监督,起到了一定的作用;我们还应该借鉴国外的有益经验,结合我校的实际情况,发挥政府的作用,政府作为社会公共利益的代表[6],为了确保教育质量,有权利和义务对大学的办学活动进行评估和监督。相信通过学校和政府的共同努力,教学质量将会上一个新的台阶。

参考文献:

[1] 肖潇.C语言程序设计教学探索[J].计算机教育,2011(5):65-68. (下转第91页)(上接第94页)

[2] 陆蓓.建构主义指导下的C语言程序设计教学[J].杭州电子科技大学学报:社会科学版,2006(4):64-67.

[3] 基于建构主义的计算机任务驱动式教学法[J]. 重庆工学院学报,2005,19(2):178-180.

[4] 汪小林,罗英伟,李文新,等. 北京大学“计算概论”课程的建设与改革[J].计算机教育,2009(20):45-49.

篇9

关键词:实践课程;教学方案;程序设计;软件技术

1课程目标

培养实用型、创新型人才,提升软件研发能力,构建系统、完善的理论及实践专业课程体系架构,一直是计算机专业课程和专业基础课程的根本目标。为积极落实计算机学院计算机科学与技术专业的专业培养目标,强化对学生应用编程实践能力的体系化培养,进一步构建、充实计算机软件、硬件紧密结合的基本知识架构,贯彻系统、可持续发展的培养思路和课程体系,在C语言程序设计、面向对象技术、计算机基础等先修课程基础上,加强学生软件开发能力的培养,设置并开设程序设计实践课程“计算机设计项目实践”。

课程设计方案针对专门的实用编程技术及其应用实现方法,进行特定系统功能的设计,确立实现方法,完成程序编码与调试。进一步加强程序设计基础理论技术的掌握,提升程序设计的深度和难度,培养学生设计实现较大程序的能力。为专业素质和能力的培养奠定扎实基础。

本课程的设计项目对方案设计目标、设计内容、设计思路、实施基本方法进行系统规划,学生能够了解面向具体应用的程序设计基本方法,明确系统功能、设计、实现的基本流程,理解一个实用应用程序的基本架构,掌握设计实现的应用程序的运行流程。在选择C语言编程环境及其方法的基础上,能够基于库函数或类库函数接口,运用具体编程方法,完成应用程序的设计、编码等开发工作。选择学生感兴趣的项目,构建用户自己的应用程序代码,达到熟练运用编译环境工具、开发较大型应用程序的目的。

课程方案设计的基本原则在于,通过精选应用系统的需求分析、功能设计、编码、实现、测试、提交等基本环节,展现软件开发基本过程,运用实用编程技术及其应用实现方法,培养学生实际开发经验,提升学生应用编程实力,巩固学生程序设计基本规范、基本流程的理解和实现技术,达到充实程序设计的应用知识体系、激发学生的学习兴趣和主动性、开拓学生的专业视野和实际工作能力的目的。

2教学方案设计

2.1应用系统的设计

通用操作系统的文件系统为用户数据的存储和读写等提供必备支持,应用程序设计也需要有关文件操作功能的支持,文件系统及其各项实现技术具有实用价值,C语言程序设计课程中,文件系统相关章节对文件的基本操作、编程接口、实现方法等内容进行了简要介绍,学生具备一定的理解文件系统功能和处理文件的知识基础[1]。

参考相关资料,使用高级语言实现的一个文件系统,作为一个应用原型系统,基于该系统,完成软件项目设计的各个过程[2]。

首先通过分析文件系统基本功能,理解文件系统的设计步骤,及设计实现一个简单、功能完善的模拟文件系统SMFS。该文件系统功能包括文件操作、文件存储管理、文件系统一致性和容错性管理[3]。

SMFS文件系统采用C语言设计实现。通过分析原型程序的数据结构设计、算法设计实现,掌握该应用软件的模块划分与集成,掌握编译环境、运行环境的构建与使用。

首先对现有原型系统初步改错并进行调试,查看运行结果,分析并找出原型系统仍然存在的问题。

再根据所设计的文件系统应用程序方案功能,进行设计和修改,对应用程序进行二次开发,完成应用程序的设计、编码、调试、运行。

方案的实施使学生应用能力得到锻炼和提高。学生可了解软件开发规律、开发思路和实现技术。

2.2开发平台的选择

使用PC机、Windows操作系统、高级语言编译工具及其环境,作为硬件、软件开发运行平台。选择Turbo C或 Borland C作为编译工具。开发、运行平台易建。原型软件程序已通过初步调试,可运行,为学生的调试、二次设计、开发提供有利支持和保证。方案可行性、可操作性较强。

3教学内容

3.1文件系统分析

以UNIX操作系统文件系统为例,对文件系统管理数据结构及基本构成进行必要分析,了解文件系统基本工作方式及其功能实现的基本方式。动手实现一个模拟文件系统――文件应用系统。

3.2文件应用系统规划

文件应用系统设计功能包括,提供一个文件操作接口函数库,基于该函数库实现一个简单的文件系统,提供高效的存储管理功能。该文件系统提供较好的容错性能,系统崩溃时进行数据的一致性检测,确保数据不丢失。

基于文件函数库的基本文件操作函数,设计实现一个简单的单用户文件系统。文件系统功能设计简化为以下几个模块。

Naming:将文件名映射为文件占用的磁盘块,空闲磁盘块管理的内存与磁盘数据结构,称为磁盘空闲表。该表可跟踪磁盘上每一个磁盘块分配使用情况,该表永久存放在磁盘上,文件系统启动时放入内存,指导文件的空间分配。

Allocated:磁盘块的分配记录,即文件系统的物理组织。采用索引节点方式进行文件分配磁盘块的管理。每个文件拥有唯一I节点,每个文件的属性信息存放在该文件的I节点中。此外,目录文件中包含该目录下子目录名及其I节点或文件名及其I节点,用于按目录逐级查找,将文件名映射到I节点上。

文件操作包括:创建文件;修改文件;删除文件等。

容错性、一致性的设计。文件系统的恢复策略。确保文件数据的完整性、持久性。

3.3文件应用系统数据结构设计

全局数据结构包括:文件系统文件最大数量;文件系统最大空间;文件系统操作提示符――字符串;文件系统名称――文件名表示;文件系统文件指针;文件I节点――结构体类型;文件I节点指针;文件I节点表――数组。

3.4文件函数库设计

文件系统应能永久存储数据,物理上存储数据的是磁盘。为简单起见,使用一个文件模拟磁盘。将文件磁盘块大小设定为4KB,每个磁盘块有唯一编号,每个文件以磁盘块为单位存储数据。

磁盘函数库模拟真实的硬件接口,设计为函数实现,函数接口提供良好的调试接口,为将磁盘驱动器接口映射为模拟的磁盘函数库函数接口。磁盘函数库设计如下函数:

void creat_file_system()

函数功能:创建一个文件,包括文件管理数据和实体数据结构,表示文件系统。

void open_file_system();

函数功能:打开或创建文件系统,错误返回error;正确则返回文件系统指定的文件管理数据和实体数据结构位置指针。

int new_a_file(char *file_name)

函数功能:搜索文件系统,查出可用空闲管理块,存入指定文件名,返回管理数据位置指针,否则,返回-1。

int del_a_file(char *file_name)

函数功能:搜索文件系统,查出指定文件,从文件系统中删除该文件,返回该文件位置指针,否则返回-1。

void list()

函数功能:搜索文件系统,只要文件名不为空,输出文件名和文件长度,文件计数。

int open_a_file(char *file_name)

函数功能:搜索文件系统,如指定文件存在,返回指定文件所在的序号。

int offset_by_i(int i)

函数功能:返回第i个文件在文件系统存储空间的偏移量。

int write(char *file_name,int offset,char *str,int count)

函数功能:打开文件file_name,写入文件,写入文件系统管理块信息。

int read(char *file_name,int offset,int count,char *str)

函数功能:打开文件file_name,读出该文件字符串内容。

void print_help()

函数功能:输出系统文件操作提示信息,供用户选择。

int main()

函数功能:启动文件系统,进入帮助界面,用户可以输入各项操作代码,循环执行对应文件操作,或结束系统运行。

合法操作包括:①创建文件系统;②新建一个文件;③删除一个文件;④显示文件列表;⑤写入文件;⑥输出文件;⑦退出文件系统。

3.5应用文件系统运行分析

测试中,查看存在的设计缺陷。如,文件系统中文件数量的检测和控制;文件长度的检测和控制;文件系统启动确认等[4]。

3.6应用文件系统的再设计方案

根据学生对原型系统的理解和掌握程度进行自行设计。测试改进方案的系统运行的完善性和健壮性。

4教学过程

本课程课堂授课课时为8学时,上机实践学时为24学时。教学采用讲课、上机交替进行的方式。便于学生及时把教师交付的每个任务贯彻落实、设计实现,教师能将学生实践中出现的问题,利用课堂教学及时反馈、说明、给出指导意见。

教师在授课期间,对设计方案的设计思想、设计方法、实现系统功能、实现技术及方法、编译运行环境等进行简要讲解、说明。学生在上机实践环节过程中,完成项目方案的设计实现,通过接受教师检查、验收、答辩等环节,提交实验报告。锻炼和提升分析,设计,文字、语言表述,实现,工具运用等能力。

该方案教学过程可设计为三个阶段。

4.1授课内容设计

该阶段完成进行系统开发的技术理论、程序架构、软硬平台搭建等准备工作。从项目设计目标、方案设计、实施过程及要求、编程技术分析、系统功能等方面进行授课。指导学生奠定扎实基础,为进行下一阶段的实践作好准备。为了比较系统全面了解有关软件开发的基本概念、基本过程,设计授课内容按系统功能驱动的方法展开,紧密结合实现编程技术,引导学生逐步系统了解开发一个特定应用系统所必需掌握的基本概念和基本技术。

教师在8学时的授课中,首先向学生明确说明方案系统的功能,然后进行功能的分解,直至完成模块的划分,讲解需要的编程技术,实现模块功能,学生在此基础上,设计模块内部的算法流程,并实现、调试、运行软件系统。

4.2实践内容设计

上机实践24学时。实践环节以课题组模式进行工作,利于互相帮助,培养合作能力和意识。学生以课题组为单位进行方案论证、设计、开发环境构建、分工、单元开发、调试、系统运行,完成项目实践报告的编写。组长是项目主持人。该过程能使学生明确软件开发的各个环节,结合自身条件对每个环节进行自己的设计实现。课题组学生可按以下实施内容及步骤开展工作,并按计划接受教师的检查和评估。

每2人自由结为一个课题组。可以均衡学生的能力,达到互助的目的。确立方案的功能及设计基本方法,设计模块函数功能及其编程接口。

安装开发环境、调试开发工具。对于开发使用的 C/C++语言环境及工具、函数等作必要的调试。

分析设计系统功能,划分每位同学的模块分工明细。完成各自的功能模块设计、编码实现、调试,并接受教师检查、评估。

课题组完成系统集成调试。提交调试报告和系统使用说明书,并接受教师软件验收。

项目实践上机环节的内容可操作性强、实施要求具体、目标明确,便于对学生的研究能力、协调协作能力、软件系统分析设计能力、编码能力,解决问题能力、语言、书面表述能力等作一个综合的培养、评价、考核。

5评价体系

对学生方案设计实现的评价,旨在通过实践的各个环节的监督检查,深入了解学生的进展情况、方案实施效果、出现的问题等,为学生提供指导、建议,考核设计与实现结果是否达到方案目标的要求。

针对项目实践课程的目标和特点,必须规划、确立学生成绩评价标准。否则,课程开设效果难以保证。对学生方案设计实现的评价,旨在通过实践的各个环节的监督检查,深入了解学生的进展情况、方案实施效果、出现的问题等,为学生提供指导、建议,考核设计与实现结果是否达到方案目标的要求。

课程实施过程分为:课堂教学,课题组完成系统分析设计的理解、模块功能设计与划分、编程实现与调试、软件验收、答辩等。

学生成绩评价体系设计根据每位学生的各个部分的实施情况进行评估。学生应提交规定格式、内容的文档、实验报告,完成编码、调试、软件验收,学生在阶段检查时对设计实现内容进行讲解、答辩。答辩对学生的系统总体设计模式与运行模式进行考核,确认学生是否对软件系统的设计流程、运行流程及其出现的问题,有全面的理解。敦促学生全面系统地完成项目实践整个实施计划与实施过程。

学生成绩评价体系包括文档成绩评估设计和软件验收答辩两个部分。

文档成绩评估设计。组长及其组员负责组织编写实验报告,实验报告的详细格式及内容的规范要求见附录。其中包括分析设计、系统调试、系统运行手册、设计实现的模块和调试等内容。根据实验报告的可读性、创新性、结构内容完整性、工作量等因素,评估每位学生的文档成绩。

软件验收答辩。根据教师提出的系统需求和设计方案建议,以课题组为单位进行系统分析设计,每人独立进行模块详细设计及编码调试工作,根据提交的模块设计实现文档和调试文档,学生对模块使用的数据结构及算法设计进行讲解、答辩。教师根据讲解简明、思路清楚、工作量饱满、使用技术有独到之处等方面给予成绩评定。根据提交的实验报告进行软件系统验收,根据系统的运行功能实现、界面设计、编码技术运用等评估学生的验收成绩。考核分值分布如表1所示。

表1考核分值分布表

考核内容百分比

系统分析设计报告10%

模块详细设计报告10%

原运行系统调试报告15%

系统调试报告用户手册15%

阶段检查25%

验收检查25%

6教学文档及环境支撑

计算机设计项目实践包括24学时的上机操作,需要完成课程软件系统开发与文档组织编写,是以学生自主完成为主,教师指导为辅的实践过程。为配合师生的需求,提高学生的工作效率,支持文档的编写、系统的设计实现、编码、调试等诸多具体要求,一个方便实用的文档及具体要求支持体系十分必要。教学文档可提前提交给学生参考,一般包括:①授课教案;②实验指导书;③应用软件开发环境;④课程实践环节参考手册;⑤网上教学资源平台;⑥教学大纲;⑦实验大纲;⑧授课计划;⑨实验上机学期计划表。

7课程实践环节参考手册设计

特别设置一个实践环节参考手册,对课程设计所有环节具体要求和实施办法作一说明。为学生方便地编写文档和规范地完成实施过程,提供规范文档体系参考与指导,使学生的成果体系完整、有据可查。

附录一,实验报告规范模板;附录二,实验任务书;附录三,报告文档内容格式参考;附录四,进度安排及成果提交;附录五,实验报告撰写规范;附录六,成绩评估表。

8结语

操作系统技术对于大学计算机专业课体系教育的重要性勿容置疑,实践教学对理论教学有延伸和提升的作用,其教学重要性、迫切性、科学性越来越得到国内外同行的共识,如何将实用技术引入实践教学

环节一直是教学中探索的重点和难点。本方案的创新性在于系统全面地设计了实践类课程的各个环节,提供了较全面的方案设计内容,有一定的参考价值。方案具有较好的可操作性和可移植性,可供其他计算机专业课的实践环节参考。该方案已应用于教学,对学生拓展应用编程技术,进行软件开发具有较好的效果。

该方案具有技术实用、平台易建、功能明确、难度适中的特点。通过方案的实施,学生系统软件分析能力和应用软件的开发能力能得到一个全面的实践和锻炼。

参考文献:

[1] 谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2006(6):150-210.

[2] 卢军. Linux0.01内核分析与操作系统设计[M]. 北京:清华大学出版社,2004(6):139-198.

[3] 孟庆昌,牛欣源. 操作系统[M]. 2版. 北京:电子工业出版社,2009(11):183-216.

[4] 赵斌. 软件测试技术经典教程[M]. 北京:科学出版社,2007(5):1-59.

Research and Implementation of Programming Practice Project

NIU Xin-yuan

(School of Computer, Beijing Information Science and Technology University, Beijing 100101, China)

篇10

关键词:大学计算机基础;教学;实践

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

大学计算机基础课程是普通高校非计算机专业入学开设的一门公共必修课。近年来,随着信息技术与网络技术的发展,为适应不断发展的社会需要,为提高教学质量,培养计算机应用人才,培养学生创新能力,教师们一直致力于大学计算机基础教学改革,通过对大学计算机基础课的教学方法、教学手段、教学模式的分析和研究,开展了多种多样的大学计算机教学改革实践活动。

1 在实践教学中开展多种教学方法的融合

大学非计算机专业计算机基础课作为一门基础学科,是一门应用性极强的学科。本课程分为理论课与实验课教学,为避免理论与实践脱解,授课教师采用讨论式教学与任务驱动教学等多种教学方法。理论课根据课程内容积极进行讨论式及案例教学,使学生参与到教学中来,真正成为课堂的主人。实验课多采用任务驱动教学,学生带着任务操作,学习目的明确。在实际教学中,对教学大纲、教案讲稿及授课计划进行了细分,均分为理论和实验两部分,内容更具体,更具针对性。例如理论讲稿内容增加了案例,让学生带着问题听课,积极参与教学讨论,使教师做为课堂的主导,学生成为课堂的主体;实验讲稿对实验任务进行了详细说明,实验课学生任务明确,学生动手操作能力增强,不在纠结学习本门课程有什么用,思考的重点是怎么把这门课学好。

2 实验学时大幅度增加

按照现行的大学计算机基础课程教学计划,本门课程总学时60学时,分为理论课、实验课教学,传统教学方式为理论课与实验课学时分配为1:1。教学改革实施后,理论学时为20学时,实验学时增加为40学时。实验学时的增加,极大的提高了学生的动手操作能力,进而培养了学生的自主学习及创新能力。学生的实验操作任务大部分都能按时完成,实验报告书写完整,电子作业完成质量很高,并且有一定程度的自我创造。在所有的电子作业中,学生的Word文档及PPT演示文稿作业尤为出色。例如,PPT演示文稿设计实验,实验目的:①掌握PPT文件的建立,保存方法;②掌握对 象(图片、文字、音频和视频)的添加方法;③掌握动画的设置方法和幻灯片的切换方法;④掌握超链接的使用;⑤掌握幻灯片设计和幻灯片版式的应用。通过学生的电子作品检查,实验基本要求都实现,演示文稿放映时有幻灯片切换效果,有动画效果,很精美。另外该生创造性地添加了GIF格式的动画图片和自选图形,进一步美化了幻灯片。理论课前用20分钟演示学生作业,同学生一起给出客观评价,学习优点,弥补不足,学生学习兴趣浓厚,学习的积极性增强。

3 分层次教学

目前,虽然计算机基础教学已从原来的大学起步过渡到中小学为起点,但刚进入大学校园的新生中还有很大一部分对计算机了解甚少,甚至还有的学生没摸过计算机,属于零起点学生。本课程依据学生的专业特点及计算机基础掌握情况进行分层次教学。理论分文、理、艺体三个教学层次。文科及艺体开设Visual FoxPro程序设计,理科开设C语言程序设计。实际教学中,因为艺体学生的特殊性,对其进行基本操作知识讲授。实验教学由理论教师在第一堂课对学生进行问卷调查,将学生分成有一定基础和没有基础的两部分,将实验课由理论课的大班额教学采用分层次方法分为两个小班,由两个实验教师进行指导。实验教学中实验任务的设置由易到难,首先要求完成较容易的任务,然后根据自身情况及时间安排有选择的完成较难的任务。

实验学时的增加及分层次小班额授课,学生学习热情及实际动手操作能力明显增强,结合多种教学方法,教学手段,学生自主学习能力、创新能力大大提高,学生制作的Word作业,PowerPoint作业,从质量及美感各个方面均有大幅提高。

4 分模块教学,分阶段考核

模块化教学是大学计算机基础课程教学改革的重点,也是我院大学基础课程教学的特色所在。根据教学内容特点分为六大模块:操作系统、文字处理、电子表格制作、演示文稿制作、Visual FoxPro程序设计、C语言程序设计。每一模块教学完成后,随堂进行考核,采用上机考试,在线阅卷,学生当场可知道成绩,60分合格,不及格者继续强化该部分训练,另行考核。期末考核式方式为上机考试,学生不用再死记硬背,而是需要对所学内容熟练操作,极大地提高了学生对计算机的实际操作能力,增强了自主学习能力与实践创新能力的培养,也提升了学生未来就业竞争力。

5 教学模式网络化,提高学生自学能力

本课程教学模式采用传统教材、网络课件、网上资源三大资源为基础,以网络课程为补充、课堂教学和网络课程结合、网络课程自学为主体等多种教学模式,达到整体优化教学,充分培养学生的信息素养,提高教学质量,增强大学生计算机应用能力。

充分利用电子邮箱、学院网络教学平台、学院教务管理系统、聊天软件等等现有的交互式信息平台,与学生实现随时随地沟通,实现了教学在时间和空间上的延伸,解决了过去只有上课才能见到老师的问题,实现了教学的可持续发展,使教师不仅仅是学生的良师还是学生的益友。

教学模式改革之后,经常有学生对现有知识内容进行扩展,向老师询问一些本课内容之外的问题,例如,“如何做PPT特效”,这就要求教师及时扩充知识储备,迎接未来一个又一个挑战。

6 大学计算机基础课程教材改革

让学生学习好计算机基础这门课程,需要教师、学生及教材的三方配合才能实现最好。教材是重要的课程资源,是教师教学的依据,学生学习的依据。通过多年的大学计算机基础教学实践工作发现,传统大学计算机基础课程教材内容偏重于理论的教学,而在实践方面过于肤浅并且缺少有针对性的强化练习内容,所以学生在学习过后并没有真正的体会到应用的乐趣,另外学生个体对计算机基础知识的了解和对计算机技能的掌握也是因人而异的。为了使教材能适应不同层次的学生需要,能体现和发挥出学生的能力和特长,达到学以致用,会学会用,大学计算机基础教学部的老师,根据多年一线教学经验,及目前学生实验课状况和学生目前学习情况,对高校非计算机专业学生的计算机应用能力进行调研,对教学内容进行了改革,对教学过程中教案进行整理,编写了一系列教材,《大学计算机基础教程》、《大学计算机基础实训教程》、《Visual FoxPro程序设计教程》、《Visual FoxPro程序设计实践教程》、《C语言程序设计教程》、《C语言程序设计实训教程》。

《大学计算机基础教程》与《大学计算机基础实训教程》结合非计算机专业计算机应用能力培养要求设置,凸显项目教学、任务教学、主题教学、案例教学。《Visual FoxPro 程序设计》教材立足于计算机公共课程,理论联系实际,简明扼要,层次分明;《Visual FoxPro 程序设计实践教程》为学生的学习提供了大量实际操作任务,让学生由浅入深,一步一步操作,激发学生自主学习兴趣,培养学生创新能力。《C语言程序设计教程》教材采用了“提出问题-分析问题-解决问题”的案例教学方式;《C语言程序设计实训教程》教材中的上机实训题型丰富,且来自实际生活,有利于培养学生编程解决实际问题的意识和能力;教材投入使用后,深受教师及学生的好评。

新教材加强了学生实践操作技能培养,突出了面向对象的程序设计思想,注重培养学生科学严谨的编程思想,掌握程序设计的方法,力求由浅入深、循序渐进地引导学生掌握计算机基本技能操作、程序设计教程的基础知识和基本方法,促进学生将理论知识融会贯通,真正起到提高学生运用计算机技能解决实际问题的能力,并被国内很多高校采用。

7 实践教学中引入教育心理学

目前,大学生均为90后,彰显各性的年代,在实际授课中,授课教师采用多种教学方法,并将教育心理学应用到教学实践中,实现教与学过程的最大化。例如,在实验教学中引入教育心理学的社会助长现象,鼓励学生主动帮助其他遇到操作难题的同学。在实际授课中,有的同学性格开朗,极其主动要求:“老师,我会,我告诉他”;分模块教学中,每一模块测试结束后,学生有喜有忧,及时引入教育心理学正确引导学生加强后续内容的学习,学生都能端正学习态度,认真听课,按要求完成后续实验操作任务。整个教学过程中,教师不仅帮助学生掌握理论知识,操作实践,更要帮助学生形成良好的心理和行为模式,培养学生的积极情感。教育心理学的渗透以及灵活多样的教学方法积发了学生的学习兴趣,进一步提高了学习的主动性、积极性和创造性,提高了学习效率,并在最大程度上体现“学以致用”的教育宗旨,凸显了学生的主体地位,培养学生的自主创新意识和探究意识,最终让学生学会学习、学会协作。

参考文献:

[1] 宋丽,吴玉华,蔡丽艳.任务驱动教学法在大学计算机基础教学中的探索[J]. 电脑知识与技术,2009(7).