计算机课程编程范文

时间:2023-10-18 17:38:34

导语:如何才能写好一篇计算机课程编程,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

计算机课程编程

篇1

关键词 中职;计算机课程编程

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

文章编号:1671-489X(2016)09-0094-02

1 前言

在中职计算机课程教学中,对教师教授的理论知识学生通过编程来运用于实际,因此,编程是一个非常重要的教学内容。然而,编程的复杂性和难度往往让学生感到难以应对。为了帮助学生更加容易地学习编程,可以适当引入机械编程教学方法,帮助学生深化理解记忆基础的语法知识,同时进行经常的上机练习,将实践上机与理论知识合理结合,让学生能够高效快速地进行编程学习,提高对编程学习的兴趣,培养编程能力。

2 构建科学的教学框架

在中职计算机课程的机械编程教学中,构建科学的教学框架是必不可少的。

1)教师要注重理论知识的教授,帮助学生建立深厚的程序语言知识基础。在基础理论知识教学中最为重要的几点:明确程序语言中对变量进行定义、修改的语句;记忆不同变量的类型、所占的内存大小以及运算方式等;掌握控制语句进行循环、组合、计算以及函数调用方法等。

2)在编程中,学生的建模能力是很重要的,教师在编程教学中要帮助学生提高建模能力。教师可以给学生举出一定的问题,指导学生对问题进行分析处理,从中总结规律,建立合适的数学模型,而后根据数学模型合理设计计算方法,并选择最佳的数据存储方式,最后完成代码的编写,进行调试运行。学生在编程学习中需要进行这样的思维方式训练,学习系统的程序设计方法,如此才能明确把握程序的内容和功能,并针对不同的问题设计出行之有效的程序。

3)传统的计算机考试以笔试为主,学生在纸质试卷上进行答题,而不是上机操作。这样的考试方式具有很大的局限性,并不能很好地反映学生对于计算机课程的学习成果。为此,教师可以采用上机考试的方法,为学生提供一定的题目,让学生根据题目要求编写程序。教师根据学生的程序编写情况,就能够有效判断学生的学习情况。

3 采用合理的教学方法

应用情境教学法 心理学的研究表明,在适宜的学习环境中,学生的学习热情和学习效率明显比在其他环境中要高。因此,在中职计算机机械编程教学中,为了提高教学效率,教师可以应用情境教学法。在教学过程中,教师要根据教学内容,结合学生的兴趣所在,为学生设立相应的教学情境。教师在设立教学情境的过程中要注意:首先,教学情境的设立要以提高学生的编程能力为中心;其次,教学情境的设计应当与学生的实际情况相结合,在其中添加与学生兴趣相关的元素,这样才能达到吸引学生的效果,进而增强学生的精神集中度,提高学习效率;最后,教学情境的设计要结合新的课程内容和学过的旧知识,引导学生用已知的知识探究未知的内容[1]。

应用问题教学法 教育究其根本,是为了提高学生对于问题的发现、探究和解决的能力。因此,在中职计算机课程中引入机械编程教学,教师可以采用问题教学法,培养增强学生的问题意识。应用问题教学法,可以增强学生的求知欲,有效提高学生对于编程的学习兴趣,培养学生的思维能力和探究能力,进而提高学生的综合素质。在应用问题教学法的过程中,首先,教师要引导学生学会发现问题,这是进行问题教学的基础;其次,教师带领学生对发现的问题进行分析探究,在分析探究过程中就能很自然地导入所要学习的新的内容;最后,引导学生吸收理解新知识,并设法应用,来解决眼前的问题。在这一过程中,学生的学习活动都是围绕问题来进行的,能够有效调动学生的学习热情,促进学生对问题的思考探究,进而提高学生的思维能力和创新意识。

多媒体教学法 随着科技的发展,多媒体在各中职学校中有了普遍的应用。相较于传统的板书教学,多媒体教学可以为学生展示更加直观的知识内容,提高教学容量。在多媒体教学中,教师可以在课件中添加一些与教学内容有关的趣味性图片,吸引学生的兴趣,活跃课堂氛围。在中职计算机课程编程教学中,教师所要教授的知识往往是生硬而死板的,学生很难从中找到什么乐趣,更难以专注于编程的学习,应用多媒体教学可以在很大程度上改变这一状况。丰富的教学内容,直观的知识展现,多媒体课件可以让编程教学变得简单而富有活性,教师可以在课件中展示新知识的实际应用,让学生知道所要学的知识是非常实用,能够提高学生的重视程度,从而提升教学效率[2]。

4 注重理论结合实践

计算机课程需要以理论知识作基础,进行大量的上机实验。因此,在中职计算机课程编程教学中,教师要注重理论与实践的有效结合,进行合理的教学安排。对于基础理论知识的教学,教师可以选取经典例题、布置适当习题等。在中职计算机课程编程教学中,对于学生的思维能力和创新能力的培养以及知识的巩固记忆,可以通过例题的变化讲解来进行。

如在教授VF语言时,对于赋值语句,教师可以选取这样的例题:在程序中,有变量X等于2,变量Y等于9,请用赋值语句将这两个变量的数值进行交换。对于这样的经典而简单的例题,教师可以进行变化讲解,让学生先思考这样的实质性问题:如何把橙汁倒入盛满牛奶的杯子。有的学生思维比较教条,首先会想杯子都满了这怎么倒?而稍微思维活跃的学生就会想到先把牛奶倒入另一个杯子里,然后就能把橙汁倒进了。类比原例题,就是设置一个中间变量Z充当另一个杯子,令Z=X,X=Y,Y=Z。这样就能够让学生更加容易地理解知识并学会知识的应用。

无论是什么学科的学习,习题是必不可少的一部分。在中职计算机课程编程教学中,教师需要根据课堂内容合理布置习题,让学生在做习题过程中巩固基础的理论知识。

在计算机编程教学中,对于理论和实践的结合,最好的方式就是在学习一模块内容后就立刻进行上机实践。在上机过程中,教师要给予学生一定的指导和帮助,做到教师主导,学生进行自主探究。学生刚刚学完一部分知识时,记忆是最为深刻的,此时进行上机操作,能够有效达到巩固应用的作用。学生在实际的上机操作中,会出现各种各样的错误,这是大多数学生很难避免的。对于出现的问题,教师不要直接回答学生,而是指导学生学会使用调试命令进行问题的查找,然后对错误的代码进行修改。在修改过程中,教师可以给学生适当的提示,以免出现学生由于问题难以解决而挫伤学习积极性的情况。对于编程能力较弱的学生,教师可以为其安排难度较低但代码较多的编程任务,让其慢慢熟悉编程方法;而对于编程能力较强的学生,教师可以适当提高任务难度,做到因材施教。

5 结语

在中职计算机课程中,学生需要掌握很多知识,而编程更是重中之重。因此,为了提高教学效率,教师要设计合理的教学框架,应用适当的教学方法,结合理论知识与实践操作,以提高学生编程能力为目标,开展综合教学,在帮助学生学习掌握理论知识的同时,让学生学会实际应用,掌握编程技术。

参考文献

篇2

随着信息技术的迅猛发展及其应用领域的不断深化,几乎所有专业的研究与应用都离不开信息技术。信息化浪潮对高等教育也带来非常直接的变化,各专业课程设置无不将计算机知识教育作为其课程设置的组成部分。几乎所有专业的大学毕业生,都要求掌握基本的计算机操作技能,非计算机专业学生需要通过计算机等级考试,而一些和信息技术密切相关的专业,如电子信息、信息管理、电子商务等,课程设置上与计算机专业更是大量重叠,计算机知识教育在各专业中的渗透程度日渐加剧。

1 计算机专业面临的新挑战

在计算机知识正在成为各专业基本教育内容的背景下,计算机专业学生的专业优势受到很大的挑战,以往在软硬件知识和应用能力上的独特优势似乎在逐渐弱化,与具有特定专业背景的学生相比就业压力越来越大,由此也引发计算机专业到底学什么、专什么的现实思考,我们必须面临的问题是:计算机专业的学生专业优势体现在哪里?

计算机学科是一门技术性、工程性和应用性很强的学科,并有其基础理论支撑的科学体系。计算机也是一种使用工具,但那种把工具使用等同于计算机专业的狭隘认识,其思维实际上和十多年前认为“会用计算机打字就是会用计算机”如出一辙。计算机专业学生的优势应该在于:通过系统的专业原理性知识的学习与训练,熟练掌握基本的应用技能,并能够“知其然,且知其所以然”,为此专业基础课程的熏陶必不可少。而编译原理就是一门介绍这种原理性知识的综合性专业基础课程。

2 编译原理是计算机专业必不可少的基础知识

计算机专业的理论基础对培养学生的计算机专业素养具有非常重要的作用。

在众多的原理性学习课程中,编译原理主要承担了语言实现原理、方法和技术的介绍。人们借助计算机减轻自己的劳动强度,提高生产率,完成一些人类无法进行的危险、高难度工作。然而所有这些工作都必须借助程序设计语言书写的程序来指挥计算机。非机器语言程序功能的实现必须由翻译程序来完成。正是有了编译程序、解释程序、汇编程序等翻译程序,人们才可以使用自己习惯的语言将需要计算机做的事情描述成程序,并通过这些翻译程序的工作让计算机理解并执行。可以说,没有翻译程序,计算机本文由收集整理不可能象今天这样得到如此广泛的普及,网络也不会有今天这样大的吸引力,我们的生活、学习和工作将会是另一个样子。

包括编译程序在内的翻译程序承担了实现语言的功能,它所涉及的知识包括形式语言、自动机理论等语言定义、翻译与实现的基础知识,这些知识可以让学生领悟到计算机理论的精髓,可以让学生从实现的角度重新审视软件的开发,有助于学生对软件的真正认识,对于今后从事应用软件、语言开发平台、编译系统甚至操作系统开发等都是非常有好处的。同时,编译原理是许多课程的一个综合性的实践,它进一步加深了学生对程序设计语言课程中语言基本单位的定义和作用的理解。例如,编译程序使用的一些数据结构和算法是“离散数学”、“数据结构”以及“算法设计与分析”等课程相关知识的典型应用;编译程序对目标代码的存储组织与分配功能的实现原理又与“操作系统”的相关内容相互渗透;编译程序对中间代码的优化功能的实现则是数学、逻辑学、结构程序设计和优化理论的综合应用和专门化。因此,编译的原理性研究、学习和实践,可以多角度提高学生的逻辑思维能力、实践动手能力、编程调试及综合应用能力,有助于切实有效地提高学生的专业素质。另外,编译课程中介绍的知识也是后续许多课程的基础。所以,编译原理是计算机专业学生必须掌握的基本原理,编译原理课程是计算机专业非常重要的专业课程。

