“程序设计基础”精品课程建设
程序设计基础教程课程设计

程序设计基础教程课程设计1.课程设计概述随着信息化和数字化的快速发展,计算机技术的普及程度越来越高,而计算机程序设计作为计算机科学中的重要基础学科,具有越来越重要的地位。
为了更好地适应社会发展的需求,提升学生应用计算机程序设计的能力,本次课程设计方案拟定了以下目标:•熟悉计算机程序设计基本概念和基本操作;•掌握常用的程序设计语言;•学会利用现有工具和资源实现编程应用;•提高程序设计和调试能力。
此课程设计的内容主要以C语言为主,包括基本数据类型、算术运算、条件语句、循环语句、函数、指针等内容。
2.教学方案2.1教学目标通过此次课程的学习,学生需要达到以下目标:•理解程序设计结构和基本语法;•掌握程序设计的基本方法和技巧;•能够独立设计和编写简单的程序。
2.2教学方法为了提高教学效果,本课程采用以下教学方法:•讲解理论知识并配合实例讲解;•演示实例程序,并进行详细分析和解释;•配合实验教学,巩固所学知识,提高程序设计能力;•引入大量练习和编程实践以加强学习效果。
2.3 教学内容本次课程包含以下内容:•C程序设计基础•常量、变量及其数据类型•运算符和表达式•条件语句、循环语句•数组和指针•函数、结构体2.4 实验教学在课程学习过程中,将为学生设置多项实验作业,以加强学生的实践技能。
实验教学的具体要求如下:•学生需要按照课程进度,按时完成实验;•每个实验教育的主要内容由教师在课前准备实验指导书发送给学生进行预习;•实验教育负责教师需定期检查学生进度,对学生学习情况进行综合评定,并及时反馈意见。
2.5 考核方式为了保证学生的学习效果,我们将通过以下方式进行考核:•平时表现考核;•课堂笔记;•课堂练习分数;•实验作业分数。
3.课程进度本次课程根据授课计划将设置为20个学时,下面是具体的时间表:学时内容1 C程序设计基础2 常量、变量及其数据类型3 运算符和表达式4 条件语句、循环语句5 数组和指针6 函数7 函数8 函数9 复习和总结学时内容10 基于数组的简单程序设计11 基于数组的简单程序设计12 基于指针的简单程序设计13 基于指针的简单程序设计14 基于结构体的简单程序设计15 基于结构体的简单程序设计16 基于文件的程序设计17 基于文件的程序设计18 复习和总结19 课程测试及考核安排20 课程测试及考核安排4.课程总结本次课程的目标是让学生了解程序设计基础,并能够运用所学知识解决实际问题。
“程序设计基础”精品课程建设

“程序设计基础”精品课程建设摘要:从课程体系、教学方法和手段、实践教学、考核评价、实践创新能力培养等几个方面的改革实践阐述“程序设计基础”精品课程建设方案。
关键词:程序设计基础;精品课程;教学改革;实践“程序设计基础”是计算机科学与技术专业的主干专业基础课,是所有后续软件专业课的基础和支撑,在计算机整个课程体系中起着举足轻重的作用。
本课程是一门实践性很强的学科基础课,不仅要学习基本理论知识,更要注重上机实践,通过上机实践掌握高级语言的特征,巩固所学的理论知识。
“程序设计基础”经过多年的教改实践,取得了令人满意的成绩,2004年被评为校级精品课程,2005年入选首批自治区级精品课程[1-2]。
本课程开设以来,课程教学团队一直致力于教学改革,通过多年的探索和实践,确立了课程建设的指导思想—既要培养学生解决问题(算法与程序设计)的能力,又能比较熟练地掌握一种程序设计语言(C/C++)。
本课程以程序设计方法为纲,较为系统全面地介绍了程序设计发展和程序设计的基本方法,其目的是让学生掌握程序设计的基本理论和基本方法。
在讲授过程中,教师特别注意介绍有关独立于任何特定编程语言的算法概念和结构,强化训练程序设计的经验和相关技术,把重点放在程序设计实践及培养学生分析问题和解决问题的能力训练方面。
1课程建设方案1.1完善程序设计类课程的课程体系程序设计基础包含两方面教学内容:程序设计的基本方法和程序设计语言入门。
因此,教师在课程讲授中,既要培养学生解决问题(算法与程序设计)的能力,又使他们能比较熟练地掌握一种程序设计语言(C/C++)。
本课程以程序设计方法为纲,较为系统全面地介绍了程序设计,其目的是让学生掌握程序设计的基本理论和基本方法。
同时,以C/C++作为典型的程序设计语言,介绍结构化程序设计和面向对象程序设计两种编程思想。
教师在讲授过程中,特别注意介绍有关独立于任何特定编程语言的算法概念和结构,强化训练程序设计的经验和相关技术,把重点放在程序设计实践方面,以培养学生分析问题和解决问题的能力方面。
高职Java程序设计精品课程建设

