论文部分内容阅读
【摘 要】“软件技术基础”是电气信息类专业一门重要的技术基础课程,该课程对培养学生的软件开发能力十分重要。根据我校软件技术基础课程教学的特点,分析了该课程教学的现状及存在的问题,总结了该课程的一些教学方法。
【关键词】软件技术基础 软件工程 软件设计
【中图分类号】G642【文献标识码】A【文章编号】1006-9682(2010)12-0048-02
【Abstract】The course of basics of software technology is an important course for electric information majors which is very important for fostering students capability of software design. This paper analyzes its actualities and problems based on the characteristics of the Basics of our school, and then summarize some teaching methods of this course.
【Key words】Basics of software technology Software engineering Software design
一、引 言
随着信息化、网络化和数字化时代的到来,社会对“软件”的需求激增。如今,世界发达国家都把软件列为国家发展的关键技术领域。美国国家关键技术委员会将软件列为六大关键技术之一;欧洲共同体将“软件和信息处理”列为关键技术;我国把信息产业放在优先发展的地位,看作是中国发展高新技术、赶超世界先进水平的一次千载难逢的机遇。所以计算机技术的飞速发展与普及使得软件技术基础的教学几乎存在于所有的普通高校的计算机以及非计算机电气信息类专业中。对于计算机专业中,这门课程的重要性毋庸置疑。我们且谈谈电子与信息类专业与之相关的系列课程。计算机教学确定以“计算机文化基础”、“C程序设计”、“软件技术基础”和“面向对象的C++程序设计”为主干课程的教学模式。各个学校对该门课程的设置也是大同小异,针对各自的情况也有自己的教学改革方法和案例,[1~2]值得我们借鉴和学习。下面针对我校电信类专业这门课程的具体学习情况来分析课程教学的问题及提出改进的方法。
二、软件技术基础教学的现状
“软件技术基础”作为我校大二电气信息类专业限定选修的一门计算机基础课程之一,能够为后续大三和大四很多专业课程的学习奠定坚实的编程基础。然而,实际上该门课程涉及面非常广,包括“C程序设计”、“数据结构”、“软件工程”等,学习过程牵涉的抽象概念和原理不易理解,实践性又特别强,学生在学习过程中很无助,老师在教学中很无奈。现从以下几方面来说明软件技术基础课程的现状。
首先,从课程的教学任务和目的来分析,这门技术基础课涉及C语言程序设计、数据结构和软件工程三门课程的经典内容,通过该课程的学习,使学生掌握开发应用软件所必需的软件基础知识,提高软件素质和应用计算机解决实际问题的能力、抽象思维能力和实践编程求解能力,为今后结合本专业开发应用软件打下必要的基础。显而易见,这门课程虽然是选修课,对于教师和学生来说,任务都偏重,从课程目的来看,它的重要性甚至比必修课还要略胜几分。
其次,从课程的基本要求和目标来看,课程学习要求学生了解计算机软件的基本概念,理解有关的常用技术术语;掌握合理组织数据结构和有效设计算法的基本方法,熟悉一种优良的程序设计语言工具和运行环境,初步掌握对不同类型的问题求解选择适当的数据结构;掌握开发软件的工程化原則和技术,重点培养应用计算机解决本专业实际问题的基本能力,为后续学习工作奠定基础。
再次,从教学内容上,我们的软件技术基础课程计划是安排在大二的第一学期,正好是学生学完大学生文化基础和C语言程序设计两门课程之后。而后续在大二的第二学期还有C++面向对象的程序设计,所以软件技术基础课程在承前启后的基础上,以数据结构为主。它研究的主要问题有:分析数据(计算机加工的对象)的特征;选择适当逻辑存储结构和物理存储结构;在存储结构的基础上实现对数据的操作。这些问题对学生来说,比较抽象,以前没接触过,不像英语和数理化那样,所以学生学习的兴趣不浓。
最后,从先续课程的学习情况看,在大一,学生为了计算机等级考试通过,老师为了应对学院压下来的通过率,C语言程序设计课程几乎就是应试教与学。没有为后续的软件技术基础课程打下基础。
三、课程教学存在的问题及改进措施
1.课程教学存在的问题
针对上述教学现状以及我们在教学过程中不断实践和探索,总结出软件技术基础课程的教学存在以下几点问题:
第一,任务重,课时有限。软件技术基础教学任务非常明确。课程设置针对电子信息工程和通信工程专业学生,课程为44学时限选课,理论课时36个学时,上机课时8个学时。也就是说学生大部分都在上理论课,上机机会偏少。数据结构强调培养学生对问题处理对象(数据)的组织能力,而这能力的培养需要在实践中不断提升。这不到20%的课时远远不能满足需求。根本无法完成本课程要求的任务和目标。
第二,学生在学习过程中的无助。软件技术基础讲授的概念都是抽象的、枯燥无味的,更有那些看不见也摸不着的算法和逻辑存储结构。学生感觉好像听懂了,可是学完后,不知道学的是什么,不知道这些怎么用,比如学生学完栈的内容后对于一个栈的入栈序列为1,2,3,4,却不知道栈的可能输出序列是什么。一句话,“完全没感觉”。
第三,教师在讲授过程中的无奈。为了增加学生学习的自信,在教学上,我们会降低教学难度,很多时间花费在基本概念的理解、数据结构的抽象定义和算法的分析上,而对程序设计及调试技巧等知识往往都点到为止或避而不谈。比如串的知识点,书上的算法非常简单抽象的概括了操作过程,而学生是一句都不理解,老师只得用更接近C语言的语句形式重写过,再给学生解释。
第四,C语言的基础差。大一的应试教与学使得学生对C语言的基础知识掌握得非常少,即使是很简单的变量定义都不会,常用的数据类型不知道包括哪些。也不清楚一个简单的完整程序包括哪些。
第五,实验资源的限制。实验室资源紧张,学生上机课,都是以大班的形式。同一时间80名学生或100多名学生同时上机,老师只有一位,指导和验收都成问题。
对于列举的这些问题,专业负责人和课程组多次进行了教学的交流和研讨。在教学过程中,我们对这些存在的问题逐一的找出了解决办法,不断在执行实施和进一步改进当中,在此和大家一起共享。
2.针对教学中存在的问题提出一些改进措施
首先,课时总学时不能增加,很多课程课时都很有限。我们的解决办法是从理论课时上分出一部分作为上机课时。理论课时与上机课时采取2∶1分配,大大提高了上机的课时比例,同时在上课的教学过程中,根据情况抽取10~20分钟的时间给学生演示程序设计过程,使理论知识实践化。
其次,在C语言课程设计现状无法改变的情况下,在软件技术基础课程教学中引入C语言的基础知识,在算法讲解中捎带学习。难以理解的抽象概念渗透到案例中,案例以实际生活中需要计算机来解决的问题出发,分析问题,提出思路,给出数据结构,引出数据结构涉及的抽象概念,最后从人为解决问题的行为动作出发过渡到计算机处理问题的行为动作。案例导引教学比直接介绍概念,再讲算法,更容易让学生接受和理解。
最后,实验课程的资源安排问题。有的学校采取开放实验,[3]我们根据自身的情况,采取半开放制。每次实验课,采取小班制。40人为一批。课前要求学生做预习工作,交预习报告。老师检查批改后符合要求就集中按照我们约定的几个时间段分别进行上机课。这样在上机课程当中,学生人数少了,学生又有前期的准备工作,指导时间充裕,学生求助也不会盲目。这样的安排对学生是非常有利的,老师却增加了很多工作量。但是实验课程的教学效果明显得到了改善,学生在上机课程当中学到的知识也更多了。
四、结 论
“软件技术基础”课程对电信通信类专业是一门非常重要且实践性非常强的技术课程。同时对于计算机领域的发展也起着十分重要的作用。本文针对这门课程理论知识抽象、实践性强的特点,在实践教学过程中,从存在的问题出发,提出教与学的改进方法,取得了良好的教学效果。
参考文献
1 胡 洋、苏 琳.高校计算机基础教育改革的探索[J].高师理科学刊,2007(05)
2 赵海燕.中等职业学校计算机基础教学改革探讨[J].电脑知识与技术,2008(08)
3 陈帝伊、马孝义、辛全才.“计算机软件技术基础”课程教学方法探析[J].计算机教育,2009(22)
【关键词】软件技术基础 软件工程 软件设计
【中图分类号】G642【文献标识码】A【文章编号】1006-9682(2010)12-0048-02
【Abstract】The course of basics of software technology is an important course for electric information majors which is very important for fostering students capability of software design. This paper analyzes its actualities and problems based on the characteristics of the Basics of our school, and then summarize some teaching methods of this course.
【Key words】Basics of software technology Software engineering Software design
一、引 言
随着信息化、网络化和数字化时代的到来,社会对“软件”的需求激增。如今,世界发达国家都把软件列为国家发展的关键技术领域。美国国家关键技术委员会将软件列为六大关键技术之一;欧洲共同体将“软件和信息处理”列为关键技术;我国把信息产业放在优先发展的地位,看作是中国发展高新技术、赶超世界先进水平的一次千载难逢的机遇。所以计算机技术的飞速发展与普及使得软件技术基础的教学几乎存在于所有的普通高校的计算机以及非计算机电气信息类专业中。对于计算机专业中,这门课程的重要性毋庸置疑。我们且谈谈电子与信息类专业与之相关的系列课程。计算机教学确定以“计算机文化基础”、“C程序设计”、“软件技术基础”和“面向对象的C++程序设计”为主干课程的教学模式。各个学校对该门课程的设置也是大同小异,针对各自的情况也有自己的教学改革方法和案例,[1~2]值得我们借鉴和学习。下面针对我校电信类专业这门课程的具体学习情况来分析课程教学的问题及提出改进的方法。
二、软件技术基础教学的现状
“软件技术基础”作为我校大二电气信息类专业限定选修的一门计算机基础课程之一,能够为后续大三和大四很多专业课程的学习奠定坚实的编程基础。然而,实际上该门课程涉及面非常广,包括“C程序设计”、“数据结构”、“软件工程”等,学习过程牵涉的抽象概念和原理不易理解,实践性又特别强,学生在学习过程中很无助,老师在教学中很无奈。现从以下几方面来说明软件技术基础课程的现状。
首先,从课程的教学任务和目的来分析,这门技术基础课涉及C语言程序设计、数据结构和软件工程三门课程的经典内容,通过该课程的学习,使学生掌握开发应用软件所必需的软件基础知识,提高软件素质和应用计算机解决实际问题的能力、抽象思维能力和实践编程求解能力,为今后结合本专业开发应用软件打下必要的基础。显而易见,这门课程虽然是选修课,对于教师和学生来说,任务都偏重,从课程目的来看,它的重要性甚至比必修课还要略胜几分。
其次,从课程的基本要求和目标来看,课程学习要求学生了解计算机软件的基本概念,理解有关的常用技术术语;掌握合理组织数据结构和有效设计算法的基本方法,熟悉一种优良的程序设计语言工具和运行环境,初步掌握对不同类型的问题求解选择适当的数据结构;掌握开发软件的工程化原則和技术,重点培养应用计算机解决本专业实际问题的基本能力,为后续学习工作奠定基础。
再次,从教学内容上,我们的软件技术基础课程计划是安排在大二的第一学期,正好是学生学完大学生文化基础和C语言程序设计两门课程之后。而后续在大二的第二学期还有C++面向对象的程序设计,所以软件技术基础课程在承前启后的基础上,以数据结构为主。它研究的主要问题有:分析数据(计算机加工的对象)的特征;选择适当逻辑存储结构和物理存储结构;在存储结构的基础上实现对数据的操作。这些问题对学生来说,比较抽象,以前没接触过,不像英语和数理化那样,所以学生学习的兴趣不浓。
最后,从先续课程的学习情况看,在大一,学生为了计算机等级考试通过,老师为了应对学院压下来的通过率,C语言程序设计课程几乎就是应试教与学。没有为后续的软件技术基础课程打下基础。
三、课程教学存在的问题及改进措施
1.课程教学存在的问题
针对上述教学现状以及我们在教学过程中不断实践和探索,总结出软件技术基础课程的教学存在以下几点问题:
第一,任务重,课时有限。软件技术基础教学任务非常明确。课程设置针对电子信息工程和通信工程专业学生,课程为44学时限选课,理论课时36个学时,上机课时8个学时。也就是说学生大部分都在上理论课,上机机会偏少。数据结构强调培养学生对问题处理对象(数据)的组织能力,而这能力的培养需要在实践中不断提升。这不到20%的课时远远不能满足需求。根本无法完成本课程要求的任务和目标。
第二,学生在学习过程中的无助。软件技术基础讲授的概念都是抽象的、枯燥无味的,更有那些看不见也摸不着的算法和逻辑存储结构。学生感觉好像听懂了,可是学完后,不知道学的是什么,不知道这些怎么用,比如学生学完栈的内容后对于一个栈的入栈序列为1,2,3,4,却不知道栈的可能输出序列是什么。一句话,“完全没感觉”。
第三,教师在讲授过程中的无奈。为了增加学生学习的自信,在教学上,我们会降低教学难度,很多时间花费在基本概念的理解、数据结构的抽象定义和算法的分析上,而对程序设计及调试技巧等知识往往都点到为止或避而不谈。比如串的知识点,书上的算法非常简单抽象的概括了操作过程,而学生是一句都不理解,老师只得用更接近C语言的语句形式重写过,再给学生解释。
第四,C语言的基础差。大一的应试教与学使得学生对C语言的基础知识掌握得非常少,即使是很简单的变量定义都不会,常用的数据类型不知道包括哪些。也不清楚一个简单的完整程序包括哪些。
第五,实验资源的限制。实验室资源紧张,学生上机课,都是以大班的形式。同一时间80名学生或100多名学生同时上机,老师只有一位,指导和验收都成问题。
对于列举的这些问题,专业负责人和课程组多次进行了教学的交流和研讨。在教学过程中,我们对这些存在的问题逐一的找出了解决办法,不断在执行实施和进一步改进当中,在此和大家一起共享。
2.针对教学中存在的问题提出一些改进措施
首先,课时总学时不能增加,很多课程课时都很有限。我们的解决办法是从理论课时上分出一部分作为上机课时。理论课时与上机课时采取2∶1分配,大大提高了上机的课时比例,同时在上课的教学过程中,根据情况抽取10~20分钟的时间给学生演示程序设计过程,使理论知识实践化。
其次,在C语言课程设计现状无法改变的情况下,在软件技术基础课程教学中引入C语言的基础知识,在算法讲解中捎带学习。难以理解的抽象概念渗透到案例中,案例以实际生活中需要计算机来解决的问题出发,分析问题,提出思路,给出数据结构,引出数据结构涉及的抽象概念,最后从人为解决问题的行为动作出发过渡到计算机处理问题的行为动作。案例导引教学比直接介绍概念,再讲算法,更容易让学生接受和理解。
最后,实验课程的资源安排问题。有的学校采取开放实验,[3]我们根据自身的情况,采取半开放制。每次实验课,采取小班制。40人为一批。课前要求学生做预习工作,交预习报告。老师检查批改后符合要求就集中按照我们约定的几个时间段分别进行上机课。这样在上机课程当中,学生人数少了,学生又有前期的准备工作,指导时间充裕,学生求助也不会盲目。这样的安排对学生是非常有利的,老师却增加了很多工作量。但是实验课程的教学效果明显得到了改善,学生在上机课程当中学到的知识也更多了。
四、结 论
“软件技术基础”课程对电信通信类专业是一门非常重要且实践性非常强的技术课程。同时对于计算机领域的发展也起着十分重要的作用。本文针对这门课程理论知识抽象、实践性强的特点,在实践教学过程中,从存在的问题出发,提出教与学的改进方法,取得了良好的教学效果。
参考文献
1 胡 洋、苏 琳.高校计算机基础教育改革的探索[J].高师理科学刊,2007(05)
2 赵海燕.中等职业学校计算机基础教学改革探讨[J].电脑知识与技术,2008(08)
3 陈帝伊、马孝义、辛全才.“计算机软件技术基础”课程教学方法探析[J].计算机教育,2009(22)