尽管经过计算机专业人员的大量努力,大量的工具软件为我们提供了极大的便利,以至于人们只需要通过若干次点击鼠标左键就可以方便地完成很多工作,但这并不是说所有问题都已经解决,还有很多深层次的工作需要计算机专业人员去完成。如果我们的计算机专业毕业生也只会“点击左键”,很难想象他们会开发出更好的工具,或对计算机技术的发展作出应有的贡献。

专业理论基础的学习,可以培养学生的思维方式和洞察力。计算机技术的更新是非常快的,系统的理论基础可以让学生在将来更好地适应新技术,可以让他们在理论框架的指导下寻找解决问题的方法,朝不同的方向发展!因此,“编译原理”课程应该是计算机专业必须的重要基础课。

3 编译技术的应用及需求

编译原理课程的重要性,不仅仅是因为它所介绍的知识是计算机专业理论知识的重要组成,也在于编译程序所使用的一些原理、方法和技术在非编译系统的实际应用中也发挥了很大作用。

例如我们常用的文本编辑工具的实现,涉及到的字词、语法正确性等内容就是编译里介绍的词法分析、语法分析技术的具体应用;又如现在大家上网必不可少的搜索引擎,在处理用户输入的查询要求、对文档资源的特征分析、提取与描述等工作中都用到编译的相关知识:一些特定的应用也可以用到编译中的方法来解决问题,比如用正规表达式描述网络上某种信息的特征等。

随着消费类电子产品的大量开发,嵌入式系统的应用需求也不断增加。在这种情况下,搭建适合的交叉编译环境的工作日益重要,急需掌握编译器构造相关原理、方法和技术的从业人员。这不仅说明了编译知识的生命力,同时也给高等学校计算机专业的编译课程设置带来了新的要求。

现实告诉我们,目前的问题不是计算机专业要不要开设编译原理课程,而是该如何改进编译原理的内容与教学方式,以更好地适应社会的需求。

4 国内外编译相关课程的设置情况

我们查阅了国外一些著名的大学计算机专业的课程设置情况,研究了其中与编译相关的课程安排,发现他们对与编译相关知识的介绍是非常重视的。

美国麻省理工学院的计算机专业课程设置中,与编译相关的课程就有structure and interpretation of computerprograms,computer language engineering(包括基本概念、编译器的功能和结构、基本程序优化技术、理论和实践的交互作用以及使用工具编制软件),mulfithreaded parallelism:languages and compilers加州大学伯克利分校工学院的计算机课程设置中,涉及编译的课程有implarnentation ofprogramming languages,programming languages and compilers,

structure and interpretation of computer programs等:英国剑桥大学的计算机科学课程与编译相关的有compilerconstruction和advanced compiler design等。

可以看到,这些学校的计算机专业课程有的设置了专门的编译课程,有的虽然没有设置专门的课程,但在不同的课程中都安排了专门的内容和相关的知识,不管课程设置的方式如何,编译在其中都占有很重要的分量。这足以说明国外在培养计算机专业的人材时,是非常看中其对编译相关知识的掌握的。

在国内,多年来编译原理一直是各校特别是教育部所属高校计算机专业的必修课,曾经也是计算机专业硕士入学考试的必考科目,现在某些学校的计算机专业硕士生入学面试和博士入学考试还必考编译原理。编译原理课程在我国计算机专业人材培养中起了很重要的作用,新形势下开发具有自主知识产权的计算机系统软、硬件,更需要编译原理课程继续发挥作用。

5 关于我国计算机专业编译原理课程设置的建议

一般认为,编译原理课程是计算机专业最难的课程之一,它是数据结构、语言、算法和软件设计等知识的综合体现,学生对这门课程的理解确实会有一定难度,但这正是教师工作需要解决的问题。实践证明,如果让学生认识到了课程内容的重要性,并辅之以合适的教学方法和教学手段,取得良好的教学效果是不难的。

为此,我们思考了新形势下编译原理课程所涉及内容的教学及课程设置的改革问题,如果必须改变现有的课程设置模式,我们建议在编译原理课程的设置上,可以考虑采取以下两种模式:

(1)课程分解式将编译原理课程根据内容分成两门课:一门为必修,可命名为“编译技术”,主要介绍一些为满足基本应用而需要学生掌握的基础知识、方法、技术,以达到语言实现理论基础介绍的目的;另一门为选修,可命名为“编译理论”,主要介绍偏重原理性的、更深层次的内容,方便有进一步深造需要的学生学习。

(2)内容分解式

可以不单独设置一门编译课程,可将课程的内容根据其深浅,涉及到的具体问题,及与其他课程内容的相关性等分解到不同的课程中去,使学生在不同课程的学习中逐步掌握相关知识。

篇3

1)学生水平差异较大由于学生来自不同地区,尤其是城乡的差别,间接导致了学生计算机认知和操作水平的差异。如果教学中采用“一刀切”的学方式,必然会造成两极上的分化:具有一定基础和反应快的学生会觉得课堂教学“吃不饱”,因而不屑于学习新知识;而没有基础且反应较慢的学生会因为“吃不了”而消极对待学习。如何权衡这两方面是教学中须考虑的因素。

2)教学方法单一,教学手段缺乏创新有些教师缺乏创新,沿用传统的板书教学方式,无法生动、形象的讲解知识点,也无法表达自己的教学目标,这样的教学枯燥乏味,使得学生在教学中“昏昏欲睡”,产生厌学情绪。还有些教师过于追求多媒体教学,整堂课采用满堂灌的课件来演示教学,虽然做到了直观形象,但缺少了师生间的互动,尤其是学生的动手实践和协作学习能力没有得到充分调动,也无法完成教学目标的要求。

3)教学中理论和实践相脱节任何课程只有夯实了理论基础,才能在实践中理解,在操作上有所建树。有些学校却忽视了计算机基础课实践性较强这一特点,只是追求知识的系统性,没有把过于抽象的知识与生活密切衔接,由于学生实践少,动手能力弱,因此达不到教学效果。还有些教师即使安排了实践课,但教学中并没选取恰当的实践内容让学生操作,也没给予有效的操作指导和后期的作业评判,学生无法获取成就感,慢慢也就失去学习的兴趣。

2初探中职计算机基础课程教学改革措施

2.1针对学生特点,实施分层教学

分层教学法是一种适合中职计算机基础教学现状的较理想的教学策略。计算机基础课程的目的是为学生今后的应用奠定一个较为宽泛的基础,按不同的专业性质和学生特点,制定不同的分层教学方案。有效的实施分层教学对提高学生的计算机素养有积极意义。在计算机基础课的教学中主要做好以下几个分层环节:

1)学生分层。假设A层的学生基础好,学习兴趣浓厚,成绩优秀;B层的学生对计算机知识有一定基础,有兴趣继续学习,成绩一般;C层的学生对计算机学习没有兴趣或由于基础差在学习中存在障碍。确定学生分层后,教师针对各层的学生确定教学目标,将层次教学落实到各个教学环节中。随着学习的深入,及时调整分层和教学内容,提供更有针对性的指导。

2)备课分层。在确定教学内容后,根据其难度确定如何分层,明确基本教学目标和提升要求。教师按不同难度课前设计好学习问题,同时兼顾题目的实用性和新颖性,能调动学生的学习积极性和兴趣,对于各层的学生要求他们在课上完成难度不同的题目。

3)施教分层。在操作辅导时对不同的学生应采取不同的辅导措施:对于C层的学生可采取小组互助法,让A层和B层的学生充当老师,帮助辅导基础薄弱的C层,提倡合作学习的学风;对A层和B层的学生宜进行启发式指导,让他们经过一定尝试和探索后,能独立解决问题,培养学习能力。

4)评价分层。充分关注各层次学生的操作完成情况,及时评价,让学生能有收获和提高。对于A层的学生,要求其完成所有题目后能指出操作的不足和改进方法,启发其更好地完成后继学习;对于B层学生,除必做题之外,引导其完成选做题,逐步提升操作能力;对于C层学生,以鼓励为主,适时指出操作错误,评价时适当放低要求,以激发学生积极性为主。例:《word图文混排》的学习。本节课以“贺卡”为主题,实现对word文档进行图文混排的方法。教学中对于A层的学生,要求他们根据本节课的要求综合运用word知识,发散思维,制作具有个人特点和温暖祝福语的贺卡,素材可以自行从网络中获取,作品并不拘泥于教师的案例,从而培养学生举一反三的能力;对于人数最多的B层学生,教师要引导学生在完成图文混排操作要点的基础性目标之上努力实现提高性目标,在合作、探讨的模式下掌握混排的知识点,并能对贺卡进行适当的美化和修饰;对于C层学生,只需要他们能够模仿教师的案例,独立、熟练的完成制作,培养他们良好的学习习惯,树立学习的信心、增强学习的动力即可。

2.2创新教学方法,实现不同教学目标

教学方法的合理采用对于实现一堂课的教学目标是极其重要的。计算机基础课程既有理论,又有实践,那就更加强调了综合运用多种教学方法的必要性。

1)对于理论性较强的知识点,如“计算机基础概述”,可采用问答式教学方法。例:首先可以由教师提出待讲内容的知识点(提出问题)、然后学生自己看书(分析问题)、最后教师对重点知识进行讲解(解决问题)。这样可以快速的让学生把握知识点,加快学习进度。

2)对于“计算机硬件”知识,可使用角色扮演法。角色扮演法是教师在课堂活动中让学生扮演各种角色,学生不论是亲身体验或是从旁观察,都务必将注意力专注于活动的进行过程中。要求学生依靠已有的知识或课前收集的素材,去处理扮演过程中出现的各种问题,达到加深对专业知识的理解,并能灵活运用的目的。例:让学生扮演电脑销售员、打算配置兼容机的消费者。这些角色的表演要求学生对计算机硬件知识有一定了解,这就可以促使学生在课前课后自己上网查询资料或到电脑店具体考查,促进了学生自主学习,同时对学生认识并了解计算机硬件的构成及各部件功能起到积极的推动作用。

