前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇计算机程序设计基础范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
摘要:“计算机程序设计语言”课程是计算机科学与技术学科核心的课程之一,极大地影响着学生对计算机领域的理解和兴趣。本文针对教学过程中存在的问题,提出了层次化教学目标思想。以面向对象语言C++为例,介绍基于层次化教学目标体系的具体思想和内容,并提出与之相适用的课程及实验设计,达到优化教学方法,提高教学质量的目的。
关键词:计算机程序设计语言;层次化教学;C++
中图分类号:G642
文献标识码:A
1“计算机程序设计语言”教学现状
“计算机程序设计语言”是普通高校计算机教育的基本专业课程,在计算机领域的各个专业的课程体系中都处于核心的地位。这门课程不仅可使学生获得基本的程序设计能力及锻炼学生的逻辑思维能力,它还极大地影响着学生对计算机领域的兴趣和理解,对引导和培养学生在计算机工程及理论方面的研究兴趣起着先导性和基础性的作用。因此,“计算机程序设计语言”的教学质量成为影响大学本科计算机教学质量和效果的一个关键的因素。
影响课程教学质量的主要三个因素为教学内容、教学方法和实验设计。当前,大部分教师受传统教学模式的影响,教学的重点都放在程序语言的基本语法的讲授,课堂所设计的程序实例大部分围绕语法规则的演示和说明,这种模式同样也影响到实验环节的设计。这种就事论事,形而上学的教学模式具有许多明显的弊端,主要体现在以下几方面:
(1) 不利于培养学生的学习兴趣
许多从事程序设计语言教学的教师(包括笔者)都有这样的感受:每讲授一门新的程序设计语言课,初期学生都抱着积极,对获取知识的极大热情投入课程的学习,但随着教学过程的深入,这种热情往往不能持久。导致这种局面的原因固然有教师本身的教学方法和教学手段的缺陷,但根本原因还是教学内容的设置不科学。在单纯以讲授语法规则这种教学模式下,学生难以保持长久的学习兴趣和动力。
(2) 不利于学生建立综合化,系统化的知识体系
程序设计语言是表达设计者思想和计算机计算逻辑的符号系统,具有多层面、多视角的内涵。要把学生培养为具有高素质的程序设计人员,仅仅熟悉没有精神的符号及符号规则远远不够,这需要学生具备设计高质量程序的综合化的知识体系,而当前的程序设计语言的教学现状并不能满足这种需求。
(3) 不利于培养学生解决实际问题的综合能力及创新意识和思想
当前,素质教育成为各级教育系统,包括高等院校所关注的热点,知识高等院校所关注的“素质”内涵不同。笔者认为高校大学毕业生应具备的素质包括:综合化、系统化的专业知识体系;应有已有的知识体系解决实际问题的能力;具有创新的意识和思想。总体而言,大部分教师对程序设计语言课程所采取的教学不利于这种素质的培养。
针对这种现状,结合我国高等教育发展的现状,本文提出程序设计语言的层次化教学目标的思想,并以面向对象程序语言为例,论述在层次化教学目标驱动下的课程设计。
2层次化的教学目标
各项教学活动有效展开的基本条件是合理的教学目标的确定,但单一的教学目标并不能适用当前中国复杂的高等教育现状。社会经济的快速发展产生了明显的多类型、层次化的人才需求,这种趋势在各类软件公司里表现得尤其明显。为了适用这种人才需求的转变,高等教育领域在这些年相应地发生了巨大的变化,各种类型、各种不同层次的教育机构大量出现,改变了过去高等教育机构单纯负责培养具有从事复杂脑力劳动的高级专业人才的状况。这些变化最终体现为教师的工作,体现为教师针对不同的教学对象所制定的教学目标体系。
当前,由于社会信息化的发展,各类计算机类课程已经渗透到各个学科,例如笔者所在的苏州大学,几乎所有的院系都设置了信息技术类的有关课程,大约超过一半的院系设置了“计算机程序设计语言”的课程,因此“计算机语言设计课程”的教学质量是总体教学质量评估的重要组成部分。笔者多年来一直在苏州大学承担程序设计语言的课程,包括一类本科计算机专业基础课程、二类本科专业基础课和公共基础课程。大量的教学实践表明单一的教学目标不能适用多样化的教学对象、多样化的人才需求和程序设计语言知识逻辑在广度和深度方面所具有的层次化的特点。下面将论述程序设计语言课程的层次化的教学目标体系及各层的具体内涵。
2.1低级目标
该目标要求掌握标准化的程序语言语法体系,以学生掌握基本的标准语法体系为基本要求,并能初步应用语言开发较小型的简单应用程序,具备初步的程序设计能力。低级目标要使得学生对所学知识“知其然”,课程教学内容主要围绕标准的语法规则,课堂和实验环节所选定的程序实例大多围绕着验证和演示语法规则及语法规则之间的联系进行设计。在以低级目标驱动的教学中,因为重在基本知识的传授,因此核心教学内容的选择是第一位的要素。当然每门程序设计语言课程都有其固有的核心内容,例如,在C++语言中,核心的教学内容为:面向对象的概念、继承、多态、模板及异常等,即使如此,还需要根据教学对象,对教学内容和授课方式进行选择和取舍。总的原则是围绕重点概念和知识采取“精讲多练”和“突出重点”的方式进行教学。
2.2中级目标
中级目标则要要求学生围绕目标程序设计语言,具备系统化的程序设计方法和技巧,逐渐使学生“知其所以然”。该层目标不仅要让学生掌握“语法”,还要让学生掌握“语义”;不仅让学生掌握语言本身,还要让学生扩展思维,了解、理解更多的外延的知识;不仅要让学生掌握基本的程序设计方法,要让学生初步掌握系统化的程序设计方法和建立起程序质量的观点。程序设计语言的外延知识涉及计算机专业许多重要的核心课程,包括编译原理、算法分析与设计、计算机组成与结构、离散数学、数据结构和软件工程等。当然,不可能指望通过一门课程的学习,使学生有效地、完整地掌握所有这些知识,只能使与实现中级目标有紧密联系的知识能渗入到重点的知识讲授和实验的安排中。
2.3高级目标
不管是初级目标的“知其然”,还是中级目标的“知其所以然”,都是知识学习,而高级目标阶段的重点是运用知识,体验知识,要求学生具备利用目标程序设计语言解决一定复杂度和规模的实际问题的能力,建立抽象的程序设计思想、方法和质量的观点。高级目标的教学内容的重点在如何在所讲授的语言框架里解决一定规模的应用问题,并从具体的实现里提炼出抽象的设计思想,分析实现的质量,总结好的实现方法和设计思想。
确立了教学目标,下一步的焦点为围绕实现具体的教学目标,制定各教学环节的具体的教学内容和教学手段,主要包括课堂教学环节和上机实践环节。结合笔者的教学实践,下一节将围绕这方面的内容展开论述。
3层次化的目标引导的课程设计
C++语言因其强大的功能及广泛的实用性而日益成为当前高校理工类专业程序设计的主流教学语言,因此本节将以C++为例,讨论层次化教学目标思想如何在教学实践中得到贯彻。C++程序设计语言的教学涉及课堂教学和实践教学两个环节,下面将就这两方面展开论述。
3.1课堂教学
确定目标课程的教学内容是开展有效的课堂教学,取得既定的教学目标的前提和基本要求。针对本文所提出的层次化的教学目标体系的基本内涵,C++程序语言的课堂教学内容在深度和广度上也应该展现出层次化,递进性的特点。
在低级目标中,掌握本程序语言的基本语法体系是最重要的目标,在教学内容的设计上,应确定语言的最核心最重要的语法现象。过程化程序设计向对象化程序设计是C++语言的最重要的特征,因此“对象”和“类”,以及由此产生的“继承”,“封装”,“多态”和“异常” 成为最核心的教学内容。在教学时应集中注意力于这些类对象的关键个性技术,围绕关键技术“精讲多练”,使学生深刻理解面向对象C++的这些关键技术;要有重点,不能面面俱到,有所失,才能有所得。
低级目标是为了使学生掌握知识,使其“知其然”,那么中级目标则要逐渐使受教育者“知其所以然”,教学的重点从对语法的训练转向对语义的理解,包括静态结构语义和程序执行语义。在C++的教学中,以C++对象模型作为教学内容的重点,通过从静态的程序代码结构和运行的程序状态两方面展开课堂教学,这样在知识语言的“所以然”的基础上,学生不仅知道什么是“多态”,并且知识“多态”是怎么实现的;什么是运行时类型检查(RTTI),运行时类型检查能提供什么程序设计策略等;许多的外延知识能沿课堂展开,例如编译原理、算法分析与设计等。由Stanley B. Lippman所著的《Inside The C++ Object Model》为我们设计课程材料提供了方向性的指导。
低级目标和中级目标都是针对知识的学习,而高级目标则针对知识运用,提高运用知识进行设计的能力。此层次涉及知识的学习、理解和综合运用,要在有限的时间内,实现教学目标,在课程教学内容的选取和设计及课时的安排上,具有一定的难度,对教者和学者都具有一定的挑战性。“设计模式”可以成为本层次的基本或延展性的教学内容。设计模式虽然不与具体的设计语言有着必然的、密切的联系,但事实上各种技术性、或纯教学性的书籍中,都把面向对象语言作为实现各种设计思想的不二选择。通过设计模式内容的讲授,可以使得学生对面向对象的基础知识有更深刻的理解,同时增强灵活运用所学知识的能力,体验面向对象程序设计方法学所带来的设计上的“美”,激发学生的创造力。
当然,上面针对课堂教学内容的论述仅仅进行了基本的界定和论述,需要通过下面几方面来贯彻实施,以达到各个层次的教学目标:
(1) 通过教者的努力,设计出丰富的、具体的课程素材;
(2) 针对不同的教学内容,设计多样化的教学手段和方法;
(3) 针对不同的教学内容布置合理的作业和考核方法。
3.2实践教学
在程序设计语言的教学中,课堂教学和上机实践教学是并重的环节,不可偏废,一起决定着教学的质量和教学目标的取得。如何设计安排上机环节通过大量的教学实践,已经总结出了大量的行之有效的方法。下文就实验内容及实验的组织形式进行一些必要的、有益的讨论。
结合课堂内容,以往的实践环节主要由学生编制一些小的程序,进行语法现象的演示及验证。但笔者通过大量的教学实践发现:这种普遍采用的,且行之有效的方法,对于学生巩固知识,提高调试程序的能力和技巧具有显著的效果。但随着教学的深入,这种方法也显示出种种的弊端,例如:学生专著于知识点,必然缺乏对知识的整体把握;学生容不易形成良好的编程习惯等。针对这种情况,笔者在实践的环节中,增加“读程序”的分量。教师提供一些高质量的程序范例让学生进行阅读、理解,并对范例的程序风格和设计方法进行总结比较,以提高学者的综合能力,尤其是到了后期,所提供的范例更具有综合性、全面性和示范性,能极大地提高学生掌握知识的深度和广度,激发他们的学习热情。
在实践人员的组织形式上,一般在程序设计语言的教学中,都是学生独立进行的。在教学实践中,也可引进一些软件开发中的方法,比如采用小组制的形式,根据实践内容的不同,小组或大或小。即使是在低层目标为导向的教学中,也可采用小组的方法进行实践环节的教学,不过此时小组人数不宜过多,最佳数目为二人。采用这样的方法,有以下的益处:
(1) 便于学生进行交流,以达到取长补短的目的;
(2) 提高教学效率,以较少教学活动取得同样甚至更好的效果;
(3) 培养团队合作精神等。
在以中级和高级目标为导向的教学中,实践环节应从语法演示和验证为重点转变为以知识的理解和知识的运用为重点,因此除了结合教学内容设计相应的实践内容外,最显著的特点是增加综合性的项目开发环节,以达到知识的综合掌握和运用。
当前以语法的演示和验证目的实践环节的设计具有大量的教学实践可资借鉴和学习,但针对更高两层教学目标的实践环节则缺乏有效的素材和经验可以利用,需要通过进一步的教学实践活动加以积累和总结。当前的一些做法是借用开发一个具有一定规模的项目来弥补纯语法的演示和验证实践方法的不足。
4结论
本文针对当前在程序设计语言的教学中存在的问题,提出了多层次教学目标的观念,并介绍了各层次目标的具体内容和以此目标为导向的主要的教学环节的设计。各个层次的教学内容和教学方法手段并不是彼此割裂的,如何针对各种不同的教学对象进行合理的课程设计,以提高教学质量有待于进一步的大量的教学实践活动。下一步最主要的工作总结探索各种教学资源以及相应的考核方法,尤其是用于中级目标和高级目标为导向的教学活动。
参考文献:
[1] 吴乃陵. 面向对象C++程序设计教学改革[J]. 电气电子教学学报,2003,25(2):9-11.
[2] 徐宏,聂影,黄征华,等. 计算机程序设计语言的教学探索[J]. 教学研究,2004(2):89-93.
[3] 沈军. 程序设计语言类课程的教学思路研究[J]. 高等工程教育研究,2001(1):80-82.
[4] Stanley B. Lippman. Inside The C++ Object Model [M]. Addison-Wesley Publisher, 1996.
[5] Erich Gamma, Richard Helm, Ralph Johnson ,et al. Design Pattern: Elements of Reusable Object Oriented Software [M]. Addison-Wesley Publisher,1995.
Research on Teaching of Programming Language
CHEN Dong-huo,YAO Wang-shu
(School of Computer Science and Technology, Soochow University, Suzhou 215006, China )
【关键词】程序设计基础;计算思维;教学效果
0 引言
程序设计基础作为各个高校面向新生普遍开设的一门信息类基础课程,以高级编程语言为平台,介绍计算机程序设计的思想和方法,既为后续相关课程的学习打下基础,也有利于帮助学生理解基本计算思想和方法,培养应用计算机求解问题的能力。该课程的教学效果无论是对学生信息素养的提升,还是对学生后续专业课程的学习都具有极为重要的影响。
入学新生普遍没有接受过系统的程序设计训练,脱离以往主要依靠学校和家长督促的学习环境,自主学习意识薄弱,自主学习能力较差。由于这些因素的影响,程序设计基础课程的教学效果往往并不理想,如何提高程序设计基础课程的教学效果,培养学生应用计算机解决问题的能力成为普遍关注的问题。
2006年3月,美国卡内基梅隆大学周以真教授(Jeannette M.Wing)在权威刊物《Communications of the ACM》上撰文Computational Thinking,首次清晰系统明确提出了计算思维(Computational Thinking)的概念。计算思维是运用计算机科学的基础概念去求解问题、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[1]。计算思维的本质是抽象(Abstraction)和自动化(Automation),而这两个内容恰好反映了计算的根本问题,即什么能被有效地自动进行。它虽然具有计算机科学的许多特征,但是计算思维本身并不是计算机科学的专属。计算思维代表着一种普遍的态度和一类普适的技能,每一个人都应热心于它的学习和运用。
计算思维概念一经问世,得到了国内外科学界和教育界的广泛关注和认同[2-3]。“计算思维”不是狭义的计算机编程,而是运用计算的基本思想概念去求解问题、设计系统和理解人类的行为; 如同“读、写、算”能力一样, 它是所有人都应具备的思维能力。
1 程序设计基础课程教学中存在的问题
1.1 重视语言语法学习,忽视程序设计能力的培养
由于程序设计由高级程序设计语言来描述,实际教学中容易注重语言语法的学习,忽视算法设计和程序结构的构建。传统课程评价和课程考试也偏重于语言语法规则的考察,背离了该课程最初的教学目标。学生往往熟悉语言的语法规则却不能针对某个具体问题顺利编写出基本的程序,没有使用计算机解决问题的思维习惯。
1.2 上机实践环节薄弱
程序设计课程中一个重要的环节是上机实践。由于课程学时等因素的限制,学生上机调试程序的机会较少,加之重理论轻实践的固有观念,学生在学习过程中常常以看懂书上的程序为目标,能够写出程序代码,却不能顺利的调试运行程序,导致对课程缺乏兴趣,产生畏难情绪。
1.3 教材和教法不能适应当前教学的要求
程序设计基础课程相关的传统教材往往仅专注于对编程语言的语法细节进行详细讲解,而忽视了对学生本身程序设计能力的培养。教学方法也以满堂灌输式教学为主,课堂气氛较沉闷,没有在互动中渗透对学生思维能力的培养,调动他们的学习热情。
2 融合计算思维培养的程序设计基础教学
2.1 明确学习目的
在授课之初明确课程的目标和意义,学习程序设计不仅获得专业知识,而且能够提高逻辑思维能力、计算思维能力等,潜移默化中提高学生的综合素质,促进其他课程的学习。其中,计算思维的培养将带给学生受益终身的问题求解能力。明确了课程目标和学习目的,有助于学生端正学习态度,增强学习积极性。
2.2 分级教学,不同程度融合计算思维
由于不同学生的计算机基础差异较大,所以在进行程序设计基础课程教学时,通过对学生的计算机基础和编程知识进行摸底测试,了解学生实际情况,进行分级教学。对于基础好的学生,在完成教学大纲全部授课内容的同时,布置其他基于计算思维案例的实验内容,以强化计算思维能力的培养;其他学生重点完成教学大纲内的知识学习,强化问题求解能力的培养。
2.3 分组互助,达到双赢
在问题讨论和上机实验时,将不同程度的学生组成学习小组,遇到问题,小组内的学生首先进行沟通交流,寻找解决方法,这个交流过程不H帮助程度较弱的学生掌握了学习的方法,提高了学习效率,也有助于程度较好的学生巩固已有知识,开阔思路,提高学习兴趣。分组互助的形式比传统的学习形式能更好的促进计算思维的渗透,使学生充分发挥主观能动性,计算思维能力随着实际问题的解决也得到了提高。
2.4 任务驱动,课内外联动
在课堂上布置学习任务,学生课下进行文献检索和学习,组织学生将自学内容总结归纳后在课堂上讨论、讲解。这一过程形成课内外教学活动的联动,学生不仅掌握了学习内容,而且学会了如何根据要求来进行资料的检索分析和有价值信息的提取总结。这样的方式也从一定程度上解决了程序设计课程教学内容多、课时少的矛盾。
2.5 案例式教学渗透计算思维
计算思维与程序设计基础课程教学的结合主要体现在两个方面:首先将抽象和自动化两个计算思维核心思想贯穿于整个教学活动过程中,其次根据所需要讲授的具体知识点适时地引入计算思维中其他基本概念和思维方法。针对主要教学模块和核心内容,设计以问题引导反映计算思维思想的相关教学案例,使学生了解相应教学模块所关心的问题和解决思路。
3 结束语
作为普通高等院校面向大一新生普遍开设的一门信息类基础课程,程序设计基础中的许多知识点都为计算思维提供了很好的诠释和生动的案例。将程序设计基础教学与计算思维培养结合起来,不仅可以从计算思维的角度重新审视和组织程序设计基础的课堂教学,取得更好的教学效果;另一方面可以加强对计算思维能力的培养,使学生更好地应用计算思维来解决问题,促进学生综合素质的提升。
【参考文献】
[1]林旺,孙洪涛.基于软件应用的计算思维能力培养教学设计[J].中国电化教育, 2014(11):122-127.
关键字:算法与程序设计;激发兴趣;分组学习;学习习惯;编程素养
新课程改革后,信息技术课程除必修课《信息技术基础》外另有五门选修课,《算法与程序设计》就是其中之一,这门课程除了与学生们小学、初中、高中乃至大学阶段的数学课程有密切关联之外,对于即将踏入大学的无论文理科的同学们,他们的逻辑思维能力以及今后的学业、人生都有着至关重要的作用,因此我校在经过慎重筛选后决定在高中二年级选修这门课程,并利用VB程序语言来实现算法与程序设计,VB这种面向对象的程序设计语言不仅容易设计和实现良好的用户界面程序,使学生们通过“所见即所得”的窗体界面,更容易学习和掌握,也更易于理解。但是,通过近几年《算法与程序设计》的教学,让我对该门学科有了不少体会,并有了一定的反思,从而改良我的课堂教学效果。
体会一:畏惧、恐慌、心理障碍。《算法与程序设计》比起其它诸如《多媒体技术应用》、《网络技术应用》等这样的课程,有了更强的逻辑性和更高一层的难度和深度,相对于后两种课程也显得比较单调枯燥,加之学生们的程度良莠不齐,对待问题、分析问题、解决问题的能力也不尽相同,因此,在初接触这门课程时,学生们容易产生一种心理障碍,而这种心理障碍会直接影响他们今后的学习。
解决策略:克服畏惧心理,用成就战胜枯燥。提到程序设计,好多同学们都觉得熟悉而又陌生,熟悉的是我们在计算机如此普及的现今社会生活中经常会听到这个词语,陌生的是我们在使用计算机时,最为常见的是使用一些办公软件如Word、Excel和网络,编写程序好似都是一些计算机专业人员进行的枯燥的活动,不少同学在知道我们高中阶段要学习《算法与程序设计》时,情不自禁的就会露出惊讶的目光、心里打鼓,因此作为老师,我们首先要打消同学们的畏惧心理及由此产生的疑惑。《算法与程序设计》中应用的VB程序设计语言进行程序设计,解决涉及的许多问题都与我们的数学知识、日常生活有着密切关系,如:学生们的成绩等级问题、数学中的求和、求积问题、数的排序问题等,而所谓的“程序”不过是计算机可以执行的一行行指令代码,而这些指令则是我们利用一系列的英文单词、按照一定的语法格式将我们解决问题的自然语言转化为机器可以识别的语言,从而执行相应的操作,如:End仅一个常见的英文单词就可构成一个简单的程序,作用是结束、退出。因此同学们大可不必畏惧与疑惑,循序渐进即可领略程序设计的奥妙。
教学实例:在学生们对VB程序语言编程不太了解的前几节课中,大量的界面设计、属性修改及编程语句会使学生们晕头转向,因此我把这课堂演示的例子改为在窗体上直接利用Print语句打印输出一句话或一个符号,如:Print “欢迎来到VB世界!这是我的第一个程序”、或Print “*”。让同学们跟着做,或者自己输出一句话运行程序检验结果、并讨论总结Print语句的作用。因为程序较为简单,小组成员可以相互帮助,对于动手能力较强的小组可以继续体验探究End语句的用法与作用,这样在同一个课堂既能分组学习、探究又有层次划分,不仅能完成当堂教学任务,还可能调动学生比着学的积极性超额完成任务。
体会二:编程容易,纠错难。在通过一定阶段的学习之后,学生们逐渐要开始自己设计界面、编写程序实现某一功能,但是在这一阶段,经常会遇到不能按照预期目的运行程序的问题,其中有方法的错误,但是更多的是程序编写过程中出现了一些小小的失误,而这些失误虽然会出现一定的提示,但是大部分同学不知道这些提示是什么意思,提示的错误代码代表什么,这样,一旦程序不能正常运行,学生们最常做的就是举手示意让老师帮忙解决。
解决策略:养成良好的编程习惯、学习习惯。程序是有一定的语法规则与书写规则的,变量使用要先声明、类型要匹配尤其是一些标点符号必须是半角状态,有些时候运行期间会出现异常提示,可能是变量没有声明、也可能是变量类型不匹配导致溢出、也有可能是语句格式不对,缺少与前面相匹配的固定语句……对于类似的这些错误提示,在平常的教学过程中除了必要的给学生们讲解,更重要的是教会他们养成良好的编程习惯,在编写程序的时候遇到有固定搭配的语句,最好把这种语句的首尾句先写好,然后再在这种语句中间编写其他语句。另外,如果语句之中有嵌套,要做到层层递归,使内外层次分明,这样如果一旦程序出错,亦可方便查看。
教学实例:在程序设计中有三大结构,顺序结构、选择结构、循环结构,顺序结构比较容易理解,但是选择结构和循环结构都可以层层嵌套,嵌套越多越容易出现失误,因此良好的编程习惯就显得尤为重要,例如:编写程序实现九九乘法表,语句如下:Dim i as integer
Dim j as integer
For i = 1 to 9
For j = 1 to i
Print i “*” j “=” i*j;
Next j
Next i
这是程序的部分语句,以此为例,首先要求同学们注意的是编程要谨慎——变量i和j在使用之前要先声明,其次在这个程序中涉及两重循环,为了使循环的层次更加分明同时也便于在报错的时候分层查错,第一层循环与第二层循环之间要有区别,即在内层循环要使用缩进,这样就不容易出错,而在出错的时候也方便检查。
信息技术课程的特点就是不断发展,而《算法与程序设计》是更高层次的学习内容,教师除了要培养学生用程序设计的方式进行思考,提高学生的探究、创新能力,帮助学生成为适应信息化时展的人才,更要不断培养和发展自己的反思能力,不断自我修正、调整和更新,这样才能适应信息技术学科的特点,做到与时俱进。
参考文献:
关键词:计算机专业;程序设计类课程;教学方法
1引言
大学期间计算机专业的学生必须掌握的基础课之一《计算机程序设计》课程,旨在培养大学生基础的计算机技能,以便于以后计算机课程教学的方便实施和讲解,因而计算机基础程序设计课程是计算机专业学生所必须掌握的一门理论课。计算机程序设计类课程教学重点在于其实践性,实践是检验真理的唯一标准,通过实践,学生可以清楚自己的不足和所不理解的知识点,老师也能了解学生对于程序设计这门课的掌握情况,进而方便老师进行教案设计,为下节课讲解提供依据[1]。计算机课程所重视的应该是创新,但现在各大高校计算机课程却都以理论知识验证为主,形成重验证轻创新的偏差学习,难以激发大学生学习热情,且在程序设计上没有重大突破,大学生的创新意识和创新潜能并没有被发掘。教学新课程改革以来,关于计算机的课程设计正逐渐转向正常,学生的创新意识正不断被发掘和刺激。以培养大学生创新意识和积极主动参与能力为目标,进行计算机程序类设计课程的教学探讨[2]。
2当前程序设计类课程的教学情况
2.1计算机软件开发系统庞大学生容易失去信心
例如Java技术中所包括的技术规范范围复杂且庞大,在实际运用中也受到众多条件限制,大学生必须付出更高的学习成本来进行技术规范的理论学习。然而若真正意义上进行程序设计,又感觉理论知识的学习无法与实际贴合,力不从心,失去信心。
2.2严重缺乏学习兴趣、主动参与性较差
计算机程序设计类课程现阶段最主要的教学方式依然是PPT展示,老师仍然处于主导地位,学生依旧是被牵引的一方,加之课程内容多,学生逐渐失去兴趣,学生缺乏学习兴趣、积极主动参与性较差。
2.3计算机课程实践模式单调,学生普遍缺乏实际经验
现阶段程序设计类课程的授课方式仍以理论课为主,上机实际操作课时较少,且上机课也只是进行理论知识验证,关于创新意识的培养却很难实现。
2.4考核方式仍以试卷为主
这种考查方式只能确定学生理论知识掌握的熟悉程度和概念的理解认识,但对于实际操作却并不能完整体现,进而也无法实现创新意识体现的最终目的。
3改革教学方法,加大激励制度
老师的教学任务重点不是讲解,而应该把重点放在教案设计上,只有明确的教案设计,才能针对性进行训练,才能依据计算机程序设计知识具体应用确定教学重点。此外,老师必须建立互动课堂,只有与学生有足够的互动,才能更了解学生,才能更好地进行课堂计算机程序设计类知识讲解[3]。特别是在学生遇到无法解决的问题时。老师要依据学生潜力做合适的引导,从而刺激学生找到最佳解决问题的方式,进而提升学生的思考能力,调动学生对于计算机程序设计类课程学习的热情。由于计算机专业的学生不同于其他专业,在毕业离校后,大都通过小组活动的形式进行程序项目开发,特别是在小组开发程序设计的途中,重视团队彼此的配合默契,通过互相探讨、阐述自身观点以及团队合作能力的方式来提升小组成员之间对于程序项目开发的动力。为积极增强团队合作意识,可以适时增加一些类似讨论课题的交流活动方式来进行程序设计,并进一步提升运用[4]。对学生进行启发性问题挖掘,例如在对学生进行计算机程序设计课程教学时,提前让学生完成课本内容预习任务,并以此为基础进行启发性引导。比如,计算机课程中所指的对象是什么意思;类和封装又指的是什么;以现实生活为背景调查人群对于计算机信息技术的认识,且要依据实际情况对信息进行登记和处理,以小组团体的形式整体提高计算机程序设计课程学生之间的互动性,也为今后更深入学习计算机相关知识奠定基础。
4重视学生的实验预习和准备情况
计算机程序设计类课程在进行教学实践时,由于学生缺乏基础理论知识以及对计算机的不熟悉,容易出现慌张、不知所措的情况,进而导致计算机课程不能顺利进行。形成这种局面的最主要原因就是学生并未按老师要求进行课程预习和前期知识回顾,这些无法顺利完成,究其根本原因就是学生没有深入的感知计算机程序设计类课程的教学重点和教学难点,由于前期准备不充分,导致各种状况发生。为解决此类问题,老师必须加强自身知识能力,除此之外就是要正确认识计算机程序设计类课程的实际重点内容,老师还要根据自身特点进行课程设计安排,以吸引更多学生专心听讲,以完整的知识武装自己。计算机课程的专业较多,因而实验课内容也十分广泛。这就需要老师依据实际情况进行课程设计并调整课程内容讲解模式。只有这样才能解决学生在上课时对于计算机程序设计课程学习中难懂的问题[5]。避免盲目从众,还可以依据学生自我兴趣进行计算机程序设计的理论思维创新并验证实验结果。所以,老师要依据计算机程序设计类课程的实验方式来让学生确定自己的独特方式,学生也可以积极主动的选择可以激发创新思维的各类课程活动方式,结合自身特点进行计算机程序设计类课程的项目设计,进而满足不同层次、不同兴趣学生自身的实际需求。
5通过上机试验提升综合项目的设计能力
计算机程序设计类课程是一门重视实践的课程,因而上机实践是相当重要的环节。为提升学生对于课程设计的整体感知和理解,老师有必要在第一次上课时就给学生进行整体理论框架知识简述。并依据课程实际进行详略得当的说明,这样既可以提升学生的学习信心,也可以为该课程理论知识实践奠定基础。
6重点培养学生实践能力
6.1对于实践中常见问题的分析解决
在计算机程序设计类课程实践中,学生总会遇到各种各样自己难以解决的代码错误问题以及操作错误问题。这些问题若没有老师帮助解决,学生很难进行下一步的程序设计。计算机实践课程通常都是大课,70人左右同时进行,计算机实践操作中出现的问题多种多样,若是只由老师单独进行辅导,实在难以解决所有问题,这也是计算机程序设计类课程的实践难以提升的根本原因。对此,若采取“老师为主、学生互助”的方式则可以极大提升计算机课程实践效率[6]。老师在进行计算机程序设计课程实践时,对于学生提出的问题必须有耐心的解决,充分尊重学生的思想,在指导练习时可以让周围的学生一起参与起来。比如:针对实践课程代码编程问题,老师要引导学生发现问题的症结所在,并积极鼓励学生建立讨论组,通过沟通交流相互讨论的方式,发现实践问题所在,让学生积极发表自己的看法,从而提高计算机程序设计课程的实践效果。老师也要从计算机程序设计实践课中总结经验,以更完善的辅助学生进行计算机程序设计。
6.2课堂知识向课外知识的纵向延伸
通过一段时间的理论知识学习,老师就可以把课程知识进行纵向延伸。学生依据课程上学到的理论知识,通过实践运用在课外知识纵向延伸上。同时学生还可以与老师进行及时的沟通交流,这样可以极大提升计算机程序设计类课程的实践教学质量,也更有创新性的激发学生对计算机程序设计的兴趣[7]。
7学生要善于进行自我总结并自我评价实验结果
老师应该按照学生的实践能力制定评判标准,并对学生的实际操作能力和理解进行基础评估,若学生自主的进行实践内容的准备、实践课题的总结和经验积累,则老师可以依据学生的自主意识和自我认知想法合理的提高分数。学生在进行计算机程序设计时,老师要强调学生的自我管理,以自我总结、自我评价的方式为自己负责,对于解决不了的问题,则可以与同学商量共同解决,这样才能让学生有效的进行总结和知识归纳。
8考核方式优化改革
(Nuclearsystemoptimizationreform)现阶段的计算机程序设计类课程通常以笔试成绩为主,重点在于考察学生的概念理解能力,这对于学生来说要求记忆的东西过多,学生并没有充足的时间进行内容的理解和实际操作设计,这也就容易出现高分低能的情况。学生的理解能力、接受能力、创新能力、实践能力,在试卷上并不能完整的展现。虽现在强调平时成绩,但其所占的小比例并不能改变期末成绩,期末成绩仍然是最终判断标准[8]。
8.1增强实践方面的考核优化改革
新课程改革下,要求把实践课分为几部分进行考核,并依据各个阶段的平均成绩判定实践总成绩。实践部分的分数仅占总成绩的37%。这也就要求学生必须有自己独到的见解和设计风格理念,这样才能保证设计出来的程序具有一定的创新性。
8.2期末考试方式优化改革
在日常考试中,通过程序设计的方式给每位学生分发不同的考试题目,学生要依据题目要求进行相关程序设计,从分析题目入手,结合代码规律,独立且完整的完成实践考试。期末成绩改用答辩的方式进行,重视学生的沟通交流以及灵活转变能力。通过这种方式提升学生的分析水平,从而增强学生运用计算机程序设计解决实际问题的能力。
9结论
总而言之,计算机程序设计类课程是一门重视实践的课程。尤其在教学实践中,必须强调学生的主体地位,以学生为主,老师只做一个引导人,并通过符合学生认知习惯和规律的方式科学合理的调动学生的积极性。以此提升计算机程序设计类课程的教学质量。所以,老师在计算机程序设计类课程实践中要持续围绕学生的实验能力进行更深层次的研究和教学上的优化改革,从而提升计算机程序设计实践的教学质量。
作者:刘琴 单位:青海民族大学计算机学院
参考文献
[1]邹汪平,蔡劲松.基于能力导向的计算机程序设计类课程教学内容相关性研究[J].梧州学院学报,2016(06):72-75.
[2]张雪松.高职院校非计算机专业《C语言程序设计》课程改革探索[J].产业与科技论坛,2016(22):194-195.
[3]耿姝,逯柳,王树芬.计算机程序设计类课程研究型教学改革与实践[J].工业和信息化教育,2016(09):50-53.
[4]钟文峰,晏志英,胡荣群.计算机科学与技术专业程序设计类课程群建设的探索与实践[J].信息通信,2016(09):277-279.
[5]袁凤玲.计算机程序设计类课程实践教学的有效性研究[J].辽宁科技学院学报,2016(03):52-53.
[6]杨日璟,焉德军,辛慧杰.非计算机专业程序设计课程教学改革实践[J].大连民族大学学报,2016(03):271-274.
关键词:计算机专业算法;程序设计;层阶式培养
在计算计机专业的教育中,培养学生专业算法设计的能力,是计算机专业教学的重点内容。而计算机程序设计能力又是学生应该具备的最基础的专业能力,怎样更好地培养学生这两种专业能力,也是计算机专业教学的重要目标。目前,计算机专业虽然得到了大范围的普及,但是由于教学理念,教学模式,学生学习能力,教师教学水平等主客观因素的不同,学生的计算机专业能力与实践能力并不高。专业算法与程序设计能力的层阶式培养模式是一种新的教学模式,对于提高学生程序设计能力和算法设计能力就有重要意义,需要根据教学实际,不断进行改革与创新,不断提高计算机教学水平,提升学生的计算机专业素养。
一、计算机专业教学的现状简析
随着网络技术,信息通讯等方面的快速发展,计算机专业教学已经在高校教育中得到普及,选择计算机专业的学生也越来越多,但是真正具备计算机专业能力与应用能力的人才却少之又少,这也是计算机专业教育在人才培养方面的缺陷。从目前的教学现状来看,大多数学校更注重计算机专业理论知识的教学,没有认识到它是一种实践性极强的学科,没有注重培养学生的实践与应用能力。在实际教学中,教师对算法与程序设计的重视度较弱,因此,学生的程序设计能力和算法设计能力较为薄弱,对于前沿性的学习内容,学生往往无法接触到,长此以往,学生在计算机专业学习中,指学习到了基本理论知识,创新能力和个性能力不足,不利于学生学习兴趣的提升。
二、分层次组织计算机算法设计与程序设计教学
计算机算法与程序设计能力的培养,是计算机专业教学的重点,这也是学生学习与应用能力提升的关键。高校在进行计算机专业算法与程序设计能力的层阶式培养的实际教学中,要根据计算机专业教学内容,根据学生的学习特点,接受能力,在算法区域程序设计上进行分层次教学,把计算机理论基础知识与专业技能培养有效结合起来,切实培养学生的算法与程序设计能力。
(一)巩固专业基础知识教学
在计算机程序设计专业教学中,C语言是基础课程,这也是一种通用性极高、应用最为广泛的计算机编程语言,作为重要专业基础知识,不容忽视。在C语言教学中,要使学生不断对词法、语法、应用方法等方面的知识进行巩固,培养学生独立利用相关知识解决问题的能力。此外,要对计算机算法基础理论、程序设计基础、C语言等基础课程进行合理设置,在教学中,既要学生能够掌握基本的理论基础知识,又要形成独立的思维逻辑,能够运用基础知识独立解决在计算机程序设计中用遇到的各种问题,培养学生的个性意识,创新思维。促进其综合能力的提升。
(二)加强专业课程的教学
在计算机专业算法与程序设计能力的层阶式培养过程中,要合理设置相关专业课程。算法设计与分析课程就是重要专业课程之一,在此专业课的教学中,重点培养目标就是提高学生的计算机程序设计能力。在教学设计中,重点讲授基本的算法设计方法及其性能分析,如:递归法、回溯法等等,学生要真正理解每种方法的特点与性质,能够灵活运用,在算法设计中,要能够把自己的想法与专业课程知识相结合,形成具有个性的设计。
(三)注重应用课程的教学
在计算机专业教学中,除了基础课程和专业课程以外,应用课程的教学也要合理设置,这是培养学生实际应用能力的重要课程。一般与算法和程序设计相关的应用课程主要有:Java、Web编程与设计、网络编程、数据库编程等等,此外还有与社会发展密切相关的环境编程等应用课程。通过这些应用课程的合理安排,有助于增强学生的实际应用能力。
三、计算机专业算法与程序设计能力的层阶式培养方式分析
(一)语言程序设计教学层次的划分
这也是基本的程序设计能力培养,此层次的设置,主要是使学生能够进行简单基本的编程设计,独立解决一些简单的问题。通过学习与实践的不断加深,逐渐提高程序设计的难度,以C语言设计为基础,形成有层级的培养方式,循序渐进的培养学生的计算机程序设计能力。
(二)数据结构与算法教学层次的划分
掌握数据结构,是解决算法问题的重要途径。在这一层次的教学中,要从简单到复杂,逐层逐级,根据学生的学习特点与掌握能力,逐渐开设计算方法、人工智能、数据程序设计等课程,由易到难,相由简单到复杂,从大学一年级到四年级,相应进行教学,逐渐培养学生的算法设计与程序设计能力。并且能够自主思考、主动创新,解决更为复杂的计算机专业问题。
(三)程序设计教学层次划分
计算机程序设计能力的培养是基础也是重点,在实际教学中,通过采用各种有层次的培养方式,提升学生的程序设计能力以及解决复杂性、综合性问题的能力。
四、结论
综上所述,计算机专业是高校教育中的重要专业学科,与社会发展、科技进步具有密切联系,其主要教育目标就是,培养具有较高专业技能与计算机综合素养的人才。因此,要在实际教学中,有层次设置计算机专业相关课程,分层级进行人才培养,通过对基础课程,专业课程,应用课程的分层次设置,分层次教学,不断提高学生算法与程序设计能力以及计算机专业应用能力。
参考文献: