76范文网
软件项目对比教学法课程设计研究
时间:2019-10-15 13:31:03 来源:76范文网

软件项目对比教学法课程设计研究 本文关键词:教学法,课程设计,项目,研究,软件

软件项目对比教学法课程设计研究 本文简介:摘要:针对C/C++课程设计实践环节教学中存在的问题,提出了软件项目对比教学法,将同一个软件项目通过面向过程C语言和面向对象C++语言分别进行实现,帮助学生充分理解面向过程和面向对象两种不同编程思想的区别,避免学生不理解编程思想,只会编写满足C或者C++语法风格的程序。分析了C/C++对比项目选题的

软件项目对比教学法课程设计研究 本文内容:

摘要:针对C/C++课程设计实践环节教学中存在的问题,提出了软件项目对比教学法,将同一个软件项目通过面向过程C语言和面向对象C++语言分别进行实现,帮助学生充分理解面向过程和面向对象两种不同编程思想的区别,避免学生不理解编程思想,只会编写满足C或者C++语法风格的程序。分析了C/C++对比项目选题的要求,筛选了适合C/C++对比项目开发环节的项目选题,设计了启发式任务书,细化了软件项目评分标准,提高了学生的创新能力和工程实践能力。

关键词:C语言;C++语言;课程设计;软件项目;对比教学

大连理工大学(以下简称“我校”)是经国务院批准的世界一流大学A类建设高校,我校软件工程专业已经通过了国家工程教育认证,致力于培养能解决复杂工程问题的创新性人才。针对软件工程教育认证的相关要求,对C/C++课程设计实践环节的教学方法和评价体系进行了一系列改革措施。C/C++课程设计是软件工程专业必修课“程序设计基础与C程序设计”和“面向对象方法与C++程序设计”两门课程的后续实践环节,也是我校软件工程专业本科生的必修环节,授课对象为软件工程专业大学一年级本科生。C/C++课程设计的目标是通过课程设计软件项目开发训练,培养学生的综合能力,包括编程能力、分析和解决问题的能力、文档撰写能力、创新能力等。学生通过完整项目的开发,可以对先前学习的C/C++语言理论知识有一个更深层次的认识,并在完成项目的过程中,将课本上的理论知识和实际问题相结合,切实提高学生程序设计、编码、测试等工程实践能力。C/C++课程设计可以为后续课程(如数据结构、Java程序设计等)奠定必要的实践基础,通过课程设计,使学生掌握高级编程语言的知识和技术,以及程序设计的思想和方法,具备解决软件工程及应用领域的复杂工程问题的能力。C和C++是分别基于面向过程和面向对象两种完全不同的编程思想的程序设计工具。从以往的教学经验来看,在进入课程设计环节之前,学生可以掌握C语言和C++语言的语法规则,编写出C风格或者C++风格的程序,但并不能很好地理解面向过程和面向对象的编程思想,甚至仍然把编程思想和编程语言混为一谈。而目前C/C++课程设计任务书中规定的项目,只是基于C++语言的图形界面应用程序开发。做完课程设计,学生对于面向过程和面向对象两种编程思想的区别,仍然一知半解。作为夯实专业基础知识的学习阶段,让学生深刻理解面向过程和面向对象两种编程思想的区别,比让学生掌握C++的图形界面开发技术更加重要。针对软件工程教育认证的相关要求,为了提高学生的工程实践能力,对该课程的教学方法和评价体系进行了改革。由于对比教学法是一种广泛应用且效果良好的教学方法,本文将对比教学法与项目驱动教学法相结合,提出一种软件项目对比教学法,将同一个软件项目通过面向过程C语言和面向对象C++语言分别进行实现,帮助学生充分理解面向过程和面向对象两种不同编程思想的区别,避免学生不理解编程思想,只会编写满足C或者C++语法风格的程序。本文对软件项目对比教学的项目选题要求进行了深入分析,筛选出符合大学一年级学生知识结构的项目类别,并提出采用启发式任务书布置课程设计项目开发任务,最后对项目的评价标准进行了细化,为面向软件工程教育认证的C/C++课程设计教学改革提供了一条新的思路。

1对比教学法的应用

