程序设计实践范文

时间:2023-04-03 05:32:14

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

程序设计实践

篇1

摘要:本文针对非计算机专业程序设计类课程实践教学中存在的不足,结合我院综合实验设计的初始探索、发展稳定和扩展提高三个时期的特点,介绍了我院实施综合实验设计改革的情况和效果。

关键词:程序设计;应用能力;综合实验

中图分类号:G642

文献标识码:B

1引言

目前,国内许多高校把程序设计课程作为非计算机专业学生的计算机公共基础课程,目的是为了使学生掌握计算机程序设计的基本方法和思路,培养学生综合分析问题、灵活运用知识的能力。我院也和许多高校一样,在理科非计算机专业的学生中开设了Visual Basic程序设计语言课程。

众所周知,程序设计语言是实践性非常强的课程。程序设计课程的实践教学的设置一贯地被认为是程序设计课程重要的环节。在教学过程中,为贯彻我院“发展应用性教育,培养应用型人才,建设应用型大学”的办学宗旨,在“学以致用”的教学理念的指导下,进一步深化教育教学改革,加强实践能力的培养,我们不断地对Visual Basic程序设计语言课程的实践教学进行改革和探索,在Visual Basic程序设计课程别设立了“综合实验设计”环节,加强实践教学力度,增设综合性、创新性实验,以提高学生们综合应用所学计算机知识解决实际问题的能力。

2开展综合实验设计的必要性

过去一段时期内,我们学院VB程序设计语言课程所开设的实验多是基础性实验。实验方法死板,学生只要按实验指导上的步骤做,就可完成实验。操作的方法一致,实验完成后的效果基本一致,成绩也差不多。学生普遍感觉实验单调,积极性不高,有时还会出现拷贝结果应付老师检查的现象。这种实验模式一定程度上抑制了学生个性的发展,不利于对学生创新能力的培养,阻碍了他们独立思考的兴趣和努力钻研知识的热情。

我们VB程序设计语言课程设立的综合实验是在传统演示实验和验证实验的基础上的一种新型实验。

学生在教师的引导下,根据自身的能力和特点自己选题,选题一旦确定以后,学生自己设计实验完成方案。实验具有一定的探索性和创造性。将过去的被动实验改变成主动实验,能充分发挥学生的主观能动性和独立操作能力。培养了学生的综合设计能力和创新意识。

3综合实验设计的实践探索

我院是从2003级开始在理科学生中开设“VB程序设计”课程的。这门课程的学习目标是使学生既要学会面向对象的、可视化界面的程序设计方法,又要掌握程序设计语言的基本规则、常用算法。培养学生在VB集成开发环境下上机编制、调试程序的实际编程能力。通过本课程的学习,使学生具备可视化开发环境下的程序设计能力、良好的程序设计素养与规范的程序设计方法,从而能独立开发出具有实际意义的程序。

为更好地实现教学目标,我们从2004级开始实施综合实验设计。综合实验设计的发展经历了三个阶段:初始探索期、发展稳定期和扩展提高期。

3.1初始探索期

实施初期,我们对VB综合实验设计提出了相应的要求。具体内容是要以一个具体项目为背景,运用Visual Basic程序设计语言独立编制完成一个程序系统。该程序具有一定的规模,能满足某种需求,实现一定的功能,解决一个实际问题。要求有文字说明(Word文档形式)和相应的源程序代码(工程文件、窗体文件及相应的文件)。学生自我选定综合实验设计的题目,自我设计方案,自我设定功能,自我调制完成整个系统。

在此阶段,教师和学生都属于探索阶段。总体来说,学生设计的水平参差不齐,有些同学把书上的例题稍加组合拼凑在一起,是为了完成作业而完成作业。作品的选题范围集中、选题面也比较窄,个性化的体现较少,高质量的作品数目不多。一方面反映了学生接触面少、视点窄,另一方面也反映学生对所学的知识灵活运用的能力尚有欠缺,创新意识不足。

3.2发展稳定期

经过前一阶段探索,我们及时分析现状、总结经验。针对前几届学生出现的问题,加强指导采取了相应的措施:

(1) 引导学生开阔视野,扩大选题面。学生的选题往往集中在“多功能计算器”、“考试成绩统计”、“计算与比较大小”这样的题目,而没有将眼光放开,解决生活中的各种问题。

(2) 修正、细化综合实验设计要求,统一封面内容设计,统一评分标准。

(3) 加强辅导,及时和学生沟通,出现问题及时解决。

(4) 展示综合实验设计样例和一些优秀的作品,启发学生的思维。

(5) 严格检查,鼓励创新,对于雷同设计决不姑息。

经过学生和教师的共同努力,涌现了一些优秀的设计作品。表1列出了部分VB综合实验设计的名称。可以看出,学生的设计选题丰富,有些还和专业密切结合。图1是一个学生的程序系统的界面。创意新颖,界面友好。该学生的“花语查询系统”在程序结构中使用了VB程序设

计语言的中分支、循环和嵌套结构,在界面设计上使用了多重窗体、菜单等,正确地运用了数据文件中读取文本文件等命令。在系统设计上巧妙地将这些知识点结合在一起,使得整个系统的功能比较丰满,也比较完备。

3.3扩展提高期

从2007年开始,我们进一步规范了综合实验设计文档、文件的后期管理,逐一记录每份设计的题目,按班统计。将统计后的结果提供给学生,使他们在确定综合设计实验题目的时候有所启发。同时,也进行了问卷调查,调查开展综合实验设计对学生掌握VB程序设计是否具有帮

助。结果表明,绝大多数同学都认为是有帮助的。图2和图3是对2006级和2007级同学的问卷调查统计结果。很多同学都表示,通过综合实验设计,不仅巩固了课堂所学的知识,更重要的是找到了学习新知识的方法和途径,获得更强的学习自信心和成就感,提高了自主学习能力、实际应用能力和创新能力。

4结束语

计算机基础教育的改革在不断深入,实施应用性教育的概念也在不断强化。计算机基础教育要面向应用,就是要面向各专业领域,使计算机技术更全面、更深入地与本专业结合,使计算机技术本专业化。

在这种指导思想下,为了高效地帮助学生在有限的教学时间内掌握VB程序设计语言,提高应用到专业中的能力。我们和各专业的老师共同探讨,拟为学生提供一些与所学专业知识相结合的综合实验设计题目,提升学生对知识的复合应用能力,强化使用VB软件进行与本专业内容相关的软件开发的能力。

参考文献

[1] 胡伏湘. 软件设计类课程实践性教学的研究与实践[J]. 计算机教育,2008,(1):82-85.

篇2

关键词:程序设计;教学改革;实践能力

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

Practice on the Teaching of the Programing Course

YUAN Hui-yong, YANG Si-qing, YI Ye-qing

(Department of Computer, Hunan Institute of Humanities, Science and Technology, Loudi 417000, China)

Abstract: This paper first analyses the problem in teaching of "C Language"," Data Structure" and "Algorithm Design and Analysis", and then propose a reform of teaching by improving teaching method, integrating teaching content and strengthening practice teaching. Results show that the reform of teaching can effectively stimulate students interest in learning, improve the efficiency of learning and the ability of programming.

Key words:programming; reform of teaching; ability of practice

1概述

目前C语言程序设计、数据结构、算法分析与设计是计算机及其相关专业中非常重要的专业课程。在以往教学中,这三门课程采用相对独立、分开授课的方式,导致课程内容脱节与重复,教学效果差,学习完三门课程后却不能编写程序的大有人在。这三门课程都以培养学生解决实际问题的程序设计能力为共同目标,因此,如何将三门课程有机地结合起来,构建程序设计系列课程的新体系,整合教学内容,改进教学方法,切实提升学生的程序设计能力,成了当前计算机专业教学改革中亟待解决的问题。

2教学中存在的问题

在传统的教学中,C语言程序设计、数据结构、算法分析与设计三门课程的分开授课,课程知识没有整合,对课程知识中存在重叠的内容,只是做简单的重复讲解(如C语言和数据结构课程中都有数组这个教学内容),教学深度不够。教学中注重讲授基本理论,忽略了程序设计过程中涉及的方法和技术(如算法分析与设计课程通常是将已有的经典算法在数学模型和数据结构上给学生解释),理论教学与实践教学结合不够紧密(如数据结构在讲授了某种抽象的数据关系和在计算机中的表示与实现后,并没有将这种结构用到解决实际问题中去),造成有些学生虽然具备了一定的理论基础,但由于实践教学薄弱,动手能力差。

3具体改革措施

我们改变了以往C语言程序设计、数据结构、算法分析与设计分开授课的模式,而是将这三门课程作为一个整体,以培养学生解决实际问题的程序设计能力为目标,从组织教学内容、改进教学方法、突出实践教学等方面进行教学改革与实践。

3.1整合教学内容

C语言程序设计是数据结构的前导课程之一,学生对它的掌握程度直接关系到数据结构课程的教学效果。算法分析与设计是计算机专业程序设计类的核心课程,在学习该课程之前,要求学生们掌握了基本的数据结构知识,能熟练运用一门或多门编程语言,并具备一定的编程经验。

我校原来的C语言、数据结构和算法分析与设计三门课程是相对独立、分开授课的,学习效果不理想。我们将这三门课程的知识进行整合,采用同一教师授课,做到了前导课、后续课的有机衔接,并重新制定了三门课程的教学计划,以知识点为单元,将这三 门课程很好地结合起来。在C语言的教学中,以C语言为主线,适当穿插数据结构中的相关内容,使C语言与数据结构有机地结合在一起,如我们将C语言中的数组和数据结构中的直接插入排序、冒泡排序、简单选择排序、顺序查找、折半查找方法放在一个知识单元中。在数据结构教学中,穿插了算法分析与设计的有关知识,如在讲述哈夫曼树和图的最小生成树时,穿插了讲述了贪心算法,在讲述图的最短路径时介绍了动态规划算法。

