程序设计教学论文合集12篇

时间:2023-03-25 11:32:30

程序设计教学论文

程序设计教学论文篇1

随着计算机应用的普及,计算机应用专业也成了热门专业,而高级程序设计语言是计算机专业的一门必修课。在高级程序设计语言中,VisualBasic语言以其易学易用和功能强大,而且能够方便快捷地开发Windows应用程序等特征,而深受使用者欢迎。因此,其也作为中等职业学校的高级程序设计课的首选。VB是一门集知识和技能于一体、实践性很强的课程,要求学生既要学好理论知识,又要把握实际操作技能,同时,在进行软件开发时,要对用户需求及市场情况进行调研,再加上计算机软、硬件快速更新换代的特征,要求学生还要具有很强的自学能力和终身学习的思想。对于这些要求来说,传统的教学方法难以做到。而使用强调以职业活动为导向,以人的发展为本位的“行为导向教学法”将会较好的实现这些教学要求。本文拟就在中等职业教育的计算机程序设计(VisualBasic)教学中,如何运用“行为导向教学法”进行初步探索。

一、行为导向教学法的基本理论

“行为导向教学法”是在近几年从德国引进的现代的职业教育新模式,其目标层次是培养人的行为能力,方法层次是人的行为活动。即摘要:这种教育以行为为目标,教学以行为为导向,教学是学生积极参和的全面的教学,学习过程是学生同时用脑、心、手来进行学习的过程。

行为导向教学法具有很强的针对性,即是以职业活动为导向,以教会学生“学会学习、学会工作”为目标而开展教学活动,因此,对学习者来说,学习目的是十分明确,即现在的学习是为今后的职业服务。教学活动的开展,通常是围绕某一课题、新问题或项目开展,是以“学习任务”为载体,引导学生自主学习和探索的过程。整个教学过程为一个包括获取信息、制订计划、做出决定、实施工作计划、控制质量、评定工作成绩等环节在内的完整的行为模式。使用“行为导向教学法”,将能更好的培养学生的关键能力(专业能力、方法能力、社会能力、个性能力),以达到职业教育的“职业教育就是就业教育”的教学目标。

二、行为导向教学法在VisualBasic教学中的必要性和可行性

(一)必要性

现行的计算机专业类教材大多和其它学科式的教材一样,重视知识结构的系统性,教学内容大多以线性方式展开,适用于“循序渐进”的传统教学模式,以《VisualBasic程序设计》的教材为例,从语言基础、流程控制、过程和数组、窗体和控件、对话框设计、菜单、工具栏和状态栏设计等等,分章编排,在每一章的内容里,也同样按线性方式展开。假如,在教学中仍按传统的教学方法按章节讲授,势必降低的课程的综合性、实用性,也缺乏趣味性,这不但难以培养学生学习喜好,使得教学双方都陷入困境,而且,学生不知道如何在真实的情境中灵活地使用知识和运用技巧。这样的学习,是很难面对今后职业的。要改变这一现象的方法,比较成功的是运用以课题或项目来开展教学活动的行为导向教学法进行教学,在教学中,淡化知识的系统性和连贯性,更多关注的是知识之间的联系,在联系中学习知识、在综合运用中学习知识,使学生不仅学会了程序设计知识本身,又培养了学生运用程序设计的知识去解决实际新问题的能力,达到“学以致用”的教学目的。

(二)可行性

《VisualBasic程序设计》是一门实践性和操作性很强的课程,知识涉及许多抽象的术语,如摘要:类、对象、过程、语句、控件等等,还有大量的开发工具的使用。仅就VB的开发环境为例,其中就包含了摘要:窗体设计器、代码编辑器、对象浏览器、属性窗口、工程管理器、工具箱、菜单、工具栏等等。把握和熟悉它们的最好方法,就是在不断的结合实际的“案例”(案例教学法)或“课题”(项目教学法)的操作实践中去把握。在教学中,教师可以把课程内容包含在两到三个综合贴近实际的项目,给出案例,再把这个项目分成若干个小项目(或模块)。例如摘要:以开发一个“学生信息管理系统”为一个综合项目(教师首先给出案例演示,以引起同学们的关注),再分别以“登录窗口”、“查询窗口”等为小项目进行设计开发,学习相关的基础知识(如摘要:在设计“登录窗口”的项目中,学生可以把握“文本框、标签、命令按钮、属性设置、变量命名规则、变量定义、变量数据类型、变量的声明语句、赋值语句”等相关知识群)。学生在具有目标明确的项目驱动下,以“做中学”的方法进行学习,这样,不仅可以提高他们学习的主动性和学习乐趣,同时也培养了他们的关键能力。

二、“行为导向教学法”案例

行为导向教学法中的“项目教学法”是指师生以团队的形式共同实施一个完整“项目”的工作而进行的教学活动。通过在开展项目过程中有针对性的工作来培养学生的关键能力,非凡是独立工作能力、想象力、创新能力。项目教学法包括了计划、实施和检查及成果展示的全过程。它是由学生自己来完成整个过程的教学方法。以下是一个项目教学法的简案。

项目摘要:学生信息管理系统

(一)教学目标

1.培养学生运用VisualBasic知识解决实际新问题的能力;

2.培养学生独立学习和工作的能力;

3.培养学生和人合作的能力。

(二)项目的实施过程

三、需要重点注重的两个新问题

(一)教师角色的转换

在行为导向教学中,对教师提出了更高的要求。教师应是“双师型”的教师,老师的角色由传统的教学主导者转变为教学活动的引导者或主持人,在教学过程中,教师以咨询员、伙伴、朋友等角色出现在学生中,教学方法由注重“教法”转变为注重“学法”,为此,要完成教学任务,教师要付出更多的心血。

(二)项目设计的合理性

程序设计教学论文篇2

项目教学法是理论教学和实践教学的有机组合,因此非常适合使用在网络程序设计的教学中,项目教学法旨在培养学生整合知识和经验的能力,并不断培养学生积极探索的精神,在改变教学内容和学习评估方面具有很大的优势。项目教学法改变了传统的教学模式,使学生和教师共同参与到教学中,虽然在完成项目实践的过程中,学生同样会遇到很多的困难,但是为了解决问题,很多学生会自发的查询资料,从而,课程教学变得十分生动。在项目教学中教师把课程的重点和难点都落实到了实践中,通过讨论等反馈机制及时了解学生的学习动态。

二、项目教学法的实施

1.项目教学法实施原则

项目教学法和传统教学法相比最大的区别在于把学生作为教学的中心,把项目作为教材中心,学生是认知的主体。项目教学法在实施中需要遵守以下原则,项目的选取要充分结合现实,教师在备选项目案例之前,必须先经过大量的市场调研,项目必须具有实用性、教学型和通用性,在项目的选取中必须选择学生感兴趣的,项目活动必须能够充分调动学生已学过的理论知识,能够渗透到教学中,项目的分解能够保证教学过程的连贯性。

项目教学法以学生作为主体,虽然教师是项目的设计和实施教学的负责人,但是在实践中需要教师和学生共同参与,教师有目的的引导学生进行知识的掌握。在项目教学的实施中,教师最主要的工作是创建学习的资源和协作学习的环境,在学生面对困难的时候,教师需要进行引导,并把学生分为合适的工作小组,实现分工和合作。在项目教学法应用的过程中,教师还必须确定一个多元性的评价方式,强调运行完成项目的方式。

2.项目教学法实施步骤

项目的选择。项目教学法的关键,是设计和制定一个项目的主体,项目化教学法成功首要部分就在于项目的选取。整个教学过程与内容基本来源于教师所布置的任务,因此项目的实施过程中,重要的并不是学习的结果,而是学习的过程。项目内容的选取以及情景的设置必须与所学知识和现实生活息息相关,明确目标,包括相关知识与技能的掌握。通过大量的专业实例考察,总结出网络程序设计所需的主要知识和专业素养,将所学的知识融合在一起,把典型的程序设计融入教学中,要求学生通过学习,掌握基础理论知识,能根据需求自行查找资料。在教师选取项目时为最大化的激发学生的学习兴趣,需要列出应用表单,使学生有目标地参与到项目的实施中。

选择的项目要有层次感以及典型性等,能够使学生联系自己所学知识进行发挥,教师在项目教学法实施之前需要先整理分析学生要完成的具体情况,为项目做好准备工作。从教学方法上来看,教师在项目教学法实施的过程中设置一些问题,引导学生自主性的学习。学生的个体特点以及接受能力存在很大差别,因此在布置项目的时候需要注意项目的难易程度以及学生的接受能力,不能打击到学生的自信心。项目的设计实施需要学生广泛的积极参与,最后在项目的选取中教师需要留出思考空间,启发学生不断尝试,培养学生的创新能力。

具体而言,类与对象以及输入输出流技术是项目的关键部分,在选取项目的过程中必须渗透到其中,项目必须具有实用性和可理解性,本文选取的项目为《学生档案管理系统》的程序设计。

项目的实施。把其分解为多个课内教学实验,本文的设计中共分为五个任务,每个任务都对应着学生的理论知识,前一阶段的学习是后一个任务的前提条件,具体而言五个任务分别为学生档案管理系统——对象和类的识别、学生档案管理的设计(类的封装)、学生档案管理的设计(模板技术应用)、学生档案管理的设计(继承的应用)、学生档案管理的设计(输出输入流的应用等)。使学生有一个整体的认识。在软件预览中教师需要先把制作好的《学生档案管理系统》进行展示,为学生说明学习的目的,激发学生的兴趣,在数据库的设计中,教师可以与学生共同参与到研究中,保证学生所创建的应用程序具有非常高的性能。程序设计一直是学习的重点和难点,在这部分的项目实施中,教师应重点强调课程设计方法,使学生能够熟练地掌握常用函数以及表达式的用法。

本文以第一个分解项目为例,目的是识别学生档案管理系统的类和对象,在情景设置中,先与学生回顾所学过程知识,以及要求用到识别方法,在项目的讲解中,教师需要先向学生讲解学习目的,以及常用构造函数等,通过对象用例分析,逐渐抽象出不同类,还可以采用UMI建模技术来识别类与其类的关系。学生在实践中独立思考理解知识点,在学生遇到问题时,教师可以先给予指导。学生完成项目后,教师可以当堂表扬学生,并通过批阅学生的项目代码,查找学生普遍存在的问题,在项目的回顾中,发现本设计的项目存在很多的全局函数,因此需要进行一些改进,在下阶段的类的封装中进行下一步的学习。

项目教学法的最后一个环节是项目评估,为了保证学生评估的公平公正性,教师需要先设计互评表以及自评表,表中包含具体的分数登记以及评定条目,为提高学生的责任感和自主学习性,在评估中还需要采取自评和互评,评价表需要便于学生的操作等。