3)对于操作技能要求较高的“计算机应用型软件”的学习,可采取任务驱动的教学方法。任务驱动教学法是指学生在教师的帮助下,围绕一个共同的任务为中心,在解决问题的动机驱动下,通过对学习资源的主动应用,进行自主探索和互动协作的学习,在完成既定任务的同时,引导学生产生一种学习实践的活动。例:在《word字处理》中,我们确定以“设计简历表”、“设计海报”等作为该知识的实训项目。经过“兴趣导入、明确任务—尝试练习、找出方法和不足—交流讨论、自我提高—课堂练习—评价小结”等一系列过程,充分体现了“以任务为主线、以教师为主导、以学生为主体”的教学原则,从而引导学生掌握知识、技能和方法,最终达到预期的教学目标。

4)对于操作系统的基本操作、Internet概述等知识点,可采用讲、演、练相结合的教学法或者分阶段教学法,即把准备阶段、教师示范阶段、学生模仿阶段、练习与总结阶段贯穿于整个教学过程。

2.3加强实践教学环节,强化上机操作技能

计算机基础课程一般都是操作性较强的知识,足够的实践练习不仅可使学生牢固掌握教学内容,还可以提高学习兴趣,因此教师在备课时设计符合学生实际特点而又实用的操作内容是教学的根本。例:对于“word图形处理”这部分内容,教师在通过几个课时基础知识的讲解后,要求学生综合运用所学的知识点对素材进行排版设计,制作一张海报。首先老师可以带领学生分析海报的设计理念,引导学生突破设计创意;然后根据素材分组讨论,设计制作方案。待每组汇报设计方案后,师生再共同完善方案;最后要求每组按照方案来具体制作海报。制作的过程就是强化知识点的过程,让学生把知识联会贯通,加强实践操作技能的融合。而在学生实践过程中,教师要勤于检查,发现问题及时解决,并把握好进度。同时做好评价记录,重点考核学生利用所学知识解决实际问题的能力,关注学生良好的学习态度,培养学生学习习惯的养成。

2.4合理选用教材,加强学习内容的选取

篇4

高等职业教育具有普通高等教育和职业技术教育的双重意义。从现阶段众多职业教育院校的运作模式来看,是一种学历教育规范内,注重非学历的技能培训教育模式。鉴于高职教育这一特点和内在要求,它的课程体系及教学模式严格和市场接轨,紧跟人才市场需求,致力于培养出去就能做事或只需经过短期培训即可做事的人才,计算机专业的学生动手能力尤为重要,而计算机编程语言的使用是计算机专业学生的基本素质,成为教学的重中之重,因此,提高计算机语言的教学质量和效果至关重要。据国内外专家的调查统计及众多高校实践教学反映,对于初学者而言,计算机编程语言是一门较难掌握的课程,教学中存在多方面问题,学生编程能力低,总体教学效果不理想,不能较好地达到高职院校对学生动手能力方面的要求。

计算机语言学习中的几种困难:

1)有畏难情绪。

一听说编程,有的学生就觉得很难。首先有心理障碍,学习过程顺畅还好,一旦遇到难理解的知识点,就怀疑自己。难理解的知识点积累到一定程度后,开始慢慢放弃,直到跟不上课,破罐破摔。

2)语法掌握差,编程习惯不规范。

观察学生上机情况,会发现很多同学的程序卡壳在一些小问题上:关键字拼写错误、大小写错、中英文模式错,多空行或少空行,数据类型乱用混用,程序结构理解错误等。关注程序结果兴趣大,顾及编程过程及编程风格少。基本功薄弱,心急浮躁型。

3)编程思路不清晰。

写出的程序结构不清晰,规模臃肿,可读性差,程序效率低。偏难一点的程序,就会感觉无从下手,出现即使能听懂却动不了手的现象,典型的眼高手低。

4)学习态度消极。

上课时,遇到难理解的就放弃;上机时,遇到程序卡壳就放弃。不主动提出问题,不积极思考问题。自由练习时散漫,交作业和关注考试内容却积极。典型的应付考试型。

对以上情况的分析:

学生有以上表现,不完全是学生单方面的原因,是初学者中的典型现象,但这些问题将导致学生一学期下来,收获甚微。因此,我们还应该从课程本身和教师引导方面找原因。计算机编程语言本身比较抽象,要将需解决的问题,按计算机处理数据的内部机制,遵从编程语言的规定按步骤编写出来,确实需要逐步训练出一个慎密的思维过程。另外,据Iain Milne和Glenn Rowe的统计,编程语言中的几个知识点,如指针、与内存相关的知识点等是学生理解的瓶颈,这些都造成了学习的困难。

除此之外,老师在编程教学中的作用也非常重要。学习编程语言,首先就会接触到许多庞杂的语法知识,老师必须帮助学生找准重点,讲清关键点,攻破难点,提醒易错点。还要引导学生一开始就养成良好的编程习惯,逐步训练编程思路,有效的鼓励学生,营造良好的编程学习氛围。在这方面,老师切忌只号召或喊口号,要实际引导,通过老师的引导真正带动了学生的行动。

提高计算机编程语言教学效果的措施

一是从语法、语义本身的角度;二是从编程思路的角度,最后是老师对学生的激励措施方面。学生刚开始学习编程,对编程语言本身的运作机理首先就不理解,也就是首先需要一个认知过程,而要把实际问题,抽象为在编程规则约束下的算法,用程序语句表达出来,然后得到解决答案的过程,需要一个训练过程。在学习过程中,学生可能遇到这样那样的问题,其中的挫折可能导致学生不同程度的产生放弃的念头。如何引导学生的编程兴趣,增强学生编程的信心,老师在此层面的作用,至关重要,否则,众多学生的放弃实际就是败在第三层次上。

1. 理清课程的知识点

1)对于每个知识点,知道该去关注本知识点的一些什么东西。比如,学习数据类型,必须关注每种数据类型的类型名、表示的长度、能进行的计算、特殊用途。学习流程结构,必须知道它们运行的细节。学习函数,必须关注这个函数名,参数的个数和类型,返回值,另外就是要习惯查库函数。学习类和对象,要学会抽象出类,分离出每个类的属性和行为等。这样每个知识点有该关注的点,学习起来就有针对性,上机编程时,也不至于犯很多的语法错误,调试排错时,也会本能地朝这些方面去检查。否则,就会眉毛胡子一把抓,结果什么都记不住。

2)利用案例去理解和掌握知识点。现在很多书本为案例教学,本堂课的知识点体现在案例中哪些语句上,用法怎样,和上下文之间如何衔接等均可以从案例中学习到。学生去背程序是不可能也完全没有必要的,在理解案例基础上,抓住了案例中体现出来的知识点,掌握好每堂课的知识点,本堂课就做到重点突出了。

2.编程思路的训练

1)用模块化、逐步细化的分析方法。

教会学生站在全局的角度分析问题,将问题按功能分解成一个个小问题,然后按步骤各个解决。对学生而言,如果程序功能比较单一,代码行数比较少,学生容易把握。当一个程序要处理的问题多了,或者逻辑关系稍微复杂了,就顿时感觉头大,无从下手。如果用模块化的思想来解决问题,就会有条有理,逻辑清楚,不会错漏。

2)让学生了解程序细节,即程序的运行过程。

比如JSP课程中,运行结果中出现的界面元素(比如一个图片、一个表单、一个链接,或者一个处理结果),给学生指出,分别对应程序中的哪几行代码。这样也能根据运行结果去推理程序的编写流程和运行细节,让学生知其然知其所以然,还能把一些有用的代码重用,下次写程序时,能直接搬出那段代码来,这样知识块累计起来,时间长了,掌握的东西自然就多了。

3)训练学生程序调试、排错能力。

没有任何一个人写出来的程序是不需要排错的。初学者班级的老师,会发现辅导学生上机时是最累的,可能老师整堂课程到处跑着帮学生排错,结果还发现解决的却几乎是同样的问题。因此,课程中,首先要训练学生怎么在调试过程中分析错误报告,然后教会学生一些基本的排错技巧。每堂上机课的开始,可以先提醒学生,在本次练习中,一般会出现什么错,怎么解决。课堂最后几分钟,可以跟同学们总结一下,此次上机大家仍然还在犯什么方面的错。这有利于节省学生卡壳的时间,老师的工作效率也会提高很多。

3.有效的激励措施

1)把握好上机课作业的难度。

特别那种记录在数的、学生比较看重的作业,有意识地让他们能有几次是所有同学都能圆满完成的,无形地给他们获取成功的感觉,增强编程的信心。

2)辅导上机时鼓励胆小和不主动学习的学生。

对于编程而言,即使是一个小问题被卡住,整个编写、编译和运行过程就进行不下去,让学生自信心和学习兴趣严重受挫。辅导上机时,细心的老师们会发现,有部分同学羞于问问题。更有甚者,当自己程序出现问题实在解决不了,不但不发问,老师经过时,还连忙掩藏起来。如果看到这种情况,老师们可以主动凑过去,即使程序没有错误,对于那些腼腆胆小的学生,也要时常关注,偶尔站到他们身边,鼓励地说一些诸如“嗯,就是这样”;“不错”;“如果有问题解决不了,就要及时叫我”之类的话。这样一来,学生会发现老师在关注每一个学生,也会很感恩,师生之间的关系就融洽了,营造了一个好的学习环境,老师的教课激情、学生的学习兴趣和积极性自然也提高了。

3)设计编程题目时,有意激发学生的创新意识。

变更题目的要求,要求学生写灵活性更强,适应面更广的程序,训练学生的发散性思维和变通能力。比如,求三个数的最大公约数和最小公倍数,等学生写完了,可以问学生,我们是不是可以试着写一写求多个数的最大公约数和最小公倍数呢?这样程序功能更大,健壮性更强,学生自然摩拳擦掌,跃跃欲试。

4)抓住学生的学习心理,从其他方面刺激他们学习的兴趣。