高职Java程序设计精品课程建设【摘要】本文提出了高职Java程序设计课程的设计理念及思路,并根据精品课程建设的要求调整了教学内容、教学方法,提出了高职Java程序设计课程的教学改革及实验建设的思路。
【关键词】高职高专Java程序设计建设Java是一种面向对象的程序设计语言,Java程序具有“一次编译,到处运行”的特点,Java具有不依附于平台、可靠性、安全性、可移植性、动态性、多线程等特性。
随着经济的发展及互联网的广泛应用,对Java程序设计的人员需求越来越旺盛。
但高职学生学制一般为两至三年,而学习Java又必须学习一定的前设课程,如何在较短的教学时间里,结合高职的特点开展Java程序设计课程,需要教师不断探索新的课程改革。
一、课程设计理念及思路Java程序设计是一门实践性很强的课程,根据职业能力要求,可按照工作过程的实际需要来设计、组织和实施课程。
应打破传统先理论、后实践的教学模式,尽早让学生进入工作实践,为学生提供完整的工作过程学习机会,逐步实现从学习者到工作者角色的转换。
课程实施“实行工学交替、任务驱动方式、多元化考核”模式,通过教学组织和实施、考核方式的改革,提高教学效果。
在具体实施中,笔者结合高职教育的特点,对教学目标、教学内容、教学方法等多个方面都进行了创新探索。
一是重点组织教学内容!秉承“实用、够用”的原则,尽量减少抽象理论描述,下力气组织好适合岗位技能需求的、符合高职学生认知特点的理论教学内容,突出应用主线。
二是采取现代教学方法。
理论教学中采用启发式教学法、讨论式教学法、任务驱动教学法等。
实践教学中采用“模拟一扩展”、“项目驱动一双主互动”等教学方法。
三是突出项目实践教学环节。
课程中专门设立了项目开发综合实践教学环节,组织学生以个体为单位进行模拟项目开发,完成相应技术文档的编写,最后答辩验收。
物流产业将成为北部湾区域经济的重要产业之一。
考虑物流信息管理系统的复杂性和综合性,为使学生的专业学习与地方经济发展相结合,并能够更好地掌握行业前沿性知识和技能,以培养地方经济发展急需的应用型人才,因此,把物流信息管理系统设计作为总项目导入课程内容中。
Visual Basic 程序设计” 精品课程建设过程中教学方法与教学手段的研究

发学生利用计算机解决问题能力,而且很少教会学生什么事情可以用计算机解决,怎样有效地使用计算机,计算机在所学的专业中所处的地位等,从而就造成学生觉得计算机学不学习没有太大关系,严重挫伤了学生学习计算机的积极性。
1.2 理论教学与实践教学环节相脱节计算机基础是一门理论与实践结合比较紧密的课程。
理论知识与实践内容相辅相承。
我们在上课的时候会发现这样一种情况,学生上理论课时都能听懂,但是当上实践课程时,需要学生自己操作时就无所适从,使得课堂理论授课和实际动手不能统一,因此学生很难对计算机进行娴熟应用。
1.3 学生差异太大根据各地区发展速度不同,学生在上高中时,计算机水平存在很大的差异,而我们由于师资、教学条件限制,计算机基础教学通常采用统一的教学进度和教学方法,这样就造成两极分化的局面。
对于层次较高的学生,再继续重复计算机基础内容,是很浪费时间的,这就使得学生的学习兴趣和学习积极性受挫;而对于层次较低的学生从来没有接触过计算机,感觉计算机基础内容很难,从而对计算机基础课程产生畏惧,自我放弃。
种种情况都对提高学生计算机应用能力都将产生非常大的影响。
2 计算机基础网络教学模式2.1 计算机网络教学总述计算机基础授课过程中,通常我们认为非常简单的概念和知识,学生们却要花费很长时间和很多精力才能够去理解和掌握,甚至有的学生根本就对此不能理解,从而使得教学效果不好。
究其原因这与计算机本身的特点有很大的关系,计算机有它自己的一套理论体系和技术规范,所以要理解和掌握,单纯采取传统的教学方法来讲授这种高科技的课程,必然会效果不理想。
计算机基础这门课程的授课过程中,采取的是网络教学模式,即集中面授、辅导网络学习、实践指导自由练习1:2:1,这样就使得不同层次的学生都能够根据自己的实际情况进行学习,这样既能够提高学生的学习兴趣,也能够使有基础的学生不再浪费时间,从而解决了计算机基础教学中的问题。
真正锻炼了学生,提高了学生的实际动手能力。
计算机程序设计基础精品课程建设与总结

