计算机系统基础课程培养问题解决能力探讨

作者: 鹿玲

计算机系统基础课程培养问题解决能力探讨0

[摘 要]计算机系统基础是软件工程专业常设的一门专业基础课程。文章结合实际的教学经验,探讨了计算机系统基础课程教学的客观现状,提出了扩展本门课程学习的知识面、运用CDIO教学模式、实施项目驱动教学三项教学改革措施,并对如何提升软件工程专业学生的复杂工程问题解决能力进行了探讨。

[关键词]软件工程专业;项目驱动教学;计算机系统基础;复杂工程问题解决能力;CDIO

[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2022)07-0136-04

一、概述

计算机系统基础是软件工程专业常设的一门专业基础课程,以计算机组成原理课程的内容为主,外加计算机导论和数字逻辑等课程的部分内容。有些高校的软件工程专业会安排计算机导论和数字逻辑这两门课程,安排在上计算机系统基础课程之前讲授。如果没开这两门课程,那么软件工程专业的课程体系结构中,涉及计算机硬件知识的课程基本上就只有计算机系统基础这门课程了。软件工程专业的计算机系统基础课程有它自身的特点,起到开启计算机软硬件底层基础知识学习的作用。

实际教学过程中我们发现部分学生对计算机系统基础课程的作用与地位理解得并不全面,学习的热情也不高。课程组针对软件工程专业学生学习这门课程的心理与状态,提出扩展计算机系统基础课程学习的知识面、运用CDIO教学模式、实施项目驱动教学三项教学改革措施。实践证明,这些教学改革措施对于通过计算机系统基础课程教学提升软件工程专业学生的复杂工程问题解决能力行之有效,学生愿意主动学习这门课程了,真正从这门课程中学到了工程问题解决方法,提升了计算机系统基础相关知识在实际工程项目中的运用能力。

二、软件工程专业计算机系统基础课程的特点

软件工程专业培养的是软件开发方面的人才,要求学生具有软件工程思想,能够综合利用所学知识进行计算机软硬件相关的开发工作,尤其是软件相关的开发工作。软件开发工作是不是只要学习了数据库相关知识、学习了几门开发语言以及一些开发环境就能够胜任呢?答案是否定的。这样只是能够完成一定范围内极为有限的软件开发工作。软件工程专业的主干课程有许多,光是程序设计语言就有C++、C#、Java、SQL等,还些必修的马克思主义理论、大学外语、高等数学、大学物理、线性代数、概率论与数理统计等基础课程,更有离散数学、计算机系统基础、数据结构、软件工程、操作系统、ASP.Net、Java方向的Web开发框架等专业基础课与专业课,甚至还要学习一些选修课程才能满足学分要求。另外,在四年的学习过程中,学生还必须参与各种课程设计、生产实习及毕业实习等实践环节。计算机系统基础主要讲授的是计算机组成原理课程相关的内容,涉及知识非常宽泛、教学内容跨度非常大,其中的概念繁多而且理解起来很抽象,对学生的学习是一大挑战[1]。

三、部分学生的片面认识

部分学生对计算机系统基础这门课程在整个人才培养体系中的作用和地位认识不清,存在“重软轻硬”的现象,实践环节薄弱[2]。软件工程专业的部分学生对这门课程的重视程度不够,认为纯理论授课有些枯燥乏味,不易产生学习热情。部分学生认为作为一名软件工程专业的学生,学好与学不好计算机系统基础这门课对将来从事的IT方向的工作影响不大,授课过程中也经常有学生会问“我是一名软件专业的学生,学习这门课程有用吗?”的问题。这些思想导致部分学生对计算机系统基础这门课程没能足够重视。

将计算机系统基础作为软件工程专业学生的专业基础课程是很有必要的。软件的载体就是计算机硬件系统,只有对计算机硬件系统有了充分的了解,才有可能对软件系统进行优化,软件开发才能游刃有余,没有不涉及硬件的软件。软件开发涉及的范围很广,学生将来不可能仅仅是开发Web应用一种应用程序,经常要通过软件来与某些硬件打交道,因此对计算机系统基础这门课程理解得越透,将来从事软件开发工作才会越顺手。