单纯用学习好所带来的物质、经济方面的激励言辞,确实可以让部分学生逼迫自己学习,但也很可能带来的动力是极其短暂的。特别是对于90后这一代学生,网络、电影、电视等社会中的一些因素对他们有很大冲击,他们的脾气秉性已和老师们的读书年代有很大不同,因此要抓住他们的心理喜好去刺激他们。比如,从编程中找到的乐趣和收获的成就感就是发自内心的,可以让学生在没有任何外在逼迫的情况下沉浸在编程的乐趣中。抓住学生的学习心理,不单纯纠结于学生不认真的态度,偏要多鼓励而少责备,站在理解学生的基础上,学生容易接受。如今年代的孩子流行颓废,喜欢想往那飘渺的理想未来,那就顺其自然,用他们喜欢的方式去激励他们。

篇5

关键词:整合;  微机原理与接口技术;  汇编语言

1.前 言

《微型计算机原理及应用》与《汇编语言程序设计》是计算机应用专业的两门较重要的基础课程,是软件专业的必修专业课。它是后继计算机语言课、操作系统、数据库原理等课程的基础,也是教学难度和学习难度较大的两门课程。原来的两门课程虽侧重点不同,但有些内容也有重复现象,况且两者有密切联系,如果分开开设,则不能使学生对计算机的组成框架及系统语言有总体的认识,教学效果也不好。这对本来就难学的《汇编语言》与《微机原理与接口技术》的老师和学生无疑都是一个挑战。面对这种困难, 结合着我们对学生的接受能力以及认知规律的了解, 我们尝试将这两门课程整合为一门《汇编语言与接口技术》, 将它们放在一起可减少两门课程的为数不少的重复内容, 从整体上看学生的课时减少了, 可是对这两门课的学习时间却没有减少, 使教学更加方便, 而且学生的学习效果也会有所提高。我们从以下几方面论述了这项课程改革的必要性。

1.1我校课时压缩迫使课程改革.

[1]好多高校都在加大课程整合的力度, 减少课程总学分, 拓宽基础, 加强通识教育。在这种趋势下,《汇编语言程序设计》的课时不断被压缩。课时减少后, 教师既要介绍复杂的指令系统, 又要介绍程序结构,  难免会顾此失彼。通常学生学习结束后, 还不明白这门语言的用途, 并且容易产生厌学情绪, 对后续课程《微机原理与接口技术》产生畏惧心理。从内容上看《汇编语言程序设计》和《微机原理与接口技术》都对计算机的组成与工作原理、汇编语言源程序的基本构成以及与外部设备的接口问题进行了讲述, 有很多相连之处。因此, 将这两门课程合并, 优化两课内容, 有利于整个教学计划的安排, 也有利于教学。

2.合理安排汇编语言与微机原理与接口技术的课程内容.

《微型计算机原理及应用》与《汇编语言程序设计》有好多知识点是重叠的,《汇编语言程序设计》中的内容主要是微处理器的结构、8086指令系统和汇编语言程序设计,《微型计算机原理及应用》把这些知识点都包含进去。 (如表 1 所示)

[2]将两门课程合二为一势必要对教学内容进行压缩, 那么选择什么样的教学内容较为合适呢? 我们采用的教材是《微机原理、汇编语言与接口技术》该书通过80286、80386、80486、Pentium和Itanium(安腾)微处理器和IBM PC机的硬件和软件分析以及总线技术,阐明微型计算机的组成原理以存储器、输入输出接口芯片与微型计算机的接口方法。同时还包括汇编语言程序设计和接口技术两部分内容。汇编语言程序设计是微机应用系统的系统软件和应用软件的设计基础,接口技术是微机应用系统硬件组成的基础。该书内容较全面,实例丰富。学习微型计算机的汇编语言程序设计和接口技术必须理论联系实际。该书在介绍基本概念的同时,列举了大量典型而有意义的例题和习题。更加注重实验环节。

[3]这门课程实践环节尤为重要,实验是实践环节的一个重要组成部分。可以提前几周把实验题目布置下去,让学生充分准备。一般我们对实验的要求是:硬件原理图、流程图、调试成功的汇编语言程序。从我们实验课堂来看学生都很重视,而且大家对实验的兴趣也非常浓厚,都能积极地参与到实验中去。通过实验的实战练兵,可以进一步巩固所学理论知识,使学生对微机原理系统有了系统的认识,通过实验,使学生对这门课从理论到实践跨出了关键性的一步。这是一个升华的过程,是一个质的飞跃,为学生今后的毕业设计乃至将来的工作打下了良好的基础。

3.考试方法.

按照教改计划确定的培养目标和对学生在知识与能力等方面的要求,教师在给学生期末总成绩时,本着重平时、轻期末,既注重课堂教学又重视实践教学的原则进行考核。考核办法:平时成绩+期末试卷成绩=总成绩。平时成绩:作业+课堂表现+实验(20分),共计30分;期末试卷成绩:70分,加大平时的考核力度,作业和课堂表现可以侧重于知识的掌握,实验和期末成绩既有知识的掌握、知识的运用、又有综合性和创造性。这种方式,可以促进学生时时注重学习,有利于学风和考风的好转,可以杜绝仅凭期末一次考试就一锤定音的方式。

4.结束语.

通过计算机专业课程的整合,开拓了整体教学的新视野,同时也给我们许多新的启示,给教学工作增添了活力。课程优化是我们教改工作的具体体现,今后,我们还需进一步研究与探讨课程整合的新思路,以培养出更优秀人才。

                        

参考文献:

[1]许颖梅. 对汇编语言和微机原理课程整合的探讨[J]. 福建电脑,2007.01.

篇6

[关键词]:可编程 计算机 电梯 远程 监控

目前,电梯已经成为了人们生活中不可缺少的重要交通工具,所以,电梯能否高效安全的运行是相当重要的,而仅靠以前的人工方法来应对故障,出现了很多局限性问题,且运行效率十分低下。随着计算机在电梯上的普遍应用,电梯运行效率和安全性得到了有效提高。运用可编程计算机控制器能可以远程在线监控电梯的运行情况,人们只需在计算机前就能远程监测电梯故障,还能结合现场情况合理调度电梯,尽早发现故障,降低维修成本,节约修理时间,还可提高电梯运行效率。

一、PCC――可编程计算机控制器概述

PCC(全称为Programmable Computer Controller),中文名字是可编程计算机控制器,最初是由奥地利贝加莱公司推出的,它是对传统PLC的完善,除了具有PLC的所有功能外,还兼有通用计算机的大规模数据处理能力、高运算速度和大存储容量。PCC最大的优点就是能实现像大型计算机一样的分时多任务操作系统和多样化的应用软件运行平台。PCC运用了系统总线与I/O总线分离的总线技术,存储器、处理器、远程主站、网络模块等运行在系统总线上;I/O总线上的模块主要用于机器或系统接口,如数字量和模拟量I/O模块、定位模块、智能I/O处理器等。PCC具有网络通信的能力,如B&R2003、2005、2010等都可以进行RIO、以太网、CAN BUS、PROFIBuS、NET2O00等网络通信。

二、电梯远程监控的作用

电梯远程监控的作用主要有:监测故障、语音服务、监控服务、远程保养和诊断。这些作用概括起来就是:

(一)监测故障

关人故障、安全装置动作、电源异常、控制系统异常、门开闭异常、不能启动故障。

(二)语音服务

与监控中心直接通话引导语音、乘客被困在轿厢时轿厢内自动播放安抚语音。

(三)监控服务

全天24小时联网监控、受困乘客与监控中心直按通话、监控中心与轿厢乘客主动通话、故障情报分析、维修人员工作反馈。

(四)进行远程故障诊断

各楼层门开关工作状态、各楼层门安全开关动作状态、各楼层召唤按钮动作状况、轿厢各按钮动作状态、轿厢安全触板动作状态、轿厢门安全开关动作状态、极限开关动作状态、平层误差状况、超载开关状态。

三、电梯远程监控系统中可编程计算机控制器的主要组成

远程监控就是通过使用计算机网络实现集中监控,除了能了解电梯的运行工作状态,还能在最短时间里处理电梯故障。远程监控系统主要包括信号传输子系统、现场信号采集/发送子系统和监视中心三大系统。采集信号的工作主要是由电梯控制中心完成,各个电梯(现场)与监视中心之间的联系通过公用电话网进行传送。其主要功能有:电梯紧急故障时应答远程电梯轿厢内受困人员的询问;查询紧急状态电梯的有关信息;非定期的特定要求电梯的数据查询请求;根据初步的故障分析,统一调度管理安排技术人员赴现场维修服务等。

PCC控制电梯的远程监控体系结构如图1和图2所示,各台电梯的PCC从站完成对电梯运行控制和运行状态的数据采集,PCC主站通过现场总线PROFIBUS与各控制从站进行通信。并将采集到的电梯运行数据发送到本地终端计算机。远程终端计算机通过Internet网络与本地终端计算机相连,执行对各电梯(现场)的远程监控。

图1为PCC控制电梯的远程监控系统,系统中PCC主站与下位机PCC从站之间采用RIO(远程扩展)方式进行通信,PCC主站通过各PCC从站完成对各电梯的运行控制及其运行数据采集任务;PCC主站与上位机本地终端计算机之间采用PROFIBUS方式进行通信,PCC主站将采集到的电梯运行数据信息传输到本地终端计算机;本地终端计算机与远程终端计算机之间通过公用电话网络进行通信,远程监控中心得到电梯运行数据信息后,通过监控中心的故障诊断专家系统对数据信息进行处理,并根据诊断结果将相应的紧急处理控制指令通过公用电话网络发送到本地终端计算机,由PCC主站将控制指令传送到对应的PCC从站,完成对电梯运行故障的紧急处理。

图2为PCC从站电梯的主控制系统,其主要的作用是采集轿厢外上厂下呼梯信号、轿厢内选层信号、轿厢位置信号和电梯门状态信号,并且通过综合判断和处理这些信号,最终确定轿厢的运动方式,把控制指令发送给VVVF变频器、主回路接触器、轿厢开关门电路、运行状态显示电路和抱闸电路,最终实现最优服务。

四、可编程计算机控制器在电梯远程监控中的运用