三、项目教学法实施需要注意的问题

项目教学法虽然能够极大的提高学生整体规划能力以及交流能力等,但是在实践中还会出现很多问题,因此在项目教学法的应用中还需要注意以下几方面的问题。教学中教师虽然需要足够重视项目的完成,但是也不能忽略掉基本知识的掌握,必须为学生构建一个系统的全面的知识框架。

在学习小组的划分中,必须重视学生的能力,根据学生的特长和能力进行分工,每组的人数不需要太多,最好采取优势互补的方式进行学习,组员之间为避免产生依赖心理,最好先进行分工。在采取项目教学法的过程中,学生的个性能够得到极大的发挥,但是非常容易出现两极分化的情况,因此在分组中,教师一定要注意这个问题,及时对学生的不良情况进行纠正。在评估中教师需要创建一个合理的课程考核机制,把学生项目的完成过程和完成结果也添加在课程考核机制中。最后项目教学法对教师提出了一个很大的挑战,在教学中教师不仅需要指导学生本专业的知识,还需要了解相邻学科间的知识,因此教师在以后的教学中需要不断完善自己。

程序设计教学论文篇3

1.1教学设计概述

所谓教学设计,就是为了达到一定的教学目的,对教什么(课程、教学内容等)和怎么教(组织、方法、媒体的使用等)进行设计。教学设计不等同于传统的备课写教案。教学设计有利于教学工作的科学化,使教学活动纳入科学的轨道。教学设计的意义就在于追求教学效果的最优化,不仅关心教师如何教,更关心学生如何学,注重将人类对教与学的研究结果和理论综合应用于教学实践。教学设计主要包括确定教学目标、组织教学内容、分析教学对象、选择教学形式和方法及教学媒体、设计教学过程、教学质量评价设计等基本环节,其中,设计教学过程是课程教学设计的核心。

1.2该课程教学设计的内容

西安理工大学C语言程序设计课程组于2003年出版了《C语言程序设计教程》及配套的《C语言程序设计教程上机实验与学习指导》特色教材。自2011年开始,非计算机专业选用的教材与计算机专业不同。目前非计算机专业选用《C语言程序设计》(第1版,张毅坤教授,高等教育出版社,2011)作为该课程的教材。非计算机专业C语言程序设计的教学设计是一项复杂的系统工程,主要包括课程教学设计、章节教学设计、课堂教学设计和实验教学设计,以西安理工大学C语言程序设计课程教学大纲为指导,以《C语言程序设计》(第1版)及其配套教材为基础,确定课程教学设计的内容:①将该课程的教学目标确定为“掌握C语言的基本语法和语义,理解结构化程序设计的思想和方法,提高学生的编程能力和调试程序的能力”。②组织教学内容的关键是进行教材的组织呈现,理论教学内容包括《C语言程序设计》(第1版)的第一章至第八章,实验教学体现于该教材的第九章及配套教材。③学生作为教学对象始终是教学过程中的重要角色,工科非计算机专业的种类多,分析教学对象就是掌握学生特点与了解专业背景并重。④重点突出课堂教学设计,传统教学与案例教学有机结合,“讲解+多媒体演示+课堂板书”缺一不可。⑤设计教学过程与“组织教学内容”联系最为紧密,主要包括课堂教学设计和实验教学设计,教学过程设计遵循的总原则是:激发学生兴趣,注重能力培养,合理安排教学顺序,讲清重点与化解难点紧密结合,课堂提高与课后巩固拓展有机统一,并预测教学实践中可能出现的意外情况。⑥将学生评价、同行评价、教学督导组专家评价、主管教学的领导评价和教师自我评价这几种评价的结果综合起来,比较客观的评价教学效果与教学质量。

2教学设计的实践及效果

我们连续多年承担非计算机专业C语言程序设计课程,先后承担过西安理工大学电气工程及其自动化(电力)、水文与水资源工程、印刷工程、包装工程和材料科学与工程等专业的C语言程序设计的理论教学和实验教学任务。始终将上述教学设计的内容贯穿于课堂教学和实验教学之中。C语言程序设计本身是一门实践性很强的课程,加之各个理工科专业的特色鲜明,所以结合学生所学专业特点与需求,同一门课程,针对不同专业的学生,适当调整教学设计内容,并在教学实践中检验教学效果。2012年以来,学生对笔者的教学评分一直在95分以上,也给予了肯定性的评价,例如“采用启发式教学,阐述问题深入浅出,重点突出,能理论联系实际或联系学科发展的新成果”;“对于您的授课方式我们很满意,感谢您对这门课程的热忱,我们会努力学下去”;等等。

程序设计教学论文篇4

 

1 移动学习

移动学习(M-Learning)是借助移动互连技术,使用移动计算设备(智能手机、PDA、移动电话等)实现学习者随时随地进行不同目的、不同方式的学习[1]。移动的内涵包括:形式上是移动的,即学习者不再受时间、空间和有线网络的限制,可以随时随地进行不同需求、不同方式的学习;学习环境是移动的,学习资源和学习者也是移动的;内容上是互动的,进行教学活动的双方实时交流,教育信息、教育资源与教育服务依靠移动计算技术和互联网技术实现双向“移动”,教与学相互促进,才能更充分的体现移动学习的优越性;实现方式上是数字的,移动学习是基于无线移动设备进行的数字化学习,它是在数字化学习的基础上发展起来的,是远程学习发展的一个新阶段[2] 。

现阶段的移动学习受技术条件的制约,通常作为高校教学的一种辅助学习模式,主要应用于管理和为学习支持服务提供“交互”通道,学生和教师通过使用移动设备(如手机等)方便、灵活地实现交互式教学活动。高校移动学习的主要应用模式分为三大类:基于短信息的在线移动学习,基于连接的在线移动学习以及存储移动学习模式[3]。基于短信息的在线移动学习具有使用费用低,设备普遍支持等优点,主要应用于通信数据少并且可用简单文字描述的学习活动和学习服务,可用于向学习者发送课程安排、考试安排和考试成绩等信息,提供指导、激励和支持等作用。基于连接的在线移动学习和存储移动学习,需要建设WAP站点,提供能够支持移动设备访问和下载的学习资源,着重选取能够贴近学习者生活和工作同时又较为时尚和流行的主题作为学习内容。存储移动学习和基于短信息的在线移动学习将是目前在高校中最切实可行的移动学习应用模式[4] [5]。

2 C语言程序设计课程特点

C语言作为当今最为流行的程序设计语言之一毕业论文范文,不仅是计算机专业的必修课,也是很多

非计算机专业的学习课程。随着计算机的普及,学生运用计算机的能力越来越强,但计算机程序设计课程因其较复杂的语法、编程等知识,依然是众多学生学习上的“拦路虎”。

C语言程序课程知识点琐碎,概念繁多,理论不易掌握;概念抽象且复杂,包含的数据类型和运算符丰富,需预习与复习相结合才产生较好学习效果;对应的规则繁多且易混淆,使用较为灵活,容易出错,使得学生容易产生畏难、厌倦情绪;理论与实验教学学时分布不均衡,导致课堂教学中,对如何分析和解决问题讲得不够充分,学生编程思路不清楚;实验过程中,不能将理论知识应用自如,在处理实际问题时往往不知从何入手,需要在平时教学中注意培养学生动手能力[6][7]。

C语言程序课程的这种特点,适合采用移动学习作为其辅助教学方式。针对C语言理论性强的特点,可以在课前课后发送定时短信,提示预习摘要求较高,不好的缩进格式影响其呈现效果,结构化风格使得程序占用篇幅往往较长等等,这些因素均会制约移动设备的可读性。

3移动学习在课程教学中的应用

根据上述分析,设计移动学习方式如下:总体原则,以传统教学方式为主,移动学习方式为辅,移动学习方式充当课堂教学的重要补充,能够实现课堂知识的延伸,指导和激励学生进行更深层次的学习和实践。实现方式,主要采用基于短信息的在线移动学习方式,配合基于连接的移动学习空间、论坛,以及存储移动学习资源建设。针对课堂教学,精心设计课前案例,提出驱动式问题,相关预习提示,课后设计相关重点回顾,知识点延伸,以短信形式发给学生,对于短信不能很好显示的内容可以邮件形式发送给学生,或者放在相关网站上,以消息的形式提醒学生查收。软硬件支持:考虑到学生普遍拥有设备的程度,将移动设备限定在普通移动手机,软件使用中国移动飞信校园版(EFetion_campus)[10],可以支持PC端向移动手机的短信群发,通过飞信、群、语音、邮箱、空间等多种方式实现互联网、移动网间的无缝互通毕业论文范文,还可以使用日程提醒,邮件提醒等功能打造个性化的学习指导。移动学习具体实现方式如图1。

图1 移动学习应用模式图

3.1功能模块介绍

移动学习做为一种辅助教学模式,能够参与到C语言课堂教学的课前准备,课后辅导以及实验指导等方面。

3.1.1短消息学习模块

(1)课前预习提示。可将每节的学习目标、重点、难点发送给学生,也可发一典型程序,加驱动式问题,发送到邮箱里,同时设置邮件提醒功能。

(2)课堂内容回顾。对前面课程学习过的知识内容以短信形式发给学生,提醒其回顾。

(3)作业提示、阶段测试。也可仿照上述短信设置方式,定时群发给所有的学生。

3.1.2移动学习空间或论坛

移动学习空间既可以方便学生在线浏览,也要努力适应基于连接的移动学习访问,其资料下载模块提供的学习资源,也要支持移动终端设备。移动学习论坛,实现学生自由交流空间。在移动学习论坛上定期设置讨论专题,既可以是关于某个错误进行分析,也可以针对相关程序选题集思广益,还可以是对当前教育进行探讨等等。

(1)课堂内容延伸。可提供诸如:MSDN使用介绍,帮助学生自如设计C/C++程序等;CSDN论坛介绍,提供同资深程序员交流学习的平台。

(2)常见错误提示分析。提供调试程序基本步骤,常见错误解读及可能出错原因。

(3)课程设计选题。设计相关程序选题,使其能够体现课程各个阶段的进度,并且具有一定的实用性,趣味性,能够调动学生的学习积极性。

(4)测试空间。提供一些历年试题,可以帮助学生巩固理论学习。

(5)教育思考。定期对教学进行总结,寻求更好的教学方式,也可以一些高校精品课程网站链接。

(6)资料下载。课程内容的各种学习资源,如PPT课件、多媒体课件、部分课程的录音、录像等;有关课程的各种辅导资料,如各章节的知识要点、课程设计任务库、程序设计案例库、试题库等都可以作为下载的资料。

3.2移动学习内容设计