计算机程序设计基础精品课程建设与总结摘要:精品课程建设是实施质量工程的重要组成部分,文章就课程定位、教学模式、课程内容、教学队伍以及教材建设等方面进行了阐述,深入探讨了计算机程序设计基础精品课程建设的思路。
关键词:精品课程课程建设教学模式1.课程定位及历史沿革程序设计基础是高等学校一门重要的计算机基础课程,是计算机基础教育的基础与重点,高级语言程序设计课程是继大学计算机基础之后的一门必修基础课,属于校级平台的必修课程。
我校的程序设计课程由一系列课程组成,包含了C语言程序设计、Visual Basic程序设计、算法与程序设计、面向对象程序设计以及高级程序设计等五门课程。
其中,前两种程序设计语言类课程面向我校广大非计算机专业学生开设,后三种程序设计语言类课程是我校计算机专业学生的专业基础课程。
虽然高级语言种类不同,但程序的基本思想都是相同的。
并且,程序设计的基本理论及思想不仅仅在计算机科学各领域使用,在其他非计算机专业的计算机辅助教学中也大量运用。
它所讨论的知识内容和提倡的技术方法,不仅为计算机专业后续课程如操作系统、数据库系统、编译原理等课程提供了必要的知识基础,同时,对从事软件开发与设计也有着不可替代的作用,而且为广大非计算机学生,诸如电子控制类、机电类、信息管理类学生提供了必要的基础知识和技能训练。
1997年以前,该课程只是小规模在学校部分专业开设,内容以Basic为主。
1997年成立计算机基础教研室,负责面向全校的计算机基础课程,这时该课程授课语言改为Pascal。
从2001年后,我们以学生专业需求为导向,选择不同的高级语言,以便为后续相关课程服务。
理工类非计算机专业学生学习C语言,文科类学生学习Visual Basic,计算机相关专业采用能支持面向过程方式和面向对象方式的C++语言,计算机专业高年级学生学习Java语言。
至此,按照不同专业需求及不同学生层次设置课程,课程内容不断更新,逐步形成比较完整的系列课程体系。
省级精品课程“程序设计基础”的建设与成效.doc

省级精品课程“程序设计基础”的建设与成效作者:汪世杰赵毅来源:《教育与职业·理论版》2010年第11期[摘要]文章论述了九江学院面向所有专业开设“程序设计基础”课程(其中理工科讲授C程序设计,文科讲授Visual basic 程序设计)的建议。
课程组在课程原建设的基础上,历经三年,对教学内容、教材和教学手段等方面作了进一步的探讨和建设,逐步完善和实现了教学规范化、教材自产化、助教多媒体化、助学网络化、试题生成自动化,从而提高了教学质量。
[关键词]程序设计教学大纲自编教材多媒体课件网上教学系统试题库管理系统[作者简介]汪世杰(1964- ),男,江西瑞昌人,九江学院信息科学与技术学院,副教授,研究方向为计算机教育;赵毅(1965- ),男,江西永修人,九江学院信息科学与技术学院,副教授,研究方向为教育技术。
(江西九江 332005)[基金项目]本文系2007年江西省高校教学研究省级课题“非计算机专业《高级语言程序设计》优质课程建设”的研究成果之一。
(课题编号:JXJG-07-17-71)[中图分类号]G642.3[文献标识码]A[文章编号]1004-3985(2010)17-0127-02人类第一台计算机诞生,催生了计算机语言。
计算机语言不断繁衍与发展,从机器语言、汇编语言到过程语言FORTRAN,再到高级语言BASIC和C,一路成长,一路精彩,最光芒四射的是靠BASIC起家的比尔·盖茨,其巨大的成功激发了世人学习程序设计技术的热情。
九江学院(以下简称“我院”)自1985年开始开设程序设计课程,当时仅仅面向计算机专业,语言是BASIC。
从1994年起至今,我院面对所有理工科学生开设“高级语言程序设计”课程,先讲授BASIC语言、QBASIC语言,再讲授C语言。
随着程序设计技术的发展和全面提高学生素质的需要,突破文理界限,2003年我们在文科学生中开展“Visual Basic程序设计”教学。
程序设计基础的课程设计