这是指运用可编程计算机控制器来采集故障信号,电梯的故障信号是通过信号采集器来采集受监控电梯设备的运行信号、层楼信号、安全回路信号,在整个远程监控系统中每台电梯需要设置一套信号采集器,与本地终端计算机进行串行通信。PCC控制电梯的故障信号可以通过系统的各控制从站PCC来采集,不需要增加信号采集器。

电梯的远程监控系统要完成远程监控的任务,需要采集以下信号:快车信号、慢车信号、上行信号、下行信号、轿厢位置信号、开门信号、关门信号、开门限位信号、关门限位信号、门锁信号、检修信号、司机(或自动)信号、重复开门信号、重复关门信号、直驶信号、超载信号、门区信号、上行减速信号、下行减速信号、上行强迫减速信号、下行强迫减速信号、上行方向限位信号、下行方向限位信号、轿顶安全窗开关信号、轿顶急停开关信号、安全钳开关信号、轿厢限速器开关、热保护继电器信号、各层楼层门锁开关信号、轿门锁开关信号。

为了确保采集的信号不影响电梯控制系统的正常工作,信号采集一般采用并联引出法,即各控制从站的PCC除了执行对本台电梯的运行控制外,还负责采集本台电梯的运行信号、层楼信号、安全回路信号。因为电梯控制系统的输入和输出都是数字量信号,所以其信号采集不需要专用的A/D转换信号采集装置,而是可以通过PCC远程扩展主站模块和各个PCC远程扩展从站的通信,由PCC主站通过软件控制程序读取各个PCC从站I/O模块的状态来完成故障信号的数据采集

综上所述,将可编程计算机控制器应用于电梯控制,实现了在CAN总线技术的辅助下进行站――主站――本地用户终端计算机相互间的数据通信,利用互联网通信技术将远程控制计算机和本地用户终端连接从而实现对PCC控制电梯的远程监控,在线掌握电梯的运行情况,实时在线检测电梯运行故障,保证了电梯的安全运行,是现代化建筑智能化的发展要求。

参考文献:

[1]余华,孙德宝.智能大厦中的电梯群控系统[J].电工技术杂志.2002,(1):37~39.

篇7

“编译原理”、“操作系统”和“计算机体系结构”是计算机专业的三门核心课程,在计算机科学的教学体系中占有重要地位。学生对于这三门课程的掌握程度在一定程度上反映了他们对计算机专业知识的掌握情况;进一步讲,能否确切理解编译程序、操作系统和硬件系统之间的关联及它们在计算机系统中的层次地位,直接反映了学生对专业知识的整体把握程度。遗憾的是,受限于目前的教学大纲和学时,这三门课程的教学很少涉及对相关课程的介绍和联系,只注重课程自身教学内容的讲解和分析,导致学生无法理解所学知识的应用背景,产生学无所用的想法。

由于编译课程内容具有较强的理论性、逻辑性和实践性,学生在学习过程中感到过于抽象和难以理解。编译教学内容涉及到程序设计、操作系统和计算机系统结构等相关课程,掌握编译技术有助于加深学生对整个计算机系统的理解[1]。目前,编译课程的教学更多关注自身内容的讲解和传授,与其他课程横向联系的内容相对较少。许多学校虽然开设了实验课及相应的课程设计,但只对编译理论中的某些算法或编译系统的某一阶段功能进行单纯的实现与验证,缺少实际背景。另外,现行的编译教材大部分都是从编译技术本身的角度撰写的,为的是让学生掌握编译的基

本理论与思想[2]。所有这些最终导致学生无法对高级语言程序设计每条指令的执行过程有清晰的认识和理解,因而不能实现专业知识的融会贯通。WWw.133229.CoM计算机专业的理论基础对培养学生的计算机专业素养具有非常重要的作用[3],因此课程间封闭的教学方式不利于专业素养的培养和提高。

目前,这一现状在短时间内很难改变。笔者认为应以编译课程为切入点,在教学过程中加强相关课程的联系,促进计算机专业知识的交叉融合。

1以编译课程为切入点,强化专业知识融会贯通

编译程序在计算机系统不同层次中处于核心地位,在程序设计及运行过程中起到桥梁和纽带作用,因此应以编译课程为切入点,促进专业知识的融合。按照教学大纲安排,学生入学后首先要学习程序设计的相关课程,进入高年级后,主要学习操作系统、计算机体系结构和编译原理等核心专业课程,它们之间的关系如图1所示。由图1可以看出,编译程序在从程序设计到程序运行产生输出结果这一过程中处于核心地位,编译系统对用程序设计语言编写的源程序

进行编译,编译过程中会用到源语言自身的规范和库程序,需要操作系统提供的库程序和接口以及目标体系结构的相关信息生成可执行的二进制程序。可执行程序根据用户的需要,由操作系统调度运行,并与下层的硬件系统产生密切的关系。本文由收集整理为此,编译课程的部分内容需要程序设计语言、操作系统和体系结构等课程作为支撑,这样学生才能更好地理解计算机系统从软件设计到程序执行的完整过程。

正是由于编译系统在计算机系统中处于重要地位,以编译课程为切入点,在教学过程中加强核心课程之间的横向联系,不仅有助于实现编译课程抽象内容形象化,也有助于加强学生对整个计算机系统的认识。另外,随着计算机系统结构的不断发展与更新,嵌入式计算、并行计算与可重构计算系统逐渐得到发展和普及,这些都使编译系统和计算机系统结构之间的关系变得比以往更加密切。一种新结构的出现需要新编译系统的支持才能真正发挥作用,因此在编译课程的教学中加强与其他课程的联系,也是符合计算机系统发展的大趋势。

2以编译课程为切入点的可能性分析

以编译课程为切入点,强化各个核心专业课程之间的关联,其可能性概括如下:

(1) “编译原理”是计算机专业重要的专业课程,且在计算机系统中具有重要地位。

(2) 编译课程开课的学期较为合适。我们查阅了国内部分高校的教学计划,研究了计算机核心专业课程的课程安排。如表1所示,在我们调查的高校中,除北京大学、北京航空航天大学和西安交通大学外,近一半高校编译课程的开课学期多位于程序设计、操作系统和计算机体系结构等课程之后,或与操作系统和体系结构等课程同时讲授,因此在编译课程的讲授过程中穿插联系相关课程的内容比较合理。通过对相关知识进行整理归纳、巩固与提升,能够取得较好的教学效果。

(3) 编译课程多次涉及其他专业课程的内容,例如“编译原理教学引论”部分要讲授程序设计语言的发展历史、编译程序在计算机软件系统中的重要地位等内容;讲授“编译运行时的环境”部分时,一定学时用于讲述存储分配,特别是基于栈的运行时环境的动态存储分配和基于堆的运行时环境的动态存储分配部分,与操作系统相关内容相互渗透;在“代码生成和优化”部分,尤其是过程(函数)调用的翻译部分,针对目标系统结构的优化部分,亦需要体系结构相关知识作为支撑。反观操作系统和体系结构等课程的教学内容,与其他课程的联系则相对较少。

基于以上几点认识,我们认为,以编译课程为切入点,充分利用有限的学时,在部分教学内容中强化与其他核心课程的关联,实现专业知识融会贯通的可能性是存在的。

3关于课程教学的几点建议

如前所述,目前教与学的实际情况不利于学生对计算机专业知识的融会贯通,在注重软件能力培养的计算机学院中,学生对图1的阴影部分知之甚少,而对阴影前后两部分的内容更加熟悉,掌握程度更高。所以,学生没有从总体上对所学知识建立完整的知识体系,对所学专业课程没有构成清晰的轮廓和概括。

为了强化编译课程的教学效果,教师需要将课程教学置于计算机系统大的背景环境之中,重点阐述编译程序在计算机软件系统中的重要性,与其他核心专业课程之间的联系,同时运用实例教学,使学生从抽象的教学内容中解脱出来,真正感受到所学知识的可用性和有用性。鉴于此,我们对编译课程的教学提出如下几点建议:

(1) 在引言部分强调编译课程与其他课程的关系,重点

说明编译程序在整个计算机系统中的作用和层次地位。需要说明的是,教师不应只强调编译程序自身的地位和作用,还要将其放入图1所示的背景中,使学生能够理解编译程序在从语言到程序执行过程中所处的位置和作用,加强对计算机专业大背景的认识。

(2) 在运行环境、代码生成和优化部分,教师应结合操作系统和计算机体系结构内容进行讲解,使学生能更好地理解目标代码格式、函数调用方式、基于栈的存储管理、代码优化的原因和目标等概念。

例1:对可优化的简单程序源码,使用同一编译程序多次编译,每次编译时指定不同的优化级别,通过分析编译程序生成的汇编源码比较生成的可执行程序运行性能,向学生解释编译程序在编译过程中实施的优化措施,说明优化的目的和效果。

例2:针对最简单的c语言helloworld程序,通过分析其在具体平台上编译后的运行时函数调用图(包括操作系统api),说明用户编写的程序与语言库、系统库之间的关系。

例3:结合具体型号的dsp处理器(例如tms320 c6000系列)及其调试模式下指令的执行过程,说明针

对具体计算机系统结构进行编译优化的必要性和重要性。

(3) 建议针对目前常用的系统平台设计小型完整的实践课程,实践内容应适量涉及体系结构和操作系统的相关内容。针对常见的处理器架构和操作系统设计实践课程,可以使学生在实际的系统中观察到实践结果,通过实际操作和验证增强感官认识,对所学知识融会贯通。

例:针对学生熟悉的程序设计语言(c或者java)、经常使用的操作系统(windows或者linux)、常见处理器架构(例如x86),设计简单完整的实践课程。教师提供能够处理一小部分语法子集的完整编译程序,供学生学习,作为实践过程的参照。学生可以将一小部分没有实现的语法子集作为实践任务,完善已有的编译程序,实现从词法分析到代码生成的各部分功能。最后应能使增强的编译程序在现有的系统平台上运行,编译源码文件并生成可运行的应用程序。

篇8

基于自主研发的新颖异构多核工程科学计算加速协处理器(ESCA)体系结构,实现了图像Laplace变换算法。针对ESCA架构特点,采用子字并行计算和访存延迟隐藏等机制,进行了一系列并行算法优化,并在四核ESCA处理器原型上对图像Laplace变换算法的进行了性能评测。实验结果表明,对于计算密集型计算任务,ESCA处理器具有良好的计算加速效果。