在高校教育中,学生同时需要进行多门课程的学习,如果在针对某一门课程实施基于短信息的移动学习方式时,设计过多的短信内容,或者发送较多的次数,都将会给学生造成信息轰炸,带来过重的信息负担。配合C语言程序课堂教学,在课前课后发送两条飞信,每次不超过5页,对于无法以短信内容呈现的资源就发送到邮箱,同时以短信形式提醒学生注意查收。程序设计课程所涉及程序对格式要求较严格,一个程序案例通常占用较多篇幅,此时以邮件的方式发送较为合适,同时在相关论坛上设置讨论专题,根据学生回答设置最佳答案,统计学生活跃度,作为平时成绩参照。图2为课前预习的飞信基本内容设计。

图2 飞信基本内容设计

把课程内容按照“章-节-知识点”的层次模式进行组织,整理出每章每节的学习目标、重点、难点、学习指导、参考资料等内容毕业论文范文,并概要总结出每个知识点的核心内容和若干测试题目,学习者可以通过短信息随时随地自由学习、复习这些重要的知识点,并对学习的效果进行测试。设计短信内容时需考虑程序格式问题,屏幕显示行数,尽量控制在8行*5屏=40行,每行8字以内,不要以图片的形式发送(涉及彩信资费问题)。

另一方面,为课程的核心内容提供文档、PPT课件、课程录音、课程录像等多种媒体格式、适合多种移动终端的学习资源,满足学习者不同的学习需求和学习习惯。学习者只要把这些资源通过教学网站,下载到自己的移动终端上,当他们在教室外面、公共汽车上等地方时,都可以通过移动终端来浏览这些学习内容,充分享受移动学习的便捷与方便,而且不需要承担高昂的移动通讯费用。但是供下载的资料要充分考虑移动学习的特点,不仅要考虑学生的设备支持程度,还要考虑移动学习的片段性特点,对其中的部分资料需要进行特殊处理使其适合移动学习方式,主要处理原则,按知识点,将文档,影音资料都处理成片段,确保一个片段一个知识点,每个片段持续10分钟左右。

4 实验分析

借助中国移动飞信校园版,上述大部分移动学习方式都可以实现,从PC端到手机客户

端可以方便的实现短信群发,只要不超过一定数量,免费且易于操作。学生也分常乐意参与到这种形式的移动学习中来,非移动用户除了在接收短信受限之外,也可以加入飞信校园版PC端,可以共享资源。实验证明,使用移动学习方式作为程序设计课程的辅助教学方式能够大大调动学生学习的积极性。但是在学生中间出现了两级分化的现象,部分同学兴趣高涨,能够充分利用提供的学习资源,学习进度甚至出现超前现象,另外一部分同学上课时也在查看手机,学习不仅没有进步,反而沉迷于手机上网。这种现象提醒大家不仅应该注意实施移动学习的方式,同时还要加强大学生的思想教育,使其认识到网络资源的便利性和危害性,能够主动的去寻求有益的资源来提高自己。

使用飞信实现移动学习还有以下必须注意的地方:(1)飞信中涉及大量广告,容易分散学生注意力。(2)短信数量过大,易给学生造成信息轰炸,要限制性的使用。(3)需警惕不法分子盗取飞信或手机号,进行诈骗。可以利用飞信的二次开发功能,屏蔽其他模块,使其更适合校园使用。

移动学习对学习者也要有一定要求毕业论文范文,比如说需要一定的自学能力,自制能力,以及较强的学习动机等[8][9]。现阶段的移动学习在高校教学中应该起辅助作用,但不能排除其对研究生,博士生及在职人员充电的作用,所以还是要做好移动资源的建设工作,注意打上数字签名保护知识产权。

5 结论

当前,移动学习是教育界的研究热点。将移动学习方式引入语言类课程的教学中已取得较大进展,但将其应用到C语言程序设计课程教学中来,还属于尝试阶段。移动学习给教学改革注入新鲜活力,其对高校教学的促进作用,不仅依赖教师的合理使用和学生的大力配合,还依赖于软件平台的设计。本文所使用的飞信校园版,受到发送短信条数,广告绑定等不利因素的限制,不仅要考虑课程特点,还要考虑软件的使用规则,不能充分发挥移动学习的优势。下一步需要改进的地方,不仅在于移动学习资源的建设,还要建设实施移动学习的软件平台,不仅要适合移动终端在线浏览,还要能够与校园各个系统整合,充分利用现有资源,更加适应程序设计课程的要求。

参考文献:

[1]德斯蒙德·基更.移动学习:下一代的学习[J].开放教育研究.2004

[2]刘豫钧,鬲淑芳.移动学习——国外研究现状之综述[J].现代教育技术.2004

[3]王建武.3G网络下基于彩信的被动式移动学习实践研究[D].西安:陕西师范大学.2009

[4]张珑,王建华,张军,邸佳奇.移动学习在高等学校教学改革中的应用[J]. 计算机教育.2010(6):34-37

[5]王伟,钟绍春,吕森林.大学生移动学习实证研究[J].开放教育研究,2009,15(2):22-27.

[6]张素芹,吴连生.独立学院“C语言程序设计”教学改革实践[J]. 计算机教育.2010

[7]顾钧.程序设计语言课程的概念体系及教学策略探讨[J].中国成人教育.2010

[8]李望秀.高校教学中的移动学习[D].长沙:湖南师范大学.2008

[9]徐楠.M_Learning在现代远程开放教育中的应用研究[D].南京:南京师范大学.2005

程序设计教学论文篇5

(一)面向对象程序设计

OOP是一种计算机编程架构,它具备软件工程的灵活性、重用性和扩展性。OOP不仅具有丰富的理论知识,同时具有很强的实践性,坚持在真实的项目中锻炼编程能力,才能理解其精髓,进而活学活用。

(二)项目教学法

项目教学法以学生为教学中心,是学生在教师的指导下处理项目,提高自身能力的教学方法。其优势在实践性较强的OOP课程中体现得淋漓尽致。具体实施时,教师化身为顾问,主要的作用是引导学生把课堂所学用在实践过程中,理论联系实际,进而提高动手能力;学生是项目的具体操作者,知识水平和发现问题、解决问题能力均能得到提高。

二、改革的必要性

OOP是一门实践性很强的课程,如果不进行实践教学,学生不能全面掌握其核心思想。原因主要有以下两方面:

(一)难理解

由于面向对象概念较抽象,是基于现实世界的特点,对系统的复杂性进行概括、抽象和分类,对象是OOP的核心,是将代码和数据封装起来的具有某些特性的具体事物的抽象。从学生角度来看,以知识点为中心的讲解教学方式理论性太强,不好理解,甚至有部分学生自始至终也无法掌握OOP的重要概念,不能满足课程考核要求。

(二)理论教学多

教师上课采用多媒体教学,这种方式基本上是教师在课堂上唱独角戏,把理论和方法灌输给学生,学生被动地学习,只是把教师讲的内容在大脑中形成记忆,没有自己独立思考的过程,不利于培养学生的创造能力。

三、项目教学法的改革要点

项目教学法设计了完整的软件项目教学背景,克服了传统教学中注重理论知识忽视应用实践的缺点。学生在慢慢了解、逐渐熟悉软件项目开发的过程中,能够理解应用,学习和掌握各种知识并训练相关技能。

(一)项目题目的设定

教师在进行项目教学引导时需要策略,创设学习的资源,协调学习合作环境。教学项目题目的选取是其中的关键问题,选题最好能与软件公司进行交流或合作,应具备针对性和实用性,能体现出学生综合能力的运用,并且可以进行客观评价。首先,项目题目应尽可能覆盖教学大纲的多项知识点;其次,应该构建具有完整项目的项目案例库,项目题目应有不同的难易度和适当的工程工作量,适应所教班级的不同学生的实际水平;最后,项目题目应尽量贴近大学生的生活,并可以用一些标准,如软件是否易用、是否有良好的用户交互性等进行公平、准确的评价。

(二)互动增强

传统的教学环节中,老师和同学的交流仅限于课间十分钟或者课下较短时间的交流,交流时间少,沟通的问题也只是教学内容中个别的知识点。而在项目教学法中,沟通渠道是多向的,老师与学生之间沟通的宽度和广度都加大了。另外,即使在同一课堂上听讲,不同的学生在学习动机、学习心理、学习兴趣和学习能力等方面仍然会有一些差别。

(三)角色换位

程序设计教学论文篇6

1.1学生感到程序设计较难理解

计算机程序设计的学习困境主要表现在概念难懂,技术难以掌握,理论与实践的脱节等方面,尤其是在程序语言学习中面向对象程序设计语言时,绝大多数的学生不理解面向对象程序设计思想,不会使用类的思想进行程序设计。往往感到困难重重而方式深入学习,导致学习成绩节节下滑,不利于后来其他计算机专业课的学习。

1.2主动学习能力差

学生长期在传统应试教育环境影响下,形成了被动学习的习惯,缺乏学习的积极性与主动性,另外还有一些学生养成的不良学习习惯,在课堂学习中情绪比较懒散,精神比较散漫,对教师所讲的内容没有兴趣,这样很难提高学生学习成绩,影响教学效果的提高。

1.3实践能力不高

计算机是一门实践性比较强的学科,不仅需要学生掌握基本的理论知识,更重要的是理论应用于实际的能力,因为学习计算机的目的就是解决实际中遇到的问题。但是在实际教学中,很多教师设计的教学目标脱离学生的应用宗旨,教学过程中理论课比较多,实践课程比较少,这样较难培养学生的实际动手操作能力,很难真正提高教学效果。

1.4教学方法单一

过去教师一般采用传统的教学方法,从程序设计的概念出发,围绕理论知识点加以讲解,过多注重理论知识的讲解,而教材中的实力一般与学生实际生活相差较远,学生在学习的过程中感到生涩难懂,只会比葫芦画瓢,不会举一反三,缺乏独立思考问题和解决问题的能力。教师在教学过程中忽略了学生的主体地位,较难提高学生学习兴趣,同时也达不到较好的学习效果。

2项目驱动教学模式特点

2.1项目实践环境突出

项目驱动教学过程中,导师带领学生在学习专业理论知识的同时进行实际应用项目的开发。学生与老师在学习的过程中始终处于一种相互配合、沟通的环境下,强调学生的自主学习、积极沟通、勇于实践。学生在项目驱动下,带着问题进行有效的学习,这样能够培养学生思维扩散能力、动手操作能力与团结合作精神。

2.2强调教师的引导作用

项目驱动教学模式注重把理论知识转化为实际技术,在教学过程中教师仅仅起引导学习的作用,课堂的主体是学生。学生按照项目需求被划分为若干个小组,导师在课堂中主要监督、指导学生行为,在项目学习过程中导师要随时解答学生的疑问,为学生补充技能知识,实时启发学生在项目学习中解决问题的正确思路,开发学生思维创造能力,帮助学生掌握项目技能。