我们不再把C语言当做一门语言来讲解,加强了数据结构、算法设计、逻辑思维和编程方法的教学。数据结构课程不再只注重讲授抽象的数据关系和存储结构,而要求学生用C语言编程实现各种算法,并结合实际应用,在ACM/ICPC在线评测系统上完成相应的练习题目,学生不再感到枯燥无味,不仅较好地解决了数据结构教学中学生上机困难的问题,也提高了学生的程序设计能力。在算法分析与设计课程教学中,我们选择一些难度适中、能结合实际问题和相关课程的知识来讲解,使学生既能理解,又能拓展创新。

3.2改进教学方法

我校属于应用型本科院校,其教育目标着重于培养具有实际工作能力的技术型和应用型人才。在C语言的教学中我们采用了“案例”教学方法,从日常生活中选择能典型反映教学内容的案例,所选案例难度适中并能反映多个知识点。如选用了“学生的成绩管理”,该案例覆盖了C语言中的循环结构与数组,涉及数据结构中的排序与查找。在该案例中穿插介绍了数据结构课程中的直接插入排序、冒泡排序、简单选择排序和顺序查找;通过介绍C++中的排序函数qsort()激发学生自觉地学习C++标准模版库;并提出如何保存学生信息以避免重复输入数据的问题,引导学生自学C语言中的文件操作,培养学生的再学习能力。在算法分析与设计课程的教学中,我们采用了“任务驱动”教学方法,将具体的算法设计策略融入到一些“任务”中,课堂教学以任务为主,引导学生利用算法设计策略探索解决方案,在课后的实践环节,将结合实际应用且融入了知识点的任务放到ACM/ICPC在线评测系统上,让学生在课后根据任务描述,自主探索问题解决方案,并提交程序代码。

在教学过程中,对典型例题力求讲透彻,并提出问题给学生思考。如斐波拉契数列,讲解了分别使用变量交换的循环结构、使用数组的循环结构和递归三种编程方法,并比较了三种方法的优缺点,使学生深刻体会到了采用递归求解斐波拉契数列的低效,引导学生理解使用数组的高效是基于算法分析与设计课程中的动态规划的思想,并且穿插介绍了数据结构课程中算法的时间复杂度与空间复杂度的度量;再提出大斐波拉契数列的求解问题,介绍使用数组进行高精度计算以及使用矩阵和二分法的求解方法,激发了学生的学习积极性。在例题的讲解过程中,充分利用多媒体教学手段,加强了例题讲解过程中的现场调试与分析,鼓励学生对具体问题进行分析和研究,培养学生的逻辑分析和判断能力,重视上机训练,养成良好的编程习惯。

3.3加强实验教学

这三门课程都是理论与实践并重的课程,在教学中必须将理论教学与实践教学紧密结合。我们从以下几个方面来加强实验教学:

1)重新编写实验指导书。按照教学内容的知识点,综合可操作性、趣味性和适当的难度,编写了适合教学要求的实验指导书,既保证了实验的可完成性,又增强了学生的兴趣。

2)建立在线题库。在ACM/ICPC在线评测系统上开设了C语言程序设计、数据结构、算法分析与设计的专题训练,每个专栏按照教学知识点安排了不同难度的练习题,学生可以根据自身的能力,完成相应等级的题目,在探索与解决问题的过程中获得学习成就感。

3)组织程序设计比赛。ACM/ICPC在线评测系统上安排了与教学知识点相关的竞赛真题,鼓励学生组队、按照比赛规程进行模拟比赛。通过比赛,学生对教学知识点有了更深入的理解,不仅增强了学生的实践动手能力,提高了学习兴趣和积极性,也使学生提前了解ACM比赛的规则和比赛真题,训练了学生的参与意识、竞争意识和团队精神,为以后组织学生参加省程序设计比赛打下良好的基础。

4)开设课程设计。课程设计的题目以典型的问题或实际的工程为主,如数据结构课程选用了“教务计划编制问题”,让学生运用图论中的拓扑排序来求解这个实际问题。通过课程设计,培养了学生综合运用所学知识进行分析和解决实际问题的能力,使学生不仅学到了解决问题的办法,同时加深了理论的理解与掌握,做到了理论教学与实践紧密结合。

3.4改革考核与评分标准

考试作为课程教学的一个重要环节,对学生的学习具有明显的导向作用。这三门课程原来的考核分为平时成绩和期末考试,这样的考核方式很难考察学生的实践能力,导致大部分学生只注重期末考试,而忽略学习过程,很难有效的提高学生的创新能力和实践能力。我们认为这三门课程的考核应着重考核学生的程序设计能力,而不是死记硬背一些基础知识。为此,我们引入了ACM/ ICPC在线评测系统及,对课程的考核进行了大胆改革,评分标准也作了修改,提高实验考核成绩在课程总评成绩中的比重,以此来引导学生认真对待实验和课程设计,切实提高学生的实践动手能力。

4结束语

实践证明,将C语言程序设计、数据结构、算法分析与设计这三门课程有机结合的教学改革,能够很好地激发学生的学习兴趣,学生在掌握基本理论和知识的同时,程序设计能力、数据结构和算法设计的应用能力也得到了很好的培养,我校学生在近二年的湖南省程序设计比赛中均取得了较好的成绩。

参考文献:

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

篇3

关键词:计算思维;实践教学;面向对象程序设计;数据结构

中图分类号:G642.0 文献标志码:A?摇 文章编号:1674-9324(2013)39-0203-03

目前,计算思维已在教学当中逐步应用,但是,其本身还未成为独立的学科体系,教学中的应用只是少数专家学者进行小规模探索性的实验性教学,在培养过程中没有系统性的应用计算思维的系列方法[1]。本文对OOP课程中计算思维培养的实践教学进行了尝试。

一、计算思维

计算思维是当前国际计算机界广为关注的一个重要概念,也是当前计算机教育需要重点研究的课题。2006年3月,时任美国卡内基·梅隆大学(CMU)计算机科学系主任、现任美国基金会(MSP)计算机和信息科学与工程部(CISE)主任的周以真(Jeannette M.Wing)教授,在美国计算机权威刊物(Communications of the ACM)上,首次提出了计算思维(Computational Thinking)的概念:“计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动。”对于计算机科学的重要性,美国总统信息技术咨询委员会认为:虽然计算本身也是一门学科,但是其具有促进其他学科发展的作用,21世纪科学上最重要的、经济上最有前途的前沿研究都有可能通过先进的计算技术和计算科学而得到解决[3]。《中国至2050年信息科技发展路线图》报告指出:计算思维是克服狭义工具论的有效工具,是解决其他信息科技难题的基础[4]。

二、面向对象程序设计

面向对象编程技术从根本上改变了人们以往设计软件的思维方式,降低了软件开发的复杂度,能够开发出具有高可靠、可重用和易维护的软件,提高软件的开发效率,是现今软件开发的主流技术,对信息科学、软件工程、人工智能以及系统科学等学科产生了巨大而深远的影响[6]。

面向对象方法与人类习惯的思维方法一致。

面向对象的方法通过获取客户对系统的需求,建造需求模型;用基本的需求为指南来选择类和对象,定义类的结构;由客观实体的一般和特殊关系定义类的层次;而后建造对象关系模型,对象行为模型[7]。因此,面向对象软件设计通过抽象和分解来控制庞杂的任务或进行巨型复杂系统的设计,其分析过程是一个把问题阐释为如何求解它的思维方法。

三、计算思维培养与程序设计工程化训练

程序设计课程中,强调学生对语言规则的掌握和对基本编程能力的培养,而不重视工程化思想的潜移默化,容易造就个体化编程思想的孕育。按照软件工程理论,软件研发过程中存在的软件危机问题,一方面与软件本身的特点有关,另一方面是由于软件开发与维护过程中方法的不正确决定的。与软件开发和维护有关的许多错误认识和做法的形成,可以归结为在计算机系统的早期阶段软件开发的个体特点。错误的认识和做法主要表现为忽略或轻视软件分析、设计的重要性,对问题和目标没有正确认识的情况下,就匆忙进行代码实现,认为软件设计就是编写程序并设法使之运行。

程序设计课程涉及到了详细设计阶段、程序实现阶段的软件开发工作。详细设计阶段的根本目标是确定怎样具体地实现所要求的系统,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计阶段的任务不是具体的编写程序,而是要设计出程序的蓝图,以后程序员根据这个蓝图写出实际的程序代码。因此,详细设计的结果基本上决定了最终的程序代码的质量。考虑程序代码的质量时,必须注意程序的读者除了计算机还有维护程序的程序员。在软件的生命周期中,涉及测试方案、诊断程序错误、修改和改进程序等都必须首先读懂程序。实际上对长期使用的软件系统而言,人读程序的时间可能比写程序的时间要长得多。因此,衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,还看它是否容易阅读和理解。

因此,在语言训练的过程中,培养学生在掌握语言规则的基础上,先进行问题分析,算法设计,最后代码实现的程序设计过程,与培养学生的计算思维是一致的。

四、案例教学及题解多样性

