“程序设计基础”课程教学的改革与创新实践

来源 :科技创新导报 | 被引量 : 0次 | 上传用户:yyj55555
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:程序设计基础是软件工程专业一门重要的基础课,它以计算机语言为基础,以程序设计逻辑和思想为导向,运用特定的算法进行程序设计与专业素养的培养。该课程具有很强的理论性与实践性,因此需要任课教师采用一定的教学方法,加深学生对理论的理解与应用,激发学生的学习热情,达到高效的教学目的。
  关键词:指针 程序设计 算法 程序自动评测
  中图分类号:G642 文献标识码:A 文章编号:1674-098X(2011)01(b)-0167-01
  
  “程序设计基础”是软件工程专业本科生开设的第一门专业课,这门课程对于计算机类专业来说是一门历史悠久的基础课,其授课内容从最初的非结构化BASIC,到后期的结构化PASCAL、C语言,授课的思路与方式随着计算机领域软、硬件的推陈出新,也悄然发生着变化。从授课方式上,从黑板加粉笔转换为以多媒体为主要教学媒介的现代教学技术与手段自不必说了;以C为语言基础的程序设计,也通过一门优秀的程序设计语言为编程设计打开了一扇广阔之门。
  该门课程对于学生专业素养的培养和专业思维的导向具有一定的指导作用。在该门课程的授课之中,我有以下的一些体会和心得。
  
  1 讲透指针与指针的运用
  程序设计类课程犹如学习写作艺术,首先要对所用语言的语法规则了如指掌,然后才能在此基础上提升到艺术的高度。C语言作为一门程序设计语言,本身具有可移植性强、执行效率高等特点,既可以作为应用软件,也可以作为系统软件的开发工具。而在C语言的学习和使用中,指针可以说是其特色和精华所在,它和数组、字符串以及函数间的数据传递有着密不可分的联系,且在某些场合,指针是解决运算的唯一途径,它可以有效的表示和实现复杂的数据结构。
  指针是与计算机系统内部密切相关的一种处理形式,指针的概念不直观,学习起来难度较大。首先引入“地址”的概念,这个“地址”就是变量所占存储单元的第一个字节的地址。其次,要区分指针和指针变量这两个概念:指针即地址;而指针变量是用于保存某一具体数据类型变量地址的特殊变量,重点它是一个变量。有了这个基础以后,才可以顺其自然地引出指针运算以及指针与数组、指针与函数等两两关系的介绍。
  在这部分内容中,要强调几个指针运用中须注意的地方:(1)在引用一个指针变量前必须让该指针指向一个变量;(2)区分指针的类型和指针所指向的类型;(3)指针的算术运算只对数组的应用是有意义的,且运算结果不能超出数组的范围;(4)作为指针常量的数组名和指针变量的区别。最后,有几个引申概念是难以理解和掌握的:指针数组、数组指针及指向指针的指针,也就是所谓的二级指针。
  在这里,我运用一种对比记忆和理解的教学方法:先给出各个概念的定义及其语法,在理解概念的同时区分语法格式上的差别;然后结合具体问题的讲解,使学生对其各自的应用有实质上的理解;最后总结出其实质与共性。
  
  2 归纳总结程序设计算法
  程序是为实现特定目标或解决特定问题而用计算机语言编写的,可以连续执行并能够完成一定任务的指令序列的集合[1]。瑞士计算机科学家尼克劳斯·沃思(Niklaus Wirth)曾提出“程序=数据结构+算法”这一著名公式,数据结构是对程序中数据流或者说数据组织形式的描述,在语言基础中我们介绍了C语言的数据类型和数据结构及其基本的使用方法;算法是对程序控制流的描述,即对数据所进行操作的步骤。数据和算法之间的对立统一体现了程序要处理数据对象与处理数据对象方法之间的关系。算法脱离于语言之外,具有通用性,是程序设计的灵魂;所以说程序设计基础这门课,除了打下坚实的语言基础以外,还要分类介绍一些常用的基础的程序设计算法:比如多项式的求和与求积运算、遍历或穷举求解、数列的排序问题以及矩阵运算等等。
  分类讲解这些算法的时候,结合授课过程中遇到的例题、习题,以及本节课给出的更具代表性的实际问题或具体应用,首先把各个算法的含义讲解清楚,然后分步骤地给出各算法的设计思路;对于同类问题,比较不同的算法的空间与时间利用效率,从而总结更适用于哪些情况,这样对后继课程“算法分析与设计”也起到一个入门和先导的作用。
  与依靠记忆的课程不同,程序设计基础是一门理解性和实践性非常强的课程,也是一门知识和能力并重的课程。因此,对于语言运用与算法的掌握,不可能仅仅依靠老师的讲解与学生的思考,还需要引导学生借助所学语言与计算机这两种软硬件工具自行实践该算法,变被动为主动,加深对抽象知识的理解与运用,从而引发对更深层次问题的思考与讨论。
  
  3 引入自动化程序评测系统批改学生作业
  现在已有不少学校采用由计算机进行编程作业评判的方式来对学生的作业进行考核。但更多的情况下是学生的编程作业通过FTP,Email甚至是纸质的方式提交给老师,由老师对程序以及程序的相关文档进行阅读和评判,其繁重的工作量和低效率的教学方式对于程序设计课程非常不适宜。在高等院校的教学中,计算机方面的课程,特别是程序设计语言课程,具有实践性特别强的特点。因此,采用计算机对程序直接进行评判是一种智能化的高效的教学手段。
  采用程序在线评测系统后,老师可以通过对参数进行设置,限制学生提交的编程作业的类型、文件大小、运行时间长短和空间大小。学生在提交编程作业的时候能很快地得到作业是否正确的反馈。一方面,程序在线评测系统可以对作业进行自动编译,检查出程序是否存在语法错误;另一方面,它还能验证程序是否能得到正确结果,以及所花费的代价(时间和空间上的)。根据后处理的结果与相应的参数设置,程序在线评测系统能自动给出学生此次编程作业的成绩。这大大地减小了学生提交错误程序的概率,还能给出与程序相应的成绩。当然老师也可以进行再次审查,对学生的作业提出评语,修改成绩等。
  这种方式完全模拟了使用程序设计语言解决实际问题的过程,编写程序、不断测试修改、根据结果反馈修改程序。这样的考试方式对学生的学习过程具有很好的指导作用。与此同时,还消除了老师在检查作业的过程中的主观因素,增加了学生之间的公平性。
  
  4 结语
  经过教学过程的实践与学生反馈,引入研究性的这种教学方法和互动的教学过程收到了良好的效果,经过调查86%的学生接受并且对这种教学方式感兴趣;因为他们在理解相关理论的同时,不仅做到“知其然知其所以然”,而且把它们运用到实际问题当中,并且在解决问题的过程中及时得到反馈,增强了他们解决问题的热情,从而提高了学习效率。
  
  参考文献
  [1] 高克宁,李金双,赵长宽,等.程序设计基础[M].北京:清华大学出版社,2009:3~27.
  [2] 张玉清,王群.“算法分析与设计”教学方法探索[J].中国地质教育,2006(4):119~120.
  [3] 段岩,尹立杰,等.C语言程序设计的教学技术整体性的应用研究[J].中国地质教育,2006(3):49~51.
  [4] 高阁.C语言指针教学的研究与探讨[J].机电产品开发与创新,2010(1):185~186.