李运模给出了对比教学法(或称比较教学法)的定义,是指在教学活动中将两个相反、相对的事物或同一事物相反、相对的两个方面放在一定的条件下,按照同一标准进行对照比较,从而确定认识对象属性的同异、地位的主次、作用的大小、性能的优劣、问题的难易或认识的正误深浅,以达到辨识、了解和把握认识对象之目的的一种方法[1]。对比教学法在教学中具有广泛的应用,适用于不同的教学内容、教学对象和教学阶段。例如,曾剑云采用金融学案例的对比教学法开发学生的多元发散思维[2]。伍强等人通过设计碳酸钠和碳酸氢钠的对比实验进行化学教学,培养学生创新思维能力[3]。李武等人针对现代控制理论课程的实验环节应用对比教学法,对比不同的实验方法[4]。在两门先导课程C和C++的教学中,也经常将C语言和C++的编程思想、优缺点、语法结构等进行对比分析,然而,之前对比教学法的应用主要针对的是零散的知识点,而基于完整软件项目的对比教学法,至今尚未有文献报导。

2软件项目对比教学法

项目驱动教学法是一种以项目为驱动、以学生为主导的教学方法,在具体项目的实施过程中,传达相关教学内容并达到教学目标的一种教学模式[5]。不少学校在计算机相关课程中应用项目驱动教学法,取得了不错的教学效果[6-8]。针对Java、C#、VB.NET等软件开发类课程,应用项目驱动教学法能提高学生的工程实践能力[9-11]。本人将传统对比教学法与项目驱动教学法相结合,提出软件项目对比教学法。软件项目对比教学法是指教师根据教学目的和要求,以软件项目为载体,通过对比同一软件项目两种不同编程思想的实现过程,引导学生综合运用C和C++语言的理论知识,对软件项目的编程思想、设计和实现方法进行深入讨论和剖析,以培养和提高学生分析和解决问题能力的一种启发式教学方法。基于软件项目的对比教学符合大学一年级学生知识结构和认知规律,能帮助学生加深对抽象编程思想的理解,提高学生分析和解决问题的能力,促进学生创新思维的形成。

3软件项目对比教学法的教学实践

3.1软件项目选题要求

恰当的选题是开展软件项目对比教学法的前提,项目选题需要满足以下几个关键要素:(1)可行性:课程设计的选题首先要符合教学目标,使学生能够运用理论课程中所学的基本知识,进行基本开发技能方面的训练,具有可行性。要求难度适中,让不同基础的学生经过努力都可以完成任务、有所收获,不能制定规模过大、要求过高、不切实际的题目。(2)启发性:课程设计选题要具有启发性,便于学生在基本的核心功能之外,设计和开发扩展功能,锻炼创新思维和能力。(3)典型性:题目要具有典型性和代表性,便于学生通过一个项目的实践,掌握一类项目开发所需要的相关知识和技术,最终实现举一反三。(4)趣味性:题目要尽可能具有趣味元素,从而激发学生完成课程设计的积极性,能够主动投入到课程设计学习中去,提高自主学习能力。

3.2软件项目选题筛选