程序设计基础的课程设计一、课程目标知识目标:1. 让学生掌握程序设计的基本概念和原理,如变量、数据类型、运算符、控制结构等。
2. 使学生理解程序设计的流程,学会编写、调试和运行简单的程序。
3. 引导学生了解程序设计中的常用算法和解决问题的策略。
技能目标:1. 培养学生运用所学知识编写简单程序的能力,提高逻辑思维和编程技巧。
2. 培养学生运用调试工具找出程序错误并修正的能力,提高解决问题的能力。
3. 培养学生合作学习和团队协作的能力,学会共同分析问题、讨论解决方案。
情感态度价值观目标:1. 激发学生对程序设计的兴趣,培养学习编程的热情和积极性。
2. 培养学生勇于尝试、不怕失败的精神,提高面对困难的勇气和毅力。
3. 引导学生认识到程序设计在生活中的应用和价值,增强信息素养和创新能力。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握程序设计基本知识的基础上,提高编程能力和解决问题的能力,培养学生对编程的兴趣和热情,为后续学习打下坚实基础。
课程目标具体、可衡量,以便教师进行教学设计和评估。
二、教学内容本章节教学内容围绕程序设计基础展开,包括以下部分:1. 程序设计基本概念- 变量和常量的概念及其应用- 数据类型和数据表示- 运算符和表达式2. 控制结构- 顺序结构- 选择结构(if-else语句)- 循环结构(for、while语句)3. 算法基础- 算法的概念和描述方法- 常见算法策略(顺序查找、二分查找、冒泡排序等)4. 编程实践- 编写简单程序,解决问题实例- 调试程序,找出并修正错误- 代码优化,提高程序性能5. 课程项目- 团队合作,共同完成一个程序设计项目- 项目过程中,学会分析问题、设计算法、编写代码和测试教学内容根据课程目标制定,涵盖教材相关章节,确保科学性和系统性。
教学进度安排如下:- 第1-2课时:程序设计基本概念- 第3-4课时:控制结构- 第5-6课时:算法基础- 第7-8课时:编程实践- 第9-10课时:课程项目教学内容和进度安排旨在使学生扎实掌握程序设计基础知识,培养实际编程能力,为后续学习打下坚实基础。
《c语言程序设计》精品课程建设刍议