2.3培养学生计算机专业能力

项目驱动模式的实施目的是提高学生软件开发与应用能力,事件性知识一般比较隐蔽,而项目驱动教学能够通过教学过程中各种功能的实施,使一些隐藏在软件开发过程中的核心要素显现出来,通过这种方式的学习,学生将很快的具备软件应用开的基本能力,提高学生实践能力与应用能力。

3项目驱动教学实施过程

3.1项目设计

项目驱动模式教学过程中,首先导师要根据程序设计教学内容,设定教学目标,将教学计划、目标融入到教学项目中,然后将整个教学项目按照学习小组分成若干个独立的小项目,再把这些小项目按组分配给学生,最后导师围绕项目内容设计具体教学内容,项目来源一般源自于教师纵横向教学项目。

3.2实施形式

利用项目驱动模式进行教学的过程中,学生需要进入专门的工作室进行软件程序的学习与开发。在工作室中,主要的学习方式是自学,教师在这种模式下主要起引导作用,课程知识除了很少部分较深的理论课由导师专门讲授以外,其他的课程都是学生围绕项目进行自主学习、合作学习,主要学习方式包括:小组研讨、导师解疑、技术交流、调查研究等形式;课程的具体的实施要根据教学内容以及学生的实际认知情况进行合理的分配。这种教学模式的目的在于各种信息技术及认知提高计算机教学质量和效率,培养学生自主学习能力、创新能力和勇于探索精神以及实践能力。其中自主学习是由学生自己积极主动的去学习,在学习过程中导师的角色是解答疑问,并不是直接帮学生解决问题,导师可以向学生传授解决问题的方法和思路,引导学生向正确的解答思路上靠,提供给学生解决问题的资料,引导学生围绕疑问积极探索。如果学生在学习过程中遇到难以解决的问题,导师首先要积极引导学生找到解决问题的方法,同时教会学生利用移动通信、互联网、QQ以及电子邮件等先进技术手段进行搜索或者在线讨论与交流,尤其要教会学生怎样使用互联网查询资料,丰富程序设计知识,提高深深学习能力。在个人自主学习的基础上进行小组讨论与交流,在交流中不仅扩展知识与视野,而且能培养团队协作精神,增进同学之间的感情。导师还要积极引导学生发现规律,找到自己的不足,积极改正,不断超越自我。

3.3项目驱动教学模式中的成绩评定

成绩评定是项目驱动模式教学的重要组成部分,成绩评定一般具有激励、引导和反馈的作用,能够全面反映学生的近况。成绩评定比较重视学生在学习过程中能否解决实际问题,旨在培养学生动手操作的能力和创新能力以及计算机素养,树立科学精神和坚韧不拔的性格以及积极向上的人生观。如果学生成绩提高,教师要给予鼓励和表扬,激励学生再接再厉。成绩评定的方式采用项目答辩的形式进行,每个小组派出一个代表作主辩手,其他学生补充,导师可以随时提问,最后结合项目答辩情况给出学生最终考核成绩。

程序设计教学论文篇7

1 计算机专业学生程序设计能力培养现状

程序设计能力是计算机专业学生必备的一项基本技能。程序设计能力培养不仅包含技能培养,还包含学生分析问题、解决问题以及创新能力的培养。为此,各高校从大一开始就开设了高级语言程序设计课程以及后续一系列课程,以提高学生的程序设计能力。然而,即使各高校设置了丰富的程序设计能力培养课程,学生的程序设计水平也没有得到大幅度提高。

当前软件企业招不到合适的人才,计算机专业学生找不到工作,这种局面的形成归因于学生的程序设计能力并未达到软件企业预期的要求。调查表明,企业新招聘员工中只有15%直接来自高校毕业生,而85%来自社会招聘,因为社会招聘人员动手能力强,入职后能很快适应工作岗位。程序设计能力层次见表1,从表1可以看出,要胜任企业软件开发工作,至少需要100000行代码量;对于本科毕业生,至少需要有10000行代码量,而目前计算机专业大多数学生本科4年的代码量均在1000行,有的甚至更低。

1)程序设计类课程依然重教学,轻实践。理论教学依然是程序设计类课程的重点,理论学时多,实践学时少。教师花费大量时间进行语法、数据结构概念、算法理论讲解,因此也使得有针对性的实践太少,基于相关知识和理论的案例教学不足,学生很难将所学知识点和理论用于解决实际问题。

2)实践环节枯燥,学生无法提高学习积极性。

在传统程序设计实践教学中,教师布置3~6道作业题,学生当堂完成,然后将代码以及运行结果截图打包上传到服务器,教师一一评阅。教师给出的习题往往直接针对课堂教学的知识点,无任何实际背景或故事情节,实验枯燥乏味,学生学习积极性无法提高。

3)学生多,教师少,教师无法逐个解答学生的问题。

在大学不断扩招的情形下,师生比进一步扩大。实践教学过程中,教师无法一一发现和解答每个学生的问题。学生将作业代码和运行结果截图通过FTP上传至服务器,教师查看运行结果,由于学生多,教师无法逐个查看和运行学生代码,疲于应付,因而导致实践效果差。

4)实践能力评价方法单一。

目前的课程考核多采用笔试,学生的实践能力只能通过平时作业和实验进行主观性评价,难以激发学生自主训练实践能力的激情。在这样的教学模式下,久而久之学生就失去了编程兴趣,同时也降低了后续程序设计类课程的学习积极性,以致形成恶性循环,学生代码阅读量、代码编写量均得不到保证,程序设计能力自然无法提高。

为了提专业提供论文写作、写作论文的服务,欢迎光临dylw.net高学生的程序设计能力,文献[1]提出一种贯穿在系列课程中的程序设计能力培养方法,强调在一系列课程中持续不断地进行系统化训练,采用面向专业应用的分类教学,贯彻落实案例驱动、强化实训等教学方法。文献[2]初步将ACM模式应用到程序设计类课程实践教学中,使学生的编程能力和解题思维能力得到有效训练,教学效果显著提高。文献[3]也提出采用ACM竞赛形式的程序设计能力层次化培养模式。这些方法都是提高学生程序设计能力的有益尝试。

2 立体化程序设计能力培养模式

针对目前程序设计能力培养方面依然存在的一些突出问题,我们借鉴国内外一流大学的经验,与学校、学院教学部门配合,探索并建立立体化程序设计能力培养方法。立体化程序设计能力培养方法如图1所示。

1)培养方法和过程。

在立体化程序设计能力培养方法中,教学活动仍然分为理论知识讲授与编程实践,但理论课不再以单纯介绍语法知识为主,而是以具体的程序案例分析为主,让学生从案例中掌握语法。在实践教学环节中,教师设计若干有趣的问题,学生在解决问题过程中学会相关的语法知识与编程技巧。学生编写的程序代码全部通过安徽大学程序自动评判系统进行评判,学生只需在规定时间内完成,不再局限在实践课堂内完成,令学生有了足够多的思考和动手编程时间。对于学生在编程过程中出现的各种问题,教师和ACM/ICPC队员及时进行在线细致辅导。在每次作业结束后,系统公布所有学生的解题代码,以供所有学生在线查看和评价。获得优秀评价的代码将在系统上公布,以便学生有机会进一步学习优秀代码,增加代码阅读量。

2)立体化程序设计能力培养特点。

(1)以高级语言程序设计课程为依托。高级语言程序设计课程是学生接触的第一门程序设计类课程,其教学与实践对培养学生的编程兴趣和能力起着至关重要的作用,可以帮助学生树立自信心并步入程序设计的殿堂。

(2)课堂教学以案例为中心。程序设计=算法+数据结构。在高级语言程序设计课程的教学过程中,我们摒弃单纯讲授语法的课堂教学方法,改之以程序案例为中心。在课程早期,案例以语法知识为主,逐步增加基本数据结构和算法。整个教学过程以案例分析为中心进行语法教学,让学生在潜移默化中学习到基本的数据结构和算法。

(3)实践教学以问题求解为中心。在实践环节,教师通过设置有趣的故事和实际的问题,帮助学生在求解问题过程中掌握课堂上所学的语法知识、基本数据结构和算法。

(4)实践环节从课内延伸至课外。实践环节要求学生完成指定的编程题目。与传统实践环节不同,通过在线程序自动评判平台,学生所有的编程作业只需在教师规定的时间段内提交,学生既可以在实践课上完成,又可以利用课外时间完成课堂内没有完成的作业。将实践课延伸到课外的优点表现在:①学生有足够的时间思考分析问题并最终通过编程解决问题;②实践题目数量适当增加,学生的代码量随之增加 ,充分的课外实专业提供论文写作、写作论文的服务,欢迎光临dylw.net践可以进一步巩固学生的理论知识基础。

(5)经验丰富的ACM/ICPC队员参与程序设计实践环节辅导。ACM/ICPC队员经过长期的编程实践,积累了丰富的编程经验,代码能力强,因此我们利用ACM/ICPC集训队的优势资源,实行“传帮带”机制,对于每个学生编程过程中出现的问题及时给予解答,有效提高学生的编程积极性。集训队学生优秀的编程水平对于低年级学生也是一种激励,可以进一步激发其编程热情,增加其向更高编程水平迈进的动力。

(6)学生作业采用自动化评判模式。学生提交的作业通过服务器自动评判给出程序的运行结果。自动评判模式对于编译错误,会直接给出编译出错位置和出错类型,方便学生自查;对于运行错误,包括结果错误和运行超时,则需要学生重新审查程序代码。服务器自动评判能够有效减轻教师批改作业压力,还可以大大提高实践教学效果。此外,服务器上保留了每个学生的做题细节,包括以往的代码、做题的数量、错误类型等信息,可以进一步增强学生做题的成就感和积极性。值得一提的是该自动评判平台不仅支持高级语言程序设计,还支持C++、Java、VB和Pascal语言,因而吸引了省内一些初中、高中学生进入该平台进行程序设计能力实践。

(7)优秀代码展示有助于增加学生代码阅读量。学生代码量包括代码编写量和代码阅读量。代码阅读量是提高编程能力的一种重要途径,然而在实际教学过程中常常被忽视,通过教师评阅、学生互评等方式,可以筛选出优秀代码并加以展示。优秀代码主要指具有巧妙的算法、运行时间短、内存占用空间少、代码格式规整、符合标准编程风格的程序代码。展示优秀代码可以让学生有机会看到彼此对于同一道题目的多种解决方案,有效促进学生之间的交流,积极提高学生的代码阅读量。这种相互的交流还可以进一步激发学生的创新灵感,在提高学生编程能力的同时也提高创新能力。