关键词:异构多核;协处理器;计算密集型;Laplace变换;并行计算

中图分类号: TN492

文献标志码:A

Implementation of Laplace transform on heterogeneous multi-core

engineering and scientific computation accelerator coprocessor

Abstract:

Engineering and Scientific Computation Accelerator (ESCA) is a heterogeneous multi-core architecture to accelerate computation-intensive parallel computing in scientific and engineering applications. This paper described an implementation of Laplace transform on the hybrid system based on ESCA coprocessor, and the performance of Laplace transform on the quad-core prototype ESCA was exploited. The experimental results show that the ESCA can accelerate program of compute-intensive applications fairly well.

Key words:

heterogeneous multicore; coprocessor; compute-intensive; Laplace transform; parallel computing

0 引言

高性能计算(High Performance Computing, HPC)广泛应用于金融、制药、交通、银行、证券、医疗、教育以及科学计算及信息化服务等领域[1],已成为衡量一个国家核心竞争力的关键指标。近年来受应用需求和系统实现技术的驱动,高性能计算机的核心评价指标已经从高性能计算转向高效能计算[2],即每瓦特能耗下所能实现的性能(Performance-per-Watt,Flops/W)。“主处理器+协处理器”的混合计算体系结构[3-4]以其独特的效能优势[5],已经成为高性能计算机系统体系结构研究的主要趋势之一。同时,片上多核处理器作为摩尔定律的一种新的延续形式,已经成为处理器性能持续增长的必然途径[6]。对此,文献[7-8]面向科学计算、数字信号处理和多媒体处理等科学与工程计算应用领域,提出了一种自主研发的异构多核处理器——工程科学计算加速协处理器(Engineering and Scientific Computation Accelerator,ESCA)体系结构。

ESCA处理器是一个具有强大计算性能的协处理器,采用经典存储器接口方式,与商用主流的通用微处理器(如Intel CPU、IBM Power PC等)或嵌入式微处理器(如ARM、 SPARC等)有效协同,实现基于混合计算体系结构的高性能计算机系统。其中,主处理器上运行操作系统,主要负责执行系统任务和控制任务(如响应中断、操作外设等),并根据应用特点将并行计算任务分配到协处理器计算节点上;ESCA处理器负责对具体的计算任务进行加速。这种“主处理器加协处理器”的混合异构多核架构可以提供强大的计算能力,广泛应用于计算密集型的科学与工程计算应用领域[9]。

图像信息处理是一种典型的计算密集型应用,而Laplace变换在图像处理中的应用非常广泛。本文深入分析了ESCA体系结构的特点,基于ESCA架构实现了图像Laplace变换算法,并进行了一系列并行算法优化。实验结果表明,对于计算密集型计算任务,ESCA处理器具有良好的计算加速效果。

1 ESCA体系结构

ESCA处理器主要包括计算阵列、控制内核、指令高速缓存、总线接口单元以及直接存储访问引擎几大部分,体系架构如图1 所示。其中,计算阵列集成多个计算内核(Processing Element,PE),以单指令多数据流(Single Instruction Multiple Data, SIMD)模式并行执行以提供高计算能力;控制内核负责ESCA处理器与外部的通信,同时取指令发送给PE计算阵列进行运算操作,控制程序的正确执行并收集程序执行过程中的各种状态(异常、中断等)。指令高速缓存用于存储近期可能用到的ESCA计算任务程序,为控制内核提供快速的取指响应。总线接口单元则主要用于进行片内外数据通信,匹配外部Local Bus接口时序和Local Memory接口时序,控制数据通路,根据不同的位宽比例进行数据拆包和打包工作,并且产生相应的控制信号。

控制内核是ESCA处理器的控制中枢,它包含多个控制状态寄存器。这些控制状态寄存器参与全局编址,可供Host访问和查询。而ESCA处理器芯片根据这些控制状态寄存器的设置执行相关操作,如指令高速缓存的预取、计算任务的开始执行、调试模式、DMA传输配置等。此外,控制内核读取指令并进行初步译码,识别该指令是在控制内核处理器核中执行的(如同步指令、Load/Store指令、跳转指令、控制内核级别的简单计算和比较指令等)还是要传递给计算阵列进行的(如用于运算加速的计算指令、网络传输指令等)。计算阵列则是进行并行计算,它支持向量模式及子字并行,同时在计算阵列实现了条件执行和条件中断,以及间接寻址等功能。PE之间的互联网络采用层次化方式构建,具有很高的可扩展性和灵活性。

2 图像Laplace变换算法在ESCA上的实现

2.1 图像Laplace变换基本原理

拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义为:

另外,拉普拉斯算子还可以表示成模板的形式,如图2所示。从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。

2.2 Laplace变换算法在ESCA上的实现

2.2.1 任务划分

由于ESCA系统是以“主处理器加协处理器” [10]的混合计算模型执行的,主处理器(商用CPU)在处理数据相关性不大的计算类和复杂繁琐的非计算类具有优势,而协处理器(ESCA处理器芯片)则适合用来处理计算性强但逻辑性不强的大量平行数据。所以需要进行合理的任务划分,使二者协同工作,共同完成计算任务,能充分利用各自的架构优势,发挥出强大的计算能力。

ESCA系统中主处理器(Host)与协处理器(ESCA芯片)之间按照offload mode协同完成具体应用:Host端先对原始数据进行预处理,然后创建初始化ESCA处理器芯片线程空间,将相关指令和数据从系统主存下载到ESCA芯片的片外存储器中,之后再启动ESCA芯片执行;ESCA芯片接收到启动控制信号后,由控制核控制内核从初始地址开始取指运行,配置计算阵列对待处理数据的DMA加载过程。当一次批量运算所需的数据都从片外存储器通过DMA方式载入到计算阵列的局部存储器之后,所有PE在SIMD模式下执行并行计算。当计算阵列完成该次计算任务后,由控制内核配置计算阵列的结果数据到片外存储器的DMA下载过程。当ESCA芯片的所有计算任务完成后,控制内核将操作完成的控制信号写入特定状态寄存器,Host查询到该状态,将ESC外存储器的结果数据读回,通过相应处理得到最终结果。ESCA系统执行图像Laplace算法的具体程序流程如图3所示。

2.2.2 分块存储

从式(3)可知,在对图片进行Laplace变换时,每计算一个像素点都会用到原始像素矩阵的3×3的小矩阵,而BMP格式图片的像素点在存储器中是按行存储的,所以在计算时,需要多次访问局部存储器。因此需要将图片像素进行分块存储,使每一块的数据大小为ESCA计算阵列所能处理的大小,就能减少ESCA计算阵列对局部存储器的访问次数,提高访问效率。

ESCA的一个处理单元有16×16个寄存器,在子字并行(Subword)技术[11]下,一个寄存器可以存放4个像素值,除去用作临时变量的16个寄存器,ESCA处理单元一次能批量处理64×15个像素点,在ESCA计算阵列规模为2×2的情况下,ESCA计算阵列一次能批量处理64×60个像素点。因此可以在Host端先对二维BMP图片进行分块,每块大小为64×60个像素点,以块为单位部署到ESCA的局部存储器中。计算时,每次传递一块数据到计算阵列,经计算阵列计算后,结果数据再以块为单位放回到ESCA局部存储器中。最后,由Host端将ESCA局部存储器中的结果数据矩阵还原成Bmp图片。

考虑到边界元素的影响,原始数据块之间会有部分数据重叠,每个数据块包含的实际像素点为56×52个,这也即结果数据块的大小。所以对于尺寸为W×H的Bmp图片,分块后个数为N,则:

2.2.3 分块计算

在对图像数据完成分块处理后,由ESCA计算阵列对分块数据批量完成Laplace变换。计算阵列是ESCA的计算核心,由多个处理单元组成,构成了一种片上轻量级集群结构,通过片上互联网络进行有效互连,在控制内核的控制下以SIMD方式实现高效并行计算。为了方便管理和控制,处理单元以方阵形式组织,根据应用需求,可以从2×2的规模,方便的扩展到4×4,甚至16×16的规模。

在本文中,计算阵列由2×2共4个处理单元组成。将分块数据的64×60个像素点的块数据按列分成4个64×15个像素的小块,再分配到计算阵列的4个处理单元中去。由于相邻处理单元数据不存在数据相关性,所以4个处理单元可以完全的高速并行进行计算。除去边界元素,每个处理单元一次批量计算出来的像素点为56×13个,计算阵列一次批量计算出来的总的像素点为56×52个。

2.3 性能优化

2.3.1 子字并行机制

为了对性能进行进一步优化,除了在计算阵列的多个处理单元能实现SIMD并行外,还可以在处理单元内通过子字并行(Subword)机制实现SIMD并行。所谓子字并行,是将多个短数据(即子字)打包并封装到一个寄存器中,利用数据并行操作对一个寄存器中的所有子字进行并行处理,是一种低功耗、小规模的SIMD并行。

对于图像Laplace变换这项具体应用,ESCA处理单元的寄存器是64位,而8位BMP图片的1个像素点为8位,考虑到计算的中间结果可能超过8位,故用16位来存储,ESCA的1个寄存器可以存储4个像素点。利用子字并行机制,1条指令能同时对1个寄存器内的4个像素点的数据进行并行处理。

在Host端图片像素是顺序存储的,如图4所示,相邻的点并不在相邻寄存器的对应位置。

为了减轻Host端数据处理的负担,尽量保持数据的原始性,由ESCA的计算阵列通过多媒体数据重排指令来完成这一过程。对于进入ESCA计算阵列的原始数据,通过数据重排由图4到图5;对于ESCA计算阵列计算出来的结果数据,则通过数据重排由图5到图4。

2.3.2 访存延迟隐藏

为了解决存储带宽对ESCA系统性能提升的制约,还可以通过减少访存开销来提高系统性能[12]。通过计算阵列局部存储器实现的双缓冲(dual-buffer)机制,在计算阵列的一块Local Storage进行计算的同时,往另一块Local Storage里灌数据,两块存储器交替进行计算,可以最大限度地隐藏访存延迟,提高效能,具体实现方式如图6所示。

在这个过程中,由于片内外数据传输以流水方式通过DMA控制器进行,在进行大批量数据传输之前,需要先通过

