前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的计算机基础与程序设计主题范文,仅供参考,欢迎阅读并收藏。
关键词 低级语言;高级语言;输入/输出设备
中图分类号:TP311 文献标识码:A 文章编号:1671—7597(2013)041-133-01
1 计算机的编程语言的发展
1.1 计算机编程语言的概念
计算机编程语言的诞生是为方便人与计算机的沟通交流,为了让计算机更好的服务于人类,计算机所能识别的语言就只有“0”和“1”,该语言人类记忆非常麻烦,因为表达一句简单的话,机器语言却非常复杂、非常长,所以人们就开始研究一种简单的语言,然后编译器诞生了,人们至于要记住简单的语法,编写想要计算机完成的程序代码,至于翻译成机器语言就交给编译器来完成。就这样随着计算机业发展,计算机编程语言从机器语言到汇编语言再到高级语言,也有很多语言从鼎盛到消亡,这也是发展趋势。
1.2 计算机输入/输出设备的发展
首先我们要知道输入输出设备的分类,字符输入设备:键盘;光学阅读设备:光学标记阅读机,光学字符阅读机;图形输入设备:鼠标器、操纵杆、光笔;图像输入设备:摄像机、扫描仪、传真机;模拟输入设备:语言模数转换识别系统。输出设备:显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等,这些输入输出设备存在很多优势,第一物理键盘比虚拟键盘更方便输入,更有存在感,另外鼠标的存在,对于精确地操作也比触摸板更准确,另外还有光笔,操纵杆,摄像仪等等这些设备都给办公带来了极大的方便,虽然苹果公司开创了一个触摸的时代,平板电脑开始流行,人们都开始喜欢用手指触摸,但那只是娱乐方面更方便,但是真正用到专业性的工作,是离不开物理的输入输出设备的,像制图,像会议速记等等,这些工作不可能脱离物理键盘,而使用虚拟键盘的,因为这样影响效率和工作的质量,所以即使计算机技术发展如此迅速,虚拟的输入输出设备,也无法替代物理的输入输出设备,就计算机诞生而言,当时的计算机是巨型计算机,和现今的个人PC不一样,当时的计算机有一个房间那么大,但是当时人们也意识到了输入输出设备的重要性,也就发明了相应的输入输出设备,当时要想输入一段指令要让工作人员用纸带,通过纸在纸带上打孔,来代表的“0”和“1”。因为当时还没有计算机的编译器,可以说机器只认识机器语言,还不懂java、donet、c、c#、c++等等这类语言,所以那个时候的编程人员是工作量非常大的,因为往往让计算机实现一个算法,要需要好多卷纸带记录人类所要表达逻辑命令。随着时代的发展,计算机也逐渐开始小型化,从房间式巨型机到现在的便携笔记本电脑,在计算机发展的同时,输入输出设备也随着发展,从纸带到键盘,从打印机到扫描仪,手写板等等,另外计算机再为人类提供工作上的方便的同时,也逐渐要满足人类的娱乐要求,这就要求输入输出设备要有显示器,要有音响,综合说起来,计算机的发展,带动了输入输出设备的发展。计算机的发展,人们发现工作中如果有计算机的参与,会使工作效率突飞猛进的提高所以各种的管理系统也如雨后春笋般应运而生。这些系统就得通过程序编写者通过输入输出设备进行编写,然后通过IDE环境的编译器翻译成机器语言转达给计算机来完成人们想要计算机完成的工作。
2 根据编程语言不同种类阐述输入输出设备
2.1 编程语言的分类对输入输出设备的要求
计算机语言可以分成机器语言和高级语言两种,而机器语言顾名思义就是计算机可以直接理解的一种语言,其语言形式是“0”和“1”这种二进制码,这种语言不需要编译的帮助,计算机可以直接读懂,所以这种语言执行起来会非常迅速,例如汇编语言。另外还有一种语言被称为高级语言,高级语言还可以简单的分为两种,一种是面向过程的语言,一种是面向对象的语言,面向过程语言就是以过程或函数为基础的,这种语言对底层硬件,内存等操作比较方便,但是写代码和调试维护等会很麻烦。例如:c语言、C++等等,面向对象语言是指一切操作都以对象为基础,它是由面向过程语言发展而来的,但正是它的这个特性使得面向对象语言对底层的操作不是很方便。例如:java语言、C#语言等等,这类语言的诞生,使程序编写人员从枯燥乏味,冗长的机器语言得到解放,是编程更容易,不再那么神秘和抽象,高级语言的诞生促进了应用软件的发展,因为更容易编程,很多软件也如雨后春笋般的诞生了,这样方便了人们的工作和娱乐生活。
2.2 不同编程语言输入/输出设备的使用
每个输入、输出设备的连接口控制器中都有用于存储设备运行状态、控制设备运行模式以及具体存储读或写数据的存储器,每个存储器都有一个独立的地址编码。通过定义文件数据类型的结构体,创建输入、输出设备在环境中的编程实体,并用逻辑设备名在编程实体与具体输入、输出设备之间建立联系。程序其实是通过计算机调取计算机上存储的数据,进行程序所命令好的操作方式。计算机按照程序开发者所规定好的逻辑来进行数据的操作。算机底层输入输出存贮方式在改变,随着技术的进步,而物理硬件的变化也随之发展。
3 结论
综上所述,现在的编程语言已经越来越接近用户,反之离机器越来越远,随着科技的进步,计算机不断发展,编程方式也会逐渐改变,随之而来的输入输出的设备也将越来越人性化,简单化,人们与计算机联系也越来越紧密,相信未来输入输出设备的进步,计算机的发展,编程不再是程序工作人员的技能,而是只要会使用计算机的人,就会编程、就实现会与计算机“交流”!
参考文献
[1]陈火旺.程序设计语言编译原理[M].北京:国防工业出版社,2003.
[2]Karen L.Design of Compilers-Techniques of Programming Language Translation[M].CRC Presss,1992.
[3]谭浩强.C语言程序设计[M].北京:清华大学出版社,1999.
关键词:计算机专业;程序设计;基础课程;教学改革
程序设计课程与计算机学科的基础教学密切相关,学生要想学好计算机基础课首先就要明确程序设计的基本思路及其原理。通过学习程序设计的基本原理,学生可以掌握程序设计的流程与思路,在此基础上尝试创新程序设计。相比于传统教学,新时期的计算机程序设计课程致力于培育创新能力,通过课堂创新的方式来激发同学们的兴趣[1]。为此在改革程序设计的基础课程时,师生有必要做到密切配合,共同探求更适合程序设计课堂的新型教学思路。在日常教学中,教师也应当尊重同学们的主体地位,为学员提供自主探究的空间。只有不断改进程序设计的教学思路,才能确保符合新形势下的计算机学科课改方向,从而提高学员的实践素养。
1程序设计基础课的现状
从现状来看,程序设计构成了很多学科的基础课程,计算机专业尤其不能缺少程序设计作为保障。然而从目前现状来看,程序设计的基础课并没有实现完善。受到应试压力影响,计算机专业课堂仍充满压抑和枯燥的氛围。通常情况下,教师负责为同学们讲解程序设计基础的相关知识点,然后选择适当的习题让同学们演练。这样做固然有助于提高同学们的学科成绩,然而却背离了新课改的根本前提,长期以来很多学生就会对程序设计基础产生畏难和厌倦的感觉,因而无法激发对于这门学科的浓厚兴趣[2]。从目前来看,程序设计基础在日常教学中仍体现了如下缺陷:首先,程序设计基础仍缺乏最基本的任务驱动,过于重视程序设计语法。实质上,程序设计基础不仅包含了语法知识,同时还应当设置任务驱动。在任务驱动的前提下,学生才会感觉到程序设计基础课堂是充满趣味的,而并非单调和枯燥的。然而目前在这门学科的日常教学中,很多教师仍忽视任务驱动,师生觉得只要明确了程序设计相应的语法规则,那么就可以应对这门学科的考试。缺乏任务驱动的课堂压抑了同学们的自主探究热情,同时也背离了实践导向的课堂改革。长期以来,很多学生虽然获得了较高的成绩和分数,但却并不符合真正的编程操作要求[3]。其次,程式化的程序设计课堂内容经常脱离实践,不利于学员综合素养的全面提高。长期以来,程序设计基础都是依照既定的模块来展开课堂的。这种状态下,程序设计基础课堂就会十分枯燥,师生过于重视描述性和验证性的程序设计知识,同时也忽视了综合与创新性的编程知识。此外,程序设计中的某些知识点也没有密切结合软件工程的编程实践,因而很难从根源上确保良好的实践效果[4]。通常在程序设计的课堂上,学员只要依照教师的思路来填写报告并且描述既定的编程步骤就可以了,而不必深入探究程序设计的深层知识。这种课堂模式体现了较强的随意性特征,缺乏必要的课堂监督。情况严重时,某些学生甚至会抄袭其他同学的实验报告。第三,程序设计基础没有体现全方位的考核指标,通常停留于笔试形式。如果运用单一的笔试来考核学员的编程水平,则无法明确程序设计的真实水平。同时,现阶段的程序设计考试题目也相对单一,没有做到紧密结合编程实践与基本原理。在这种状况下,学员一旦面对上机操作,经常会感觉到无所适从,无法发挥程序设计方面的创新潜能。由此可见,单一的课程考核指标压抑了学员学习程序设计的热情与积极性,从长期的角度来看也不利于程序设计综合水平的提高。
2改革课程教学的具体思路
计算机专业中的程序设计基础具有较强的复杂性特征,因而在课改过程中也需要不断尝试新思路。师生在课堂上应当做好密切配合,在此基础上致力于降低程序设计的整体难度,确保同学们对于程序设计具有兴趣与热情[5]。为了改进课堂现状,应当依照如下思路来完成课程改革。
2.1做好先期的课堂预备
在进入系统化学习之前,教师先要指引同学们做好先期的课堂预备。很多选择了计算机专业的学员,都是初步接触程序设计。为此,教师应当对于新入学的学生予以全面的指引,做好充足的先期预备。在进入课堂讲解前,教师需要确保同学们明确程序设计的具体运行机制,这样做有助于打好程序设计的基础。学生如果能透彻理解计算机的基本运行原理、程序代码与指令的特征、各种数值的换算方式等,那么就可以迅速进入编程基础的学习中。此外,计算机内存分配的知识也应当构成程序设计的基础。在理解相关概念的前提下,学员将会迅速进入后期的编程实践。例如:内存分配与程序设计之间具有直接性的联系。学生在掌握内存分配问题的基础上,就可以透彻理解不同类型的变量定义。这是由于,对于不同类型的变量而言,在计算机内部占据的存储空间也并不相同[6]。从系统化角度来讲,如果超出了限定的数值范围则容易导致溢出的现象发生。因此,在学习程序设计的前期就有必要了解内存分配的相关问题,通过这种方式为后期的程序设计创新提供必要条件。
2.2激发创新意识与创造潜能
在程序设计领域中,对于不同类型的例题通常可以选择不同的解答方式。通过寻求一题多解的方法,有助于激发同学们在程序设计领域的创新潜能。在程序设计课堂上,教师应当给予学员必要的思维启发,鼓励同学们尝试多样的编程与设计方法。实际上,计算机学科的很多题目都具有多种解答思路,与之相应的解题结果也可以划分为多种类型。如果能尝试运用多样的算法来实现,那么就可以体会到程序设计的趣味性。通过对比各类算法的基本原理,师生就可以归纳得到最简便的一类程序算法,从而省略了程序设计中的繁琐操作流程。例如:教师在讲解关于字符串排序的基础知识时,可以运用字符指针或者字符数组的方式来实现简便的排序。这是因为,运用数组的基本原理可以解决多样化的字符串排序问题,这种方式简化了繁杂的编程步骤。经过分析与对比,同学们就能找出各类算法的差异与相似处,这样做有利于活跃思维,逐步培养同学们在编程操作中的创新意识。再如:对于程序设计中的封装概念,教师可以让同学们联想共性与个性之间的联系,在此基础上透彻了解封装的原理[7]。
2.3密切结合基础原理与实践
相比于其他学科,程序设计基础本身就具有显著的实践性特征。在课堂教学中,教师应当从全面的角度入手,确保把课堂所学的编程原理与编程实践紧密结合在一起。在程序设计基础的课堂教学中,师生可以共同尝试多样的教学流程与方法,例如互动式与启发式的程序设计教学。只有综合运用多样的程序设计模式,才能开阔视野并且启发思维,让学生真正体会到程序设计的趣味性。对于程序设计的实验教学而言,教师先要设计明确的课堂实验目标,然后运用小组协作的方式来启发实践思维。为了增强互动,师生还可以构建QQ群或者微信群,分享程序设计课堂的体验。
3结语
对于计算机专业来讲,程序设计的基础课程包含了多层次的内容。在新的形势下,各行业都面临激烈的竞争。对于计算机专业毕业的学员而言,如果能做到灵活应用在校期间所学的程序设计流程,那么就能迅速适应岗位实践,这样做也符合新课改的根本目标。因此,计算机专业的学员应当能灵活运用程序设计的基本原理,在此基础上突显程序设计课程教学的创新性。然而截至目前,计算机专业体系中的程序设计基础教学并没有真正完善,仍存在需要改进的地方。在未来的课改实践中,师生还需要紧密配合,共同探索适合程序设计基础课程改革的新思路,从而全面确保程序设计基础教学的完善和提高。
[参考文献]
[1]王晓勇,方跃峰,肖四友,等.以专业应用为导向的计算机基础课程教学改革与实践[J].中国大学教学,2012(7):39-42.
[2]郭艳燕,张树粹,胡潇琨,等.计算机专业程序设计基础课程教学改革探索[J].计算机教育,2012(8):72-75.
[3]丁海燕.计算机专业高级语言程序设计课程改革方案[J].云南大学学报(自然科学版),2012(S1):387-390.
[4]许丽娟,黄冬梅,王爱继.以计算思维为导向的非计算机专业程序设计课程创新教学[J].计算机教育,2015(12):31-34.
[5]张艳.“互联网+”背景下计算机专业程序设计课程教学改革初探[J].北华航天工业学院学报,2015(5):39-41.
[6]黄云,洪佳明,覃遵跃,等.基于云平台的“程序设计基础”课程实验教学改革[J].实验室研究与探索,2016(2):191-195,223.
关键词 大学生;计算机程序设计;方法
一、大学生计算机程序设计课程概述
计算机程序设计(Programming)是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。目前,《计算机程序设计》课程是高校计算机基础教学的一门必修课,并且,一些非计算机专业的学生也安排了这一课程,其教学目的是要求学生以某种程序设计语言如JAVA、C语言、C++或汇编语言为工具,掌握编写程序的常用算法、一般方法和技巧,学生在进行该课程学习后,要具有一定的编程能力和应用开发能力,而不仅仅局限于计算机操作技巧,从而成为能够掌握计算机技术的高素质技能型人才。程序设计课程应该包括以下几部分内容: 熟练掌握阅读和分析程序设计语言的基本语法知识;数据类型和常用的数据结构;常用的基本算法;良好的程序设计风格;了解并掌握实用程序的开发与调试技术。由于程序设计涉及算法、数据结构和程序设计方法,该课程一些问题操作起来较繁琐,因此,许多学生学起来较吃力,难度较大。
二、大学生学习计算机程序设计的方法
1.重视程序设计上机操作,使理论与实践相结合
大学生学习计算机程序设计这么课程,区别于一些文科课程的学习最大差异之一在于,程序设计是一门实践性很强的课程,因此,学习过程中,大学生光靠死记硬背相关概念和步骤是远远不够的,必须要不断上机实验操作,验证和体会教材理论和方法。因此,大学生在程序设计学习过程中,必须重视程序设计上机操作,注重理论与实践相结合。
具体说来,大学生在上机操作中,要做好这几方面的工作:一是上机前,大学生要认真温习教材,了解程序设计课程的相关理论和将要上级操作的内容。计算机程序设计教材一般都有课后实践习题,学生应在课后通过实践操作进一步加深对理论知识的理解和认识,并可以在实验前书写方式编写程序,以备上机时的测试和调试。二是注重模仿学习。程序设计中会运用大量表达能力和逻辑能力强的精炼高效的编程语言,初学者往往觉得入门较难,且难学易忘。正所谓“学习最好的开始是模仿”,程序设计也是如此。这就要求在学习过程中,学生要重视模仿经典的程序设计例子,研究和欣赏别人优秀的程序代码,学习别人独特的见解与逻辑思维,才能在研究优秀代码中慢慢成长为优秀程序设计者。如“有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数,都是多少?”这是程序设计中的一个经典案例,学生可先自己思考着进行编程,对照参考程序进行在理解基础上的模仿,并可根据具体情况进行创新,只有这样,才能在不断模仿中进步和超越。三是要勤学苦练。多读代码、多写代码、多练代码,是学好程序的基本方式,而毅力是程序员具备的最基本的素质,大学生只有坚持多看书、多练习,把程序设计相关结构和类型的用法掌握牢固,才会学有所成。
2.熟练掌握好算法
高效程序的设计基于良好的信息组织和优秀算法,可以说,一切程序设计的问题解决的过程都是有效数据组织的过程,是寻找、设计和实现算法的过程。因此,熟练掌握最基本、最常用的算法是大学生学习程序设计的基础。
计算机程序设计往往会涉及使用计算机解题,大学生首先要正确理解题意,接着是寻找或设计解题方法,并对解题方法的正确性进行论证。按照正确的解题方法,可以设计正确的算法,即,规定每一个解题步骤中要求计算机执行的处理,以及各个解题步骤的执行次序。有了正确的解题算法,可以使用合适的程序设计语言,将算法表达成计算机程序,计算机将能按照设计好的程序,高速、自动地进行计算,帮助我们获得问题的解。因此,程序设计语言中的一些基本算法(如求累加和、求连乘积、穷举法、递推法、求最大值和最小值、 数的排序、数的检索以及字符串的匹配等),大学生在程序设计学习中,对这些基本算法应做到胸有成竹,并不断融会贯通、举一反三,才能使自己更好地掌握程序设计、提高学习效率。
3.交流合作学习
古人云“三人行, 必有我师”,计算机程序设计的学习最忌闭门造车。因此,大学生要多多与别人交流心得,从合作入手学习程序设计,才能在交流竞争中不断构建新的计算机能力。
许多大学生在程序设计学习中,凡是遇到问题都会自己想办法查资料,对于积累经验和提高能力大有脾益,但知识的海洋是无限宽广的,特别是对于程序设计这一门较复杂的课程,更需要学习者与老师和同学相互切磋学习,加深体会和经验,在在合作的学习氛围中,强者会更强,弱者也会变强。例如,有的大学生自行组织小组参加校内校外的程序设计大赛,以大赛为平台,以小组合作的方式组成参赛队,通过比赛,大学生不仅在短时间内迅速提升专业技能及运用计算机技术解决实际问题的综合能力,而且提高了创新思维和合作精神,并且刺激引发了社会交往意识,学会了与人沟通,为走向社会打下了较为坚实的基础,可见交流合作学习的方式不失学习计算机程序设计的有效途径。
三、结语
综上所述,程序设计学习作为计算机学习的核心和灵魂,它的学习对于计算机能力的提高尤其重要。结合计算机程序设计课程内容,大学生可从重视程序设计上机操作使理论与实践相结合、熟练掌握好算法以及交流合作的方式更好学习程序设计,才能成为适应社会信息化的快速发展的计算机人才。
关键词:大类招生;程序设计基础;实践教学
作者简介:孙全玲(1976-),女,安徽六安人,安徽建筑工业学院电子与信息工程学院,讲师;严辉(1962-),男,安徽合肥人,安徽建筑工业学院电子与信息工程学院,副教授。(安徽 合肥 230601)
基金项目:本文系省级重点项目“计算机科学与技术专业人才培养模式改革研究与实践”(项目编号:20100764)、安徽建筑工业学院计算机科学与技术示范专业专项基金的研究成果。
中图分类号:G642.0?????文献标识码:A?????文章编号:1007-0079(2012)34-0065-02
大类招生一般来说就是按学科大类进行招生,是相对于按专业招生而言的。按大类招生是目前教育先进国家高等教教育培养的新模式。从教学培养的角度来看,按大类招生有利于强化学生的基础。
安徽建筑工业学院(以下简称“我院”)从2011年开始按大类招生。我院的大类招生是将原来的计算机科学与技术、网络工程、电子信息工程、通信工程四个专业合并为电气信息大类进行招生,前两年统一学类基础课。因为学生进校时是没有专业方向的,所以在教学过程中对于基础课程的教学方法专业课程教师很难把握,学生层次相差很大。如何达到教学目标,取得较好的教学效果,院领导与专业教师在教材选用、教学方法等方面都在努力改革。
一、计算机学科能力与就业
计算机学科有四大学科能力[4]如图1所示。
在计算机相关专业的就业领域中,大部分需求来自于工程及应用类型的企业。而程序设计能力是社会人才需求中需求量最大的能力之一,也是检验计算机类毕业生质量高低的标准之一。程序设计能力由计算思维能力、算法设计与分析能力、程序设计与实现能力和系统分析开发能力四部分组成。笔者在多年的教学中发现学生在学习理论及实践课程过程中,对于程序设计能力的重要性认识不足,课堂上主动性不够,课下动手实践能动性不强;在学习中过于重视教材中的只言片语及示例代码,缺少开放性思维,学习方式受初高中学习方式的干扰较多,需要教师一步一步地领着学才行。所以学生难以自主解决实际问题,在遇到稍微有点变化的题目时就不知所措。
提高学生独立解决一般计算机应用问题的能力就要加强实践课程建设,就需要在基础阶段,如在程序设计基础类课程中提高实验课程的效果。要做到人人都实践,人人都提高。
二、我院在基础类课程实践教学中存在的问题
1.理论教学中对实践课程重视不够
教学过程中侧重于基本概念、基本理论以及基本算法教学,学校的实验设备较落后,实验人员素质及数量达不到指导学生实践的要求,导致学生动手能力和训练不足,影响其后续程序设计类课程学习,学生实践和创新能力较弱,难以达到计算机专业的目标要求。
2.学生的自主学习兴趣不足
由于在教学过程中侧重理论,而网络的普及使学生见识到多种计算机方面的相关应用,但是又不能将理论和应用联系,同时又没有合适的程序设计训练环境,使学生感到学习的知识没有用,感到困惑,学习兴趣不高,宁愿去外面报些培训班,对理论知识更加轻视。
3.教师的作业及实验报告的批改工作量大
计算机程序设计类课程的作业和实验多以程序设计为主要形式。由于课程容量大,需要布置大量的作业和实验内容,而这些程序完全由授课教师来批改,工作量过大。
4.实践能力评价体系不完善
目前的课程考核多采用笔试,学生的实践能力只能通过平时的作业和实验给出主观性的评价,不客观。如果做的实验内容一致,通过实验报告的书写也很难判断是学生动手做的还是抄袭,这样导致学生对实践评价的时候做与不做的结果一样,如此就难以激发学生实践方面能力自主训练的激情。
三、改革方案
1.在教学中注重抽象思维能力的培养
计算机程序设计的教学关键是培养学生的程序设计能力。在教学过程中发现,学生的抽象思维能力薄弱是制约程序能力培养的重要因素。在教学中碰到的普遍现象就是,在讲授某一个程序的设计思路及方法时,学生好像都能听得懂,但合上书本让他们写程序时就不知从何下手。
针对程序设计的特点,教学中授课教师要充分考虑初学者的认知特点,从学生的角度来理解他们的学习心态,从问题着手,按照程序设计的方法逐步帮助学生理清思路,展现程序设计的过程,从而帮助学生养成程序设计的思维习惯。可以采用自顶向下、逐步求精的结构化方法,将复杂问题进行分解,帮助建立明确的程序设计思路。或者从直观入手,帮助构造复杂的程序结构,理解计算机解题的特点。
学生的思维能力在很大程度上与其感性经验相联系。他们习惯于直观、具体的思维方式,而程序设计的思维是抽象的、逻辑性强的思维,所以在程序设计教学中要采用形象直观的方法,利用学生已具备的知识,逐步诱发形象思维向逻辑思维的跃变。
2.加强实验课程的教学及管理
实验课程对训练学生的程序设计能力是最基本的方式。要达到实验课程的目标,首先要重视实验课程的教学管理。每一次实验都要有基本的目标要求,要有基本的训练项目,同时要根据实际情况分层次设计。在课程实验刚开始的时候,要重点训练学生解决问题的规范性;在中期阶段,重点训练学生的编程能力,对于每个实验课题都要求学生全部做完,并以报告形式说明其程序的设计方法;在后期实验阶段,重点训练学生思维的开放性,鼓励学生提高创新能力,熟练运用不同程序结构解决类似的问题,训练学生从不同的侧面来考虑问题。
程序设计基础课程的实验课时较多,实验报告的批改工作量也很大,对于指导教师是个不小的负担。我院采用指导教师和实验教师分工工作制,指导教师主要负责学生实验课程的教学及辅导,实验教师负责批改实验报告。这样不仅减少了指导教师的工作量,使其有更多的精力在实验的指导工作上;实验教师在批改实验报告时更注重实验报告程序书写的规范性,可以从编写程序的规范上评价学生的实验成绩。这两方面结合使学生的实验操作和程序书写有较公平的评价。
3.开放实验平台,给学生提供课后自主学习的环境
在大类招生情况下,学生在进校时不分专业,在同一公共基础课平台和专业基础课平台进行培养。在两年后,学生再根据自己的兴趣、专长、发展方向和社会需求在大类所含专业中重新选择具体专业。根据目前全球IT行业的发展看,经过几年的低迷发展,IT行业在国民经济发展中日益显现出蓬勃生机。从中国情况看,从事计算机软件开发的人才数量远远少于发达国家。中国计算机软件人才短缺,将严重束缚中国IT行业的发展。与此同时,由于中国经济社会发展的不平衡,导致中国东部与西部之间、城乡之间出现很大的差距,特别是中国经济发展比较落后的地区急需计算机方面的专业人才。
所以在专业选择上,将会有多数学生选择计算机专业。对计算机专业人才的需求显示:对于工程及应用型人才的需求量较大。根据我校的办学宗旨和师资力量,计算机专业人才的培养是定位于工程应用型,更注重学生计算机应用能力的培养。这就要求学生有较强的程序设计能力,因而程序设计基础课程显得尤为重要。
而程序设计基础课程的实践要求比较多,初学者很难理解书本上的程序是怎么运行的以及运行的结果,这就要求学生要多做练习、多实践。课堂安排的实验课时毕竟有限,很难讲解课本上方方面面的知识点。学生通过大量的实践将会理解书本的程序原理,对于课堂教学更有帮助,也可以提高学生对计算机程序设计的兴趣。我院提供了实验平台供学生在课余时间巩固、复习或预习课堂知识。
四、总结
计算机曾经的主要任务是帮助人们解决科学与工程的计算问题,后来逐渐深入到社会生活的每个角落,成了日常用品。计算机应用的重心将会向社会科学和社会发展领域转移,在其中发挥越来越重要的作用。在今后的教学中,通过参与或学习让学生对计算机应用方面的知识有一定认识,特别是对计算机应用的业务流程有一定认识,加强对学生专业素养的培养,对学生将来的工作及学生本人都是很有益的。
我院还没有大类招生情况下的毕业生,相信只要在我院师生的共同努力下进行相应的教学改革,定会取得良好效果。
参考文献:
[1]王海舜,蒋巍巍,刘师少.基于程序设计能力培养的软件设计类课程群架构[J].计算机教育,2012,(3):23-26.
[2]韩建民,王丽侠,贾洞.大学生程序设计能力的层次化培养模式[J].计算机教育,2012,(3):18-22.
[3]教育部计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M].北京:高等教育出版社,2006.
[4]教育部计算机科学与技术教学指导委员会.计算机科学与技术专业发展战略、规范及认证[Z].
摘要:我院从基础建设、教学大纲、课程设置、评价体系等几方面对计算机基础教育进行了改革。本文介绍了我院的具体做法以及实际效果,最后总结了我们的一些经验。
关键词:计算机基础教育;教改;实践教学;分类教学;分级教学
中图分类号:G642
文献标识码:B
计算机基础教育是面向全校各专业学生的公共基础教学,经过几年的建设和教学实践与教学改革,我校的计算机基础教育有了良好的基础,建立了一支稳定的师资队伍,改善和优化了计算机基础教学的软、硬件条件和教学环境,教学和教学改革取得了一系列成果,为提高我校计算机基础教学质量和教学水平,使计算机基础教学迈上新台阶创造了有利条件。
1加强计算机教育基础建设,为计算机基础教育建立坚实基础
(1) 建立我校计算机基础教学机构。2000年初,为加强计算机基础教育,学校成立计算中心,明确计算中心的任务是承担全校非计算机专业学生的计算机基础教育,承担全校各学院的专业基础课的上机实践教学和课程设计上机,为学生课外上机学习提供条件和环境,开展计算机教育与教学研究。建设目标是把计算中心建设成为计算机教学基地、实验基地和科研基地。计算中心下设办公室、二个教研室、三个实验室、三个研究室。
(2) 我校分布在三个校区,分别在三个校区建立了满足教学要求的计算机教学实验室。
(3) 计算中心制定了相应的师资队伍建设、课程建设、教学条件和环境建设、教材建设等建设规划。
2落实计算机教学建设与改革规划,计算机教学稳步发展
(1)学校于2000年4月召开“首届昆明理工大学计算机基础教学工作会”,并行文《昆明理工大学关于加强非计算机专业计算机教学的意见》,确定我校计算机教育的建设和改革方案,确定我校计算机基础教育的课程体系为:开展“三个层次”教育,即计算机文化基础、计算机技术基础、计算机应用基础三个层次教育,并确定以第一层次(计算机文化基础)为教学重点,逐步加大第二、三层次教学的力度。把第一层次的计算机文化基础课程和第二层次的计算机程序设计课程设置为校级主要公共基础课程、必修课,面向全校非计算机专业学生开课。
(2) 2001年制定了《昆明理工大学非计算机专业学生计算机教学改革方案》,方案明确规定:逐步将教学的重点从现行第一层次推向第二、三层次;优化课程体系结构和教学内容;采用“精讲多练、重引导、强实践、课内课外结合、严格考核”的教学模式等。2001级学生“计算机文化基础”课程采用三种教学模式组织教学,各种模式的教学大纲、教学要求一致,但教学学时分别为84学时、48学时、24学时,由各学院选择前二中的任一种模式,学生可自由选择24学时的模式。
(3) 2003年制定《关于加强非计算机专业计算机教学的意见》,建立计算机教学的“可持续发展”框架,计算机教学“四年不断线”,设置必修课程板块、选修课程板块和“网络课堂”课程板块等三个板块的课程,减少必修课程,增加选修课程,开展“网络课堂”教学,为学生提供更多的发展空间和选择余地。
(4) 2004年,根据教育部非计算机专业基础课程教学指导分委员会的“关于进一步加强高等学校计算机基础教学的意见”(白皮书)和全国高等院校计算机基础教育研究会的“中国高等院校计算机基础教育课程体系200”(CFC2004)的精神,根据全国计算机基础教育的发展形势和我校教学改革的发展形势,制定了《昆明理工大学大学计算机基础教学改革方案》,提出了新的计算机基础教学改革发展思路和改革方案,从“三个层次”的教学体系变为“计算机基础教学”和“结合专业课教学的计算机教学”两个层次的教学体系,前者在培养学生的计算机知识、能力、素质方面起到基础性和先导性的作用,课程设置为“2+x”方案,把原“三个层次”中的“计算机文化基础”课程升级为“大学计算机基础”。这部分的教学由学校统一规划,计算中心承担教学任务。后者则在更大程度上决定了学生在本专业领域中应用计算机解决问题的能力与水平,由各院系根据专业的需要进行规划实施,目的是实现计算机教学内容与专业课教学内容的整合。学校加强协调两者之间的配合与衔接。此方案已纳入我校2004版人才培养方案中。
(5) 积极研究和探索计算机教学评价体系和考核机制,深入开展计算机基础教学考试模式和考试方法改革。2006年制定了《关于加强计算机基础教学课程考试办法改革的意见》,从知识、能力和素质三方面进行综合考核,注重学生学习过程和实践性教学环节的考核,重点考核学生的实践能力,实行无纸化考试。从平时学习成绩、综合设计实验成绩、上机考试成绩等3方面综合评价学生的学习效果。课程总成绩评定按平时学习成绩占20%、综合设计实验成绩占30%、上机考试成绩占50%。
(7) 2007年,学校制定了《昆明理理工大学大学计算机基础课程改革与发展方案》,提出了大学计算机基础课程深入发展和知识、能力、素质全面培养的方案及措施。
3计算机基础教育课程体系
(1)明确教学目标,制定计算机教学的教学要求
根据教学目标,计算机基础教学要达到以下几方面的教学要求:
1) 掌握一定的计算机软硬件基础知识;具备使用计算机实用工具处理日常事务的基本能力;具备通过网络获取信息、分析信息、利用信息,以及与他人交流的能力;了解信息技术发展趋势;了解并能自觉遵守信息化社会中的相关法律与道德规范。
2) 具备使用数据库等工具对信息进行处理、加工、利用的意识与能力。
3) 具备使用典型的应用软件(包)和工具来解决本专业领域中问题的能力。
4) 具备通过编程,在本专业领域中进行科学计算的基本能力。
5) 掌握计算机硬件的基本技术分析方法,具备利用计算机硬件及接口技术解决本专业领域中问题的基本能力。
6) 具备专业领域中计算机应用系统的集成与开发能。
在上述6项教学要求中,要求我校文、管、经、法、艺术科类专业学生要达到第1~3条的要求,理工科类专业学生还需达到第4、5条的要求,部分专业、部分学生要达到第6条的要求。
(2) 计算机基础教育的课程体系结构框架
我校的计算机基础教学经历了三个阶段的发展。
第一阶段:1997年以前为初级阶段,以计算机高级语言教学为主。
第二阶段:1997年至2004年为发展阶段,开展“计算机文化基础”、“计算机应用基础”、“计算机技术基础”三个层次的教育。
第三阶段:2004年开始为快速发展阶段,开展“计算机基础教学”和“结合专业教学的计算机教学”两个层面的教育。前者在培养学生的计算机知识、能力、素质方面起到基础性和先导性的作用,这部分的教学由学校统一规划,计算中心承担教学任务。后者则在更大程度上决定了学生在本专业领域中应用计算机解决实际问题的能力与水平,主要由各学院按需要进行规划和实施。通过两者之间的配合与衔接,把大学计算机教育贯穿于整个大学教育中,做到“四年不断线”。
(3) 课程设置的原则
昆明理工大学是一所以工为主,理工结合,兼有经济、管理、文学、艺术、法律、教育等多学科的多科型综合大学,是云南省规模最大、办学层次和类别较为齐全的学校。根据计算机技术的发展和学生的计算机知识的起点的变化,以及各专业学科计算机知识机构的要求,优化计算机教学课程体系结构。根据计算机教育的教学目标和教学要求,按照计算机基础教学分层、分类规划与实施的原则,针对不同专业计算机知识结构与应用类型方面的差异,设置不同的档次,不同类型的课程,供各院系和学生选择,为学生提供更大的和学习空间,激发学生的学习热情,使学生掌握的计算机知识满足各专业的要求。
(4) 第二阶段非计算机专业计算机基础教教育的课程设置
两门必修课程:
1) 计算机文化基础。
2) 计算机程序设计基础,包含:
C 语言 程序设计(必修)
Visual FoxPro、 Visual BASIC 语言程序设计(文、管、经、法等专业必须选修其中1门)
The C Programming language (部分理工科专业开设C语言双语教学)
X门选修课程:
网页制作与网站设计、网络技术基础、数据库应用基础、多媒体应用技术、Web数据库程序设计、微机组装与维护。
网络课堂教学课程:设置3个方面的课外选修课,供学生课外自由选修
1) AT&IT 课程
2) 全国计算机等级考试辅导课程
3) 计算中心开设的选修课程
(5) 第三阶段非计算机专业计算机基础教教育的课程设置
1) 采用“2+X”的课程设置方案
根据我校本科学生人才培养目标与非计算机专业计算机教学的目标、教学要求,按照计算机基础教学要分层、分类规划与实施的原则,以及不同专业对学生计算机知识结构与应用类型的不同要求、教学学时数等多种因素,确定我校非计算机专业计算机基础教学课程设置采用“2+X”的课程设置方案。其中“2”是“大学计算机基础”和“程序设计基础”两门必修课程,“X”是X门选修课程。
2) 非计算机专业计算机基础教学课程设置
非计算机专业计算机基础教学课程由“2”门必修课程和“X”门选修课程构成。两门必修课程是“大学计算机基础”、“程序设计基础”,面向全校非计算机专业学生开课,分别在一年级上、下学期开课。“X”门选修课程是设置不同档次、不同类型的课程,供各学院选择,满足该各业的要求,在二至四年级开课。如下表所示。
4必修课程的教学内容与实施方案
4.1“大学计算机基础”课程的教学要求与实施方案
4.1.1“大学计算机基础”课程的教学要求与基本要求
“计算机文化基础”课程升级为“大学计算机基础”课程后,从根本上对课程体系和教学内容进行了变革,但它仍然是大学生的第一门计算机课程,教学目标是使学生了解和掌握计算机科学与技术中的一些基础知识、重要概念,掌握一些计算机基本应用技能,也为后续课程的学习打下良好基础。并且使学生能够在各自的专业中有意识地借鉴、引入计算机科学中的一些理念、技术和方法,利用计算机解决实际问题。因此,“大学计算机基础”课程应该具有很好地基础性、先进性、应用性。也就是说,该课程既要突出基本概念、基本原理、基本方法和基本技术,又引入计算机的发展动态、计算机的新技术、新成果,还要保证计算机技术的应用性、提高学生的实践能力和应用能力。使学生能够达到以下目标。
(1) 了解计算机的硬件结构与组成原理;
(2) 了解计算机操作系统的功能和与一些重要概念;
(3) 了解计算机网络、数据库、多媒体、信息安全等技术基本概念、相关技术和应用领域。
(4) 掌握计算机基本应用技能。
(5) 增强利用计算机解决实际问题的意识
4.1.2“大学计算机基础”课程的建设思路
“大学计算机基础”课程是面对计算机知识为非零起点的新入学大学生开设的,是具有大学水准的公共基础性课程,是大学计算机基础教学的第一门课程。该课程既要适应大学计算机基础教育不应再从“零起点”开始的发展要求,又要符合“白皮书”和“CFC2004”的精神。因此,“大学计算机基础”课程对“计算机文化基础”在教学内容上进行了较大的调整,涉及的知识范围广、知识点多、内容深。但目前一年级新生入学时原有的计算机基础水平的差异较大,在认真总结几年来教学情况和对即将入学的2004年新生的计算机基础水平进行全面分析后,我校决定该课程的建设与教学采用“双过渡”的方式,一是新增加的教学内容的过渡根据新入学学生的计算机知识的起点的逐步提高和计算机技术的发展,逐步提高教学内容的起点,逐步提升和扩展教学内容。二是对原来的“计算机文化基础”内容的过渡。2004级至2006级学生为过渡期,经过几轮的教学实践和课程建设,使该课程的教学基本要求逐步提高。针对目前我校入学新生的计算机知识的起点差异较大,还有一部分学生很少使用过计算机,甚至未使用过计算机,倡导多样化教学和个性化发展,使全体学生增强学习计算机知识的兴趣与信心以保证全体学生均能达到教学基本要求,又能使基础好的学生能学习到更多的新知识、新技术。
4.1.3从教学内容上分类教学
“大学计算机基础”作为我校级主要公共基础课,是全体一年级学生的必修科,由于不同的科专业对学生计算机基础知识的要求不同,学生入校前在相关方面的理论基础也以很大差异,思维方式也有差异。如果使用同一教材、同一教学大纲,则很难适应不同专业的需求。为此,我们按理工类、经济与管理类和文、法、艺术类三类专业从教学内容上实行分类教学。主要区别体现为,对理工类专业在一些主要知识点要进行较为深入、系统的理论描述。对经济与管理类专业在教学的知识点上虽与理工类专业相近,但更注重实际操作能力的培养,直接以各知识点的操作应用来讲,较少涉及深入的理论描述。对文科、艺术类专业降低一些要求,以实际操作能力的培养为主,仅讲授最基本的理论知识。
以讲解计算机的基础知识和基本原理为主,而将工具的使用和操作性(即工具性和技能性)的教学内容通过实验上机课完成。
4.1.4采用“分级教学”和“分段实施”教学的教学模式
该课程在“双过渡”期间,采用“分级教学”和“分段实施”教学模式,把一学期分为两个阶段组织教学,前10周为第1阶级,教学内容以“计算机文化基础”(部分知识点的内容有加深)和云南省计算机等级一级考试的内容为主,学习计算机软硬件基础知识、常用自动化办公软件操作及网络基础知识,教学的重点是使学生系统掌握计算机的基本知识和基本应用技能。后6周为第2阶段,教学内容为提高部分,主要内容是数据库、多媒体技术、计算机网络、信息系统安全等内容,重点是使学生掌握数据库的基础知识和建库技能,以及网页制作与网站设计的内容与技能。第1阶段的教学结束后,学生于第10周末参加云南省计算机等级一级考试。第2阶段的教学,要求学生完成1个综合设计课题,理工类、经济管理类专业学生以数据库的内容为主,文、法、艺术类专业学生以内容为用网页制作与网站设计的内容为主。
在2006级学生的教学过程中,对2006级学生进行问卷调查,调查结果表明,入学新生的计算机知识水平比2004、2005级学生有较大的提高,学生对学习计算机知识迫切感有明显的增强。于是,我们在2007级的部分专业学生开展试点,进一步提升该课程教学内容的的深度和广度,探索新的教学模式和教学方法,取得经验后,在2008级学生全面铺开。
由于目前入学新生的计算机知识起点差异较大,为保证所有学生都能达到该课程的基本教学要求,面向基础比较差的学生开设选修课“计算机文化基础”,学时数16学时,采用“模块化”教学模式,以讲座形式开课,共开设4个讲座,由学生自由选择模块内容参加学习。
4.2“程序设计基础”课程的教学基本要求与实施方案
程序设计是各类系统开发的基础,因此,我校把“程序设计基础”课程列为计算机基础教育的主要课程,确定为校级主要基础课程,全校非计算机专业学生都必须学习的必修课程。
4.2.1“程序设计基础”的教学目标与教学要求
该课程主要讲解计算机程序设计语言的基本知识和程序设计的方法与技术,其内容以程序设计语言的语法知识和程序设计技术的基本方法为主,同时包括程序设计方法、数据结构与算法基础等方面的初步内容。通过该课程的学习,使学生掌握计算机程序设计的基本知识,初步掌握程序设计的思想和方法、编程技能和上机调试程序能力,并尝试通过编程解决一些难度较大的实际问题,初步具有在各个领域应用计算机的能力,为后续课程的学习创造条件。
4.2.2“程序设计基础”课程的教学实施方案
该课程面向非计算机专业学生开课,由于各专业的特点和需求的不同,对学生程序设计能力的要求也不尽相同,程序设计采用不同的教学语言。理工类专业学生重点培养学生的应用软件系统的开放能力和多媒体信息处理能力;经、管类学生重点培养学生对数据库应用系统的开放能力和多媒体信息检索、利用的能力;文、法、艺术类专业学生重点培养学生对信息的综合处理能力和多媒体技术应用能力。于是,分类、分层设置课程和实施教学。
理工科类专业的学生可在“程序设计基础(C语言)”和“计算机程序设计(Java语言)”两门课程中必须任意选一门课程。
管、经、法科类专业的学生在“程序设计(Vb语言)”、“程序设计(VFP)”、两门课程中必须任意选一门课程。
文、艺术类专业的学生学习“多媒体技术与应用”。
以25%的班级开设“程序设计基础(C语言)”双语课程。
该课程的教学基本要求可根据具体的各门语言的基本知识、技术和要求分别确定。该课程的教学改变了过多地重视基本概念和理论、语法的教学方式,在注重程序设计的基本概念、基本知识的同时,加强程序设计的思路、方法的教育与培养。采用任务驱动和典型案例的教学方法,在该课程的整个教学过程中围绕着相应的综合型和设计型实验课题组织上机实验教学,从第3周开始逐步开展综合设计实验,在期末时学生分小组完成综合设计课题,写出设计报告。
5“X”门选修课程的教学实施方案
“X”门选修课程面向2至4年级的学生开课,把计算机基础教学贯穿于整个大学教育中,做到计算机教学“四年不断线”。根据不同专业对学生的要求的差异及学生基础的差异,开出不同档次的课程,由教务处公布每学期的开设课程,学生自主选择学习,也可由学院或系统一选课。同时,将根据计算机技术的发展和各专业的需要,不断开设一些新的课程和热门课程,如工具性应用课程、应用开发性课程等。
6以能力培养为核心开展实验教学
计算机基础要使学生的计算机知识、能力、素质协调发展,关键要抓住能力培养,而计算机基础教育的所有课程都是实践性很强的课程,计算机知识的掌握和应用能力的培养,主要是依赖于学生上机实验。
(1) 以“为学生提供充足的优良的机时”为目标,建立满足教学要求的实验室,要保证实验室面积、计算机台数、软件和实验室运行与管理机制等都满足教学要求。我们还开发了“机房自动化网络管理系统”和“实验设备器材管理系统”,实行网络自动化管理,加强机房管理和计算机维护,设备完好率在98%以上。建立丰富的网络教学资源,开展“网络课堂”课程教学。坚持实验室全天候面向学生开放,为学生上机自主学习提供优良的条件与环境。坚持每年向学校申报2-4个计算机应用技术方面的实验室开放项目,指导教师精心指导,培养学生的科学实验和创新能力。计算机教学实验室获“云南省高校示范实验室”称号,为“精讲多练,考教分离,机试为主”提供坚实的基础保证。
(2) 把实验分为基础性(验证性)实验、综合设计性实验、研究创新性实验。各门课程都在逐步减少基础性实验,增加综合设计性实验,积极开展研究创新性实验。
(3) 每门课程都要进行综合设计实践教学课题,学生分组(或个人)完成1个综合设计课题,可选择教师给出的课题,也可由小组自己拟定课题报教师批准。每人至少完成一个程序模块的编程和调试,对源程序语句加注释,独立完成所选模块的设计文档(流程图、源代码及注释)。我们制定了“综合设计实践教学课题报告要求”和“综合设计实践教学课题要求与考核办法及评分标准”。每组提交一份完整的电子文档形式的“综合设计实践教学课题报告”(综合设计报告.DOC)和源程序(源程序.C),其中包含每个学生根据自己参与设计和独立完成模块设计的情况来表述个人收获体会,或者是对本课程教学方法、综合设计等方面的评价的内容,如下所示。
昆明理工大学
“程序设计基础”课程综合设计实践教学课题报告
课程名称:____________________
课题名称:____________________
组长:学号__________姓名__________
组员:学号__________姓名__________
学号__________姓名__________
学号__________姓名__________
学号__________姓名__________
学院:__________专业班级:__________
指导教师:__________
昆明理工大学计算中心
200年月日
昆明理工大学计算中心“程序设计基础”课程综合设计实践教学课题考核表
“程序设计基础”课程综合设计实践教学课题报告要求
一 系统概述
简单描述本课题要解决的问题及解决问题的主要思路。
二 数据结构设计
要说明本程序或数据表定义、连联中用到的所有数据类型的定义,给出变量名及类型(如结构体、数组)的设计,并明确说明:
(1) 数据输入的形式和输入值的范围;
(2) 数据输出的形式。
三 模块设计
要明确说明程序完成的功能、主程序的流程以及各程序模块之间的层次(调用)关系。给出实现各程序模块的框图,以及核心语句。并明确说明:
(1) 程序所能达到的功能以及出错处理;
(2) 每个组员承担及完成的内容。
四 调试运行及操作说明
告知用户如何使用该程序,并明确说明:
(1) 调试中遇到的主要问题及解决办法
(2) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。输出结果直接抓取屏幕图像粘贴到报告中。
五 总结和体会
重点写明本次设计以及该课程学习、应用过程中的收获和体会
(1) 组长:
(2) 组员:
六 程序代码
7主要做法与经验
(1) 加强计算机基础教学课程建设。学校将计算机基础教学课程纳入主要公共基础课程建设规划中,“C语言程序设计”被评为云南省精品课程,“网页设计和网站建设”、“C语言程序设计”双语教学等三门课程先后获学校精品课程建设项目,“C语言程序设计”评为云南省精品课程。两门必修课程和多门选修课程获学校多媒体课件建设项目,各门课程课程建立了相应的教学网站,完成计算机基础教学网络教学平台建设,教学资源建设稳步推进。
(2) 加强计算机基础教学课程考试办法改革。改革考试模式和考试方法,从知识、能力和素质三方面进行综合考核,注重实践性教学环节考核,重点考核学生的实践能力,实行无纸化考试。从平时学习成绩、综合设计实验成绩、上机考试成绩等3方面综合考核。课程总成绩评定按平时学习成绩占20%、综合设计实验成绩占30%、上机考试成绩占50%。
(3 )改革教学模式、教学手段与方法。在坚持“精讲多练”的前提下,我们先后采用了“分级教学”、“分类分层次教学”、“研究性学习”等教学模式。坚持以人为本,发挥教师的主导作用,激发学生的主体作用,积极尝试教师指导下学生自主学习的教学模式。鼓励和支持学生采用研究型学习、发现式学习、资源型学习、协作型学习等多种学习模式,在使学生逐步领会信息化社会的学习模式和工作模式,逐步加大自主学习、个性化发展力度起到了很好的促进作用。
(4) 要积极营造良好的校园计算机学习氛围。坚持每年举办一次校内学生计算机应用竞赛,组织学生参加云南省大学生计算机应用竞赛,学生参加云南省大学生计算机应用竞赛连续两届获团体一等奖和个人一等奖(第一名),二、三等奖获奖者多数是我校学生。
(5) 加强师资队伍建设。面对新形势与任务,计算机基础教学工作对教师的计算机专业知识与应用水平,以及信息素质也提出了更高的要求,我们通过引进高素质人才和培养提高现有教师的办法,加强师资队伍建设。采取措施,保证教师的培训、进修提高时间和条件,教师要加强自身的业务学习,提高业务能力。逐步提高师资队伍的层次,青年教师都具有硕士或更高的学历,建设相应的考核制度和约束激励机制,引导和鼓励教师积极开展科研和科技开发工作,师资队伍的整体素质和业务水平不断提高。我们还设立了各门课程的责任人,负责该课程的建设,坚持示范教学、互讲、集体备课、青年教师教学评教等措施,教学效果和教学水平整体提高。
(6) 采用选用优秀教材和自编教材的办法加强教材建设,成立“高等学校非计算机专业计算机教育系列教材编委会”,组织教学第一线、教学经验丰富的教师编写高校非计算机专业计算机基础教学系列教材,先后出版了两轮教材,其中的《研究式学习-C语言程序设计》受到出版社和使用学校的好评。
高等学校非计算机专业计算机应用能力的培养,既关系到对学生在大学四年期间专业课程学习的支撑,也涉及到他们踏上工作岗位以后其计算机应用能力能否适应岗位实际需求。所以其课程内容和课程体系受到高度重视。
但是,大学计算机公共基础课程也面临着严重的挑战,事实上也确实存在很多值得思考和研究的问题。例如:
(1) 很多大学计算机公共基础课程的教学内容,过多地带有个别厂商产品推广和用户培养的属性,引发一些学者、政府相关部门、部分用人单位等的议论和批评;
(2) 高中阶段信息技术的教学内容紧紧地追赶大学这部分的教学内容,教学内容重复现象客观存在;
(3) 一些其他专业老师抱怨该门课程的开设,认为完全可以通过自学来实现教学目标,没有必要设置专门课程,尤其是“大学计算机基础”;
(4) 承担这门课程的老师也有苦衷,从DOS、Windows到Vista,大家疲于奔命,不断围绕新产品进行操作解说,失去了大学课堂教学的工作乐趣。
要对“大学计算机基础”教学内容的进行改革,这已经是所有从事计算机基础教学的老师形成的一个共识,其必要性勿容置疑。但是如何改革?改革依据在哪里?
回顾以往的改革,其动因往往是技术的发展(严格意义上讲是产品的升级),例如操作平台从DOS改为Windows,再改为Windows2000、Windows XP等。实际上,教学内容改革的本质需求应来源于社会需求和实质性的技术发展!此外,这门课程是为非计算机专业而开设的,各个专业有其实际需求,这些需求的差异性应该体现在教材中,但这也是常常被忽视的。
为了使大学计算机公共基础课程或系列课程的教学内容真切地吻合社会各类岗位的需求,真切的吻合各个专业支撑后续教学和专业知识结构的实际需求,浙江省计算机教学指导委员会开展了社会需求调研,以此为非计算机
专业的计算机基础课程教学内容改革提供依据。
2调查方案
2.1样本分类
样本分类的原则是以大学学院(系)为主要类别,兼顾社会企事业的岗位类别。此次调查将样本分为八个类别:
① 金融、保险、证券、投资(对应经贸学院,兼顾财政经济类企事业)
② 城建、房产、建材、装潢(对应建工学院,兼顾建筑房地产行业岗位)
③ 党政机关、社会团体、公检法(对应政管学院和法学院,兼顾政府公务员岗位)
④ 通信、邮政、计算机、网络(对应计算机学院,信息学院,兼顾IT企业岗位)
⑤ 石油化工、橡胶塑料、制药、环境(对应化材学院、生环学院和药学院,兼顾化工类企业岗位)
⑥ 电子电器、仪器仪表、机械制造(对应机电学院,兼顾制造业岗位)
⑦ 新闻、出版、科研、教育(对应人文学院、教科学院、外语学院和理学院,兼顾文教卫岗位)
⑧ 艺术设计、环境设计(对应艺术学院,兼顾各类艺术设计行业岗位)
2.2调研的地理范围和样本规模
以我省杭州、宁波、温州等地市为主,适当涉及县。
依据学生就业地理分布,确定各个地市的样本比例。初步计划杭州占70%,其他地区占30%。要求实际有效样本规模≥1000,发放样本规模≥2000,样本在行业的比例大体依据各个学院招生人数。
此次调查共计发放2100份问卷,实际回收有效问卷1596份,回收率76%。主要调研途径是上门调研。各个类别有效问卷统计结果如表1所示。
2.3调查表设计
2.3.1调查表设计
调查内容分为六大类:
(1) 基础类:主要涉及学生大一上半学年要学习的第一门课程“大学计算机基础”的教学内容,包括操作系统(Windows)、桌面办公软件(Word、Excel、PowerPoint、FrontPage)、汉字输入能力、图形绘制能力、计算机多媒体使用能力、计算机安装与维护能力等。
(2) 程序设计类:主要涉及学生大一下半学年要学习的课程,包括C程序设计、C++程序设计、VB程序设计、Fortran程序设计、Java程序设计。
(3) 网络类:考虑计算机网络已经越来越受用人单位关注,以及对生活、学习和工作的支持作用,此次单独列入网络选项,包括网络组建、因特网应用、简单网页或网站设计、网络管理、网络安全。
(4) 数据库应用类:这也是目前高校比较热衷设置的课程,此次列入的项目包括数据库基本概念、数据库Access、数据库SQL Server、数据库Oracle、数据库MySQL和数据库Foxpro。
(5) 等级考试类:主要想了解用人单位对等级考试的认可度,列入的项目包括等级考试一级、等级考试二级、等级考试三级、专业产品认证。
(6) 应用系统开发能力:主要想了解用人单位对应用开发能力的需求情况,包括软件系统分析设计、计算机系统业务需求规划、电子商务、电子政务、办公自动化系统、业务系统开发。
2.3.2调查表填写
对每个项目要求说明其需要程度。在所列出的36个项目中,给重要性最高的20个项目。
3调查结果
3.1从全部样本看几项主要结果
(1) 认为非常有必要学习的内容或课程(以重要性排列,见表2)。
(2) 认为有时间也可以学习的内容或课程(以重要性排列,见表3)
(3) 认为可学可不学的内容或课程(以重要性排列,见表4)
由此得出用人单位认为不需要学习的十个方面的内容:Fortran程序设计、数据库Foxpro、数据库 MySQL、数据库Oracle、专业产品认证、VB程序设计、Java程序设计、软件系统分析设计、等级考试三级、计算机系统业务需求规划。
3.2从八个分类样本看几项主要结果
(1) 财政经济类企事业(认为十分需要或可有可无的项目分别见表5和表6)
(2) 建筑房地产行业(认为十分需要或可有可无的项目分别见表7和表8)
(3) 政府公务员岗位(认为十分需要或可有可无的项目分别见表9和表10)
(4)IT企业(认为十分需要或可有可无的项目分别见表11和表12)
表15必要项目
序号 “十分需要”的项目百分比最高的10项 %
1 操作系统,如Windows 58
2 电子表格软件,如Excel 56
3 字处理软件,如Word 55
4 汉字输入能力 44
5 因特网应用 28
6 图形绘制能力 26
7 幻灯片播放软件,如PowerPoint 26
8 计算机安装与维护能力 26
9 计算机系统配置能力 22
10 计算机多媒体使用能力 21
表16可有可无的项目
序号 “可有可无”的项目百分比最高的10项 %
1 Fortran程序设计 88
2 数据库Foxpro 86
3 专业产品认证 83
4 等级考试三级 83
5 VB程序设计 82
6 等级考试一级 82
7 数据库 MySQL 60
8 计算机系统业务需求规划 77
9 Java程序设计 77
10 软件系统分析设计 75
(7) 文教卫(认为十分需要或可有可无的项目分别见表17和表18)
表17必要项目
序号 “十分需要”的项目百分比最高的10项 %
1 字处理软件,如Word 59
2 汉字输入能力 54
3 电子表格软件,如Excel 54
4 操作系统,如Windows 50
5 幻灯片播放软件,如PowerPoint 41
6 图形绘制能力 38
7 计算机多媒体使用能力 37
8 因特网应用 26
10 网络安全 16
表18可有可无的项目
序号 “可有可无”的项目百分比最高的10项 %
1 数据库Foxpro 84
2 数据库MySQL 80
3 软件系统分析设计 80
4 业务系统开发 79
5 专业产品认证 77
6 Fortran程序设计 77
7 数据库Oracle 76
8 计算机系统业务需求规划 76
9 Java程序设计 73
10 C程序设计 73
(8) 艺术(认为十分需要或可有可无的项目分别见表19和表20)
表19必要项目
序号 “十分需要”的项目百分比最高的10项 %
1 字处理软件,如Word 61
2 汉字输入能力 53
3 操作系统,如Windows 51
4 电子表格软件,如Excel 49
5 幻灯片播放软件,如PowerPoint 47
6 图形绘制能力 44
8 计算机多媒体使用能力 35
9 数据库基本概念 30
10 简单网页或网站设计 27
表20可有可无的项目
序号 “可有可无”的项目百分比最高的10项 %
1 数据库Foxpro 71
2 数据库Oracle 70
3 Fortran程序设计 68
4 等级考试一级 67
5 专业产品认证 66
6 数据库Access 66
7 数据库MySQL 65
8 软件系统分析设计 65
9 数据库SQL Server 65
10 C++程序设计 60
4从调研数据可以给出的客观结论
(1) 计算机基础仍然是教学重点。
从全部样本数据可以看出,60%左右的用人单位仍然认为基础类项目是最重要需要学习的内容,其中又以文字处理、电子表格、Windows操作系统、汉字输入等为更为重要的教学内容。对于汉字输入部分的内容,在以往教学中是比较忽略的。
(2) 计算机网络能力成为用人单位关注的新教学热点。
计算机网络的应用能力被视为所有项目中第二重要的项目,100%行业都将该部分内容列为第二重要,基础类占60%左右重要性,而网络类已经占到15%的重要性。如果基础类不考虑,在整体样本中,计算机网络的重要性占33.4%(1482网络被选样本/4435总样本)。
(3) 数据库、等级考试和程序设计三个类别普遍被认为不太重要。
数据库技术、等级考试和程序设计三个方面的票数累计得到的百分比才18%左右,有些类别仅仅只达到11%左右。这很值得我们思考。
(4) 应用系统开发受到一定重视。
应用系统开发类项目是居于第三被用人单位重视的,其中电子商务、办公自动化是用户较为关注的知识。
(5) 一些课程或教学内容已经被用户淘汰。
如表21所示:
表21重要性低的课程列表
项目 十分需要
的票数 % 项目 十分需要
的票数 %
数据库Foxpro 51 3 C++程序设计 132 8
Fortran程序设计 57 4 Java程序设计 124 8
VB程序设计 83 5 数据库Access 147 9
数据库Oracle 75 5 C程序设计 152 10
数据库 MySQL 80 5 数据库SQL Server 153 10
其中数据库Foxpro、Fortran程序设计、VB程序设计、数据库Oracle、数据库MySQL都只有5%以下的重要性,这些都值得思考。
(6) 计算机等级考试和专业产品认证并不被用人单位重视。
注:以上结论并未经过浙江省计算机教学指导委员会讨论认定,只仅仅是从调研数据表现出的情况。
5建议
以下建议并不代表浙江省高校计算机科学与技术教学指导委员会的意见,仅仅是浙江工业大学部分参与调查的老师的意见。
(1) 作为进入大学的第一门课程:大学计算机公共基础,其教学内容主要应该突出桌面办公软件的使用(包括Windows操作系统)和计算机网络,并且尽快增大计算机网络的教学内容,适当照应应用系统开发知识,以尽快适应社会对非计算机专业学生的计算机应用能力的需要。
关键词:项目驱动;计算机语言;教学改革;计算机教学;程序设计
中图分类号:TP311 文献标识码:B DOI:10.3969/j.issn.1003-6970.2015.04.024
0.引言
目前,流行的计算机程序设计语言有c、c++、Java、c#、PHP等,一般高校通常都会选择一两门计算机程序设计语言课程作为计算机专业学生的专业基础课。所以计算机程序设计语言课已经成为高校计算机专业的基础必修课,并且该课程是后续很多专业课的基础,所以学好计算机程序设计语言课对计算机专业的学生来时至关重要。计算机程序设计语言课作为一门专业基础课,该课程需要同学们在掌握基本语法知识点的基础上,多动手实践,能够应用所学解决实际问题。
1.目前计算机语言课程存在的问题
计算机程序设计语言课虽然已经成为高校计算机专业的基础必修课,但是目前计算机语言课的教学通常以理论教学为主,忽略上机动手解决实际问题的能力的培养。这样学生们学完一门计算机语言课之后只是简单的掌握了一些基本语法知识,只会做一些课本上的小例子,根本不能掌握计算机程序设计语言的精华,更不要说编程能力的培养和动手解决实际问题了。另一方面,由于计算机程序设计语言课主要内容包括程序设计基础、字符串和数组、面向对象技术、异常处理技术、I/O及文件操作、集合架构、图形用户界面编程、数据库编程技术、多线程编程技术、网络编程技术等知识,由于知识点比较多,涵盖方面比较广,又受到课程学时的影响,老师在讲解知识点的过程中不能做到面面俱到、透彻分析,所以学生对基本理论的掌握也很片面,只是一知半解。
2.项目驱动教学法的特点
出现这样的问题主要原因在与我们忽视了学生动手解决实际问题能力的培养,所以我们制定了项目驱动人才培养方案,创建“驱动式”的人才培养模式。与企业进行深度合作,引入便于教学组织的典型案例项目,以典型案例项目的开发为主线,实施订单培养,任务驱动式教学,培养应用技能型人才。
该培养模式将教学与项目融合,让学生在导师的系统规划下和指导下独立完成基本知识的学习以及项目的设计与开发,从而培养学生利用所掌握的知识与技能完成开发项目的能力,以提高学生解决实际问题的职业素质。
在教学内容的安排上,减少理论授课时数,删减一些不常用的知识点,加大实践性环节课时,增加学生上机时间,在考核方式上,改革传统的考核方式,增加平时的比重,平时项目练习占50%,期末项目设计占50%,把学生的作品成果作为最终成绩的重要评判标准。
3.项目驱动教学法的实施
对于项目驱动教学法,我们的做法主要有以下几点:
1、打破现行的理论授课为主的教学模式,以开发完整项目为目标主线,通过与企业深度合作,挖掘适合组织教学的完整项目,引入便于组织教学的典型案例项目,培养学生符合企业要求的工程应用能力与素质。
在每个教学项目中,导师对项目进行分解,提出工作任务,提供完成工作任务所应掌握的相关知识和操作技能,以学生们自主学习为主,导师辅导答疑为辅,在学习基础知识的前提下对任务具体分析设计,从而完成具体任务,对于较复杂的项目,采用模块化分层次逐步完成的方式,也可以采用分组的模式来共同完成一个任务,这样不仅锻炼了学生解决实际问题的能力,还能锻炼学生的团队合作意识。最后导师对项目中的基本知识点进行总结并进行拓展和延伸,使学生在掌握基本技能的基础上能够生完成扩展训练,进一步提升他们的解决问题的能力。例如,为了让学生们掌握面向对象的程序设计思想,我们就引入了一个购物车的程序,引导学生自己分析购物车中需要装什么东西,以及购物车有什么样的功能,并提供定义类的基本语法。这样学生就能应用定义类的基本语法定义一个满足自己系统的一个商品类,然后再设计出一个能够容纳该商品的购物车类,该购物车能够实现物品添加与删除并计算出商品的总价。最后老师在学生完成设计和编程后,总结一下面向对象程序设计的方法与思想,使学生们完全掌握并领悟面向对象程序设计的要点。采用这样的教学模式,学生们不但掌握基本知识点,也锻炼了他们解决实际问题的能力,效果较好。
2、改革传统的考核体系,实行“能力学分”评价体系,增加平时项目任务的比重,把学生的作品成果作为最终成绩评判的重要标准。
传统的考试通常都是最后做一套试卷,一考定乾坤,一些学生考前把一些知识点死记硬背一下,考了六十分就万岁。这样的应试考试方法不但不能提高学生的动手能力,对学生的创造性和解决问题的能力也是一种打击,这种形式下培养的学生毕业就失业,找不到工作。目前的企业并不是不缺计算机人才,最主要的是现在的毕业生不能解决企业的实际问题,实际动手能力太薄如,达不到企业的要求。我们在项目驱动教学法的基础上改革考核形式,平时项目练习占50%,期末项目设计占50%,以学生的作品成果最为成绩评定的重要评判标准。
实践表明:这种考核方法不仅提高了学习积极性,而且锻炼了学生的动手能力、创新能力和自学能力。
3、打破现行教材体系,以模块化手册方式,融知识与项目于一体,贯穿整个项目的开发过程[23-35]。
对于目前市面上的教材通常都是以讲解基本知识点为主,各个知识点的衔接不紧密。我们在与企业深度合作的的同时,把企业的项目整理成册,挑选出知识脉络,以项目知识为主线进行基本知识的讲解,并及时进行总结、拓展和延伸,效果较好。
[关键词]中职计算机教学《C语言程序设计》改革
一、注重课程改革的探索,提高“C语言程序设计”的教学效率
中职计算机专业的学生,今后将从事计算机应用和软件开发的实际工作。基于这点,我们就要制定详细的教学计划和改革方案,逐步提高每个学生对于研究工作的初步能力。《C语言程序设计》是现今计算机科学与技术相关专业的核心课程和主干课程。《C语言程序设计》涉及到诸多的理论基础和教学内容,教师要制定详细的课堂教学规则,从C语言的教学理念出发并明确课程项目的改革目标。目前,C语言教学分为两部分的内容,即理论课堂和上机实验。两个都是非常重要的过程,教师要给予高度重视。首先,在理论课堂上,我们主要讲解一些C语言的基础知识,比如“#in-cludemath.”表示在程序中会引入数学函数;当运行错误时在软件页面的下方会出现“error”的标识;“#includestring.h”会在主函数中引入字符类型等这些都是C语言的基础编程知识,一定要学生掌握透彻并合理运用。其次就是上机实验过程。实验前要让学生对预习内容做简单总结性的回顾,同时也可以让学生之间相互探讨交流,以问答的形式复习C语言的相关知识。教师自己也可以进行编程练习,把作品的灵魂和特点充分展示给学生,带领他们走向更高级的编程世界。
二、加强计算机课程的教学力度,培养学生的“C语言程序设计”能力
《C语言程序设计》主要通过让学生系统学习C语言的基本知识和编程过程中的基本语法,激发学生的灵动性思维,较好地训练学生解决计算机问题的思维逻辑。计算机课程是当前中职教育中的直供电课程,对学生的思维能力以及编程思路和技巧都有较高的要求。所以我们在设置实验题时还可以故意在程序中再设置一些BUG,让学生自主编译,从编译错误中发现程序语句的问题,和学生共同探讨交流,找到有效的解决方案。只要加强计算机课程的教学力度,学生就能自主培养“C语言程序设计”能力,在日常的学习中学会探索求知、学以致用。接下来,教师就可以把教学重点转向“项目为导向”的组织课堂。在案例分析时,学生的动手编译过程非常重要。我们要给学生重点讲解编写程序的思想和方法,让他们确定整体性的编写程序方案,给学生提供一个轻松、自由的C语言学习环境,然后再引导学生讨论学习。只有这样才能吸引学生的注意力,在每个教学环节都做到错落有致,提高学生程序调试能力。
关键词:计算思维;大学计算机基础;MOOC
计算技术的发展日新月异,已经渗透各个学科,创新人才的培养对高校计算机基础教育提出了更高的要求。但随着教学改革的深入,显现出共性问题:高校计算机基础的第一门课程主要教学内容是计算机学科知识的一个“压缩饼干”,样样多讲,但没有突出主题思想;在实践环节强调了工具的使用,导致了“狭义工具论”的说法,使很多人认为教计算机基础就是教些计算机工具及其使用方法。
为了改变现状,2010年教育部高等学校计算机基础课程教学指导委员会主任陈国良院士根据国外计算机教育的研究成果,提出了将计算思维引入大学计算机基础教学的创议,这对于培养具有创新复合型人才具有着重要的战略意义。计算思维得到了国内计算机基础教育界的广泛重视,教育部高教司为此设立了专项课题,开展了各有重点、特色的教学研究和实践。
一、提出计算思维三个层次培养目标和修订相应课程体系
计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。
通过深入学习、研究、分析,我们提出了计算思维由意识、方法和能力三个层次的内容组成,并确定了相对应的计算思维三个层次培养目标,最后修订了相应课程体系。
1.计算思维三层次培养目标
(1)计算思维意识。计算思维并不是一种新的发明,而是早已存在的思维活动,是每一个人都具有的一种技能。在大学计算机课程中,计算思维的案例也是处处存在。问题是人们的计算思维活动是无意识的,关键是要将无意识的计算思维变成有意识的计算思维,主动地用计算思维去思考问题。
(2)计算思维方法。计算思维方法是计算思维的核心。计算思维方法很多,主要有两大类:一类是来自数学和工程的方法,另一类是计算机科学独有的方法。在程序设计课程中,各种常用算法以及各类问题的求解方法,如迭代法、递归法等,都是典型的计算思维方法。
(3)计算思维能力。计算思维的根本目的是解决问题,即问题求解、系统设计以及人类行为理解。从计算机应用的角度来说,解决问题就是计算机的应用问题。培养计算思维能力需要有一系列应用课程的支撑和拓展,如数据技术与应用、多媒体技术与应用等课程。这些课程引导学生应用计算思维解决各种专业的问题。
2.修订课程体系
根据计算思维的内涵,计算思维的培养不是靠1门课程能够解决的,而是一项系统工程,各门课程应该统筹考虑、联动改革。将计算思维的三层次内容分别赋予原有的“2+X”课程体系,即计算思维意识由大学计算机课程培养,计算思维方法由程序设计课程培养,计算思维能力由“X”课程培养。为此,调整各层次课程的培养,如图1所示。
二、统筹规划、联动改革,确立新课程内容体系
如何有效地在第一门课程中培养学生的计算思维意识?讲述相关概念、算法思想,对于新生来说是比较困难;而在程序设计课程中2学时的教学也很难把计算思维中的经典算法讲清楚。为此我们率先提出了将两门课程联动改革的思路,并于2012年起实施。
1.“大学计算机”课程内容体系
对“大学计算机”课程的原有内容进行梳理、优化、提升,在不弱化原基本知识、实践能力的培养基础上,腾出6周时间,开展计算思维基础、程序设计和算法初步的教学,促进对基本计算思想方法的理解,如图2所示。
新编的《大学计算机(第6版)》教材构建了以信息处理为主线的知识体系,包括信息的表示、存储与组织、计算处理和展示等各环节;增加了计算思维概念、算法和程序设计初步内容,在计算思维概念中突出计算、抽象、自动化等方面的概念与方法,通过引导性案例使之通俗易懂;程序设计初步以“基本知识”+“控制结构”为主体,同时加强算法流程设计训练,帮助学生理解计算机解决问题的思想和方法。
2.“程序设计”课程内容体系
“程序设计”课程在程序设计初步内容前置到“大学计算机”课程中后,腾出了6周时间,根据不同类别的程序设计科目,以“专题”形式增加各具特色的扩展内容,如递归函数、问题求解方法、文件系统和链表、图形应用、数据库访问、简单Web应用程序等,如图3所示。
递归是计算思维经典方法的精髓,因此增加了“递归”专题。通过教学方法改革,让学生理解了递归的核心思想是将大问题分解成同质小问题即分而治之,关键是掌握如何将求解的问题抽象出递归模式,递归算法的实现就迎刃而解了,体现了计算思维的本质“抽象”和“自动化”。通过将传统用迭代解决的问题或经典问题用递归来实现的实验训练,使得学生深刻地体会到递归解决问题的魅力,进一步理解计算思维的内涵。
在“C/C++程序设计”中通过“问题求解方法”和“文件管理系统和链表”专题教学,不但将C语言的各重要知识点串起来综合应用,更重要的是通过问题驱动引导学生学会用计算思维的思想解决问题,使学生不局限于用某个知识点解决简单问题,而是具备对复杂问题自顶向下进行全局把握的能力。
在“程序设计”和“C#程序设计”课程中增加了对与专业相结合的“图形编程”、数据处理核心的“数据库访问”和当前流行的“简单Web应用程序”等专题,很好调动了学生学习的兴趣,启迪了计算思维的潜能,拓展了解决实际问题的思路和能力。
这一联动改革方案从2012年开始试点,2013年全面实施,既有效解决了计算思维教学落地的问题,又使得程序设计基本功的训练更为扎实。
三、探索多元化教学模式,开展MOOC实践,提高学生自主学习能力
为了解决教学内容更新与教学学时压缩之间的矛盾,必须提高教学实效,探索多元化教学模式。
1.将知识教学升华为思想和方法的教学改革
在教学过程中,注重培养学生运用计算思维去思考和解决问题的能力,主要体现在以下几点。
(1)问题驱动的教学改革。精选教学案例,实施以“发现问题-分析问题-寻求多种解决方案-比较各种方案的优劣”的问题求解驱动式的方法进行教学,尽可能逼近解决实际问题的模式,引导和训练学生以正确的思维方式思考问题、解决问题。
(2)将程序设计的语言与问题求解的过程分开。先讲解决问题的思路、实现的算法描述,学生理解了算法的基本思想后,再引入程序设计语言来实现这一算法,编写代码并调试执行。这一方法加强和促进了算法的构建,训练了学生的程序设计水平,从而简化了对程序语言的复杂性的理解。
2.探索和实施MOOC教学,提高学生自主学习能力
随着2013年开始执行新的教学计划,学时由原来的周学时“2(上课)+2(上机)”减少为“2+1”,如何保证教学质量和以计算思维为切入点的教学改革的深入?MOOC教学是很好解决的途径。
2012年起我们分别在“中国大学MOOC” “上海课程中心”等平台建设了“大学计算机”和“程序设计”MOOC和SPOC课程,已在多个学院的两届学生中进行试点。采取的措施为:
(1)采取“三不变”和“三变”。“三不变”为实验内容和要求不变、提交形式和时间要求不变;面向过程考核方式不变,包括期中、期末考核;平时答疑不变。“三变”是课堂教学从每周一次变成每两周一次;将MOOC平台成绩作为平时成绩一部分;增加了线上答疑和讨论。
(2)抓住MOOC教学的关键问题。实现翻转课堂和碎片化时间学习。翻转课堂的理想形式是线上学习、线下讨论,但是基础课班级较大,难以做到,目前的课堂教学是讲解重点、难点、常见错误、典型问题,引导学习。
实验是关键。特别是程序设计,在实验要求、强化实验管理更显重要,是确保MOOC教学质量很重要的环节。
需要监督、了解学生学习情况。这是MOOC不足的,现在正在改进。
(3)采取MOOC教学后学生的反馈。通过网络对参加MOOC教学模式的近600名学生进行学习效果调查,统计如下:
①比传统课堂好,时间自由,效率增强,57%的学生选择;
②不如传统课堂直接监督,逐步推进,27%的学生选择;
③差不多,16%的学生选择。
说明大部分学生欢迎MOOC教学模式,可促进学生自主学习。
四、多管齐下强化实践能力培养
我校计算机基础课程历来重视实践能力培养,从实验方案设计到实验过程管理再到考核方式的导向等多方面入手,主要措施如下:
(1)设计两门课程联动实验方案,精选实验案例;强调解决问题的思路,训练计算思维方法。
(2)强化实验管理,实现“三定”举措。实验课采用了限定实验项目、固定机位、限时提交的过程化管理方式,保证了出勤率和效果。
(3)强调面向过程的考核。以考促练、重在平时,进一步加大了对学生编写、调试程序能力的考核,如图4所示。
经过三年的以计算思维为导向的两门课联动改革,明确了计算思维培养的目标和途径,培养了学生计算思维意识、训练了计算思维方法,提升了计算思维能力,成效明显。
(1)我校学生参加上海市计算机程序设计科目(C、、C#)等级考试成绩名列前茅。
(2)2015年在教指委组织的“大学计算机课程教学成效评测”中,评测成绩居参试高校前列。