程序设计在计算机学科知识体系中处于核心地位,对计算机专业的学生来说不仅是职业技能的培养,也体现着创造性思维的信息素质培养过程。程序设计也是有形表达抽象思维的方法,在程序设计过程中贯穿阅读判断、分析思考、工具利用、抽象表达、综合创造等多项技能,对计算机专业人才素质的培养至关重要[8]。程序设计实验教学的教育价值在于突出计算思维,培养学生的创新意识、探索精神和问题求解能力。课程目标不仅仅是培养学生的操作技能,还要通过强调算法多样性来提高学生的计算思维能力[9]。教学过程中要使学生经历算法化过程并体验计算思维,它有利于培养学生的理性思维和形式逻辑能力。培养学生通过计算机编程,最终形成计算思维[10]。

下面列车车厢重排的实例,对面向对象方法来说,涉及到类的设置,类的继承,功能的扩展等重要知识。对于培养学生的计算思维有较好的作用。一方面可以对栈数据结构算法的特点加深理解,对其的应用有较深了解,另一方面,在解决问题的过程中,引导学生形成解决问题的思路,鼓励不同的解决方案,用一定的形式将形成的思路描述下来,最后完成程序的设计。数据结构的基本算法与程序设计课程相结合,在教学内容上相融合,加强了课程之间的联系,将孤立的知识点联系起来。

一列货运列车共有n节车厢,每节车厢将停放在不同的车站。假设n个车站的编号分别为1~n,货运列车按照第n站至第一站的次序经过这些车站。车厢的编号与它们的目的地相同。为了便于从列车上卸掉相应的车厢,必须重新排列车厢,使得个车厢从前至后按照编号1~n的次序排列,当所有的车厢都按照这种次序排列时,在每个车站只需卸掉最后一节车厢即可[11]。将在一个转轨站里完成车厢的重排工作,假设在转轨站中有一个入轨、一个出轨和k个缓冲轨道(位于入轨和出轨之间),如图1所示。

任务分析:在重排的过程中,车头只能将车厢在入轨、转轨、出轨三者之间移动,车头不能跳跃到车厢之间,车厢的进出操作符合后进先出的特点。因此,可以该重排可以利用栈数据结构。一般,栈的基本算法包括进栈、出栈、取栈顶元素值、栈判空、栈判满和栈的初始化操作。进行车厢重排,需要在栈中遍历,查找指定编号车厢的位置。因此,可以进行公有派生,在派生类中增加遍历和查找操作。

方案一:在待排车厢中查找最小编号车厢,依次排入出轨栈。

A?摇在缓冲轨A和入轨栈查找最小编号车厢,如果所有车厢遍历完成,转F;

B?摇如果最小编号在缓冲轨A,则将最小编号车厢至最尾的车厢依次通过转轨栈,进入到入轨栈;

C?摇将缓冲轨A尾车厢(编号较小)通过转轨栈进入出轨栈,转A;

D?摇如果最小编号在入轨栈,则将最小编号车厢至最尾的车厢依次通过转轨栈,进入到缓冲轨A;

E?摇将入轨栈尾车厢(编号较小)通过转轨栈进入出轨栈,转A

F?摇重排完成。

方案二:同时在待排车厢中查找最小和最大编号车厢,小编号车厢依次排入出轨栈,大编号车厢排入缓冲轨B,待排车辆处理完成后,将出轨车辆和缓冲轨B中的车辆链接,即可完成重排。

A?摇在缓冲轨A和入轨栈查找最小、最大编号车厢,如果所有车厢遍历完成,转F;

B?摇如果最小编号在缓冲轨A,则将最小编号车厢至最尾的车厢依次通过转轨栈,进入到入轨栈;如果最大编号在缓冲轨A,则将最大编号车厢至最尾的车厢依次通过转轨栈,进入到入轨栈;

C?摇将缓冲轨A尾车厢(编号较小)通过转轨栈进入出轨栈;最大编号车厢通过转轨栈进入缓冲轨B,转A;

D?摇如果最小编号在入轨栈,则将最小编号车厢至最尾的车厢依次通过转轨栈,进入到缓冲轨A;如果最大编号在入轨栈,则将最大编号车厢至最尾的车厢依次通过转轨栈,进入到缓冲轨A;

E?摇将入轨栈尾车厢(编号较小)通过转轨栈进入出轨栈;最大编号车厢通过转轨栈进入缓冲轨B,转A;

F?摇将缓冲轨B中车厢顺序链接到出轨栈,重排完成。

方案一和方案二的区别,在于是否查找最小编号车辆的同时查找最大编号车辆。方案二提高了重排的效率。

由于数据结构具有抽象性和灵活性等特点,这给教学和学习带来一定的困难。从算法的一题多解入手,对培养学生学习兴趣和提高其程序设计及编程实践能力起到了极大的促进作用[12]。

五、结束语

程序设计课程在计算机相关专业的作用不仅是掌握一门计算机语言,更重要的是通过这样一个平台,理解计算机一些重要的理论和方法,并将这些方法用于实践,解决实际问题。在程序设计课程中,有意识地将课程之间的内容融合,开展案例教学,将软件工程的软件开发过程和方法贯穿于课堂和实践教学活动中,不仅有利于培养学生的职业能力,也有利于对学生计算思维的培养。

参考文献:

[1]牟琴,谭良.计算思维的研究及其进展[J].计算机科学,2011,(3):10-15,50.

[2]Wing J putational Thinking[J].Communication of the ACM,2006,49(3):33-35.

[3]President’s Information Technology Advisory Committee. Computational Science:Ensuring America’s Competitiveness[EB/OL].http://nitrd.gov/pitac/reports/20050609_computational/computational.pdf,June 2005.

[4]中国科学院信息领域战略研究组.中国至2050年信息科技发展路线图[M].北京:科学出版社,2009.

[5]陈国良,董荣胜.计算机思维与大学计算机基础教育[C].第一届“技术思维与大学计算机课程教学改革研讨会”,西安交通大学教师教学发展中心,高等教育出版社,2012.07:21-26.

[6]张海藩.软件工程导论(第5版)[M].北京:清华大学出版社,2008.2.

[7]钱乐秋,赵文耘,牛军钰.软件工程[M].北京:清华大学出版社,2007.3.

[8]耿国华.程序设计能力培养模式的探索与实践[J].中国大学教学,2009,(3):30-32.

[9]陈杰华,戴丽娟.以培养计算思维为核心的程序设计实验教学[J].实验技术与管理,2011,(1):125-127.

[10]陈杰华.程序设计课程中强化计算思维训练的实践探索[J].计算机教育,2009,(2):84-85.

[11]曹衍龙,林瑞仲,徐慧.C语言实例解析精粹(第二版)[M].北京:人民邮电出版社,2007.8.

[12]吴绍兵.计算思维和程序设计能力的培养[J].计算机教育,2011,(16):11-14,25.

篇4

关键词:翻转课堂;教学模式;C程序设计

1概述

翻转课堂是学生在课前采用视频方式进行学习,在课堂教学过程中通过测试,讨论多种形式对知识掌握的一种新的教学模式,它打破了传统课堂知识老师讲授方式,将知识讲授和知识理解翻转,形成“视频———课堂———讨论”的学习形式,将传统课上学习,课下练习进行翻转。教师将“上课内容”提前录制教学视频,并在课前布置学习任务清单,学生在清单的引导下自主学习视频内容,课上内容由原来的上课改变为老师和同学们互相探讨疑难问题,教师不再局限于单纯的课堂教授,而是学生自主学习的指导者,学生在课堂中充分发挥了学习主动性。

2传统教学模式的存在问题

传统教学模式中,存在三方面的主要问题。其一是由于程序设计类大部分课程课时缩减,教师为了按照教学大纲要求完成课程内容讲授,导致对学生比较难以掌握的知识点不能充分讲解,学生在课堂中遇到的困难逐渐增多,慢慢也会就失去了学习的兴趣;其二课堂教学目前普遍存在以教师为中心的“满堂灌”、多采用多媒体课件授课方式更加剧了老师照本宣科的现象,课堂缺乏互动,教师和学生在整个课堂教学过程中几乎零交流,学生自主学习的主动性几乎被完全扼杀了;其三是传统的试卷型考核方式,教师在考试前画重点,学生针对重点突击复习,应付考试,在这种考核方式下,学生的创新能力没有发挥的空间,使得经常出现考试拿高分,但实践能力测试时不能有满意成绩现象。

3程序设计类课程翻转课堂教学模式

程序设计类课程翻转课堂教学模式是结合我校计算机专业程序设计课程特点和学生特性相结合,进行翻转课堂式教学模式研究与实践。主要包括以下几个方面:

3.1构建适合我校本土化的翻转课堂教学模式和实施规则

选择C语言程序设计课程成为研究对象,以课前教学资源设计,课堂组织活动,学生参与性,能动性以及教学效果反馈为主运用课例分析法、观察法、归纳法等进行分析总结构建出合适我校本土化的翻转课堂教学模式和实施规则。

3.2建设“翻转课堂”的课程教学资源

对中国大学MOOC提供的浙江大学翁凯教授开设的C语言程序设计幕课进行异步SPOC,针对本校专业要求和学生特点,在浙大的幕课资源基础上进行修改,增加新的视频、课件、习题等信息资源、重构新的基于“翻转课堂”的信息资源,形成不断优化的资源库。

3.3设计翻转课堂教学模式下“课前预习菜单”

课前预习菜单是帮助学生在课前明确具体学习任务、学习方法。学生在菜单引导下,课前利用网络学习平台开展课前视频自学、测试,为课堂讨论做好充分准备。

3.4重建翻转课堂教学模式下的课堂教学活动的基本结构

在翻转课堂教学模式下,课内教师是引导者,学生是课堂的主体,教师需要提前对课堂教学活动进行总体规划设计,设置小组讨论的主题,组织学生在课堂上围绕此主题讨论,通过讨论提升学生“吸收内化”学习过程效果,从而让学生成为课堂的主人,学生在课堂上达到人到,心到,手到效果。

3.5建立翻转课堂教学模式中形成性考核评价体系

在翻转式教学的全过程,从线上学习、课堂小组表现、课堂个人表现、上机实验、期中考核、期末考核等方面设立考核评价指标,目的在分析翻转课堂教学活动中存在的问题和改进的方向,便于及时进行调整。

4C语言翻转课堂教学实施

在借鉴各类对翻转课堂教学模式与实践的研究基础上,结合《C语言程序设计》课程的特点和学生的学习特征,翻转课堂模式组织的课堂教学组织过程一般分为两个阶段,第一阶段为回顾测试,主要是对慕课学习情况总结,慕课测试中普遍出现问题讲解,以及针对慕课中重点掌握的知识点进行课堂测试,培养学生掌握对自学知识的灵活运用能力。第二阶段为进阶学习阶段,在高校教学中借助慕课让学生在课前完成理论知识学习可以在课堂中有更多时间培养学生对知识运用能力和创造力,但同时也要考虑到如果将所有教学内容放到慕课上让学生先行学习,学生一方面会出现因有些教学内容难度过大,学生无法掌握现象,导致课堂讨论教学活动开展受限,另一方面也会打击学生对课程学习的积极性。因此本课程的慕课的教学内容只放置容易理解的,简单的一部分教学内容,教学重点,难点在课堂上除了讲授之外,还采用多种形式引导学生深入学习。

篇5

关键词:C语言程序设计;以应用为本位;启发式教学

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)10-2412-03

C语言功能丰富,应用面广,当下,很多高校依然把C语言作为非计算机专业学生的一门通识平台课开设。然而,在C语言课程的开设过程中,教师和学生不同程度地存在着缺位和误区,教与学的效果不尽如人意。在C语言的教学过程中,不少任课教师因循守旧,教学目标不清,教学方法单一,教学观念陈旧,使C语言的课堂蜕化为单纯的语法规则的灌输,使C语言的学习变为简单的语法知识的学习,学生普遍反映难学厌学。C语言程序设计课程一般面向的都是大学一年级的新生,他们刚刚结束高中生活步入大学校园,对一切充满了新鲜感和不适应感,学习观念、学习目的和学习方法有待转变和调整,学习的主体意识和自觉性有待增强和提高。针对这些问题和现象,笔者在自己的教学过程中进行一些了探索和实践,取得了一定的效果。

1 教师自觉转变教学观念,提高自身素质

纵观C语言程序设计课程的教学,现在最典型影响面最大的教学模式就是由教师和学生构成一个教学体,教师在讲台上自我表演,学生充当看客或听众【1】。所谓知识也好、信息也好,都是一个从教师到学生的单向流动。在这种以教师为主导、以教材为核心、以课堂为中心的教学模式下,教学蜕化成为一种单纯的知识传授,学生学习的积极性和主动性的调动,学生创新能力和创新思维的培养,都无从谈起。面对这样的现状和背景,教师教学观念的转变和自身素质的提高显得尤为重要。本着对学生负责,对学校负责的态度,教师应在自身责任感的驱使下,主动了解先进的教育思想和教学理念,像教学互动性、学生主体性和知识建构性等等;认真思考大学教育的功能,比如授人以鱼还是授人以渔;结合教学实际,转变教学观念,改变传统的教与学的地位,由过去的“以教师为中心”转变为“教师主导,以学生为主体”,营造民主的教学氛围;改变课堂老师单向灌输、学生被动听讲的授课模式,引入多元化的教学方法,比如启发式,探究式,引导学生独立思考,鼓励学生主动参与学习。

2 引导学生转变学习观念,培养学生学习的主体意识

C语言程序设计课程的开设面对的多数是大学一年级的新生,而对于刚入校的大学生来说,受中学养成的学习习惯的影响,学习的自主意识淡薄,学习还习惯性地全部寄托在老师身上,对老师的依附心理严重。同时,面对大学里比中学多得多的自由学习时间不知如何有效地管理和支配,对新的学习环境和新的学习生活有不同程度的不适应和困惑。面对这样一个处在比较特殊阶段的学生群体,承担C语言程序设计课程的任课教师要有针对性对学生进行引导和管理。首先,任课教师从一开始就让学生明确一个观点,即C语言是学生自己学会的,而不是老师教会的。俗话说,“师傅领进门,修行在个人”,尽管教师的教在教学活动中起着主导作用,但更重要的是学生的学,学习的主体是学生本人,只有学生充分发挥自己学习的自觉性和主动性,教师的教学思想才能得到很好地贯彻,教学效果才能得到很大的提高,整个学习活动也才会成功。其次,强化学生的责任意识。对绝大多数学生来说,如果单从年龄判断,步入大学校园也往往意味着步入成年人的行列。而成年人也就意味着要对自己负完全责任了。教师在教学过程中要不断强化学生对这一点变化的认知,让他们知道要对自己负责,对自己的学习负责,而不应再完全依赖教师或家长的监督。最后,教师的指导和管理。学习观念的转变,新的学习习惯的养成,不是一蹴而就的事情,需要在实际的学习活动中逐步完成。课前的预习、课堂的参与、课后的作业、实验的完成、期末的考试等是C语言教学活动不可或缺的环节,每一个环节里需要学生完成的任务,任课教师从一开始都给出一个明确的要求并严格按照要求去管理,将大大有益于转变学生的学习观念,培养学生学习的主体意识。

3 激发学生的学习兴趣,调动学生学习的积极性

在C语言程序设计课程的教学过程中,往往有学生反映C语言比较抽象,课堂教学又枯燥无味,很容易丧失学习的兴趣和热情。如何激发学生学习C语言的兴趣并始终保有这种兴趣,也常常是教授C语言课程的老师很头疼且又不能回避的问题。“兴趣是最好的老师”,每位教师都深知学生的学习兴趣对教学活动成功的重要性,但C语言程序设计课程侧重思维训练的特点又决定了在这方面留给任课教师的空间是有限的。笔者在自己的教学实践中做了一些尝试。

1)演示典型的完整的C语言应用,培养学生的学习兴趣

学生在学习C语言程序设计课程之初,对该门课程的学习目的和学习目标多数是模糊的,对C语言的认识也多半是空白,任课教师适当的引导很容易引起学生学习的兴趣和探究的欲望,因此该门课程的开篇很重要。笔者摒弃了以往通过文字抽象地介绍C语言的产生、C语言的特点和C语言的应用的做法,直接从演示典型的完整的C语言的应用开始。演示的程序有难有易,涉及的范围涵盖实际生活中的应用、有趣的数学问题、图形动画、游戏等。笔者一度选择了图书管理系统、文本编辑器、学生成绩管理系统、兔子产子问题、百钱百鸡问题、图形时钟、扑克牌的自动发牌、猜数游戏、五子棋游戏等应用,引起了学生浓厚的学习兴趣。

2)营造轻松的学习氛围,创造愉快的学习体验,强化学生的学习兴趣

要引起学生对C语言一时的兴趣不是一件难事,但要让学生在整个C语言程序设计课程的教学过程中始终抱有这样的学习兴趣就不是一件易事了。哪位任课教师做到了这一点,他的教学活动无疑就是成功的。C语言比较抽象,课堂教学容易枯燥无味,是一个不争的事实。为此,在实际的教学活动中,选择难易适中贴近生活的问题,比如利息的计算、持有的股票价值的计算、学生成绩的管理、募捐活动的模拟等;涉及C语言的语法特性时,尽量使用生活化的直白的语言,少用专业术语;课堂教学的开展过程中鼓励学生积极参与,对学生提出的任何有意义的问题都及时地给予肯定;面对问题,对学生做出的任何有价值的回答都及时地给予表扬,都有助于营造轻松的学习氛围,有助于让学生体验到成功的欢乐,有一种成就感,有助于强化学生学习的学习兴趣和热情。

4 践行以应用为本位的教学思路,有选择性地采用以知识为本位的教学思路

C语言程序设计课堂教学的组织有两种思路两种模式。一种是以知识为本位的教学思路下形成的“建筑模式” 【2】,课堂教学以讲授语法为主,先是提出语法概念,然后解释该语法概念,最后举例说明其应用,强调先系统学习理论打下宽厚的理论基础,然后再进行应用,讲究的是理论的系统性与严密性。另一种是以应用能力为本位的教学思路下形成的“生物模式”,课堂教学以程序设计为中心,以编程为目的,从应用的角度切入,先是提出问题,然后引导学生分析解决问题,最后着重介绍涉及的C语言的语法特性,强调结合应用学习必要的理论知识,随着应用的展开,编程难度的逐步提高,算法和语法的学习同步趋向深入,有利于学生能力的培养。

C语言系人工设定的具有确定内涵的概念和知识体系[3],同时C语言程序设计又是一门实践性很强的学科。为此,在C语言程序设计课堂教学的组织上,笔者始终践行以应用为本位的教学思路,同时根据课程内容的特点有选择性采用以知识为本位的教学思路,比如C语言中的基本数据类型、运算符和表达式、文件等基本概念和语法知识,在教学中只需把规定的内容阐述清楚,使学生理解并接受,同时又不破坏这些理论知识的系统性,就适宜采用以知识为本位的教学思路。

5 根据课程内容特征,选择灵活多样的教学方法