C/C++项目的常规选题分为以下几个类别:(1)游戏开发类:游戏开发类项目是指开发一些适合用C/C++语言编写的小型游戏项目,如贪吃蛇、推箱子、迷宫等,这些游戏项目可以激发学生课程设计的积极性,能收到较好的效果。(2)信息管理类:信息管理类项目是指开发一些小型的MIS系统,如图书馆管理系统、飞机订票系统等,这些项目可以帮助学生加深一些难点知识点的理解,如指针、结构体、链表、文件等。(3)网络编程类:网络编程类项目可以让学生了解网络编程函数和编程技巧,理解网络协议和套接字编程的基本概念,常见的开发项目包括TCP、UDP和HTTP程序设计。(4)Windows应用程序类:该类项目主要是开发一些实用工具,如时钟、万年历、画图板等。这些项目与日常生活比较接近,有助于学生准确获取项目需求。(5)嵌入式应用类:嵌入式操作系统下的应用开发是C/C++语言重要的应用场合之一,包括驱动程序开发、Linux下的应用程序等。需要了解嵌入式操作系统的相关知识。综上可以看出,很多类别的项目开发需要用到高年级才会学习的知识,如数据库技术、网络编程技术和嵌入式技术,让大学一年级学生提前学习和掌握,难度较大。因此,需要对这些项目进行筛选,力求项目选题符合学生的知识结构,缩小与先导课程的跨度,让每个学生都能在有限的时间内有效开展课程设计工作,并有所收获。项目开发使用的知识和技术绝大部分应该是学生已经学过的,仅需要补充少量的学生没有学过的知识和技术。因此,我们可以排除的项目类别包括:网络编程类别的项目、嵌入式应用类的项目、基于数据库存储的信息管理类的项目,因为,这些项目需要的计算机网络、嵌入式操作系统、数据库等相关知识要到大学三年级才能学到,非常不适合在大一阶段就要求学生学会,甚至还要基于这些知识开发一个完整的系统,由于不符合学生的认知规律,势必难以收到理想的实践效果。而适合的项目选题包括游戏类、基于文件存储的信息管理类和Windows应用程序类,这些选题可以通过Win32控制台应用程序来实现,和学生在先导课程中的要求一致。其中基于文件存储的信息管理类可以采用文件形式进行数据的存储和读取,从而复习和巩固先导课程中介绍的文件关键知识点,避免使用SqlSever等数据库。

3.3软件项目对比教学指导

软件项目对比教学的具体教学安排包括示范对比项目讲授、C语言项目学习和C++语言项目改写三个环节。(1)示范对比项目讲授:设计了图书馆管理系统作为示范对比项目,给出了两套分别基于面向过程和面向对象思想的项目开发文档,并提供了两套分别用C语言和C++语言实现的项目代码,实现了图书管理、读者管理和借还书管理功能。此阶段的教学任务包括四个部分:首先,带领学生回顾先导课程C和C++的主要知识点;其次,介绍课程设计目的、任务和相关要求;第三,补充介绍软件工程系统建模和开发流程相关知识;最后,讲解示范对比项目的开发流程、核心要素和重点难点,尤其是C项目开发的模块划分和函数封装,以及C++项目开发的类图设计。此阶段学生需提交示范对比项目学习报告,阐述自己的设计构思与示范文档的差距,总结经过该阶段学习,自己在技术上的收获。(2)C语言项目学习:该阶段提供5个以上项目的C语言实现源代码,但不提供开发文档。要求学生任选其中一个感兴趣的项目,通过阅读代码、运行代码,学习总结C语言项目的设计思路。此阶段主要采取学生自主学习方式,学生需要参考第一环节的示范文档,提交C语言项目开发文档,归纳总结该项目的设计目的、需求分析、总体设计(包括功能结构图)、详细设计与实现(包括主要算法流程图)、系统测试(包括测试用例表)。(3)C++语言项目改写:该阶段要求学生将选择的C语言项目代码改写成C++项目代码,要求实现的功能大致相同,但允许有扩展功能。此阶段仍然采取学生自主学习方式,学生需要参考第一环节的示范文档和第二环节的C语言项目,提供完整的C++项目开发文档以及项目源代码。

3.4启发式任务书

以往课程设计任务书往往过于细化,把一个软件需要实现的功能一一清楚地列举出来,甚至给出了最终要求的界面截图。并且最终验收考核时,对照项目功能要求,把项目的完成程度作为一个重要的考核指标,功能实现完整可以获得较高的评价,而功能开发不够全面,即使部分功能开发的较为完善,也不能获得较高的评价,甚至开发了没有要求的功能,也不会获得额外的加分。在这种评价机制下,学生只会对照教师要求的功能逐一开发,不会过多地思考软件的需求定位,也不会在软件设计上花费过多的时间,最终导致不同学生开发的项目功能和界面基本完全一致。这种做法,势必对学生的项目开发积极性造成影响,限制了学生的创新能力。将现有的“命题式”任务书向“启发式”任务书转变。相比“命题型”任务书,“启发式”任务书不必细化项目功能,仅提供项目背景以及一些提示性的功能建议,注重让学生去挖掘项目需求,撰写需求文档,并以此驱动项目开发的全过程,学生自主开展项目的设计工作,包括界面设计、功能模块设计、数据结构及文件存储结构设计等等。从而引导学生独立思考、主动探究、自主学习,并且有目的、有计划、有效率地开展项目开发。