可以说计算机系统基础课是软件工程专业学生了解计算机系统硬件工作原理唯一的一门课程。软件工程专业学生一般没有学过模拟电子、数字电子及电路等电子方面的知识,而计算机系统基础课除了讲解计算机系统硬件工作原理外,也起到让学生对电子、电路等相关知识有一定了解的作用。学生如果有了一定的电子及电路知识,对接下来的计算机系统基础课程的学习会更容易一些,授课效果也会更好一些,也就能够引起学生的主动学习兴趣了。

计算机系统基础课程知识在软件开发过程中是经常被用到的,对于学生解决复杂工程问题能力有很大影响。计算机系统基础课程常分为计算机中数据信息表示、运算方法与运算器、存储器、指令系统、控制器、总线及I/O设备等几大部分。计算机中数据信息表示讲的是二进制信息在计算机内部的表示方法,涉及原码、反码、补码、移码及字符与汉字信息的表示等知识。在高级语言中可以定义整数、浮点数据、字符及字符串等变量并进行相应的运算,这些都是在编译系统的编译下,最终变为二进制的0与1,才能在计算机内表示和运算的,因此高级语言中的一些语法实现也与这门课程的数据信息表示有关联。学生只有清楚知道将来会用到计算机系统相关知识,才会努力学好这门课程。

四、提升软件工程专业学生复杂工程问题解决能力的三项措施

2006年我国开始开展工程教育专业认证工作,以工程教育国际接轨为突破口,通过强化内涵发展提升质量,在促进更新教育观念、建立标准意识和强化质量意识方面起到了重要作用[3]。培养工程类专业大学生解决复杂工程问题能力是工程教育认证的核心思想[4]。培养解决复杂工程问题的能力需要分解、落实到课程教学等人才培养的各个环节[5]。在计算机系统基础课程教学中可以通过运用CDIO工程教育模式、拓展计算机系统基础课程学习的知识面以及实施项目驱动教学的措施来培养软件工程专业学生的复杂工程问题解决能力。

(一)运用CDIO教学模式

CDIO工程教育模式是当今国际上流行的工程教育模式。CDIO是Conceive、Design、Implement以及Operate4个英文单词的开头字母,代表构思、设计、实现和运作4种含义,在欧美发达国家经过多年的运行,已经形成较为完善的课程实施的标准和大纲,在多个国家、多个专业中得以应用,取得了很好的反响。目前,我国一些高校已经开始实施CDIO教学模式[6]。CDIO教学模式与我国现行的高等教育对计算机专业学生的培养目标(知识、技能、能力和素质四部分)高度契合,更以其可行性、可操作性,得到了众多高校的响应[7],其与“以项目驱动教学”的思想相一致,与目前正在全国高校展开的工程教育专业认证的初衷相一致。CDIO教学模式是以产品研发到产品运行的生命周期为载体 ,让学生以一种主动的、 实践的、 课程之间能有机联系的学习方式去学习相关课程,并提升学生将所学知识串联起来解决实际问题的能力。CDIO教学模式将工程毕业生的能力分为工程基础知识、 个人能力、 人际团队能力和工程系统能力四个层面,要求以综合的培养方式使学生在这四个层面达到预定目标。CDIO教育理念的核心文件是:1个愿景、1个大纲和12条标准。其中12条标准对整个模式的实施和检验进行了系统的、全面的指引,使得工程教育改革具体化、可操作、可测量,并对学生和教师都具有重要指导意义。CDIO教育理念体现了系统性、科学性和先进性的统一,代表了当代工程教育的发展趋势,是对本科大学四年整个课程体系结构、教学与实践过程提出的一个建议框架。

如何通过计算机系统基础课程的学习,让学生达到课程要求的预定目标,如何通过计算机系统基础这门课程来实现CDIO教学模式要求,需要教师在教学过程中不断探索和改进。CDIO教学模式可以体现在大学四年的课程体系设置上,也可以体现在大学四年的理论与实践的教学过程中,还可以体现在某门课程的具体教与学的过程中。在计算机系统基础课程教学的后期,可以用真实的项目来体现CDIO教学模式。具体的实现步骤包括几项:一是教师先提出一个项目的系统概况,由学生深入探讨,如项目的最终目的是什么,最终能实现哪些功能,还可以扩充什么功能,实现的方法是什么,等等;二是对系统进行分块设计,再用Protel画出具体的原理图及PCB图;三是制成PCB电路板,并焊装元器件;四是运行系统,对系统进行软硬件的调整与修改,使系统符合最初的设计要求。这样一个从设计到实现的过程就是CDIO教学模式的体现过程。