与传统专业提供论文写作、写作论文的服务,欢迎光临dylw.net程序设计能力培养主要依靠“教师一学生”这种二维扁平的实践教学模式不同,立体化程序设计能力培养方法以案例教学为中心进行教学,以问题驱动为中心进行编程实践,采用机器自动评判和学生互评相结合的方式进行学生编程实践效果评价,在教师—ACM队员—学生之间建立一个跨越时间和空间的三维立体互动教学网络。这种教学方法将课内实践延伸至课外,将实验室实践延伸到实验室外,对学生的程序设计能力进行主客观相结合的综合评价与即时反馈。

3 实施成效

通过一系列的研究与设计,我们构建了立体化的程序设计能力培养模式,在安徽大学自主研发的自动评判系统基础上增加了高级语言程序设计实践模块。自2008年以来,学生通过该自动评判平台进行程序设计实践呈逐年增多趋势,多名学生参加了ACM/ICPC程序设计竞赛以及省级程序设计竞赛,获得各类奖励10余项,其中亚洲区邀请赛金奖2项、省级竞赛一等奖4项。实施该培养方法后,学生进行自主程序设计训练的积极性明显提高,目前在校生中程序代码量已经达到10000行的有200人左右,部分毕业学生直接进入腾讯、百度等企业工作,用人单位也对毕业生的编程能力普遍表示满意。安徽大学计算机专业学生2008—2012年提交代码量如图2所示。

该培养方法不仅提高了学生的程序设计能力,而且培养了学生的创新精神和可持续发展能力,还吸引了许多非计算机专业学生学习程序设计技术。近年来,陆续有电子学院、自动化学院、数学学院、化学化工学院、资源与环境工程学院和物理学院的学生参与到程序设计实践中,并且取得了不错的学习效果。例如,安徽专业提供论文写作、写作论文的服务,欢迎光临dylw.net大学物理学院一名学生经过该平台实践后,积极参与ACM/ICPC程序设计竞赛,获得2010年ACM/ICPC亚洲区竞赛铜奖并于2012年成功考取复旦大学计算机专业研究生。

4 结语

强调师生互动、实践反馈、学生互动足立体化程序设计能力培养方法的关键,而利用案例教学与趣味实践是重要途径。实践证明,立体化程序设计能力培养方法在提高学生编程水平和算法能力方面具有较大优势,取得了显著成效。今后我们将进一步注重教师与学生互动,探索更多的师生之间、学生之间互动手段,不断提高学生编程素养和创新水平。

程序设计教学论文篇8

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

1图论及图论教学

图论(Graph Theory)是数学的一个重要分支,以“图”为研究对象。图论中的图是由若干个给定的顶点及若干条连接两个顶点的边所构成的图形。这种图形通常用来描述某些事物之间的某种特定关系:用顶点代表事物,用连接两个顶点的边表示相应两个事物间具有这种关系。这种图提供了一个很自然的数据结构,可以对自然科学和社会科学中许多领域的问题进行恰当的描述或建模,因此图论研究越来越得到这些领域的专家和学者的重视。

基于图论的重要性,目前很多高校课程都涉及到图论知识,如离散数学、数据结构、算法分析与设计、运筹学、组合数学、拓扑学、网络优化等。越来越多的大学将图论单独作为一门课程来开设,作为数学、计算机科学与技术、电子科学与技术、管理学等专业本科生和研究生的必修课或选修课。

图论的教学具有如下特点:

(1) 概念、定理特别多,定理的证明通常都很难,在一定程度上造成教学比较难而且枯燥。

(2) 图论里很多问题都有具体的应用背景,但通常难以转换成图论中的模型,从而求解比较难,所以学生对图论课程有一定的兴趣,但往往会望而却步。

(3) 图论中的算法丰富,几乎每个应用问题都有不同复杂度的算法。例如,最短路径问题常用的算法有Dijkstra算法、Bellman-Ford算法、SPFA算法、Floyd算法,如果要用程序实现这些算法并求解实际问题,对学生的程序设计和算法分析能力有比较高的要求。

(4) 图论课程对锻炼计算机科学与技术等专业学生的算法分析与设计能力有很好的作用。

作者调查发现,国内高校图论课程的教学或者是侧重于完整的图论知识体系介绍、复杂的图论定理证明,或者是侧重于从应用数学的角度介绍图论在各领域的应用。我们在教学中发现,许多学生(特别是计算机专业的学生)在学习图论时,都不满足于图论算法的手工和草稿纸演算,迫切地想知道如何用程序来实现图论中的算法,以及如何用这些算法思想求解实际问题,这就对计算机专业的图论教学提出了新的要求。

2教学改革背景

随着我国的高等教育进入大众化阶段,许多高校将人才培养目标定位成应用型人才的培养。这就要求高校培养的学生不仅具备扎实的专业知识,还要有过硬的应用性知识。

对计算机科学与技术专业来说,应用型人才的培养目标要求注重培养学生软硬件系统的研发能力,强调学生对非计算机学科(专业)知识的融会贯通,学生应具备扎实的计算机基础理论知识和较强的实践能力。

发展应用型教育,培养应用型人才,应该贯穿于整个教学活动中,包括专业设置、教学管理、课程设计、教学手段和方法以及教学制度建设等方面。

在这样的背景下,我们在图论教学中一直在思考以下几个问题:

(1)“图论算法实现及应用”在我校是作为一门选修课开设的,如何让学生在感受到图论知识魅力的同时提高学习兴趣,调动学生的学习积极性。

(2) 如何针对计算机专业学生设计合适的教学方法,以适应他们的专业特点和专业发展方向。

(3) 如何设计新颖的实践教学形式和内容,引导和加强实践教学,让学生真正理解图论算法思想并能编程实现,灵活运用图论算法求解各种应用问题,以适应应用型人才培养的要求。

3图论课程教学改革

3.1改革思路

针对图论课程的教学现状和应用型人才培养的要求,我们尝试按以下思路进行教学改革:以培养学习兴趣入手,引导学生进入丰富的图论知识领域;向学生阐述有具体应用背景的图论算法思想;侧重图论算法的复杂度分析和程序实现;通过在线实践引导学生运用图论算法求解问题。

为此,我们在充分调研和积极探索的基础上,提出以下教学改革措施:(1)以大学生程序设计竞赛这一学科竞赛为驱动,激发学生的学习热情和积极性。(2)以“在线实践”这种新颖的实践方式为导向,丰富课程的实践教学并提高学生的实践能力。(3)加强“程序与算法设计”课程群的建设,构建完整的、系统的知识体系。(4)做好教材建设,编写适合这种教学思路的图论讲义、教材和实验指导书。

3.2以程序设计竞赛激发学生的学习积极性

由美国计算机协会组织的ACM/ICPC国际大学生程序设计竞赛已经有30年的历史了,中国大陆的高校在上世纪90年代中期陆续参赛,很多高校在总决赛中取得了优异的成绩。ACM/ICPC竞赛在公平竞争的前提下,提供了一个让大学生充分展示用计算机分析问题、解决问题的能力与才华的平台。ACM/ICPC竞赛鼓励创造性和团队协作精神,鼓励在编写程序时的开拓与创新。

近十年来,很多高校开始举办全校性的程序设计竞赛,并逐渐发展成为全省(市)性质的比赛,这极大地推动了这项学科竞赛在中国大陆高校的开展。

图论是这项程序设计竞赛中重要的题目类型之一。图的遍历、活动网络、最小生成树、最短路径、图的行遍性问题、网络流问题、匹配问题、图的连通性、图的着色等都有大量经典的题目,几乎涵盖了图论完整的知识体系。

例如,我们在举办竞赛时曾经出了这样一道题:由M×N个方格组成的网格表示敌占区,通讯员要从初始方格S出发,送情报到达目标方格T,其他符号的含义如图1所示。初始时,通讯员具有一定的体力。通讯员从某个方格出发,到达上、右、下、左4个方向上的相邻方格需要花费的时间和消耗的体力如图1所示。另外,从目标方格的相邻方格到达目标方格,花费时间1,消耗体力1。本题要求解的是:通讯员能否到达目标方格?如果能到达,所需最少的时间是多少(只需要保证到达目标方格时,通讯员的体力>0即可)。本题的求解要用到广度优先搜索算法。图1中给出了一条花费时间最少为13的路线(初始体力为8),到达目标方格时剩余体力为1。

我们在教学中以这些题目为例阐述图论算法思想、分析算法的复杂度并用程序实现,让学生切实地理解算法思想、直观地体会到算法的具体应用,同时我们也布置相应的题目作为练习题。这些题目的趣味性和挑战性能吸引学生投入较多的时间和精力去完成,在丰富知识结构的同时提高学生的程序设计和算法分析实践能力。

3.3以在线实践提升学生的程序实践能力

随着ACM/ICPC程序设计竞赛的推广,各种在线程序评判(Online Judge,简写为OJ)网站也应运而生,这为程序设计爱好者提供了一种新的程序实践方法:在线程序实践。

在线程序实践是指由OJ网站提供题目,学生在线提交程序,OJ网站的在线评判系统实时评判并反馈评判结果。这些题目一般具有较强的趣味性和挑战性,评判过程和结果也公正及时,因此能引起学生的极大兴趣。

学生可以根据OJ系统反馈回来的评判结果反复修改程序,直到最终收获Accept(程序正确)。这不仅能培养学生独立分析问题、解决问题的能力,而且每成功解决一道题目都能给学生带来极大的成就感。

在教学中,我们以组织学生开发的OJ系统作为实践教学平台,该平台主要起到了以下作用:(1)作为教学演示平台。对课程中涉及到的算法都尽量用程序实现,并提交到OJ系统进行验证和演示。(2)作为算法分析平台。针对图论算法丰富的特点,我们在教学中对同一个应用问题采用不同算法实现,并提交到OJ系统,以测试程序的运行时间,让学生直观观察到算法的优劣。(3)作为实验教学的平台。在实验课上,学生可以用程序求解练习题并提交到OJ系统验证。(4)作为课程考核平台。对图论课程进行教学改革后,我们认为不适合采用笔试方式考核,因此采用在OJ系统上机考试的形式。这种考核方式过程更直观、结果更客观。

3.4以课程群建设推动知识体系的系统性构建

教学改革后,图论课程的教学目标定位为培养学生图论算法分析、设计和应用能力。这跟我们建设的“程序与算法设计”课程群的知识体系、知识目标、能力目标是吻合的,因此我们将图论课程纳入该课程群。

“程序与算法设计”课程群的知识体系设计为:程序设计思想和方法、数据结构设计与运用、算法分析与设计、面向对象的软件开发、图论算法分析与应用。为此,我们精选了6门课程组成该课程群,如图2所示。