成 良好编程思维 , 是《 c语言程序设计》 课程建设过程中面 临的主要问题。 为此, 笔者所在学院启动 了《 c语言程序设 计》 精品课程建设工作 , 先后经历 了以下三个阶段。 《 C语言程序设计》 精品课程建设 第一阶段 : 2 0 0 6 ~ 2 0 0 7 年, 《 c语言程序设计》 作为计算 机相关专业的专业基础课的重要地位逐步确立 , 并根据实 际工作需要修改了教学大纲和实训教学体系 , 充实了几名 计算机相关专业毕业的年轻教师 , 师资队伍建设取得实质
为: 一 是 学生初 次 接触 编程 语言 , 没有 任何 基 础 , 就 立刻 接 触 到 大量 的 新名 词 、 新 概念 、 新 规则 , 让 学 生难 以接 受 ; 二
基于 工作 过程 的教 学模 式 。 课 程前期 将真 实 的开发 案
例简化为易于被学生接受的实例 , 讲授的 目的主要是让学 生夯实基础 , 熟悉开发工具的使用 , 课 程完全 以实际工作 要求训练学生。 案例教学 。 课程摒弃“ 提出概念 , 解释概念, 举例说明” 的传统 的教学方式 ,转变为以案例作为重要载体组织教 学, 通过案例“ 提 出问题 , 介绍解决问题的方法 , 归纳必要 的结论和概念” , 从而使学生获取全面的知识。 课程的案例 教学采用滚动拓展的模式 , 首先精选出一个典型的但 比较 简单 的案例 , 然后 , 在此基础上加 以扩展 , 一次只加一个知 识点 , 逐步形成一个知识链条 , 使学生在知识 的逐步扩展 中, 慢慢地建立起 自己的知识体系结构。课程案例 的选取 和改造 , 同时兼 顾针 对性 、 知识性 和趣 味性 。 比如 在编 程案 例 中嵌入学生 自己关心的名字 , 加入颜色 、 图形等学生比 较感兴趣的元素等 , 有效地调动了学生的学习兴趣。 任务驱动式教学模式。 课程将整个教学过程分解为若 干个任务 , 学生在环环相扣的任务驱动下完成学习和操作 过程。例如 , 在教学过程中引入“ 学生成绩管理系统 ” 的设 计开发 , 在实训阶段要求学生独立设计“ 学生成绩管理系 统” 。 让学生既有 明确 的学习任务和目标 , 并配备具体 的编 程案例帮助学生模仿和学习。在“ 任务驱动” 的过程 中, 鼓 励 学 生 自主 的发挥 , 自主 的创 新 , 并 在 随后 的考 核 中 , 对学 生的创新给以较高的评价和肯定。 使学生不再感觉编程是 件深不可测的事情 , 收到了很好的教学效果。 理论与实训相结合。 课程的理论与实践教学实现了有
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“程序设计基础”精品课程建设摘要:从课程体系、教学方法和手段、实践教学、考核评价、实践创新能力培养等几个方面的改革实践阐述“程序设计基础”精品课程建设方案。
关键词:程序设计基础;精品课程;教学改革;实践“程序设计基础”是计算机科学与技术专业的主干专业基础课,是所有后续软件专业课的基础和支撑,在计算机整个课程体系中起着举足轻重的作用。
本课程是一门实践性很强的学科基础课,不仅要学习基本理论知识,更要注重上机实践,通过上机实践掌握高级语言的特征,巩固所学的理论知识。
“程序设计基础”经过多年的教改实践,取得了令人满意的成绩,2004年被评为校级精品课程,2005年入选首批自治区级精品课程[1-2]。
本课程开设以来,课程教学团队一直致力于教学改革,通过多年的探索和实践,确立了课程建设的指导思想—既要培养学生解决问题(算法与程序设计)的能力,又能比较熟练地掌握一种程序设计语言(C/C++)。
本课程以程序设计方法为纲,较为系统全面地介绍了程序设计发展和程序设计的基本方法,其目的是让学生掌握程序设计的基本理论和基本方法。
在讲授过程中,教师特别注意介绍有关独立于任何特定编程语言的算法概念和结构,强化训练程序设计的经验和相关技术,把重点放在程序设计实践及培养学生分析问题和解决问题的能力训练方面。
1课程建设方案1.1完善程序设计类课程的课程体系程序设计基础包含两方面教学内容:程序设计的基本方法和程序设计语言入门。
因此,教师在课程讲授中,既要培养学生解决问题(算法与程序设计)的能力,又使他们能比较熟练地掌握一种程序设计语言(C/C++)。
本课程以程序设计方法为纲,较为系统全面地介绍了程序设计,其目的是让学生掌握程序设计的基本理论和基本方法。
同时,以C/C++作为典型的程序设计语言,介绍结构化程序设计和面向对象程序设计两种编程思想。
教师在讲授过程中,特别注意介绍有关独立于任何特定编程语言的算法概念和结构,强化训练程序设计的经验和相关技术,把重点放在程序设计实践方面,以培养学生分析问题和解决问题的能力方面。
程序设计基础课程的学习效果直接关系到许多后续课程的学习,在课程改革与建设的过程中不但要关注这一门课程,还要考虑到与其关联的许多课程,甚至覆盖到与其有内在联系的整个课程群。
所以,软件类课程的发展方向必然是从单一走向系列,进一步建立完善的课程体系,发挥其整体优势。
笔者以“程序设计”为主线,从程序设计基础、数据结构、可视化编程、网络编程等相关的课程入手,进行课程体系改革,逐步完善程序设计类课程体系。
1.2改革教学方法和教学手段我们围绕程序设计的关键技术,采用“精讲多练”的教学方法,并辅以多种媒体进行教学,将PowerPoint课件与专业教学软件相结合,大大降低教学难度。
此外,我们在教学中使用网络教学平台,通过平台提供教学大纲、实验大纲、课件、学生参考书和例程源代码等教学资源,学生可以随时下载教学资源、软件工具以及辅导材料等,了解课程学习的各项信息,提交作业,查看作业情况和成绩等。
课程网络平台还提供了自测题和留言板,方便师生课外的交流与互动。
1.3加强实践教学环节计算机科学与技术专业不同于传统意义上的理学各专业,计算机技术更接近于工程技术科学,把解决实际问题放在首位。
因此,对我国大多数学校的计算机科学与技术专业人才培养目标,应更加注重培养学生的动手实践能力[3]。
为了加强学生的动手实践能力,我们在以往的课程实验的基础上,又增加了课程设计,以便更好地加强实践教学环节。
课程实验的侧重点是将讲授的原理与实际应用相结合,使学生将书本上学到的知识运用于解决实际问题,培养他们的动手实践能力,能够活学活用书本知识,从而深化理解和灵活掌握教学内容。
而课程设计的工作量则大得多,相当于是对软件综合设计的一次训练,它的整个过程完全等同于软件工程的一次完整训练,包括问题分析、总体设计、详细设计、编码、测试等阶段,这其中还涉及到用户界面的设计、进行多人合作、分析程序的效率、软件工作规范和科学作风的培养与训练,为学生学习后续的软件类课程、理解和掌握程序设计相关技术、编写大型程序打下良好的基础。
1.4建立新的考核评价方法为了体现程序设计基础这门课程的工程实践性,我们以机试取代笔试作为考核评价方法。
早期,教师需要对机试的结果进行事后检查,不但工作量相当大、效率低,而且人为因素较多,造成成绩评定不够客观、公平。
此外,在程序设计课程的教学中还存在一个不能回避的问题,即使在一些学风良好的大学,在上机考试或平时作业中互相抄袭程序代码的现象也较为普遍[4]。
当一个程序被几个或者十几个同学抄袭,要发现抄袭,进而要证明谁是原创,谁是抄袭,都比较困难,十分耗费精力。
因此,通过多年的教学实践,我们发现,考核评价方法既要保证能够考查出学生的实际学习水平(编程能力),又要对那些考试抄袭的学生进行认定和制裁,因此,我们采用了在线评测与抄袭检测两种方法。
1) 在线评测。
在线评测[5](OnlineJudge,简称OJ)是个基于WWW的服务器端软件系统,其主要功能包括:用户注册和管理、题库管理、在线提交和实时评测、网上考试、讨论、邮件服务等。
该服务器上有一个丰富的题库,题目包括ACM/ICPC(ACM 国际大学生程序设计竞赛)所公布的赛题和我院师生自创的与教学内容紧密结合的问题。
将ACM/ICPC的训练思想引入程序设计的教学,鼓励同学们多动手、多动脑、多实践,大有裨益。
我们将OJ上公布的题目作为平时的实验与作业题,以往学生们完成的上机作业,由于缺乏OJ这样的程序代码评测工具,老师人工评测时只能保证学生的程序没有编译错误、能够运行、运行结果大致正确即可,而且人工评测的效率可想而知。
而OJ这种高效、客观的评测工具不仅能够客观、公正地评测学生的程序,而且大大减轻了老师的工作量。
此外,在OJ上做题,学生们会有成就感,看到自己的排名在解决一个又一个问题的过程中在不断上升时,他们就会主动地去完成更多、更难的题目,这是多么自然和愉快的学习过程。
2) 抄袭检测。
检测抄袭就是检测一个程序是否通过对另一个程序的修改而来的。
对提交的程序代码进行相似性检测,能够对这一批程序中的所有程序进行两两比较,找出程序对之间可能存在的相似性代码,并给出两个程序之间相似度的值。
通常,相似度越高程序之间进行抄袭的可能性越大。
但是,毕竟抄袭是一件严肃的事情,所以在认定抄袭的过程中不能只看抄袭检测的结果,这个认定的过程一般分为以下3个阶段[6]进行。
(1) 收集阶段。
我们先将OJ上的题目布置给学生,要求他们在规定的时间内完成。
然后把学生提交的同一题目的代码放在同一文件夹中,采用抄袭检测的工具进行检测。
(2) 分析阶段。
抄袭检测工具对学生的程序代码进行两两比较,将雷同的部分标注出来,并且给出每对程序的相似度,从而为抄袭认定提供了部分依据。
(3) 确认阶段。
对存在抄袭可能的学生进行确认,进一步核实是否真的属于抄袭。
这个过程其实非常容易,只要询问一下其结题思路或结题过程,或者查看一下其平时练习情况即可得出结论。
这种将在线评测与抄袭检测相结合的方法,不仅对于程序设计基础这一门课程有效,其实可以推广到整个程序设计类课程当中。
这样做既能加强学生的动手实践能力,又能考查出学生在编程方面的真实水平,还可以对抄袭的学生起到一定的震慑作用,减少抄袭现象的发生,同时大大减轻了老师的工作量。
1.5注重学生实践创新能力的培养我们在教学模式、教学方法和教学手段改革等方面进行了大胆探索,使学生的实践创新能力得到了很好地锻炼[7]。
1) 改革了各种实验指标。
解决了教师设计多、学生主动创新少,大型实验与课程设计限定条件多、学生自主发挥独立思维余地少的问题。
2) 探索符合国情的大学生培养模式。
推动开辟第二课堂,使学生尽早接触工程实际问题,增强创新意识与能力。
3) 改善程序设计类、算法类课程的实践教学模式。
采用在线评测系统,进行经典算法的验证型实验和小规模设计型实验训练;设计与学科前沿研究相结合的大项目进行设计型和综合型实践训练;作业题和实习题应融合当前最新理论和技术,使其具有前瞻性。
4) 推进大学生科研训练和学科竞赛。
2006年我们首次将ACM/ICPC国际大学生程序设计竞赛引入到内蒙古自治区的大学内,通过学校、学生和社会的积极参与,使我校大学生研究性、探索性学习得到全面展开。
2课程建设的基本理念课程改革与建设是人才培养活动中的一项基础性、长期性工作,决定了人才的培养质量。
在程序设计基础精品课程建设中,我们总结了以下基本理念。
1) 以点带面,完善课程体系建设。
在教学改革与课程建设中,我们以程序设计基础课程作为试点,由于程序设计课程并不是孤立的某门课程,而是一个整体,该课程的学习效果直接关系到许多后续课程的学习。
因此,在课程改革与建设的过程中不但要关注这一门课程,还要考虑到与其关联的许多课程,甚至覆盖到与其有内在联系的整个课程群。
所以,软件类课程的发展方向必然是从单一走向系列,应该建立完善的课程体系,发挥其整体优势。
因此,我们以“程序设计”为主线,对与程序设计相关的一系列课程进行课程体系方面的改革,从程序设计基础、数据结构、可视化编程、网络编程等相关的课程入手,逐步完善程序设计类课程的课程体系。
2) 教学研究与科学研究相结合,运用技术手段解决教学问题。
在教学实践的过程中,我们一方面将在线评测与抄袭检测相结合进行程序设计基础课程的考核评价;另一方面,从教学工作中抽取出部分具有科研价值的问题进行科学研究。
我们先后针对程序代码的在线评测和抄袭检测问题进行深入研究,并获得了多个项目的资助。
因此,我们的教师队伍既是教学团队又是科研团队,不仅积累了大量程序设计类课程教学经验,并通过硕士生培养,形成了一支稳定的科研队伍。
3) 赛课结合,以赛促教,以赛促学。
我们把程序设计大赛的许多理念引入相关课程的教学当中,对课程的教学进行了有益的改革与调整。
将课程的实验模式从过去的验证型向综合设计方向转变;将学生进行分类教学,更好地发现和培养人才,实现因材施教;为学校非计算机专业但又酷爱编程的学生们开设了算法与程序设计这类选修课,使得更多的学生得到这方面的培养和训练。
竞赛的影响经几年来的积淀,无疑从某些侧面触动了原有的专业课程教学体系,对计算机专业课程实践教学体系、内容、方式的改革以及实验室建设都起着推动作用。
3结语通过多年的教学实践,我们针对程序设计基础精品课程进行了教学改革和课程建设,包括课程体系、教学方法和手段、实践教学、考核评价、实践创新能力培养等一整套课程改革与建设方案。
程序设计基础既是计算机专业重要的基础课程,同时也是各类非计算机专业的公共课程之一,该课程的教学成果经过专业课和公共课的教学实践检验,符合教学实际,影响面大,开创性强,受益面广,具有一定的示范性、先进性与推广意义和应用价值。