CDIO教学模式分为Conceive(构思)、Design(设计)、Implement(实现)和Operate(运行)4个步骤,强调的是以产品或系统的完整开发过程作为工程教育的环境,目的是培养学生的工程能力[8]。在计算机系统基础课程教学的后期,学生已经能设计出一个具体的能解决实际问题的计算机应用系统,比如单片机系统和嵌入式系统。按照CDIO教学思想,课程教学后期完成一个具体的项目能使学生应用到所学的知识,当然CDIO教学思想并不只是课程教学后期的一个项目实现,而是在每节课的教学过程中都要渗透所学知识的用途,因为不知道如何去使用的知识是不会让人感兴趣的。

(二)拓展计算机系统基础课程学习的知识面

对于软件工程专业的学生来说,拓展与计算机系统基础课程相关的知识面是必须做到的。在软件工程专业课程设置中,软件方面的课程学时理所当然地占有较大比重,有的院校在课程设置上可能会去掉计算机导论和数字逻辑等课程,计算机硬件方面的知识只由计算机系统基础一门课程来承担。在这种情况下,计算机系统基础课程的授课内容就不能只局限于本门课程,因为学生在计算机硬件方面的知识相对缺乏,那么在学习这门课的过程中,学生一定会感到学习困难。这不是课程本身的问题,也不是教师的问题,而是知识面的问题。比如在讲授“运算方法与运算器”章节时,要用到与门、或门、异或门、非门、半加器及全加器等数字逻辑方面的知识,如果不进行知识扩展,学生在学习这章内容时就会有听天书的感觉,因为学生根本就没听说过这些名词,更不知道它们的原理是什么以及实物是怎样的,把这些概念拿来就用,学生一定听不懂,也会使学生厌倦本门课程的学习。软件工程专业的学生在将来的工作中必然会接触硬件方面的技术知识,而计算机硬件知识与技能如果不过关就会影响到学生的复杂工程问题解决能力。

计算机系统基础课程教师在授课过程中应引导学生将所学知识加以应用以提高学生的学习兴趣。比如在计算机测控系统中,计算机会通过串口或网口将采集到的数据存放到数据库中,这就涉及计算机系统基础课程中 “数据信息表示”的数据大端存储模式与数据小端存储模式的问题。这些问题在项目开发过程中会经常用到,如果学生在学习时没有用心,或者根本就没有学过,那么在软件调试的过程中就会走许多弯路,以为读取到的数据就应该是自己认为的那样,但这样的调试数据是不对的。如果学生在学习过程中对这段章节有很深的印象,那么调试程序时就会很容易想到问题出在哪里,也就能够快速地解决问题。再比如学生将来从事与计算机硬件相关的开发工作,可能就会用到本门课程“总线技术”章节的内容,像PCI接口卡用到的PCI总线,还有USB设备用到的USB总线等。扩展知识面可以使学生更容易学好这门课程,教会学生如何应用所学知识,也使学生更愿意主动学习这门课程。

(三)实施项目驱动教学

基于项目驱动的教学,是在课程教学过程中,以完成实际项目需求为目标,把相关的教学内容和知识点融入项目的各个环节之中[9]。以科研项目为“理论联系实际”的纽带,让学生在科研探索的同时可继续深入学习理论,这是培养本科生分析和解决问题以及提升科研创新能力的有效途径[10]。为了能将计算机系统基础课程的学习有机地串联起来,加深学生对所学知识的理解,应该从工程实际出发,在教学中渗透工程思想,从问题的提出以及解决方法的构思到具体设计直至项目的实现,一步一步地让学生参与其中,以此提高学生的复杂工程问题解决能力。

经典小说推荐

杂志订阅