课程群的知识目标为:通过课程群中各门课程的学习,掌握基本的程序设计思想和方法;理解面向对象程序设计的思想并能熟练运用;理解各种数据结构的原理和使用方法;熟练掌握常用算法分析和设计技巧,掌握常用算法的综合运用;掌握系统分析与设计的基本方法。

课程群的能力目标为:掌握基本的程序设计、测试、调试能力;能运用面向对象程序设计思想和方法开发较大规模的软件;能综合运用各种数据结构对软件功能进行描述和建模;具备基本的数据结构和算法分析和设计能力;能针对各种图论应用问题设计合理的算法并用程序实现;在软件开发中运用系统观点,对应用问题进行初步的分析和设计;在实践活动中锻炼毅力,树立克服困难的信心,培养竞争和创新的意识。

图论算法实现及应用课程是第四学期作为选修课开设的。在此之前,学生通过前期课程的学习,已经掌握了基本的程序设计思想、方法以及基本的数据结构使用,该课程与算法分析与设计课程同步开设。

图论课程在课程群中利用其算法丰富、应用问题多而广的特点,给学生提供算法分析与设计的实践机会。通过图论课程的学习,学生不仅能掌握丰富的图论知识,程序设计、算法分析能力也将得到进一步巩固和提高。

3.5完善教材建设,适应新的教学思路

教材建设是课程建设的重要工作,教材包括课堂教学使用的教材或讲义、实验教学使用的实验指导书、辅导教材等。为适应新的教学思路和方法,我们编写了讲义和实验指导教材。讲义立足于图论算法思想的描述及程序实现,并以大量的ACM/ICPC题目阐述图论算法思想在求解这些题目中的应用。该讲义在内容取材、描述上具有如下特点:(1)许多图论教材对图论概念的描述不一致,造成读者的阅读和使用困难,该讲义试图改变这一现状。对每个概念的表述,我们查阅了大量的图论著作并进行比较分析。在讲义中,我们对每个概念采用大多数图论教材采用的名词和描述方式。(2)忽略所有图论定理的证明,着重分析图论算法的思想,重点在于这些图论算法的程序实现和应用。对图论算法的程序实现是以经典的ACM/ICPC例题来阐述的。(3)分析每一个算法的复杂度,并对同一个问题不同算法的复杂度进行对比分析。(4)采用浅显易懂的语言、丰富的图表来描述图论算法思想。

4教学方法

一种新的教学思路必须辅以一套新颖的、有效的教学方法,因此我们注重探索合适的教学方法。

4.1课堂教学

课堂教学是教学的重点,我们在教学中采取以下教学方法加强课堂教学效果。

(1) 上好第一堂课。第一堂课的教学效果会决定学生是否会认真听这门课,特别是选修课。对图论的第一堂课,我们往往从一些有趣的问题入手引入图论的研究内容,如哥尼斯堡七桥问题、中国邮递员问题、周游世界问题、图的着色等。这些问题通俗易懂,比较有趣,更重要的是,这些问题可以把图论里的主要研究内容串接起来,从而让学生对图论研究的概况有一定的了解。

(2) 加强课堂互动。图论的很多问题来自于生产生活,在学生的学习生活中也能找到应用的例子。在课堂上,我们经常邀请学生在黑板上演示算法的求解过程,这能帮助学生理解算法的思想和求解过程。

(3) 加强算法的对比分析和演示。为了让学生对图论算法的复杂度有直观的认识,我们通常在分析完算法的复杂度后,对一些例题进行程序实现,并提交到OJ系统,通过反馈回来的运行时间来验证算法的时间复杂度。

4.2实践教学

这里谈的实践教学不局限于实验课。为提高学生对图论课程的兴趣,并引导学生开展基础的论文阅读和文献综述,为今后的专业发展奠定基础,我们在教学中开展了丰富的实践教学内容。

(1) 在解题时,指导学生阅读相关论文,启迪他们的论文查阅意识和能力。比如学生在求解网络最大流问题时指导他们阅读文献[3],这篇文献综述了网络流算法的研究历史和现状。

(2) 图论里有很多问题至今都没有得到解决,比如汉密尔顿回路、图的着色等,国内外学者对这些问题的研究也一直没有中断。我们指导学生综述这些研究,这对培养学生的探索性思维有很大的帮助。

(3) 指导学生定期对求解过的题目进行总结,以解题报告或小论文的形式提交,作为平时成绩的一部分。

(4) 为了丰富OJ系统的题库,我们采取一系列措施鼓励学生出题,比如在题目中对出题学生进行署名,组织学生的个人专场比赛等。学生出的题目大多来源于平时的学习和解题的积累,因此这些激励措施也能提高学生的学习积极性。

5结束语

图论是一门既有趣又具有较大难度的课程。对计算机专业的学生来说,图论课程不仅丰富了他们的数学知识,更锻炼了他们的算法分析与设计能力。采取新的教学思路后,选修这门课的学生逐年增多,许多学生的程序设计和算法设计能力得到了极大提升,并在程序设计竞赛中取得了很好的成绩。

参考文献:

[1] 徐俊明. 图论及其应用[M]. 2版. 合肥:中国科学技术大学出版社,2004.

[2] 徐俊明. 《图论及其应用》课程建设探索[J]. 教育与现代化,1997(2):41-46.

[3] 张宪超,陈国良,万颖瑜. 网络最大流问题研究进展[J]. 计算机研究与发展,2003,40(9):1281-1292.

程序设计教学论文篇9

在新课标中,《算法与程序设计》成为信息技术课程的一个选修模块,该模块的教学目的是使学生在原有基础上进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。在《算法与程序设计》教材中,首先介绍诸如算法、流程图的画法等知识,然后才是介绍VB程序的建立和运行。最后介绍常用算法实现等。这样的章节安排使得学生一开始的前几节课都接触的是稍显枯燥的理论知识,对激发学生学习本模块知识的兴趣是不利的。在具体教学过程中,笔者并没有完全按教材的章节安排来开展教学,而是采用先介绍实例,引导学生学习兴趣后再不断地在实例教学中穿插讲解算法、程序等方面的理论知识。

一、通过简单例子入门

很多程序设计教材,第一个入门程序都是“Hello World”程序,在VB程序中,类似的入门程序只需一个按钮和一行语句即可实现,但通过这样简单的演示程序却可以很好地介绍一个标准的图形界面程序中对话框、标题栏、按钮等基本要素,让学生知道学习程序设计也并不是一件很困难的事情。

在了解第一个入门程序后,紧接着给学生介绍的是一个简单计算器的设计,并以该程序和Windows系统自带的计算器程序作对比。让学生加深印象。简单计算器程序界面如下图所示。

该程序包括三个标签控件,三个文本框控件和四个命令按钮控件。在演示界面设计后,即可介绍个命令按钮的代码设计,加法按钮所添加的代码也只有一行:Text3,Text=Val(Textl,Text)+val(Text2,Text),其他三个运算按钮的代码只需将上述代码行中的“+”号分别修改为“-”“*”和“/”即可。最后给学生演示一个除数为O的特例,然后程序出现异常提示,在结合数学知识分析出错的原因后,告诉学生针对“÷”按钮的特殊情况增加条件判断语句即可,代码如下:

If Val(Text2.Text)OThen

Text3.Text=Val(Textl,Text)/VM(Text2.Text)

Else

MsgBox“除数不能为零!”

End if

通过上例很好地让学生了解了程序设计的基本过程,让他们知道程序设计好像也并不难,从而一方面激发了学生兴趣,另一方面也建立了进一步深入学习的信心。

二、以生动例子激发学生兴趣

针对现在很多学生喜欢动漫、游戏的情况,在授课过程中教师特意演示动画程序的设计过程(该程序是通过图片交替运动、叠加实现的。不是播放视频文件),并告诉学生实际的电脑动漫、游戏的设计原理也是类似的。

三、理论知识与实例教学相结合

《算法与程序设计》教材的章节基本是按照“先理论后实践,先语句再程序”的顺序安排的,因此很多教师上课时为了让学一生便于结合课本学习,也是先结合教材讲解基础理论部分,如算法与程序的概念、流程图画法等,然后再介绍具体的Ⅶ程序设计。由于大多数学生在本门课程之前没有学习过相关知识,使得他们学习有些茫然,不知道怎么去学,也不知道学习这些理论后有什么意义,从而失去了学习兴趣。基于上述原因,教师授课时可以不按课本的章节顺序来开展教学,而是从简单程序实例开始让学生了解本课程到底是学习什么内容,学会之后能够做什么,从而提起学生的学习兴趣;同时在后续学习过程中也完全可以将算法相关的理论知识融合在一些学生容易理解的生动实例中进行讲解。

四、结束语

程序设计教学可以培养学生逻辑思维能力、描述问题能力、解决问题能力以及创造能力。在开展教学时,通过实例引导学生学习兴趣仅是第一步,另外教师还需加强程序设计思想的培养,有意识地向学生渗透解决问题的思想方法。中学《算法与程序设计》教学方法是灵活多样的,以上仅是笔者在教学过程中的探索与体会,总结出来希望能够互相交流,把中学《算法与程序设计》课程的教学工作开展得更好。

参考文献:

程序设计教学论文篇10

2.兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)

摘 要:高等农业院校程序设计类基础课程以培养实践人才为根本目标,将CBE教学模式和程序设计类课程教学结合起来,在教学内容、教材及教学资源建设、教学方式等关键环节进行了综合改革,形成了2+2+3的“理论教学及实验教学相统一的课程建设体系,理论教材及实验教材相统一的教学资源建设,CBE教学方式、项目驱动教学方式及双语教学方式三层次实践人才培养过程”实践人才培养模式,培养具有“宽基础、强特色、高素质、实用性”复合型实践程序设计人才,在实践人才体系培养方面取得了显著成效.

关键词 :高等农业院校;程序设计;CBE教学模式;实践人才培养模式

中图分类号:G645文献标识码:A文章编号:1673-260X(2015)07-0265-03

基金项目:中华农业科教基金会教材建设研究项目“基于CBE项目驱动式的C语言程序设计教学模式探索与研究(NKJ201203023);国家自然科学基金(61063028);甘肃省科技计划资助项目(No.145RJYA288);甘肃农业大学教学研究项目(GSAU120226,GSAU120229);甘肃农业大学盛彤笙科技创新基金资助项目(GSAU-STS-1322)

1 引言

当前,我国农业正处在由传统农业向现代农业转变的时期,用信息技术对农业生产的各种要素进行数字化设计、智能化控制、科学化管理,能够大幅度减少农业消耗,降低生产成本,提高产业效益.根据教育部“面向21世纪教育振兴行动计划”提出的以培养人的创新思维和创新能力的创新教育来适应日新月异的科技发展和社会需求的有关精神,结合高等农业院校的具体情况,以创新教育为导向、深化农业院校学生计算机程序设计能力培养的教学体系建设为目标,对高等农业院校程序设计类课程人才培养模式进行了探索和改革.