DMA 通道命令进行传输参数配置,并触发DMA控制器通过正确的DMA队列向总线接口发起链路请求,进而向片外存储器控制器发起连续的读写请求。数据传输延迟时间(以时钟周期为单位)的估算公式为:

DMA数据传输时间=DMA命令配置开销+

DMA控制器队列响应及仲裁开销+

DMA传输过程主要包括计算阵列对片上存储器原始数据的读取和将计算阵列结果数据写入片上存储器。通过前面的讨论可知,原始数据的一次批量读取为64×60个像素点,结果数据的一次批量写入为56×52个像素点,其中1个像素点占16位,代入式(5)可以计算得到如表2所示结果。

3 性能评测

本文采用UMC 0.18μm 1P6M CMOS工艺实现了1个片上集成4个计算内核的ESCA处理器原型芯片,其指令宽度128b,目标工作频率250MHz,单精度浮点性能4 GFlops,片上网络带宽8GB/s,存储器采用256-bit的eDRAM。选择的主处理器测试平台为Inter Core2 Duo CPU 9400,工作主频为2.53GHz,1.99GB内存。测试中,分别基于“Intel处理器+四核ESCA芯片”以及独立的Intel CPU处理器2个平台对不同尺寸的8位256色BMP图片执行Laplace变换。其中,前者Intel处理器只执行简单的任务分配,计算加速任务完全由ESCA芯片执行。由于ESCA芯片通过计算阵列片上存储器实现的dual-buffer机制实现了访存延迟隐藏,实际程序运行时间计算公式为:

相比2.5GHz的Intel CPU,工作频率为250MHz 的ESCA芯片通过采用4个计算内核同时执行子字并行计算,并且有效隐藏数据访存传输延迟,可以获得1.10~1.16倍的性能加速比。由于ESCA芯片工作频率远低于Intel CPU,因此体现了ESCA处理器良好的计算加速效果。评测中也发现,图片尺寸ESCA系统加速性能有直接影响。由于ESCA芯片计算阵列一次批量处理的像素点为56×52个,假设图片尺寸为M×N,那么M和N分别为56和52的整数倍时,ESCA的计算整列每次批量运算都为满载运算,计算效率最高。当增加ESCA芯片个数或者计算阵列规模时,计算时间会相应减少,但访存时间会成为制约系统性能提升的瓶颈。

4 结语

ESCA处理器是一款自主研发的新颖异构多核处理器工程科学计算加速协处理器,片上集成多个计算内核工作在SIMD模式,具有高的计算性能,内核之间通过高效的片上网络进行通信,具有高的网络通信带宽,可以针对计算密集型应用进行有效计算加速。本文基于该“主处理器+ESCA协处理器”系统实现了图像Laplace变化算法,进行了一系列并行算法优化,并在四核ESCA处理器原型芯片上进行性能评测。实验结果表明,对于计算密集型计算任务,ESCA处理器具有良好的计算加速效果。如何解决访存时间对系统性能提升的制约问题,将是我们后续研究的重点。

参考文献:

[1] BELL G, GRAY J. Whats next in high-performance computing?[J].Communications of the ACM,2002, 45(2): 91-95.

[2] HOFSTEE H P. Power efficient processor architecture and the cell processor[C]// Proceedings of the 11th International Symposium on High-Performance Computer Architecture. Washington, DC: IEEE Computer Society, 2005:258-262.

[3] BARKER K J, DAVIS K, HOISIE A, et al. Entering the petaflop era: the architecture and performance of Roadrunner [C]// Proceedings of the 2008 ACM/IEEE Conference on Supercomputing. Piscataway: IEEE, 2008:23-33.

[4] KOCH K. Roadrunner and hybrid computing[EB/OL].[2013-02-20].http://lanl.gov/orgs/hpc/salishan2007/koch.pdf

[5] FENG W C.Top500 official website[EB/OL]. [2013-02-20].http:///

[6] KUMAR R, TULLSEN D M. Heterogeneous chip multiprocessors[J]. IEEE Computer Science, 2005, 38(11): 32-38.

[7] WU D, DAI K, ZOU X, et al. A high efficient on-chip interconnection network in SIMD CMPs[C]// Proceedings of the 10th International Conference on Algorithms and Architecture for Parallel Processing. Heidelberg: Springer-Verlag, 2010: 149-162.

[8] WU D, ZOU X, DAI K, et al. Implementation and evaluation of parallel FFT on ESCA architecture[J]. Journal of Zhejiang University: Science C (Computer and Electronics), 2011, 12(12): 976-989.

[9] CHEN P, DAI K, WU D, et al. The parallel algorithm implementation of matrix multiplication based on ESCA[C]// Proceedings of the IEEE Asia Pacific Conference on Circuits and Systems. Piscataway: IEEE, 2010: 1091-1094.

[10] ANDRE R B, CHRISTOPHER D, TROND R H, et al. State-of-the-art in heterogeneous computing[J]. Scientific Programming, 2010, 18(1): 1-33.

篇9

[论文关键词]高职院校 计算机课程 质量提升

随着计算机在各行各业广泛应用,计算机应用技能已经成为人们从事生产、经营、管理等工作不可或缺的基本技能之一。广大高职院校的职能就是为社会培养、输送合格的社会主义建设者,计算机技能理应成为高职院校毕业生必备的基本技能。经过多年的建设与发展,高职院校计算机基础教学的软硬件不断得到改善,教学经验也日益丰富,但看到成绩的同时,必须清醒地认识到,当前高职院校计算机课程教育中还存在一些不利于提高高职院校学生计算机素质的问题。在这种情况下,高职院校加强计算机课程教育的探索与研究,对提升教学质量、学生素质,都具有十分重要的现实意义。

一、高职院校计算机专业课程教育现状分析

根据教育部最新公告数据显示,2014年高职院校拟招生专业共有1081个,其中专业点有48668个。截至目前,全国共有高职院校1297所。中央部门主管的高职院校有4所;地方主管的高职院校共有997所,其中教育部门主管的有389所,其他部门主管的有537所,地方企业主管的有51所;民办高职院校有316所。据不完全统计,在这些院校中有近76%的专业均开设有计算机课程,说明各高职院校高度重视计算机课程。现在的高职院校计算机专业在教学内容的设置上,按照计算机硬件、软件进行区分,其中软件课程又可以细分为编程、软件应用、网络技术三种不同的类型。在教学内容编排、设施配备、教师编组等方面都存在不少矛盾和问题。为进一步了解高职院校计算机专业课程教育现状,笔者选取四川10所高职院校,对相关情况进行研究分析。

1.高职院校计算机课程教育的目标。高职院校以培养学生职业技能和实际动手能力为主要目标。高职院校开设计算机课程的主要目的就是培养学生的基本计算机能力,使学生能够熟练掌握计算机操作技能,能够更好地适应未来工作的需要。同时,计算机已经成为学生掌握其他知识的重要工具,例如利用计算机网络,学生可以充分利用网络资源,自觉抓好学习。随着计算机技术的飞速发展,新技术、新装备层出不穷,这给计算机教师提出了新的更高要求,教师必须不断加强学习。高职院校计算机教育必须坚持以学生为本,拓展学生自主学习的视野,提高学习效率。

2.高职院校计算机课程的基本设置。笔者所调研的10所高职院校中,相关计算机课程的设置主要基于对学生基本计算机知识和基本应用技能的培养。计算机专业的课程设置多数是偏硬和偏软进行课程设置,偏软的课程又分为编程、应用软件的使用和网络技术三大类。至于偏向于编程的专业,一般开设basic、C语言、FoxPro、C++、VB、JAVA应用技术等课程。与软件应用有关的课程主要包括Authorware、Director、API、ToolBook等,并涉及多媒体制作、网页设计、动画制作、网络通信等。这些课程的设置一方面扎实了学生的计算机应用基础,但由于课程内容设置涵盖了硬软件应用的各个方面,存在某个方面的知识学习深度不够,全而不深的问题;另一方面由于课程设置存在重复和主题不清等问题,导致学生专业知识比较宽泛,缺乏深度,毕业生很难迅速适应计算机专业岗位的工作。

3.高职院校计算机课程教育的特点。计算机课程有别于其他课程,具有操作性强、实践性突出、对教师知识更新要求高、必须具备良好的软硬件操作技能等特点。计算机专业基础课通常包括计算机基本原理、操作系统、文字录入、文档处理、表格应用等内容,通过这些课程的学习,学生能够具备必要的计算机基础知识,能够熟练掌握计算机的基本操作技能,可以掌握常用软件的应用技能。软件设计则开设C语言、VB、VC、数据库等程序设计内容,学习这些内容可以使计算机专业学生熟练掌握计算机软件设计及编程的技巧,初步具备软件编程能力。网络知识课程通常开设有网络技术基础、网络技术实务、网络组建、网络技术应用等课程,学生学习这些课程能具备组网、建网、管网的能力。专业技能则是在学生掌握了较为扎实的计算机基础知识后,对计算机专业学生进行专业提升训练而设置的课程,学生的专业技能可以得到全面锻炼和提升。

二、高职院校计算机课程教育存在的主要问题

近年来,网络技术、计算机技术的广泛应用有力地促进了计算机相关行业的发展,同时也带动了计算机教育行业的快速发展。据不完全统计,全国几乎所有的高职院校都开设了计算机专业课程,笔者所选取的10所高职院校中,开设有计算机应用专业的占61%,开设动漫制作专业的占33%,开设信息管理专业的占82%,一些高职院校还存在一个专业同时分为若干个专业方向的现象。由此可见,高职院校的计算机专业设置缺乏统一的标准,存在随意性;专业培养定位不清晰,存在“堆砌”现象。在具体的教学过程中存在以下问题:

1.学生的计算机基础参差不齐。高职院校的生源复杂,导致学生计算机基础差异大,来自城市的学生接受过良好的计算机文化教育,具备较为扎实的计算机知识基础;来自乡镇的学生,由于计算机软硬件条件有限,所以计算机基础较为薄弱。计算机基础的不同,导致学生对计算机学习的反应不同,计算机基础较好的学生会认为学校开设的计算机基础课程过于简单,不能激发其学习兴趣、不能满足其学习愿望;但计算机基础较弱的学生却会感到计算机知识难度较大,学习吃力。