教学方法是在教学过程中,教师为了实现教学目的、完成教学任务而采取的教与学相互作用的活动方式的总称。C语言程序设计课程的教学目的是使学生掌握用C语言进行程序设计的基本思想和方法,并具有灵活应用这些思想和方法分析解决实际问题的能力。实现这一教学目的要完成的教学任务包括C语言基本语法的介绍,结构化、模块化程序设计思想和方法的引入,基本程序设计训练以及程序调试方法的演示等。面对这些多样的教学目标和任务,灵活多样的教学方法的选择和恰当应用成为必须。笔者在自己的教学实践中,结合课程内容的特点,有选择性地应用了如下的教学方法。

1)启发式教学,引导学生思考,在应用中学习。

在C语言程序设计的课堂教学中,根据课程内容的特点,精心设计任务或场景,引导学生发现问题、思考问题,使学生在启发诱导下获取知识,解决学习中的疑难问题。比如,在引入数组时,笔者设计了这样一个任务,即编写一个C语言成绩管理程序,要求能够统计出学生C语言成绩的平均分、最高分、最低分以及各个分数段的人数(为了说明问题的方便,假设当前要处理的有10个学生的成绩)。第一步,引导学生描述出10个学生的成绩。根据之前的学习经验,学生很容易想到用10个float类型的简单变量表示,比如score1,score2,、、、,score10。第二步,为节省时间,直接给出用这10个相互独立的简单变量实现的程序,引导学生观察。在学生感叹程序复杂之余,带领学生读程序,引导学生发现,当前的程序无论是成绩的录入、求学生成绩的最高分、最低分,还是统计各个分数段的人数,对每位学生成绩的处理方法都是一样的,存在大量的相似的操作。同时提出问题,这些相似的操作能不能用循环结构描述和实现,让学生思考。诱导学生分析发现,要想用循环结构描述这些相似的操作,学生成绩的描述必须有一个统一的表示方法。适时地给出score[i]这一表示方法,指出让i从0到9变化表示10个学生的成绩,和学生一块用该表示形式改写之前程序的关键部分。让学生比较改写前后的两个程序,很容易得出结论,用score[i]描述批量数据,方便和循环结合起来使用,数据的处理更为有效。最后指出score[i]这一描述形式就是数组,接下来介绍数组的定义完善改写后的程序。

和学生一块模拟执行该程序,由之前的知识积累学生知道,形参m、n和实参a、b对应的是不同的存储单元,m、n和temp是自动变量,从变量的作用域和生存周期的角度,容易得出一个让学生意外的结论,该swap函数中形参m、n值的交换影响不到实参a、b。在学生诧异之余,启发学生思考,诱导学生尝试给出不同的解决方法。往往有学生提出定义a、b为全局变量,诚然这不失为一种解决方法,在鼓励学生的同时,再次诱导学生发现问题的关键并在此基础上找解决方法。和学生一块梳理思路,发现swap函数中形参m、n值的交换传递不到实参a、b,一方面是因为彼此对应的是不同的存储单元,另一方面是由于变量的作用域和生存周期的问题。学生提出的定义a、b为全局变量的解决方法显然是从后者考虑的,现在有意识地诱导学生只从前者考虑,让学生大胆假设在什么样的前提下形参m、n值的交换即是实参a、b值的交换。毋庸置疑,只有当形参m、n和实参a、b对应的是相同的内存单元时。在学生给出了这一假设之后,启发学生思考该假设能不能成立以及如何成立。和学生一块分析,要使形参m、n和实参a、b对应的是相同的内存单元,表面上看它们不能是相同的类型,但实现又要求形参m、n操作的对象是实参a、b,显然形参m、n操作的对象和实参a、b应该是相同类型,同时形参m、n指向的是和实参a、b相同的内存单元,学生相对容易想到形参m、n应该是指向实参a、b的指针变量,问题由此迎刃而解。最后结合该任务的完成引导学生总结,在主调函数和被调函数之间双向传递数据变化,全局变量和指针变量都是不错的解决方法。

2)注重当堂实践,现场编程互动,在学习中应用。

C语言程序设计是一门实践性很强的课程,在践行以应用为本位的教学思路的过程中,笔者不仅重视实验课这一实践环节,更是把实践延伸到课堂教学中。在带领学生对特别设计的问题做了充分的分析之后,引导学生当堂实践,或者师生现场编程互动,不仅可以调动学生学习的积极性,更能培养学生解决实际问题的能力。

参考文献:

[1] 李克东.教育技术学研究方法[M].北京:北京师范大学出版社,2003:132-137.

篇6

一、课程教学改革措施

1.选取项目要明确教学目标VB课程具有数理思维高、逻辑性强的特点,但不少学生在逻辑数理思维方面是短板,所以制定教学目标时就不能过高。在实践中,笔者认为VB课程教学目标不是培养程序员,而是让学生快乐学习,培养学习兴趣,引导感兴趣的学生入门并有所提高,抛砖引玉,指导大多数学生掌握VB的学习方法,顺利完成学习任务。

2.所选项目应与学生实际能力相适应所选项目难易度要考虑学生实际应用能力,符合学生的“最近发展需要”,充分考虑学生现有的文化知识、认知能力、年龄、兴趣等特点,做到因材施教。现在中技学生的数学和英语水平普遍较差,所以在理解VB程序时有一定的困难,特别是一些算法,而学生对动画、绘画、多媒体、游戏等比较感兴趣。所以所选取项目要给予考虑,才能被大多数学生所喜爱,让学生有自我发挥的空间,通过自己的努力能完成项目中的任务,从而使学生体验到成功的快乐。标准要求可根据具体项目,不能制定得很高,如果学生难以完成,很容易知难而退,不利于他们自信心、成就感、学习兴趣的培养。例如,让学生完成一个如学生管理系统之类的项目。这种项目对中技学生不妥,如果教学对象是大学生,那么让他们完成此类项目应该不成问题,但现在所要面对的是中技学生,他们的底子薄,理解力和自学能力都不如大学生,如果让他们完成如管理系统之类的项目,那么效果肯定是不如人意的,随之就会失去学习的兴趣。

3.所选项目要分散实施的重点、难点掌握VB程序设计知识和技能是一个逐步积累的过程,项目选取时要考虑“项目”的大小、知识点的含量、前后的联系等多方面的因素,有助于知识的理解和消化及技能的掌握。基于以上原则,就以设计学生成绩管理系统项目为例来谈谈开发的过程。首先确定一个作品,开发一个学生成绩管理系统为项目目标。教师指导全班学生成立一个VB项目开发部,教师就是开发部的经理,指导学习项目,分析资料,使大家掌握所开发的项目有哪些主要功能,然后根据系统的功能确定整个系统由几个窗体组成,对于中技学生,一般三个窗或四到五个窗体就足够了。现在就以三个窗体为例,也就是封面窗体,登录窗体,主控窗体,设计一个窗体需要一个任务小组,最后还要一个整合及评估考核小组,共确定4个小组。(1)第1小组由全班学习VB成绩最好的5~6名学生组成,由课代表任组长,其余3个小组任务整合完成一件完整作品的任务。(2)第2小组的任务是完成设计两个“封面窗体”的任务。小组成员特点:12~15名同学,1名组长,其余为组员,组长有较强的学习管理能力,对VB学习兴趣高,有较强程序设计能力。组员中2/3是成绩中上水平的学生,负责代码编写与调试程序,其余的为中下水平的学生,负责窗体设计,二者在组长协调下有机结合。在组长的带领下开展工作,分配各位组员的任务内容:①设计思路:快闪窗体(封面1),利用线条的横向坐标X2每次增加30的方法或用进度条来产生线条延伸的动画效果,用标签显示执行进度,进度达到100%时卸载当前窗体。封面2:使用定时器控制“制作人:”“张三”两个标签从窗体的两侧向中间移动,窗体右下角用标签显示系统时间;单击“进入”标签,调用登录窗体,单位“取消”,退出系统。②窗体中控件:标签、图像、线条、进度条、定时器控件的使用、属性设置等。③窗体的布局、属性设置。④设计运行代码:变量、load、unload、show方法、click事件、if程序控制语句等的使用。⑤进行运行测试,调试运行没有错误。⑥写出开发报告,供其他小组阅读。(3)第3小组的任务是完成设计“登录窗体”任务。小组成员特点:10~12名同学,1名组长,其余为组员,组长有一定的学习管理能力,对VB学习兴趣浓厚,有很强的程序设计和理解能力。组员尽可能分配成绩中上水平的学生,分为负程序代码设计和窗体设计两个部分,学习后进生最好不要分配到该组,二者在组长协调下有机结合。在组长的带领下开展工作,分配各位组员的任务内容:①窗体中控件:标签、组合框、文本框、图像控件的使用、属性设置等。②窗体的布局、属性设置。③设计思路:使用组合框选择用户名,不同用户在文本框中输入不同的密码,单击“立即登录”按钮,判断各用户密码是否正确。密码错误时有提示,密码正确时进入成绩管理主控界面,单击“退出登录”返回。④设计运行代码:load、unload、show方法、click事件、if双分支程序控制语句等的使用。⑤进行运行测试,调试运行没有错误。⑥写出开发报告,供其他小组阅读。(4)第4小组的任务是完成“主控窗体”任务。小组成员特点:班级中前几个小组没分配去的同学,1名组长,其余为组员,组长有特别强的学习管理能力,对VB学习有一定的兴趣,有很强的窗体设计能力。组员可以是中等水平的学生,负责代码设计,学习后进生负责窗体设计工作,二者在组长协调下有机结合。在组长的带领下开展工作,分配各位组员的任务内容:①设计思路:控制功能。在窗体的右边利用框架控件组织三组功能,分别对应窗体左边的三组功能标签,单击标签时,切换显示不同的功能界面。②窗体的布局、属性设置。③窗体中控件:框架、标签、图像控件的使用、属性设置等。④设计运行代码:unload、show、hide方法、click事件等的使用。⑤进行运行测试,调试运行没有错误。⑥写出开发报告,供其他小组阅读。最后由第1小组进行整合成一个完整的学生成绩管理系统,测试无误后对工程文件压缩,写出完整的工程开发报告。还要通过各组开发报告对各小组进行评估考核打出分数,全班公布。通过以上的改革实践,既让教师解放出来,做一些更高级的项目设计分析工作,也对全班学生分层指导,对不同小组成员的有机分配,充分发挥每个人的最大潜能,使每位成员都能体会到成功的快乐,学习的快乐,而且通过项目开发,使学生通过明确任务目标的情况下,完成一个完整的作品,还可以培养一种团队的协作意识。