3.5对比项目报告评分标准

结合软件项目对比教学法的三个环节,对学生提交的报告以及改写的C++项目进行评价,其中报告包括示范对比项目学习总结、C项目开发文档和C++项目开发文档三个部分。除了考虑项目的复杂度和工作量外,还会重点考察学生的创新能力、项目的功能特色或技术特色。因此,创新性强的项目可以获得更高的评价。评分标准包括以下四个方面:(1)问题规模:结合报告需求分析部分的功能定位进行评价,如果设计了创新功能将获得更高的评价。(2)技术规范:结合报告中的软件工程建模元素进行评价,主要看功能模块图、类图、程序流程图、测试用例表等的设计是否规范合理。(3)实现程度:结合报告中系统实现和系统测试两部分的相关描述,以及改写的C++项目的演示情况进行综合评价。(4)报告质量:结合报告格式规范、示范项目学习总结等撰写情况综合评价。

4软件项目对比教学法的教学效果

我校软件学院自2015年以来,将C/C++软件项目对比教学法逐步从单个班级的试点运行推广到全年级的统一执行。2018年7月,课程结束后开展的不记名学生调查问卷显示,通过C/C++软件项目对比教学法开展C/C++课程设计,分别有59.7%和33.9%的学生表示收获很大和收获较大,占到学生总人数的93.6%,学生满意度较高。学生项目调研、资料查阅的主动性明显提升,通过示范对比项目的学习以及C语言项目的C++改写训练,学生对面向过程和面向对象编程思想的理解也得以加深,创新能力、编程实践能力等各项能力均得以提高。学生创新设计的对比项目案例也丰富了C语言教学资源库。5结语本文根据C/C++课程设计环节的教育教学实践,提出了软件项目对比教学法,该方法能够有效解决以往教学中学生存在的问题,即只会编写满足C或者C++语法风格的程序,但并不理解面向过程和面向对象两种不同编程思想的区别。教学实践表明该方法能够增强学生的学习热情,提高了学生的创新能力和工程实践能力,为培养能够解决复杂工程问题的复合型人才奠定了基础。

作者:许真珍 于红 田琳琳 赵小薇 单位:大连理工大学软件学院

软件项目对比教学法课程设计研究  来源:网络整理

  免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


软件项目对比教学法课程设计研究
由:76范文网互联网用户整理提供,链接地址:
http://m.yuan0.cn/a/117241.html
免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
最近更新/ NEWS
推荐专题/ NEWS
软件项目对比教学法课程设计研究模板 软件项目对比教学法课程设计研究怎么写 软件项目对比教学法课程设计研究如何写 软件项目对比教学法课程设计研究格式 软件项目对比教学法课程设计研究范例参考 软件项目对比教学法课程设计研究开头 软件项目对比教学法课程设计研究开头语 软件项目对比教学法课程设计研究范文 软件项目对比教学法课程设计研究范例 软件项目对比教学法课程设计研究格式大全 软件项目对比教学法课程设计研究_教学法,课程设计,项目,研究,软件软件项目对比教学法课程设计研究大全 软件项目对比教学法课程设计研究格式模板 软件项目对比教学法课程设计研究免费模板 软件项目对比教学法课程设计研究免费格式 软件项目对比教学法课程设计研究格式如何写 软件项目对比教学法课程设计研究开头如何写 软件项目对比教学法课程设计研究免费范文 软件项目对比教学法课程设计研究免费范例 软件项目对比教学法课程设计研究免费参考 软件项目对比教学法课程设计研究模板下载 软件项目对比教学法课程设计研究免费下载 软件项目对比教学法课程设计研究模板怎么写 软件项目对比教学法课程设计研究格式怎么写 软件项目对比教学法课程设计研究开头怎么写 软件项目对比教学法课程设计研究开头语怎么写 软件项目对比教学法课程设计研究模板如何写 软件项目对比教学法课程设计研究开头语如何写