程序设计类课程是高校计算机教育的基础与重点,是一门对理论与实验开展同步教学的课程[1].在不远的将来,程序设计和数学建模与微积分、高等代数、大学物理一样,成为所有大学的核心基础课程[2].程序设计类课程具有知识点多、概念复杂、规则繁多、使用灵活、自由度大、抽象度深等特点[3-5].我校生源中农村学生居多,基础教育阶段接触计算机较少,大学低年级阶段急需大力普及计算机基础知识、培养计算机应用能力.作为农业院校,程序设计类基础课程培养人才的目标要更明确,方法和手段要更有效,因此培养具有“宽基础、强特色、高素质、实用性”复合型实践人才是非常有必要的.

在这个培养目标基础上,学校按照国家精品课程指标体系要求,突出创新意识和能力培养的先进教育思想,强化教学全过程管理,以把程序设计类基础课程建设成为能够反映本学科领域的最新研究成果、具有农业院校鲜明特色的示范性精品课程为目标,在教学内容、教材及教学资源建设、教学方式等关键环节进行了综合改革,形成了2+2+3的实践人才培养模式,在实践人才体系培养方面取得了显著成效.

2 基于CBE项目驱动式的程序设计类实践人才培养模式

CBE(Cometency Based Education)的涵义是“职业综合能力为基础的教学模式”,简称能力教育[6].CBE教学模式的特点是教学方法多样化,一切以学生为中心,强调在实践中学习,在学习中实践[6].CBE的特点恰好和我校实践人才培养目标相符合,学校以“十二五规划”建设为契机,融合CBE教学特点,建立程序设计类基础课程实践人才培养模式,结合高等农业院校的实际,以岗位必须的知识、技能、行为意识为从业能力的基础,以能力表现为教学目标,教学进程的基准,注重“学”并以学生的学习为中心,不受时间和环境限制组织课程与实施教学,形成了2+2+3的实践人才培养模式.

2.1 理论教学内容及实验教学内容相统一的建设体系

2.1.1 理论教学内容课程体系建设

随着我国经济持续快速增长和信息技术的飞速发展,我国走新型农业现代化道路对培养新一代具有信息素养和计算科学创新能力的农业科技创新人才提出了迫切需求.以这种社会需求为导向,对农业院校程序设计类课程体系建设进行探索和改革,构建“分层次、分专业”的课程体系,贯通三大层次全校五十三个农业本科专业培养方案,将程序设计类课程按专业分三类开设,农医类专业开设VB、文史类专业开设VFP、理工类专业开设C,实现了因材施教、以社会需求为导向的目的.教学内容强调课程内多知识点融合、跨课程知识体系融合、已学与拓展知识融合、实验与课外研究融合等四方面,做到了从点到面、从单元到系统、“引导入门-基础系列-专题研究-科学研究”的循序渐进的教学过程.

2.1.2 实验教学内容体系建设

通过实验进一步理解程序设计的基本知识,通过理论和实践教学,使学生较好地掌握程序设计语言各方面的知识,掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用程序设计集成环境进行程序设计语言的编写、编译与调试,达到全国计算机等级无纸化考试的要求.为配合理论教学我们将实验分为以下三种类型.第一类是基础与验证型实验,主要涉及该课程的相关知识点;着重培养学生逻辑分析的能力,学会使用流程图、伪代码描述问题,学会使用计算机的处理方法思考问题,把计算机语言的教学内容从数学游戏的圈子转变到社会实践中的计算机应用,培养和训练学生分析、解决实际问题的能力.第二类是设计与开发型实验,有效培养了学生综合应用知识与技术的能力,培养学生带着问题自主学习、寻找答案的能力.实际中结合学生信息管理系统、数值数据处理、信息数据管理等开发案例展开实验.第三类是研究与创新型实验,针对部分兴趣高、编程能力强的学生设计该类实验,重在培养学生的研究能力与创新意识.采用软件工程的方法引导学生进行分析和设计,实现完整的小型应用系统,主要以“挑战杯”、“创新杯”竞赛、SRTP项目及毕业设计的形式进行开展.

2.2 理论教材及实验教材相统一的教学资源建设

2.2.1 理论教材建设

根据《普通高等教育农业部“十二五”规划教材》的要求,并按照2013年全国计算机等级考试调整方案要求,对教材每个知识点按照“提出问题—解决问题—归纳分析”三部曲进行建设.对每个实例按照“提出实例—程序设计分析—参考程序—程序运行结果—程序分析—注意事项”几个步骤进行编写.在各知识点中,增加了一些兼具趣味性和实用性于一体的程序实例,并补充了代码风格、函数封装、程序调试、常见错误分析等现代程序设计必备的知识.这些资源通过整合后上传至网络教学平台成为网络课程,由授课教师按课程进度授权给学生使用.

2.2.2 实验教材建设

为配合等级无纸化考试要求,实验教材运行环境建立在等级考试集成开发环境下,增加了无纸化上机测试题,包括选择题、程序改错题、程序填空题和程序设计题四大部分.教材建设过程中,收集整理了大量教学资源,注重立体教材建设工作,教材全部配套编写了多媒体课件、讲义和教案,习题提供标准答案.配套课件实现“文字分层显示、算法动态演示”的功能,增强图文并茂的特点.

2.3 CBE教学方式、项目驱动教学方式及双语教学方式三层次实践人才培养模式

强调实践对理论教学的指导作用,将企业作为实训基地,建立校企长期合作,采取校企互动的方式,针对性地培养既具有扎实的基础理论知识,又能解决实际工程问题的复合型、实用型人才.实践项目内容从知识方法应用、综合设计到研究探索循序渐进,深化实验项目的层次性和工程背景,实现以工程为背景、研究方法多样、综合应用所学知识、对实验进行研究探索的程序设计类实践教学体系,从而使程序设计类课程体系更加适应社会需求,更加灵活应变.实践教学体系如图1所示.

充分利用现代化教学手段,注重各种立体化教学资源的积累和充分利用,采用项目案例递进式实训过程LTM(Learning Training Mentoring)的循序渐进的模式提高实训质量,利用网络教学平台优化课程答疑和反馈的方式和途径,改革课程的考核方式使其更有利于检验学生的能力,广泛利用网络教学平台帮助学生课后学习和自主学习,培养学生的学习能力.具体教学方式如下,教学过程见图2所示.

2.3.1 CBE教学方式

第一层次是通过互动式和案例教学法,在教师的指导下根据教学目的和要求,运用多种形式启发学生独立思考,根据遇到的实际问题,进行综合分析研究,提出见解,做出判断和决策,从而提高学生分析问题和解决问题的能力;第二层次是基本操作技能训练和基本工作能力培养,培养学生具有严谨的科学态度与规范的操作方法,采用仿真与实际相结合的手段,既加强了学生对基础理论知识的理解,又学会了知识的综合运用,使学生能运用掌握的理论知识来解决实际问题;第三层次是实践和创新能力的培养,在实习基地实现基本技能转化现实的工作方法和工作能力,实现“校园人”向“社会人”角色转变.

2.3.2 项目驱动教学方式

从农业院校实际需求出发,项目力求既结合实际,又能涵盖课程教学的要求.教师提出学生自学和开发、研究的进度,设计教学进程,以程序编制牵引理论教学,以项目开发和程序的拓展驱动教学.通过项目和实例讲授程序设计的基本概念、基本方法,把重点放在解题思路上.从开始就使学生将注意力集中在所解决的问题领域,从具体实例理解程序设计类课程的开发特点和程序总体框架,通过实例本身既学会某一类问题的解决方法和算法设计,又掌握了程序设计类课程的基本语法、语句.即在程序设计类课程的环境下,针对农业类实际问题进行分析、构建数学模型、设计算法、最后编程实现.

在学习的不同阶段设计不同针对性的实例,主要包括以下三个阶段.第一,开始阶段设计的实例是将学生的注意力吸引在程序设计类课程的总体功能和程序的总体框架上;第二,在学习中间阶段设计针对某些数据类型或应用特点的实例、针对模块分解和组合的实例、针对算法分析与设计的实例等;第三,在学习的后期进行综合课程设计,将所学知识融会贯通.在设计实例的同时还需要调整课程的教学模块,有些章节知识需提前引入,如函数、文件等,先不深入学习,仅作为宏观分析问题解决问题的工具,可在后续实例学习过程中逐步加深理解和应用.

2.3.3 双语教学方式

双语教学是贯穿于以上各教学方式中的.作为程序设计语言,其语法表达采用的就是简单而含义明确的英文单词,且上机环境也为英文界面,二者关系密不可分.程序设计课程教学中加入适当的计算机及程序设计方面的英文专业词汇,部分或全部教案采用英文形式,有助于学生专业英语水平的提高和尽快熟悉、适应以英文信息为基础的软件开发环境.

3 教学成效

程序设计类基础课程实践人才培养模式在全校推广的几年内,教学成效显著,具有显著的教学示范效果.(1)课程教学质量评价高,教学效果好.由教务处组织的学生评教结果显示,课程组的所有教师近3年的评价平均成绩均在90分以上.(2)凝练并更新教学内容,融入农业院校的特色先后编写出版了8部教材,其中《C语言程序设计》两部教材先后被列入《普通高等教育农业部“十二五”规划教材》,“VB程序设计”和“C语言程序设计”课程先后被评为甘肃农业大学校级精品课程.按照省级精品课程建设要求,搭建了程序设计类课程学习网站,并开发了程序设计类课程学习论坛.(3)学生学习效果整体得到提升.我校学生参加全国计算机等级考试(二级)的过关率逐年稳步上升,并在全省高校中名列前茅;参加全国计算机等级考试(三级、四级)的学生人数逐年增加,过关率也有所提高.培养模式应用推广期间,课程组教师负责指导学生参加学校SRTP项目50余项;指导学生参加第一、二、三、四届甘肃省“创新杯”计算机应用技能大赛,共获奖项30余项,参与学生90余人;指导学生参加全国大学生数学建模竞赛,共获奖项8项,参与学生24人;指导学生参加全国大学生电子设计竞赛、共获奖项3项,参与学生9人;指导学生参加甘肃省“挑战杯”课外科技学术作品竞赛,共获奖项3项,参与学生10余人;近三年内课程组成员指导学生累积获得省级以上奖励120余人次.我校生源中农村学生居多,基础教育阶段接触计算机较少,但在全国计算机等级考试中通过率已连续多年高于全省高校平均水平.

4 结束语