2.课程设置缺乏科学性。计算机的工具性特征十分突出,这就决定了计算机教学应当围绕培养学生动手操作能力来展开。然而,一些高职院校在设置计算机课程时,缺乏充分的调研论证,只是循规蹈矩地依循传统的教育教学方式,注重知识体系的完整性和教学的系统性,按照理论授课、上机实习等传统路子进行教学。而且,理论讲授的内容大多跨度较大,因为一些高职院校为了提升学校教师的资历水平,采取自编教材的做法,往往一本教材汇集了众多课程的内容,教师在教学过程中很难在有限的课堂时间内使学生完全掌握教材上的内容,导致学生感到学习困难,赶不上趟,甚至产生厌学心理,影响学生后续课程的学习效果。

3.教学手段较为单一滞后。受高职院校学生素质的影响,教师往往还沿袭传统的“教师登台、学生听讲”的模式组织教学,由于课时少,课堂教学的时间十分有限,教师很少给学生预留一些自我消化、自由反思的机会,导致学生对计算机知识的学习失去兴趣。有的教师虽然具有很高的学术水平,知识也非常丰富广博,但由于受到学校条件的限制,不能利用各种现代化的技术手段来满足课程教学的需要,学生缺乏对教学的有效参与,仅仅满足于“带上一双耳朵听讲”,学生自主参与教学活动的积极性大打折扣。特别是对于多媒体技术、动画技术等对直观性要求较高的教学内容,如果不能将幻灯等显示手段有效地运用到教学过程中,学生理解的难度就将会进一步加大,很难实现预期的教学效果。

4.调研测试结果不容乐观。为了真实了解高职院校计算机课程教育现状,笔者从10所高职院校中选取2所学校的108名计算机专业学生进行计算机课程测试。选取的这2所高职院校均开设了多媒体制作专业,均开设了Authorware课程,课时均在50课时以上。笔者给出题目,要求学生自行设计一件多媒体作品,要求其中包括文本、图形处理、设计动画效果、建立用户交互、建立程序的框架与分支、在作品使用多媒体信息、使用变量和函数、进行打包文件和程序的等。对各个环节进行分值分配,总分为100分。作品设计时间为2小时。最终的评分结果是:50分以下的有76人,50~60分的有23人,60~70分的有9人。通过该测试,可见学生的计算机知识学习掌握程度与教学目标要求还有很大差距。

三、新形势下提升高职院校计算机课程教育质量的对策

高职院校作为培养应用型专业技术人才的重要平台,理应加强对学生技能与动手能力的培养,特别是在当前国际交流与合作日益频繁的情况下,社会对具有良好职业技能人才的需求十分迫切。但是,一些高职院校计算机课程设置、教育理念与教学方法已经背离了这一培养目标,因此,采取切实可行的对策措施,全面提升高职院校计算机课程教育质量是十分迫切的。

1.优化计算机教育培养目标。一方面,一部分高职院校毕业生由于专业不对口、专业技能不扎实等原因而成为就业“困难户”;另一方面,一些计算机专业岗位由于招不到合适的人才,而不得不缩小员工规模。这说明高职院校计算机教育培养目标与社会对人才的需求存在偏差。因此,高职院校应当积极改革创新,逐步建立以提高学生综合技能、动手实践能力为核心的,以培养学生知识素养为主要内容的高职院校计算机教育培养目标体系,充分调动教师与学生两个主体的主动性,不断创新深化教育改革,并在此基础上逐步实现教学内容、教学手段和教方法的改革。

篇10

今信息时代,科学技术发展迅猛,知识更新越来越快,对人才的计算机知识和能力的要求也越来越高。军校是培养新型军事人才的基础,也是打赢信息化战争的基础。因此,军校计算机课程的设置对于学员计算机能力的培养至关重要。目前,很多军校计算机课程设置仍然不够科学,重理论教学,轻实践教学,没有系统的计算机课程培养方案。军校计算机课程教学亟待改革。

军校计算机课程教学现状分析

新生计算机知识基础参差不齐。现如今计算机课程在中学就以广泛开设,不过军校的新生来自于不同地区不同学校,亦或者来自于各个地域的基层单位,除了地域性教学的差距,还有不同的学校对于计算机课程的重视程度有所区别,有些几乎没有开设过计算机课程,有些几乎涵盖了大学阶段的大部分教学内容。这些原因导致了新入学学员的计算机基础参差不齐,即使相同学科的学员对于计算机理论和操作的掌握都有区别。在某些学员看来已经完全掌握的课程对其他学员而言就像“天书”般难懂。新生入校之后往往会合班上课,教员按照统一的教学大纲、教学进度进行讲解。由于新生的知识接受程度不一样,所以他们对知识的理解、掌握水平参差不齐。通过粗略估算,一个教学班中往往最多有大约50%的学员能够在课堂上掌握所学知识,按时独立完成作业;40%的学员能够听懂所讲内容,作业单独按时完成有一定的难度;至少有10%的学员上课跟不上教员的教学进度,作业不能完成。这样的局面使得军校计算机教学工作变得更加困难。

教学重理论教学,轻实践教学。目前,军校计算机课程尤其是大学计算机基础、计算机应用等课程在课时安排上虽然设置了一定的实践课时,但实践教学组织实施的水平以及学员的学习质量还有待改进。同时在理论教学环节,多借助于多媒体教学手段,以教员讲、演为主,学员参与度不高,课堂掌握度差。实践教学课时安排上,缺乏系统的实验培养模式方法,学员上机实验目的性不强,没有针对性的实验操作任务,进而造成一部分学员在实验课堂上浏览网页、玩游戏,导致实验教学效果不尽人意。

计算机基础课程在理论课时与实践课时的设置上要比例协调。以某军校大学计算机基础课程为例,现在的课时安排为30学时理论。但此课程作为学员的大学计算机入门类课程,应注重实践掌握效果,在理论教学的过程中要保证充足的实践巩固操作时间,才能达到该课程所需的教学效果。

课程考核方式不够科学

军校中对于计算机课程的考核基本上都采用纸质化理论考核,这对于实践性极强的计算机基础学科显然是不合理的。尤其是程序设计基础课程,课程本身对学员编程动手能力有一定的要求,但期末考核却只是采取纸质化考试,无法真实地对学员的编程实践能力进行检验。亦或者大学计算机基础课程,对学员的Windows掌握和office操作都有一定的要求,但纸质化考试根本无法对学员的操作能力进行考核。同时,目前计算机课程的成绩基本以期末纸质化考试成绩为主,忽略了学员平时课堂的表现,学员不注重中间的学习过程,课堂不积极,睡觉、开小差情况严重,学习氛围不浓,从而使得大多数学员抱着平时上课无所谓,考前临时突击也可以拿到学分的思想,课程整体学习质量差。

军校计算机课程教学改革的方法与策略

针对目前军校中计算机课程教学存在的问题。笔者认为新时期在军校可以从以下一些方面对计算机课程做出改革。

根据生源的不同进行差异性计算机课程设置

针对新生计算机水平差异性较强的现状,因材施教,改革教学内容。一般军校新生在入学分班的时候,同样教育背景的学员分到一起,这样可以根据不同的班级(专业)设置不同的计算机教学体系。高考进入军校的学员,在第二学期统一开设50学时的《大学计算机基础》课程,该课程学时较少,着重带领学员巩固熟练操作计算机、办公软件和计算机网络基础知识。而部队生在第二学期开设60学时的《大学计算机基础》课程,该课程学时较多,教员能够利用充足的课时对计算机基础知识进行系统的讲解与演示,提高学员计算机、办公软件的熟练操作能力,掌握计算机网络基础知识。通过《大学计算机基础》课程的学习,使学员能够独立完成对计算机的组装、调试和维护的工作,同时差异化教学安排,基本拉平学员的计算机基础水平。从第三学期开始,根据学员各个专业的不同,开设《程序设计基础》、《数据库基础及应用》和《多媒体技术及应用》这三门课。文科类专业开设《数据库基础及应用》和《多媒体技术及应用》,主要培养学员熟练使用数据库,对信息进行获取、分析、处理、应用的能力,以及简单的多媒体操作技术;理科类专业开设《程序设计基础》、《数据库基础及应用》,着重培养学员基本的逻辑思维能力、编程能力以及项目开发的基本技能,同时具备应用计算机进行信息处理和开发管理信息系统的初步能力。差异化设置课程,能够根据学员的基础和专业需求进行针对性的素质培养,带动学员的学习主动性。

加大实验教学环节权重,加强计算机实验室建设

计算机课程注重实践操作,在理论教学的过程中,不断加强实践操作,可以设置理论与上机1:1或1.5:1的学时比例。根据理论课程,安排针对性的上机实验内容,编写相对应的实验手册,以帮助学员正视实验课程,提高上机实验效果。同时,计算机上机实验,既是掌握知识的方法,又是一种劳动技能的训练。如学员动手操作,进行打字训练,训练十指的击键速度和双手的互相配合能力;利用计算机建立数据表格、编排文稿、绘制图形、编写程序等,都是动手劳动创造的过程。使用计算机既是一种脑力劳动,也是一种需要付出体力的技能劳动。军校学员大运动量的体能训练较多,计算机上机实验是一种要求高准确度的、细腻的手工技能劳动,是对军体训练的补充。

加大实验教学环节权重,势必对军校计算机实验室的规模具有一定的要求。因此,在计算机课程改革的过程中还需要加强计算机实验室的建设,增加实验室计算机数量,提高实验室计算机配置,为学员计算机培养提供充足的硬件保障。

改革计算机课程考核模式

针对计算机课程实践性强的特点,将课程考核设置为理论考核60%,实验考核40%的比例。平时理论课堂设置30%的平时表现成绩,主要包括课堂表现和上交作业两部分,平时成绩100分采用减分制,课堂表现差者一次扣5分,作业一次不按时提交扣5分,扣完为止。实验上机平时表现同样设置30%的平时成绩,以100分来计算,主要包括上机表现和实验报告册完成情况这两部分,上机实验时看网页、玩游戏发现一次扣5分,每次实验课作业不按时完成并提交者,一次扣5分。在期末考试前,合计整体平时成绩为0分者,不得参加期末考试。这样将计算机课程平时的学习情况和学生的切身利益相联系,促进了学生注重学习过程,认真完成实验上机,积极完成课后作业。