二、VB项目化教学改革成效

篇7

关键词:程序设计基础;实践教学;改革探讨

中图分类号:G423.7 文献标识码:A

1 引言(Introduction)

“程序设计基础”是计算机专业的专业基础主干课程,为计算机科学与技术、网络工程和软件工程方向的后继专业课学习和独立学习计算机高级语言打下基础。配套的课程有“程序设计基础实验”,该课程配合“程序设计基础”理论课教学,“程序设计基础实验”课程主要包括结构化程序设计、数组、函数、指针、结构体、共用体及文件等实验内容。本课程拟进行的实验,将充实课程教学的内容,提高学生的应用设计能力,它为学生学习“面向对象程序设计”“数据结构”等其他与程序设计有关的后继课程打下基础。

“程序设计基础”是教学难度较大的语言类课程。作为计算机程序的入门课程,是学生进一步接触计算机学科领域知识的首门课程,因此,学生往往对理解程序设计的思维方式有一定的困难,对教学内容难以很好的消化,对掌握良好的程序设计方法产生畏惧。通过本课程的学习,应让学生了解计算机高级语言设计的特点,熟练掌握结构化程序设计的方法,掌握程序设计的系统分析方法和将一般的数学模型转换为程序的步骤以及编程设计方法,使学生初步具有独立分析和独立设计的能力。

关于课程教学实践中的有关问题讨论,已经有若干论述[1,2]。本文就该课题进行更深入的探讨,提出以下见解。

2 课程的目标定位与教学设想(Targeting andcurriculum ideas)

“程序设计基础”课程的教学基本内容,包含了过程型高级程序设计语言的基本内容,及其程序设计方法学、算法基础与数据结构等相关方面的初步内容。该课程定位为计算机专业的专业平台课。本课程的培养目标是使学生掌握程序设计的基本思想和方法,并具有灵活应用这些思想和方法解决实际问题的能力。使学生具有:“较强的程序设计能力、良好的程序设计风格、优秀的团队精神”。在教学实践中,根据本课程教学实施过程中存在的问题,以及课程自身的定位,应该重点考虑以下两个方面的问题:

(1)程序设计能力的培养。建立良好的编程编写能力和实践训练体系,使大多数学生能达到应有的基本编程训练,并且使那些基础较好的学生能得到更加多的训练机会。

(2)教学内容的传授和组织。合理地组织好教学内容,使之更好地反映课程教学的重点和学生对程序设计方法的认知规律;从而进一步解决教学内容中的重点和难点,使学生对有关知识点能较好地理解。

3 组织教学中的探究性教学研究(Teaching and research organization teaching inquiry)

探究性学习是以培养学生探索能力、创新意识、合作精神为目的的学习方式,该模式使学生积极、主动地尝试探究,并从中获得大量的、各种各样的体验,从而提高综合分析问题和解决问题能力,培养发散思维能力和勇于探索的良好个性品格,激发学生学习兴趣,促进学生创新能力的发展及学习效果的提高。教师在课堂教学设计中要经常引导学生深入挖掘教材中每个知识点的背景,我们可以应用多媒体技术配合教学,使学生通过观察、类比、联想、拓展,发现新问题,对知识进行深化和再创造。在思维活动的教学中,问题是诱发思维的直接动因,创设问题情景,把学生置于问题之中,激发学生兴趣,诱发学生探究动机。

“程序设计基础”这门课程教学内容的组织方式采取这种模式进行,可以取得意想不到的效果。如我们在教学过程中可尝试以程序语言知识为主线的方式进行探究式进行教学,这种方式主要是根据语言的表达功能,同时考虑到程序设计的相关学习进程,以较完整的语言表达模块为基础进行的教学探究。程序设计语言的核心主要是两种表达功能:数据表达与控制表达。为了实现使用有限的语法表达客观世界中的各式各样的数据类型,程序设计语言在提供标准数据类型的同时,也提供了构造数据类型的相关手段,比如数组、结构、指针等;在控制表达语句方面,则提供了相关语句级控制(如分支、循环)和模块级控制(如函数)。所以,以语言知识作为主线的教学探究组织方式,一般是以上述语言表达模块为单位,并且考虑程序设计的学习进程来进行组织教学内容。典型教学内容的组织路线是:概论―数据类型与表达式(标准类型)―分支―循环―数组―函数―指针―结构―文件。

4 处理好教学中的重点与难点(Deal with importantand difficult teaching)

本课程重点为:算法设计、“自顶向下、逐步求精”的程序设计思想。包括:程序的流程控制、模块化程序设计(函数的定义,函数间的数据传递,参数结合规则等)、数据组织(批量数据组织、表单数据组织、动态数据组织)。

本课程难点为:与指针相关的内容,包括变量指针,指向数组的指针,指针数组,指向指针的指针,文件指针,函数指针,返回指针值的函数,指针作函数参数,基于指针实现的动态数据结构等。

针对上述重点和难点,从思维方法入手,引导学生独立思维,达到提高学生思维能力和程序设计能力的目的。教师应该从学生的角度体会“学”之困惑,不断反思“教”之缺陷,才能因材施教,明了如何通过“教”帮助学生学习,树立教育以人为本的思想。因此,教师不但要研究教学内容,而且更要研究教学的对象――学生,根据学生的学习特点,研究教学内容传授中重点和难点的解决办法。授课过程中突出算法概念,对C语言采取“有所取、有所不取”的策略,对与讲授程序设计方法密切相关部分重点介绍;对与讲授程序设计方法关系不大的部分根本不介绍;注意由浅入深地介绍程序设计知识,把难点化解和分散到各个章节中去。以多媒体为主,板书为辅,并现场编程演示等多种教学手段相互补充,使课堂教学与实验教学有机结合。为了及时解决学生学习中遇到的问题,调动和保护学生的学习积极性,我们充分发挥网络的优势,借助于课程网站等网络教学方式作为常规教学的补充,拓展“教”与“学”的空间。

5 课程与教材之间的关系(The relationship betweencurriculum and textbooks)

课程教学效果如何与教材的选取密切相关,有经验的老师体会到,教材选好了就已经有了上好该课程50%的把握。因此在“程序设计基础”的教材选取时,应当从教学内容的制定,学习素材和呈现方式等方面在基于我们国情的前提之下,发扬传统教材的优点,突破其缺点,为课程与教材的有机结合做出实质性的工作。根据社会科学的发展与信息技术的渐渐普及,数学教材也要与时代紧紧结合,因此在教材的选取上应注意以下几方面:

(1)应力求使内容全面广泛、生动活泼,能突出所用教材的重点难点。除此外,要适当增加让学生自己解决问题的机会。这样才能很好的提高学生主动学习的兴趣,同时注重培养学生的创新能力和动手实践解决问题的能力,培养学生运用计算机技术进行学习的能力。

(2)尽量与生活实际相结合,所选教材内容与现实生活的联系,体现教学与日常生活的密切联系,杜绝出现那种理论与实际脱节的情况。

(3)要针对不同层次因材施教,每个学生的学习能力,兴趣都有所不同,这样的话,学习的层次也不可能一样。因此对教学对象的考虑分析要全面,为不同层次的学生提供教学发展的支持。

6 结论(Conclusion)

信息技术在不断发展,“程序设计基础”教学实践探讨还必须通过大量的教学过程不断总结,才能更好地指导教学[3,4]。教师在教学过程中,同时应注意与后续课程“数据结构”“软件工程”等的联系,通过前后教学环节的更好衔接,发挥该课程的作用。同时我们对学生,应该将学习方法的探究摆在首位,正所谓:“授人与鱼,不如授人与渔”,这一精神应贯彻于整个教学过程中。

参考文献(References)

[1] 张华,刘万海.论“研究性学习”的课程与教学论意义[J].教育科学研究,2005,1:42-45.

[2] 张华,钟启泉.课程与教学论[M].上海:上海教育出版社,2003,9:37-440.

[3] 张志青.C语言可视化编程实验在电路辅助教学中的应用[J].广州大学学报,2007,7:28-31.

[4] 张志青.基于智能教育平台的数学探究性学习教学模式实践研究[J].中国科教创新导刊,2008,11:17-20.

作者简介:

张志青(1954-),男,学士,硕士生导师,副教授.研究领域:教育信息技术.

曾细平(1971-),女,硕士,讲师.研究领域:教育信息技术.

篇8

《程序设计》这门课程是一门实践性、连贯性很强的课程。通过这门课程的学习不仅仅要求学生掌握一门计算机语言,更重要的是理解和掌握程序设计的方法和技巧,训练学生的思维能力、动手能力、分析问题和解决问题的能力。因此,笔者在实践内容的组织上,将实践内容划分为基础实践、综合实践两个部分。