高等农业院校程序设计类基础课程以培养实践人才为根本目标,将CBE教学模式和程序设计类课程教学结合起来,形成了特色鲜明的2+2+3的实践人才培养模式,全校推广后教学成效显著,具有显著的教学示范效果,为高等农业院校培养具有“宽基础、强特色、高素质、实用性”复合型实践程序设计人才奠定了基础.

参考文献:

(1)付沙,薛娟,陈智俐.计算机程序设计类课程实验教学改革与研究[J].计算机时代,2010(4):56-58.

(2)习慧丹,胡洋.高校计算机专业程序设计课程教学改革探讨[J].信息技术与信息化,2012(3):37-39.

(3)乔淑云,黄刚.程序设计类课程教学改革与计算思维之培养[J].计算机教育,2012(10):17-23.

程序设计教学论文篇11

2实验对象与分析方法

实验对论文作者所授课的广西师范大学物理教育专业4届5个班本科生,其中1997级81人、1999级78人、2000级65人、2001级1班59人、2001级2班55人,选取大学一年级的力学、热学的期考成绩,力热课程开设之后的计算机程序设计课程的段考、期考成绩。利用相关系数法反映计算机程序设计课程成绩与力学、热学课程成绩之间线性关系的密切程度[7,8]。

3实验结果

分析所选取的计算机程序设计课程成绩比例分布,考虑优秀、不及格两端的学生人数相对较少,进行相关分析的误差较大,而良好、中等、及格分数段的学生人数较多,因此将分数S分为优良分数段(S≥80)、中等分数段(70≤S<80)、及格与不及格分数段(S<70)三段,三段中的学生人数相差不大,分别计算计算机程序设计课程成绩全部、优良分数段、中等分数段、及格与不及格分数段与力学、热学课程相对应成绩的相关系数,结果见表1、表2。可以看出,表中所有相关系数均为正值,除个别外主要分布在0.40~0.80之间,绝大部分相关系数均大于0.45,大于0.8的相关系数很少,没有大于0.9的相关系数,说明力学、热学课程成绩对计算机程序设计课程成绩有一定的影响,但影响并不是特别显著,有一定的正相关性,但相关性并不是特别高,计算机程序设计课程成绩还受其它因素的综合影响。

程序设计教学论文篇12

学生发展核心素养是回答“培养什么样人”的问题。计算机程序设计有助于人们具备基本的信息素养、逻辑推理能力和计算思维[1],是“怎样培养人”。因此,在高校人才培养中,此类课程一直都是理、工、管等专业的通识课程。然而,结合学生发展核心素养的计算机程序设计教学研究相对较少,现有文献大都侧重个别素养,不够深入和系统[2-3]。如何真正从学生自身的发展出发,最大程度地发掘计算机程序设计课程促进学生发展核心素养,是该类课程改革的重要方向。

一、计算机程序设计教学与学生核心素养的关系

根据《中国学生发展核心素养》的阐述,以培养“全面发展的人”为核心。核心素养分为文化基础、自主发展与社会参与三个方面,综合表现为人文底蕴、科学精神、学会学习、健康生活、责任担当、实践创新六大素养,具体细化为国家认同等十八个基本要点[4]。计算机程序设计能够培养学生的逻辑推理、计算思维和语言表达等方面的能力,它是重要的基础科学和思维科学,其思想方法具有一定代表性[5]。因而,此类课程与学生发展核心素养所包括的文化基础、自主发展与社会参与这三个方面均具有直接的联系。

(一)计算机程序设计与学生核心素养之文化基础

文化基础,重在强调能习得人文、科学等各领域的知识和技能,掌握和运用人类优秀智慧成果,涵养内在精神,追求真善美的统一,发展成为有宽厚文化基础,有更高精神追求的人[6]。文化基础要求学生具备基本的人文底蕴和科学精神。成功的程序设计作品往往蕴含着宽厚的文化基础。例如微软的操作系统、谷歌搜索引擎,简洁交互界面的设计融合了艺术学、美学和心理学等多种文化元素,而背后是算法赖以支撑的数学。另一个典型的例子是ACM国际大学生程序设计大赛。该大赛要求学生运用计算机、程序设计语言、数学、物理等学科知识和技能,结合程序设计解决实际问题。竞赛中时刻要求学生保持理性思维、批判质疑、勇于探究等科学精神的基本要点。既然成功的程序设计作品蕴含着宽厚的文化基础,那么,教授学生学习程序设计,就是利用计算机程序设计语言,综合其他学科知识,解决实际问题,培育学生宽厚的文化基础。有力的证明如广受中小学学生喜爱的Scrath编程工具,其发明团队领袖、麻省理工学院MitchelResnick教授一直倡导“编程化学习”,即把程序创造性地作为学习工具去承载丰富多彩的内容。例如,把它当作工具载体传授数学知识和讲解自然科学等。这种转变将对学生的核心素养培养起到重要作用。

(二)计算机程序设计与学生核心素养之自主发展

自主发展,重在强调学生能有效管理自己的学习和生活,认识和发现自我价值,发掘自身潜力,有效应对复杂多变的环境,成就出彩人生,发展成有明确人生方向、有生活品质的人。自主发展包括学会学习和健康生活两大素养。计算机程序设计语言发展至今已有几十种,且新的程序设计语言还在不断地涌现。教师不可能将所有程序设计语言教授给学生,而绝大部分学生后续课程和工作的内容都不是当前学习的程序设计语言。这就要求教师在计算机程序设计课程的教学过程中,要培养学生的理论基础、学习习惯、研究方法和独立思考、解决问题的能力,强化学生的自主学习能力。学生应从学习模式、时间管理和学习规划技巧等方面针对自身特点采取一系列学习活动。例如,许多大学生在学习期间没有给自己设定明确的目标,就可能容易沉迷于网络游戏中,甚至自身的性格也会变得沉默寡言。通过程序设计课程,学生将理解一个基本原理:一切网络游戏、智能手机应用的背后都是程序员所编写的代码。大学生不应该受程序控制,应有自己的人生规划,要能自我管理,健康生活。笔者的一名学生,在学习改革后的计算机程序设计课程时,就培养了非常强的自律意识和自我管理能力,并针对学生长时间玩游戏的问题,开发了一款屏幕自锁程序,提醒大家不要长时间沉溺于网络游戏。

(三)计算机程序设计与学生核心素养之社会参与

社会参与,重在强调能处理好自我与社会的关系,养成现代公民所必须遵守和履行的道德准则和行为规范,增强社会责任感,提升创新精神和实践能力,促进个人价值实现,推动社会发展进步,发展成为有理想信念、敢于担当的人。社会参与涵盖了担当责任和实践创新两大素养。当代社会,隐私保护和信息安全越来越重要。因此,程序设计课程不仅应教授学生如何设计程序,同时也应树立他们的信息社会责任,即不能编写计算机程序窃取他人的个人信息和隐私,不能散布和传播危害国家、社会安定的言论和病毒,不能参与和组织网络盗取、诈骗他人财务等行为和活动。另外,计算机程序设计是一项思维创新的实践活动,此类课程一般遵循由简单到复杂的循序渐进式教学,逐步强调在动手实践、不断挑战中培养实践创新能力,以解决人们社会生活、生产中的实际问题为教学目的。

二、基于核心素养的计算机程序设计教学策略

著名心理学家和教育学家维果茨基所创立的社会文化历史理论对世界心理学和教育学产生了深远的影响。他的社会文化历史理论包括“人是社会历史产物”和“最近发展区”两大重要概念。

(一)人是社会历史产物与“分享―交流―互助”学习社区

维果茨基在其社会文化历史理论中指出“人从出生起就是一个社会实体,是社会历史产物”,学习行为是在人际交往活动中产生和发展起来的。在学生学习过程中,教师和同伴是学生学习的促进者,而合作学习对学生的认知发展具有重要的促进意义。在课程教学实践过程中,我们建设“分享―交流―互助”的学习社区,为学生搭建分享与交流学习过程和程序设计作品的互动平台。例如,在新一轮课程改革中,我们搭建了有助于学习程序设计的网络互动平台,并逐步发展结合线上、线下的程序设计学习社区,为学生学习程序设计提供了学习资源分享、互商互助的学习环境,以及程序设计作品展示和评价和交流的平台。线上社区的建立可以依托博客、微信群、QQ群等软件工具。此外,线上平台的建立使师生之间、生生之间在课下也可以不受时空限制地相互学习和相互启发,尝试解疑。因此,通过“分享―交流―互助”的方法,也有助于培养学生社会参与的意识和能力。

(二)最近发展区与“使用―修改―创作”教学方法

“最近发展区”是维果茨基理论体系中影响最深远的概念之一。“最近发展区”中明确阐释了教学与学生发展之间的关系是“良好的教学走在发展前面并引导之”。教学应该落在学生的最近发展区内,这样才能最大限度地发挥教学对学生发展的促进作用。在教学实践中,我们采用“使用―修改一创作”的教学方法,循序渐进地帮助学生从了解和掌握知识,到自主创新。例如,在新一轮课程改革中,我们让学生从使用、修改他人的程序设计作品中学习程序设计,了解并掌握程序设计的基本原理和概念,也帮助他们从中发现一些疑问,以供后期自主学习和创新。以教授“排序”算法的课程内容为例,笔者在介绍了排序的概念和常用的选择排序算法后,把完整程序共享在交流平台上,让学生参与排序算法的“再创作”。在这一过程中,一些学生发现选择排序算法对大多数杂乱无序的序列进行排序时,由于时间复杂度不高,算法性能较好;但对极端序列排序时,时间复杂度就高了,算法的收敛性就差。对此,他们改进了选择排序算法并把程序代码编写出来,从“使用”和“修改”过渡到了“创作”。“使用―修改一创作”的教学过程还有助于促进学生培养自主学习的能力。仍然以“排序”算法为例,一些学生课后自主探究了其他排序算法,例如冒泡排序、快速排序、希尔排序和堆排序等,其中有些学生在理解了这些排序算法的原理后,自行设计程序并制作了微课视频和大家共享。

三、结论

本文从文化基础、自主发展和社会参与三个方面论述了计算机程序设计课程与学生发展核心素养之间的关系。以维果茨基的社会文化历史理论为指导,鼓励学生采用“使用―修改―创作”的方法,并依托“分享―交流―互助”的学习社区模式,发展学生的核心素养。计算机程序设计课程与学生发展核心素养相结合的改革之路,为走出灌输模式的知识教育,提供了可行的实践方法。

参考文献

[1]WingJ.M.Computationalthinking[J].CommunicationsoftheACM,2006,(3).

[2]王旭卿.从计算思维到计算参与:美国中小学程序设计教学的社会化转向与启示[J].中国电化教育,2014,(3).

[3]魏烁佳.科学精神引领下的创新思维培养―――以程序设计为教学载体[J].中国信息技术教育,2017,(5).