其他文献
RNP精密导航技术,是利用飞机自身机载导航设备和全球定位系统引导飞机起降的新技术,是目前航空发达国家竞相研究的新课题和国际民航界公认的未来导航技术发展的趋势。与传统
期刊
产品通过对使用者知觉通道的刺激来达到反馈信息的目的。本文通过对使用者和产品之间信息交流模式的分析,阐述了环境模型下多知觉通道的选择对于交互反馈效果的影响。
摘 要:数学概念教学时中学教学中至关重要的一项内容,是基础知识和基本技能教学的核心。但在新课改下,数学概念的课堂教学效率不高,给人以“穿新鞋走老路”的感觉。笔者从数学概念教学的现状,如何实施概念教学,实施课堂教学应注意的问题等方面进行了思考与探索。  关键词:概念教学现状实施建议  中图分类号:G633文献标识码:A文章编号:1674-098X(2011)01(c)-0171-01    高中数学
随着人们生活水平的提高,荣昌猪肉品质越来越受重视。着重介绍了荣昌猪肉品质的常见指标及重要的影响因素,如遗传因素、营养因素、饲养管理、屠宰因素等。为进一步提升荣昌猪肉
2012年,中国的经济增长有所放缓,主要是受经济危机影响外部需求减少的结果,也是中国政府主动调控的结果。温家宝总理在2012年政府工作报告中明确指出,中国对外开放已进入新的
实时动态(Real Time Kinematic,RTK)测量技术,也称载波相位差分技术,是以载波相位观测量为根据的实时差分GPS测量(DGPS)技术,它是GPS测量技术发展中的一个新突破。本文以笔者参与的南宁某项目为工程背景,探讨了GPS RTK技术在城市工程测量中的应用思路,相信对从事相关工作的同行有着重要的参考价值和借鉴意义。
介绍了管道泄漏检测系统的设计原理。利用LabVIEW中的小波分析函数对采集到的信号进行处理,并利用小波变换模极大值捕捉压力信号的突变点,从而得出负压波传播到上下游监测点的
处于转型期的中国养猪业各种矛盾日益复杂而激烈:猪价动荡、原料高企、养猪高成本低效益……发展中的问题要到发展中去解决,这是历史唯物主义和辩证唯物主义的基本态度。面对问
分析了不锈钢冷却器失效原因,论述了用钛材取代不锈钢的可行性,介绍了改造方案设计及部分关键问题的处理,对类似的设备改造有一定的借鉴作用。
韩国政府计划宰杀10万头育龄母猪以稳定猪肉价格。韩国农业部称猪肉价格在7个月里下跌了将近三分之一。韩国农业部部长表示,由于养殖动物的售价持续下跌,而动物饲料成本则直线