1 基础实践的教学设计

基础实践是在平时授课过程中随课程进度而同步进行的,穿插渗透在理论教学中。基础实践项目的内容是一一对应理论教学模块的。在教师的启发带领下,历经模仿、改写、提问、思考、总结等几个环节,其主要目标是帮助学生理解掌握相应课程的基本原理和基本知识,同时验证这些基本原理的正确性,训练和增强学生的动手能力,激发学生的学习兴趣。

另外,在基础实践过程中,教师也对全体学生的学习和能力情况有了一定的了解,这样为接下来的综合实践的顺利实施做好了准备。

2 综合实践的教学设计

综合实践内容是在综合考量所有基础实践内容的基础上精选出来的具体项目,选取的项目必须贴近学生的生活,让学生能够联系实际,比如:学籍管理系统、图书馆管理系统、学生选课管理系统等等,重点考查学生的理解记忆能力和基本技能,也要考查学生认知能力、动手能力、知识转化能力、再学习能力和创新能力,以培养学生综合素质、开拓创新精神。

由于目前高职学生存在较大的群体差异性,他们的专业基础知识、认知水平、能力层次参差不齐,若以统一的要求来对待每一个学生势必会给综合实践项目教学的进行带来很大的难度。以往在进行综合实践项目教学的时候,通常会将学生分成几个实践小组,每个小组会搭配不同层次的学生,希望能够实现能力强的学生带动能力弱的学生,希望小组的各个成员可以通过互相协作、互相学习、互相帮助共同完成综合实践项目的设计,从而使所有的学生都能得到相应知识的获取与能力的提升。但是,经过几届学生的实际操作以后,发现总有一些学生有畏难情绪和严重的偷懒依赖现象存在,有极个别学生在综合实践的时候什么工作都不做,所有工作都是小组其他成员替他完成的。为了杜绝这种现象,以后的综合实践教学将不再给学生分成几个小组,而是根据基础实践教学过程的摸底情况,根据机房实际布局情形,将整个班级的学生划分成两大组,学习情况好能力稍强的一组、差的一组,分别完成两个难易程度不同的综合实践项目,每位同学都必须独立完成自己组对应的综合实践项目、撰写独立的综合实践报告。

在传统的实践授课过程,教师往往处于被动指导的地位,许多学生往往有了问题不知道问什么、怎么问甚至不敢问,这样一点点小问题越积越多,最后产生了畏难情绪从而失去了学习的兴趣。因此,笔者在综合实践项目的实施过程中,采取的是以学生为主体、以学生为中心的学习过程,教师所起到的作用是组织者、指导者、帮助者和促进者。教师要充分发挥学生的主动性、积极性和创造性,最终达到使学生有效地实现对当前所学知识的意义建构的目的。

在综合实践过程中,教师要对综合实践的全过程进行掌控,即对全程进行管理、跟踪和指导。通过有针对性、有重点的观察学生项目的设计、制作与完成情况,对两组分别提出各种难易程度不同的问题来启发学生,让学生克服畏难情绪、多多独立思考,最终使学生能够自己主动发现问题并解决问题、独立完成综合实践项目的设计。

篇9

关键词:面向对象程序设计;教育方法改革;综合实践能力

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)50-0246-02

近些年来,绝大多数的高等院校都对计算机、编程等方面的课程愈加重视,例如,C语言程序设计、计算机操作系统、面向对象程序设计等等。随着现在学生的综合素质逐年提高,在这些课程的教育上一些古老的方法已经难以满足新时代学生的需要,在知识的教授方式、课程的合理安排和最后的考察方法上都需要一种新的更行之有效的方案来综合处理上述问题,以提高学生的综合能力和面对社会的综合竞争力。

一、存在的问题

由于原本枯燥而简单的教学方式已经难以跟上知识系统的更新和学生的需要,使得教学环节无法真正发挥和理论知识之间的纽带作用。基本的教学理念和教学观念已经无法在学生与老师之间,学生与课堂之间搭建一条合理的桥梁,这让教学变得愈加困难,学生也无法从课堂中收获更多的知识。这种不合理的教学问题主要表现在以下方面:

(一)教学方法的枯燥与学生的学习动力不足之间的矛盾

随着这个社会的发展,计算机学科以及一系列的附属学科的知识系统都在不断地更新换代,这对正统的教学系统发起了强烈地冲击,而最主要的影响自然是学生的学习态度和学习的动力问题。当下传统的教学方式还是用大量的知识强迫填充学生的大脑,让学生没有自己独立思考的空间和时间,慢慢丧失了发现新问题的能力,对新奇事物强烈的求知欲也在慢慢退化,只能被迫地学习枯燥的书本知识和早已定式的内容,这种传统的教学方式极大地影响了学生对知识的兴趣和学习积极性。中国有句古话“兴趣是最好的老师”,这句话点明,只有先提高了学生对这门课的兴趣点和求知欲,才能一步步的让学生自然地进入知识的海洋中尽情遨游。学生能达到主动地学习才是目前教育界提倡的最好的教育理念。所以,目前,高校最冗待解决的问题便是如何激发学生主动的学习欲望。

(二)教学形式的单一与学生缺乏“实战练习”之间的矛盾

当前计算机专业课程的教学工作主要还是依托课本作为基础,课本上的课程目录基本上就是教学的大致流程,大纲的知识点也基本都涵盖在整个课本中,而学生听授老师的教课并不仅仅是来获取课本上的内容,这些内容有些自学能力强的学生已经可以迅速掌握,而更多的学生急迫地想要得到书本上不能得到的东西,即为这些知识真正的应用方法。就如面向对象程序设计这门科目来说,书本上的语法内容即使通篇背下也是作用不大,有些知识点需要在教师教课的过程中现场演示,才能让学生明白如何在程序运行过程中体现这些知识的价值,这才是让学生快速掌握知识点的最佳方法,而且更是现在教育教学方法中需要改进的问题,要让知识点的教学与具体的实践演示有机的结合起来,才能达到更好的教学效果。

(三)教学过程的单向性和缺乏与学生进行互动的矛盾

教育工作的主要目标就是用合理简单的语言来让学生掌握所需要掌握的知识。这个目标看似简单,却需要合理的教学方法作为依托,可是目前的教育方法主要还是强调教师单向模式的讲授,而作为受体的学生只能在课堂上机械被动地听课,这样不仅使学生的知识接受效率偏低,长时间单一的听课也会影响学生的学习积极性,甚至会导致学生昏昏欲睡的感觉,这是教学改革上一个相当重要的矛盾,也是现在教学理念上一个急需创新的环节。现在最新的教学目标需要教师与学生更好地互动,这样不仅可以调动学生的积极性,使其能够更好地投入到接下来的学习中,也能让学生在最短时间内掌握知识,以达到最好的教学效果。

二、教学改革解决方案

(一)教学内容的改革

众所周知,面向对象程序设计这门科目属于大学基础教育课程,是一种“语言工具”型的教育课程,其教学内容与许多相似的课程都相互联系、相互影响。电子类课程极强的相关性注定了不能仅仅对单一的一门课程精通,还要对相关的课程有所了解,这样做才能成为一个更加全面的优秀人才。为了更好地发挥学生的主观能动性和学习积极性,我们创造性地提出了将面向对象程序设计和嵌入式系统这两门课综合起来学习,理由如下:面向对象程序设计这门课是一门“基础工具”类型的科目,主要涉及的内容是一些关于基础语法和基础编程,可以让学生的基本编程能力迅速地提高,对C++语法概念有一个深入的了解。可是面向对象课程设计这门科目难度较低,实际应用度不高,必须有一个更好的平台来进行实战演练,而嵌入式操作系统这门科目的设计便能很好地弥补这一缺憾。嵌入式系统课程是一门关于便携式移动设备开发相关的课程,课程内容是基于嵌入式系统开发板,涉及到Linux操作系统的平台的编程等相关问题,是应用C++编程语言进行实战演练的最佳平台之一。如果能通过对教学计划的稍作变更,在面向对象程序设计课程中后期后添加部分课程用来进行嵌入式系统相关代码的编程练习,是对学生编程能力的一个相当不错的检验和提高的方法,而且可以让学生在实践中获得宝贵的编程经验,从而可以让书本上的知识在学生的脑海中融会贯通。

(二)教学模式的改革

传统的教学模式在教育业内已经广受国内外教育专家所诟病,传统的教学模式单一乏味,会导致大学课堂气氛压抑,学生昏昏欲睡,直接导致其学习效率过于低下。而本文便针对这一问题,提出了一个创新性的教学计划:开放式教学理念。这一理念可以定义为学生和老师的双向互动教学,由老师传授学生的基本知识,由学生自己来处理问题和改进问题。例如,在课堂上老师讲述C++课程中“for循环”这一语法过后,可以提出一个讨论话题:如何用C++编程语言来解决著名的数学逻辑问题――“汉诺塔”问题,而后学生便可以分为若干小组,分别分析其中的数学模型,思考程序的大致运行流程图,而后以组为单位在讲台上进行大致演示。不同小组的学生也可适当地进行竞赛,在竞赛中通过不同小组的展示来分析自己的思路中有什么优势,有什么需要改进的地方,可以借助他人的思想来使自己的程序更加的完善,这样既可以让学生有充足的时间来对自己的程序进行总结与分析,又可以让老师知道不同学生的知识掌握程度,而且不会压抑学生的发散性思维。这种模式的优势来源于同学之间的思想交流,远比单单从课堂或者书本上的知识来的更加直接,更加易于接受。而这种教学模式的最终裁定者仍然是老师,授课老师可以将学生反馈出的思想进行评判,褒奖其中的优点,指出存在的不足,这种有的放矢的评讲模式更加贴近学生的思维理念,奖罚分明的评判方式也可以提升学生的学习动力。这样的改变既可以加强课堂的趣味性,又可以让学生充分享受到编程的乐趣,学生与学生之间,学生与老师之间也加强了互动,是有一举两得的功效。

(三)教学细节的改革

著名学者汪中求说过这么一句话,“细节决定成败”,同样,通常情况下,在教学过程中重视细节的老师会博得学生的喜爱,相应的教学质量也会提高。而这里我们就提出两个仍需在教学中改变的细节:课堂艺术和课前准备。何为课堂艺术?就是身为授课老师,要尽可能用自己的课堂感染力来激起学生学习的兴趣,要发挥学生学习编程语言的主观能动性。那么到底如何才能激发学生对于学习编程语言浓厚的兴趣呢?这就必须要求授课讲师在传授知识时不能太过于书本化,多举一些与生活实际密切联系的例子。例如,在面向对象程序设计这门课上,可以通过课堂上提出上网安全密码程序的设计问题,以及小型网络病毒程序的开发等问题来提高知识的新鲜感,提升学生学习的兴趣。这样做的效果是显而易见的,能让学生从中明白到语言的实用性和趣味性,让学生能自发地坐在计算机前面来动手实现,设计自己的程序,而不是单纯模仿书本上的程序。当有了学习的兴趣自然而然地有了学习的主动性,学习效率自然便有了显著的提高。细节的把握仅是提升学习的兴趣还不够,还需要在授课的准备过程中加以变化。目前还说,语言类课程的主要授课方式还是要以PPT作为辅助,而一套PPT的设计精美程度直接影响到学生在课堂上的听课效率,一副仅仅含有枯燥的文字和繁琐的代码的PPT是无论如何也吸引不了学生数个小时的听课注意力的,所以在备课过程中,教师需要在PPT适当的地方添加一些有趣的动画或者各种文字效果,这样便可以尽可能地吸引学生的注意力,让课堂不至于太过枯燥乏味。

通过大量的经验总结和学生反馈,本文总结了现阶段教学方式存在的“三大矛盾”,而为了解决这些突出的问题,本文提出了一个解决这些矛盾的方案,即对教学内容、教学模式、教学细节三方面的改革方案。当然,在实际教学过程中,这些方案还需要通过现实的验证,不过,相信通过我们不断的努力,改革后的高校教学成果一定会得到显著的提高,学生也会爱学习,更爱上学习。

参考文献:

[1]张迎新.面向对象程序设计课程的研究[J].北京工商大学学报,自然科学版,2003,(4).

[2]朱清华.面向对象程序设计的教学改革[J].教书育人:大学频道,2005,(4).

[3]张永.面向对象程序设计的教学研究[J].电脑知识与技术,2006,(1).

篇10

【关键词】C语言程序设计 实践教学方法 实践实践能力 积极性

【基金项目】2013年防灾科技学院教研教改项目(2013B24); 2012年防灾科技学院教研教改重点项目(2012A04)。

【中图分类号】G42 【文献标识码】A 【文章编号】2095-3089(2013)05-0246-01

公共基础课程C语言程序设计是面向非计算机专业本科生开设的,这门课程的教学目标是通过理论学习和编程训练,使学生较全面、系统地理解和掌握C程序设计的基本概念、语法知识和计算机程序设计的基本思想和方法,初步具备运用C程序解决实际问题的能力。通过本课程的学习培养学生利用计算机处理问题的思维方式,启发学生主动将计算机引入到其他基础课和专业课[1]。

C 语言是一门实践操作性很强的课程,要学好C 程序设计不仅要掌握好理论知识,实验教学更不容忽视。通过上机实验,不仅可帮助学生消化和巩固课堂所学知识,也可帮助学生验证学习中的疑难问题,更重要的是可激发和提高学生学习C 语言程序设计的兴趣[2]。

1.C语言程序设计实践课存在的问题

通过进行问卷调查非计算机专业学生,有69%的学生认为C语言课程对自己今后的学习与工作中比较有用;有81.25%的学生希望理论和实验课时比例为1:1,有56.25%的学生把影响学习积极性的主要原因归咎于教师、课程内容等方面;主动研究、解决问题的学生仅占37.5%,68.8%的学生课下基本不看有关C语言程序设计的书籍,75%的学生基本不会进行学习小结,68.75%的学生课下基本不会主动复习、预习新课;在C语言程序设计课程学习过程中遇到的问题,出错时希望得到教师辅导的占51.3%,只有37.5%的学生课下会花时间编写程序。

笔者从事C语言程序设计教学工作多年,通过实际教学和综合调查分析,学生层面问题突出主要体现在以下几个方面:

1)对课程认识不够重视

有的学生对C 语言认识不足,觉得没什么用,学习上缺乏主动性和积极性;有的同学又觉得C 语言很难,学习缺乏信心,对计算机程序产生一种畏惧的心理。有的学生对实验课不重视,抱着应付的态度,不愿投入很多的时间和精力[3]。

2)学生学习兴趣有待提高

在C语言的教学中,实验课的时间仅占课程的三分之一,明显感觉学生无法按时完成当次实验所要完成的任务,只能依靠学生课下自己找时间再继续完成,这样势必会存在一些问题,学生可能抄袭现象严重,还可能因为在完成实验任务的时候,对于遇到的问题不能及时得到辅导与解决,而会“知难而退”,大大消减了学生对课程学习的积极性[4]。

3)课下投入精力不足

有的学生只是在课堂上听讲,课下没有进行总结归纳、认真复习、做习题、主动查阅学习资料、不能将实验作业提前预习准备。导致知识掌握不牢固,不能有效利用实验课有限时间。

4)有效学习方法欠缺

有的学生在实践过程中过分依赖指导老师,有任何问题就找老师,自己缺乏必要的思考。在学生逐渐掌握并积累一些常用的编程方法和技巧后,可以把总结归纳作为一种重要的学习方法,提高学习效率。

由于以上的各种问题,使得实验课效果不佳,从而影响了C 语言课程的整体教学效果。

2. C语言程序设计实践教学方法的探讨

经过几年的教学实践、观察总结以及研究尝试,本文针对以上问题,总结提出几点建议来改善实践教学的效果。

1)明确学习目的,加强对C 语言认识的重要性

让学生认识到学习C 语言是具有普遍适用性的,根据各专业的不同特点,使学生明白C 语言作为一门基础性程序设计语言,对理工科各专业后续课程的开设起着开路先锋的作用,而且通过C 语言培养起来的逻辑思维和计算能力,是伴随我们学习全程的。另外,要使学生树立信心,使他们能正确地认识到自己在经过一段时期的学习以后是可以编写程序的,可以通过计算机解决本专业领域的问题,从而提高学习的主动性和积极性[3]。

2)培养学习兴趣

兴趣是学习的最好动力之一,兴趣源必须由教师来创造,并贯穿于教师授课全过程的各个环节中。针对C 语言程序设计这门课程的特点教师可采用以下方法提高学生对本课程的兴趣。

教师在课程刚开始时,能够对学生指出日常生活中哪些产品或工作可以是C语言进行程序设计完成的,并能够演示,以便吸引学生的眼球和激发学生学习的兴趣。在日后的课程中,逐渐利用已学知识来解决生活和专业学习中的实际问题。

3)充分利用实践课程

在实验教学中,由于实验课时间相对有限,建议老师在布置作业时一般要难易适当,使学生在经过努力后,基本都能编程实现,这样学生编完程序后就有一种成就感。如果作业太简单,学生轻松实现,印象不深,成就感不强烈,觉得太容易,没有兴趣。如果作业太难,学生难于实现,就会出现放弃或抄袭现象,也会丧失学习本课程的兴趣,更无从谈起学生的成就感。

对于后续课程的综合程序设计,可以将实验任务提前布置,留给学生更多的准备和预习时间,可以要求学生将作业在实验课之前写在作业本或编辑为电子版,对于出现的问题在实践课上进行独立、求助老师来解决,这样有助于问题的解决和提高学习效率,并且能够督促学生利用课余时间来进行复习和预习。这样学生对每个题目已经了解,避免学生上机时现看教材、现编程序的现象。

4)建设课程资源平台

创建资源丰富的课程资源平台,网站资源包含课程介绍、教学大纲、教学日历、教学材料、课程通知、答疑讨论、教学邮箱、课程作业等丰富的基本教学资源,所有资源实现资源共享,学生可以自行下载课件、学习资料,并进行交流讨论,为教师的教和学生的学提供学习和交流的平台,能更好地提高学生的学习主动性和学习效率。

3.结束语

本学期的C 语言程序设计课程在实践环节采取了上述教学方法后,学生对实验课的学习态度发生了根本变化,学生虽然有压力,却很有成就感,感觉学有所用。实践证明,以上实践教学方法极大地提高了学生,学习主动性和动手实践等综合能力,取得了良好的教学效果,在C语言程序设计实践课程教学中切实可行。当然,要真正上好《C 语言程序设计》的实验课,还必须将各种有效措施有机地结合起来,我们要在教学实际中总结新经验、勤于探索新方法并不断改进,才能在教学实践中取得好的教学效果,提高学生用C语言解决实际问题的综合能力。

参考文献:

[1]王冰.C 语言程序设计课程教学方法的探讨[J].计算机教育,2009 (2):142-144.

[2]程志梅,刘光萍,李荣.非计算机专业C 语言程序设计实验课程教学探讨[J].电脑知识与技术,2009(7):1649,1660.