时间:2023-11-07 10:03:27
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇计算机编程需要的知识,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:计算机硬件 知识体系 结构框架
中图分类号:TP303-4 文献标识码:A 文章编号:1007-9416(2012)06-0122-01
随着社会进步和信息化时代的发展,计算机应用能力变得越来越必要。如何掌握计算机相关知识也成了大家关心的话题。在计算机的硬件知识体系中,知识点纷繁复杂,因此,构建合理的计算机硬件知识体系框架有重要意义。笔者就如何构架计算机硬件知识体系框架几点浅薄的认识:
1、计算机硬件知识体系的特点
1.1 硬件知识整体性强、富有层次性
计算机硬件知识的许多知识点都是密切相关的,相互影响的。在某个知识点的掌握程度和理解如何直接影响着对其它知识点的把握,如门阵列控制器就一知识点的学习就需要有“可编程阵列逻辑”为基础。除此之外,富有层次性也是硬件知识体系的一个重要特点。比如在计算机硬件的设计中,就需要经过三个过程,从概念结构到逻辑结构,再到物理结构,这三个模块层次分明。
1.2 计算机硬件知识体系的特征
一般而言,计算机的硬件知识点难度都不小,如在存储系统中,就会涉及局部的存储和访问,以及如何精心相关的替换算法和存储系统的应用诸多问题。同时,计算机硬件知识的理论知识和实际的要求却相差甚远,例如说电脑中都会有CPU这一核心配置,但我们却很难看到CPU的具体内部结构。
1.3 知识体系的重点和界限变化快
以往的硬件知识体系培养的是人们设计电脑硬件的能力和底层使用的硬件,而从上世纪八十年代后期开始,硬件知识体系则是以嵌入式系统的设计、软件和硬件的结合为目标。同时,硬件知识的重点也有了很大改变,同时,界限也在变化。
2、计算机硬件知识体系结构框架
2.1 计算机硬件知识的教学目标
计算机硬件知识的教学目标主要有以下三个:让学生掌握相关的计算机硬件知识,为以后的计算机软件和其他知识的学习奠定基础;学会嵌入式系统的相关技术和设计方法;形成能够直接以已有的基础知识来运用计算机。计算机硬件所研究的包括对计算机的工作原理、结构的分析和以及一些编程和技术的运用。
2.2 计算机硬件知识体系结构框架
计算机硬件的知识体系可以分成以下四种:工作原理知识系列、编程应用知识系列、组成结构知识系列和技术方法的知识系列。这四者的具体的构建方法和如何构建各有不同。比如说工作原理的知识系列通过一定手段让理论知识转化为现实,这可以通过一些相关的过程驱动、指令执行等来实现;而编程应用知识系列则不同,编程应用看重的是从基础知识到具体应用和操作的一种转变,编写程序可以通过一些特性结构、指令系统等来实现。具体来说:
工作原理的知识系列的重要内容是计算机的组成和结构方面的一些知识,它是计算机硬件的基础知识,也是重要根据。工作原理相关的主要知识包括:顺序程序驱动的含义和重要性、电脑指令的表现形式、控制器的使用以及程序设计的一些基础知识。
作为计算机硬件知识体系中的核心,组成结构方面的知识对于计算机的使用有着十分重要的意义。组成结构方面的知识涵盖了计算机的组成原理、数字逻辑和系统结构等多方面的知识,如运算器和逻辑代数等重要部件的设计方法和相关的存储系统等。
除了以上两种知识系列,编程应用知识系列也是重要的知识系列之一。编程应用是计算机硬件技术的目标之所在,介绍的是汇编语言和相关的程序设计、计算机系统结构等相关内容,如指令系统、接口芯片和微型计算机的结构等都是编程应用知识体系中的重要知识点。
此外,作为计算机硬件技术的一大思路,技术方法的知识体系的重要性越来越受到肯定。技术方法方面的知识体系主要涉及了计算机组成原理、微型计算机的组成原理和相关的接口技术等,具体的包括数字指令的种类、流水线技术和互联网的网络技术等等。
3、如何构建计算机硬件的知识体系结构
正如前面我们所提到的计算机硬件知识体系的四种系列,在构建相关的知识体系的时候也应当加以区别对待。
3.1 工作原理的知识体系的构建方法
在构建工作原理的知识体系时,应当本着从理论到实践的想法来构建。计算机硬件方面的知识有许多是理论性强,较抽象的,这就需要我们能将这个抽象转化为具体的操作。如计算模型本身是一个较抽象的概念,在这个概念的表达中,我们要加深对计算过程的程序和驱动的认识,以及加深对数字指令的和运行方面的认识,这样就能更加明白的理解诶怎样通过控制计算机中的相关元件和配备来达到计算的目的。
3.2 编程应用知识体系的构建方法
在构建编程应用知识系列的锅中中,要遵循从基础到应用的指导思想。我们直接通过给计算机指令来让机器运行,这时的计算机指令的能够和执行的基础就是计算机的外部特征,同时,机器之所以能够执行这些指令,依靠的又是在计算机里编写好了的程序,在这个基础上,计算机才能够计算和解决那些实际意义的应用难题。
3.3 组成结构知识体系的构建方法
和工作原理知识系列的构建不同的是,组成结构的知识体系应当遵循从部分到整体的方法。部分是局部的概念,要将部分纳入到整体中去。如逻辑元件是计算机系统中的最小组成单元,我们通过对逻辑元件等小的计算机器件的内部结构及其功能的认识,进一步能够加深对整个计算机操作系统的组成和功能设计等的认识,这就是通过部分认识整体的一个方面。
3.4 技术方法知识体系的构建方法
技术方法知识体系的构建应当遵循抽到到具体的转变。计算机的功能如何是计算机程序设计等的重要基础,概念性的结构较为抽象、不容易理解,而计算机的物理性结构则较为具体,因此,应当以某种逻辑形式或联系来将它们连接好。
4、结语
总之,在计算机应用如此广泛的今天,如何掌握计算机的硬件和软件方面的必备知识是我们都需要关注的问题。因此,计算机硬件知识体系的构建也日益重要。笔者相信,在不断的探索之下,计算机硬件知识体系的结构框架会越来越完整。
参考文献
关键词:计算机信息技术;高中生;信息检索;图书馆;编程能力
现如今,计算机信息技术得到了广泛应用,融入到了社会中的各个领域。正因为此,我们要及时学习最先进的计算机信息技术,这样才能跟上时代的发展,学习到更多的知识。同时还要加强练习,这样才能更好的培养自身的创新思维。因此,我们需要提高对计算机信息技术的重视,并在实际学习过程中进行合理的运用。
一、高中生需要学习的计算机技术
(一)培养计算机信息意识
兴趣是学习不同学科之间新知识的动力,一个学生只有拥有了兴趣,才会渴望学到新知识。我们在学习计算机时,要具有学习与计算机信息有关知识的意识。现阶段出现的新产业都会使用到计算机信息技术,这些新产业的发展离不开信息技术的大力支持,这样才能保证新产业拥有自己的特色。高中时学生升学做关键的时期,更需要利用计算计信息技术,辅助我们进行学习,确保我们能获得全面的发展。
(二)具备计算机信息检索的能力
现如今,很多教师都是采用传统的方式授课,将所有的知识直接灌输给学生,还有就是其教授的知识很多都是片面的,这对学生今后的创新思维产生深远的影响。学生在学习计算机信息技术的过程中,需要仔细的思考,选择那些适合自己的学习方式,并将自己在学习中遇到的技巧总结下来,这样才能将自身的计算机信息技术水平提高。当今社会是一个信息多样化的社会,我们需要的信息是非常多的,需要经常使用到计算机,这就要求我们必须学会在计算机上检索各种知识,这样才能满足自己学习的需要,学到更多的知识。拥有计算机信息检索能力对于我们今后的学习是非常有力的,这样既能帮助我们学到许多计算机的知识,还能获得诸多资源,提高学习成绩。
二、计算机信息技术在高中生学习中的应用策略
(一)增强应用能力
现如今,大部分学生都拥有着计算机信息技术,但是却很少进行应用。而且我们所学到的计算机技术都是非常基础的,但是与之相关的课程时非常少的,这样就到导致学生所中我的计算机技术有跟大的差异。这就表明,我们不仅要学习相关的计算机信息技术,还要及时的进行实践,提高自身的应用能力。其一是要学习计算机上常用软件的使用方法。例如计算机上的办公软件使用方法,并且要学会灵活的运用它们,这样才能更好的认识相关的计算机信息技术,更好的才做计算机。其二是要根据自己今后想要从事的工作来选择自己需要的计算机信息技术方面,还要制定新相关的学习计划。还可以在高中阶段就将计算机有关的基础打好,这样自己才会有兴趣去学习更深层次的计算机知识。同时,还要积极的进行实践,努力将自己的应用能力提升,并与生活实际密切结合。
(二)合理运用图书馆的不同资源
在高中阶段,与计算机信息技术有关的课程是非常少的,根本不能和重点学科小比较,根本不能让我们学到更多的计算机技术。所以我们可以在课外寻找相关的资源,拓展自己的学习渠道,积极的汲取这些我们在学校中接触不到的计算机信息技术知识。当自己遇到一些问题时,要及时的进行信息检索,寻找解决问题的办法。可以充分利用学校里的图书馆,寻找各种资源,不断提高自身的计算机水平。在信息检索系统中包含多种图书馆资料,并实现了归类于管理,能够便于检索和查询。在家时,我们可以充分利用家里的电脑,查阅相关的计算机知识,并充分的吸收这些知识,提高自己的计算机能力。这一过程中,我们的信息分析以及信息应用能力会有所提升,并得到相应的锻炼。所以,对于我们寻找的各种与计算机有关的资料要予以充分的应用,可以观看相关的计算机教程,这样才能将计算机信息技术水平进一步的提升。
(三)培养编程能力
高中阶段,我们会学到很多的计算机技术,但是我们不能满足于现阶段学到的这些知识,而是要不断的去学习,将自己的编程能力进一步提高。高中时的基础是薄弱的,根本不能做好程序设计工作,但是具有计算机信息技术是非常实用的,通过不断的学习,我们可以进一步提高自身的计算机水平,更好的学习其他的各学科知识。身为高中生,要重视自己现阶段学到的诸多计算机基础知识,还要学习最基础的编程规律与思想。而且我们还可以将自己在课本上学到的知识,通过实践课中的上机时间进行相应的练习,并认真听课,积极的复习老师讲过的知识,这样才能在一定程度上积累编程的经验。长时间的进行学习,我们才会获得更多的灵感,并利用这些灵感进行程序修改。在开发程序时,经常会遇到一些不懂的问题,这时要及时的去询问教师,根据教师的指导,自己动手来解决自己遇到的这些问题。而且在学习的过程中,我们不能知识去模仿他人,而是要主动地去创新,每一个编程片段都要有自身的设计创意,这样才能进一步提高自己的计算机信息技术。
【关键词】 计算机系统 系统结构 多核 综合实验
前言:所谓的“多核”是指一块芯片上集成多个处理器,这些处理器之间不需要设置共享关键资源,各自拥有独立的控制和计算部件。计算机系统结构多核综合实验的设计及应用,有利于满足计算机知识学习需要,更好地提升算机应用创新能力,使计算机原理和技术知识更好地被接受和应用。
一、计算机系统结构多核综合实验发展现状
计算机系统结构多核综合实验的发展,是基于多核技术发展到一定阶段的产物,多核综合实验在满足实验教学方面,也发挥了重要的作用。多核计算机的出现,具有代表性的厂家为IBM、Sun,其利用计算机理论对多核处理器进行设计,对多个计算机内核进行集成,以提升计算机的计算速度[1]。2007年1月份,Intel配置了2个4核处理器的8核计算机,随后Intel公司推出了roadmap,主流处理器达到144核,这表明多核计算机技术手段已经被人们掌握,可以应用于工作和学习当中。在对计算机系统结构多核综合实验应用过程中,清华大学设计了FPGA的开放式教学CPU设计,并利用Windows/Linux进行多核编程实验;南京大学配置Altera DE2实验板,利用硬件描述语言进行CPU设计;浙江大学开设了基于FPGA的CPU设计和多核编程实验。随着计算机系统结构多核化发展,人们对开展多核综合实验工作进行关注,并纷纷开设相关课程,注重提升计算机实验动手能力,使多核技术能够被更好的理解和掌握[2]。
二、计算机系统结构多核综合实验的设计实现
计算机系统结构多核综合实验设计过程中,需要对多核实验关注的知识点予以把握,并且在设计过程中,保证实验设计具有创新性,以满足实际需要。具体内容我们可以从下面分析中看出:
2.1多核综合实验的知识点
计算机系统结构多核实验设计,要注重对多核的本质及技术要点进行把握,从而使人们通过多核实验,能够掌握多核技术,对原有的计算机结构进行创新,更好地满足实际发展需要。计算机系统结构多核综合实验涉及的知识点主要包括以下几点:1、硬件设计技术、Cache与存储一致性、IO管理;2、多核技术与单核技术之间的差异性、嵌入式多核芯片技术、Cell、OpenSpare、Intel双核芯片;3、多核体系结构特征、多核API优化函数库;4、多线程编程对多核技术应用的影响、 Windows/Linux编程技术、OpenMP对多核的支持、多线程程序性能测评方法。
在进行多核综合实验教学过程中,要对计算机系统结构多核综合实验包括的技术要点内容予以把握,在实验设计时,能够对这些内容进行涵盖[3]。
2.2多核综合实验设计实现
多核综合实验设计过程中,需要考虑到硬件设计和软件设计相关内容。硬件设计方面,利用FPGA指令进行单CPU实验,并在后期结合FPGA特征,设计多个处理器内核,进行操作系统移植,保证CPU具有多核特性;软件设计方面,利用Windows/Linux多核多线程编程实验,对编程的思想和方法予以认知和理解,增强程序设计能力[4]。具体的实验设计,我们可以从下面分析中看出:
1、实验目的。多核综合实验设计的目的在于使学生能够对计算机内部结构和相关工作原理予以认知,能够掌握CPU分析、应用和设计的能力。同时,对硬件描述语言、EDA软件、FPGA芯片能够进行有效使用,具有一定的硬件动手能力,对硬件技术知识更好地了解。
2、平台设计。平台设计主要应用PC、FPGA-CPU、单片机控制电路等组成。
3、实验内容。借助于Verilog HDL/VHDL实现CPU软核,并利用EDA工具软件进行系统的模拟和测试,之后将模拟测试的内容加载到FPGA芯片中,保证单CPU能够以FPGA指令形成。通过利用FPGA芯片,对CPU的功能进行拓展,保证原有实验存在的缺陷和相关问题得到有效解决。同时,Windows/Linux多核多线程实验利用win32API、MFC进行实验操作,对可编程逻辑器件、操作系统功能予以了解和认知。
除此之外,实验设计过程中,还需要对实验测试的参数和指标范围予以明确。选择16个32位的寄存器,总线宽度为32位数据。
结束语:计算机系统结构多核综合实验教学,注重对计算机实验教学的实践性予以把握,通过利用多核技术,更好地提升人们对计算机软硬件知识的理解和掌握,并使人们在学习计算机技术过程中,能够创新发展,对相关理论进行更好的认知。因此,在进行多核综合实验过程中,要注重对FPGA技术予以有效把握,对多核技术内涵更好地理解。
参 考 文 献
[1]于永斌,徐洁,王华,张凤荔,吴晓华,丁旭阳. 计算机系统结构课程多核创新实验探索[J]. 实验科学与技术,2011,03:68-71.
[2]. 自动化技术、计算机技术[J]. 中国无线电电子学文摘,2011,05:167-246.
关键词:JAVA 教学分析 措施
中图分类号:G642.4 文献标识码:A 文章编号:1673-9795(2013)05(a)-0148-01
1 JAVA概述
JAVA是一种计算机的编程语言,目前仍然是较为常见的计算机编程语言,具有效率高、覆盖面广、简单易用等特点,不但可以用来进行桌面程序的开发,还可以适用于与互联网应用的开发,在当前具有广泛的应用。JAVA是面向对象的编程语言,在计算机、网络和多线程等技术领域都涉及到JAVA的相关知识,学习JAVA编程语言应经成为软件技术开发相关人才培养的基础。在我国,随着计算机和互联网技术的不但发展,JAVA编程技术人员需求巨大,相关专业的就业前景很好,很多高校都开设了JAVA语言相关课程。
2 当前JAVA教学存在的主要问题
2.1 JAVA课程的认知困境
近年来,高校扩招和民办高校的发展,使得更多的学生进入大学学习,加上激烈的市场竞争和宣传,计算机编程专业成为很多学生心目中理想的学习和就业方向。在这种大趋势下,学习JAVA编程的学生显著增加,但由于很多的学生对JAVA知识并不了解,只是为了获得理想的就业而选择编程,在学习时缺乏主动积极性。JAVA语言作为计算机编程基础知识,需要学习者具有较好的逻辑思维能力、严谨踏实的态度和抽象思维能力。这些较高的要求使得JAVA学习成了很多学生的难点,产生了畏难和认知的偏差。
2.2 JAVA课程设置问题
当前大多数高校的JAVA课程设置,由于学生大多没有相应的基础,因此所设置的课程大多集中在以JAVA SE平台教学为主,包括有面向对象编程方法、JAVA多线程、JAVA界面及事件编程、JAVA数据库连接、网络编程等基础知识。但是这些知识并不能构建完整的JAVA知识体系,学生在学习之后不能了解JAVA与C++等计算机编程语言之间的关系,JAVA语言编程的优越性,并且认为这些知识就可以满足社会对JAVA人才的要求。其次是由于缺乏相应的后续自主学习能力,不能适应JAVA编程技术的新发展,在JAVAEE等新对社会流行编程技术面前感到吃力,学生在完成学习走向社会岗位时,仍然不能满足社会的要求。课程设置的不合理实际上从整体降低了JAVA学习的应有水平。
2.3 JAVA作业和实验设计中的问题
由于JAVA学习的特殊性,其作业和毕业实验设计等需要学生具有良好的自主思考和动手能力,但是在实际的教学中,学生对JAVA的动手实践和综合运用能力较差,不能独立的进行实际问题的解决;毕业设计等过度依赖已有的资料,套用现象严重,不能进行原创;学生在学习期间也没有形成良好的设计习惯,表现出对系统设计和实现的随意性。
2.4 JAVA教学老师的问题
JAVA技术是一门不断深入发展的技术,在当前的计算机网络多个方面有着广泛的运用,高校的JAVA教学老师缺乏长期的一线实践开发经验,不能适应发展的新技术,教学效果不理想。JAVA学习的特殊性要求其必须做好教学与实践之间的结合,对老师的教学内容和方法提出了更高的要求,很多老师并不能有效的实现学生理论知识与实践动手能力之间的协调发展。
3 JAVA的教学设计探讨
3.1 合理的规划教学内容
JAVA知识主要包括有JAVA基础知识、JAVA核心知识和JAVA提高知识三个部分。基础知识要求学生对面向对象的编程、JAVA的语法和异常处理、JAVA的环境等知识进行很好的掌握,是进一步学习JAVA知识的基础。核心知识部分要求学生对面向对象的继承性、封闭性、抽象性和多态性等,并掌握这些特性设计的技术。JAVA提高知识部分是指根据专业方向学习的不同需要,选择多线程、图形处理、数据库处理、网络等内容学习。教学内容的设置,要求学生在掌握基本的JAVA基础知识的基础上,建立面向对象思想、算法设计思想等,为更深入的学习和提高程序设计水平奠定基础。
3.2 案例教学,启发学生的编程思想
JAVA编程语言的学习,重要的是在基础知识学习的基础上实现对其编程思想的掌握,从而真正实现举一反三,能够进行独立的编程开发工作。编程思想的形成,需要在不断的实践观察、分析和思考总结的基础上完成,因此,在教学中采用案例教学,是符合JAVA知识特点的有效手段。采用的案例一定要小而精,符合学生已掌握的JAVA知识,使得学生可以在原有知识体系的基础上通过自我实践和探索,实现对新知识的学习和体系构建,不但可以实现对新知识的有效掌握,还可以实现对自学和设计能力的锻炼。
3.3 运用多媒体教学与传统教学方法相结合
多媒体教学作为新的教学手段,在教学实践中取得了良好的教学效果,在JAVA知识的教学中采用传统教学模式与多媒体教学相结合的形式,可以将多媒体直观、形象和吸引力强等优点充分发挥。老师在教学时以传统方式进行理论知识讲解,以多媒体技术进行实践和案例的讲解,增加理论与实践之间的结合。
3.4 加强实践教学,提高JAVA知识综合运用能力
JAVA程序设计是一门应用为目标的教学,要求学生具有很强的实践动手能力,当前高校的JAVA课程教学,应该在讲解代码、编程调试等基础知识外,还应该加强上机实践的相关内容。可以探索校企结合的教学模式,让学生在企业实际JAVA研发项目的参与中体会需求分析、设计、编写代码和进行测试等各个环节,增加学生的软件开发实践经验和培养专业的职业素质。
3.5 提高教师的专业素质
JAVA知识需要在不断的实践开发项目中进行提升和锻炼,这是当前教学老师所缺乏的。应该尝试建立老师的继续深造和培训实践制度,如定期参加合作单位的企业JAVA开发项目,获得实践经验和与一线开发人员进行交;参加JAVA程序培训班;对老师的入职考核加大力度,对JAVA的自主开发创新能力进行严格要求。
4 结语
JAVA语言是计算机软件和网络编程的重要语言之一,本文结合实际的教学经验对当前JAVA的教学现状进行了分析,并且提出了改变教学方法、合理设计教学内容和增强实践运用等方面的建议,以期促进JAVA教学事业的发展。
参考文献
[1] 耿祥义,张跃平.Java2实用教程[M].3版.北京:清华大学出版社,2006.
一、对职业技术院校计算机专业的定位的认识
作为一种日益普及的工作工具,计算机在人们日常生活工作中应用十分广泛,人们对它的依赖性越来越强。职业技术院校从就业出发,纷纷开设了计算机专业课程。目前,职业技术院校计算机专业的学生的就业趋向,基本上侧重于从事办公室人员、档案管理、会计电算化操作员、银行柜台人员等将计算机作为工具的职业。工作内容除了应用还兼顾计算机的日常维护,包括简单常见的计算机故障处理、网站维护等。只有极少数部分学生在校期间掌握了扎实的计算机专业知识,具有一定的程序开发能力,可以从事IT行业的软件开发。绝大多数非IT单位需要的不是专业编程人员,而是会熟练操作各种办公软件或应用软件的复合型人才,即除掌握计算机知识外,用人单位更重视的是有无其他专业知识是否具备借助实践工作的办公能力。职校层次的学生应以实际操作能力培养为主,因为理论基础知识仅是为应用服务。因此,职业技术学校要针对毕业生就业现状和用人单位需求来改进计算机专业的课程设置、教学方法和考核方法。
二、对职业技术院校计算机专业教学改革的探讨
(一)改革课程设置,突出应用性。
计算机知识更新速度较快,目前局域网的建设已在中小企业普及,一些单位需要的是既能处理一些常见的局域问题,又会设计网页和进行网站日常维护的人才。我校充分考虑社会发展的需要,在计算机专业课程设置上以就业和社会需求为导师向,合理设置课程。计算机专业课以“够”为取舍的依据,养活理论性、学术性强的课程,相应地增加应用性强的课程。
(二)始终注重教学手段和方法的研究和运用。
不区分培养对象,造就“通才”的教学方式在这里应被抛弃。然而,新的适合培养应用型人才的教学方法不会是一蹴而就的,它是需要教师认真研究,反复琢磨,不断接受实践检验而逐步形成的。因此,教师要凭借超前意识,不观望,不等待,摸索前行。例如培养学生的动手能力、工程意识、求新意识等方面在今天的教学工作中就可以重视起来。在教学方法上教师要善于汲取、运用当今教育界的新成果、好经验,反复实践,多多积累,正所谓“技多不压身”,在以后的教学改革中定会派上用场。我在进行VF6.0编程教学时就曾作过如下尝试:第一,确定教学内容为“技能”一类,备课时则去除一些与编程关系不大的内容和相关理论。第二,用去占学期总学时三分之一多一点的时间讲解、练习必要的基础知识和技能。这里的“讲解”不是“满堂灌”,而是采用“建构主义”教学理论中的“任务趋动式”在事先准备好的例题(问题)伴随下进行的,例题必须包含着教学内容。教师所要传授的知识和技能就在一个个“问题”的解决过程中交给了学生。这里的“练习”是教师布置的要求学生能举一反三得到的或有创新效果的操作。完成这些操作的目的是为了巩固刚刚接受的新知识、新技能。这一阶段是奠定编程基础的教学阶段。这一阶段的目标是,让学生尽快掌握基础知识,熟悉基本技能,多多操作。第三,进行编程演练的实践。(用占学期总学时三分之二的时间)教师必须有备而来,因势利导;除了关注学生对知识、技能的掌握情况,还要抓住讨论中暴露出来的诸如不善于接受建议、批评等苗头,教育学生克服急躁情绪,树立“程序是修改出来”的观点,编程人员须修练自身的耐心和细心;教育学生训练与别人的合作、协调的能力。第四,培养学生的团队意识。在编程演练的全过程中,教师要做好记录,还要求学生全面地记录自己的收获。(学生记录是为了巩固学习成果,养成细心、耐心、善于积累等良好的学习习惯;教师记录则是为了总结、积累教学经验、成果,研究其中不足。)
三、“请进来”,“走出去”,强化学生实践能力
所谓“请进来”就是不定期地邀请行业专家或专业技术人员,结合实际为学生讲解计算机领域新的进展或好的经验。所谓“走出去”,就是学生在几年的高职学习中,至少安排一个学期的社会实践。我认为,就职业技术院校的计算机专业的实践而言,到电脑销售公司较好。这样,学生一方面能够了解软硬件知识,另一方面还可学到更多的计算机日常维护方面的知识,如模拟网络设计逻辑图(包括骨干和支干网);各楼的物理位置和距离图;各楼和机房中各网络设备图;各位置间传输介质图(光缆、UTP、STP、同轴线、中继器、无线等);各局域网间的连接关系图(网桥、路由器、网关、防火墙等);总的带宽和各局域网间带宽表示图(关系逻辑);IP地址的分配关系及网关(以表来表示);局域网与LSP的连接(如光纤、ETHERNET、帧中继、ADSL、DDN、X.25、CABLE MODEN、WLAN和无线等)关系逻辑图;每楼的点数,每层楼的连接关系逻辑图;各服务器和工作站的操作系统和相关技术配置说明等;各种软件(主要指商业性的)在网络中的作用、安装位置方案等;交换机、路由器、防火墙、服务器等配置的最主要参数等多媒体(设备、软件)主要参数及作用和主要使用方案(方法);网络存储技术(如磁盘陈列)的管理方法;网络安全配置方案(含各设备中数据备份、用户的密码、对外对内的管理方案等)。鉴于学生凭个人的力量和关系难以寻找到合适的电脑公司实习,教师可以学校的名义去联系实习单位,比如科技市场。此外,我们日常还要辅之以巡回检查,并不定期地组织师生讨论和交流体会。
职校计算机专业的教师应尽早更新观念,认真做好准备,以积极的姿态迎接职校教育、教学革新大潮的到来。
参考文献:
关键词:编程能力;软件能力;课程体系;实践教学体系
0 引言
可持续发展教育观认为知识、能力、素质是构成现代教育三方面的内容。高等教育应该是以能力培养为中心的教育,要围绕能力的培养来实施教育教学。本科生的能力包括较强的学习能力、创新能力和专业能力。
对计算机科学与技术专业的本科生来说,能够编写规范的程序代码是最基本的专业能力,但从社会的需求来看,计算机专业人才仅具备良好的编程能力远远不够,还应该具有软件系统开发等各方面的能力。软件开发的复杂性要求从事开发的人员能站在系统的全局角度看问题,并用工程化的方法分析、解决问题,也就是我们所说的软件能力。一直以来,由于计算机科学与技术专业的性质和认识上的局限性,教学上一般比较侧重对学生编程能力的培养,而对软件能力的培养重视不够,使得不少学生存在着软件开发就是编写程序代码的错误观点,或者意识到了软件能力的重要性,却缺乏软件开发必须具有的工程观、系统观。
编程能力与软件能力之间存在着密切的关系:编程能力是计算机人才应该具备的最基本的能力之一,也是软件能力形成的基础;而软件能力是真正能满足社会需求的能力,是一种更高标准的要求,能促进编程能力的提高和完善。我们在教学中,不仅要注重学生的编程能力培养,还要有目的地培养学生的软件能力,这不仅符合计算机专业培养要求,也符合社会对计算机人才的要求。而能力培养不是一两门课程或一两个教学活动就可以实现的,需要一个“养成”过程,必须循序渐进,用明确的系列课程构成相应的训练系统,使学生在修养中形成一些良好的学科习惯,潜移默化地养成学科优秀人才所要求的能力。因此,针对计算机专业的特点,以这两种能力的培养为目标,我们在理论课程体系、实践教学体系建设等方面上做了一些研究和实践。
1 理论课程体系的构建
按照能力培养的要求,课程应该是成系列的,是有利于各种专业能力逐渐形成的渐进系统。针对编程能力和软件能力,我们分别构建了两种相应的理论课程系列:编程能力培养系列课程和软件能力培养系列课程,如图1所示。编程能力培养系列课程侧重于培养学生掌握本学科要求的计算思维方法、算法设计策略和技术,能够熟练应用至少一门高级程序设计语言,具有良好的代码编写习惯,此外还要具备面向对象思维能力;而采用工程的概念、原理、技术和方法来开发与维护软件是软件能力的体现,因此是软件能力培养系列课程的侧重点。这两大课程系列形成一个渐进系统,帮助学生完成由编程能力到软件开发能力的提升。
从编程能力提升至软件能力是一个循序渐进的过程,因此这两个系列中的多门课程之间,知识上既有前导后续的关系,程度上也有迭代式加深的关系,甚至可能有些课程部分内容是重叠的,需要教师清楚该课程在整个能力培养体系中所处的地位,从而在教学内容选择上各有侧重,在教学要求上各有不同。
1.1 编程能力培养系列课程
针对编程能力的培养,我们进行了以下4个系列课程建设,分别是计算思维能力培养系列课程、算法系列课程、程序设计与实现系列课程、面向对象设计理念培养系列课程。
计算思维能力包括形式化、模型化描述和抽象思维与逻辑思维能力等。此系列的课程主要由一些数学类和计算模型类的课程组成,包括高等数学、离散数学、线性代数、工程数学、计算思维与问题求解、形式语言与自动机等。对一般本科生而言,计算思维能力难以在短时间内养成,需要一个渐进过程:由单一具体的实例计算,迁移到一般的、形式化的类计算/模型计算,实现思想境界的变化。在时间上,需要适当延长数学类课程的教学周期,将连续数学、离散数学、类计算/模型计算3部分内容按阶段分开安排,从第1学期一直延续到第6学期。
算法对于计算机专业的本科生是非常重要的。算法系列课程主要帮助学生建立算法的慨念,掌握算法设计策略和技术,并具备算法分析能力,主要有数据结构与算法、Matalab与数值计算等。
程序设计与实现能力要求学生至少掌握一门高级程序设计语言的基本思想和方法,具有分析、学习和实现高级程序设计语言的能力,主要包括编译原理、高级语言程序设计、数据库系统等课程。如高级语言程序设计课程c语言,能使学生掌握基本的编程基础及模块化的程序设计理念。
如今面向对象的编程是主流,无论使用何种面向对象的语言,其精髓都是面向对象的思想,因此掌握面向对象思想比掌握语言本身更重要,如对继承、多态、重载等面向对象概念的理解,对面向对象基本原则的掌握等。面向对象设计理念培养系列课程包括面向对象技术引论、面向对象语言程序设计等。
1.2 软件能力培养系列课程
学生的软件能力主要体现在对软件系统的认知、分析、开发与应用能力上,既要具有系统的眼光和观点,对系统结构、部分与整体、不同级别的抽象等有深刻认识,也要具有工程的知识,了解工程的概念、原理、技术和方法,以及这些在软件开发维护中的重要作用。对此我们进行了以下3个系列课程建设,分别是软件工程系列课程、系统开发系列课程、工具软件应用系列课程。
软件工程系列课程包括软件工程导论、高级软件架构、UML模型分析、软件测试、软件成熟度模型CMM等。通过这些课程的学习,学生能深刻理解软件工程概念、原理和技术方法,熟悉软件开发周期中每阶段的任务,包括需求分析和建模、软件设计和实现、软件评审与测试、人机交互界面设计、软件项目管理等,并认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
系统开发系列课程侧重于项目开发,强调抽象与高级实现。有面向对象应用程序开发项目、电子商务应用程序系统开发项目、使用XML的企业应用开发、Web设计与编程、现代电子系统设计、CRM客户关系管理系统。通过某些行业领域较大型的项目开发树立学生的整体观,培养学生的系统眼光,使他们学会考虑全局,按照分层模块化的基本思想,站在不同的层面上把握不同层次上的系统。
了解和善于使用工具软件能帮助开发者提高工作效率,改进工作质量,工具软件应用系列课程除了包括与软件开发密切相关的软件工程CASE工具,还包括了一些通用软件应用课程,如办公自动化、多媒体技术与应用等。
2 实践教学体系的构建
实践教学是培养学生能力的另一个重要环节,实践教学体系是一个与理论课程体系有机结合,又相对独立的完整体系,贯穿于人才培养的全过程。要将实践教学体系作为一个系统来构建,适当地追求系统的完备性、一致性、健壮性、稳定性和开放性。按照能力培养循序渐进的原则,我们以理论课程体系为基础,从夯实基础、提高能力、面向应用3个层次上,构建了两种能力的实践教学体系,如图2所示。图中灰色进度条代表各个实践教学环节对编程能力和软件能力培养的覆盖范围。
课程实验是对应于某一门课程设置的,实验内容与该课程理论教学内容紧密结合,侧重学生对课程各个知识点的掌握,规模一般比较小。设置了实验的课程有数据结构与算法、高级语言程序设计、数据库系统、编译原理、多媒体技术等。
课程设计更强调综合性、设计性,复杂度也高于课程实验,是引导学生将知识用于解决实际问题的第一步。我们将课程设计分为两种:一种是要求学生独立完成的,如程序设计课程设计、数据结构与算法课程设计、编译原理课程设计等;一种是以小组为单位完成的,如数据库原理课程设计、软件工程课程设计等。后者比前者规模更大,从工程化的角度出发,强调小组成员分工合作。
将实践教学活动扩展到课外一方面可以补充教学总学时的不足,更可以让学有余力的学生进一步仔细、深入地研究问题、解决问题。因此,我们鼓励学生参加各种课外实践活动,如组织学生参加省级、国家级的各种学科竞赛,组成多个兴趣小组,参与各种社会技术服务等。
多门课程的综合设计一般放在高年级,由系统开发系列课程中的某一门牵头,如电子商务应用程序系统开发项目或CRM客户关系管理系统等,给出多个可供选择的题目,学生根据情况选题。多门课程的综合设计规模更大、对学生要求更高,通常涉及多门课程知识,既需要程序设计、数据库知识,也需要软件工程知识,还要了解某些行业领域的专业知识,比较接近社会的实际需要。
生产实习通过让学生直接接触专业生产实践活动,能在一定程度上让学生从社会科学研究和生产实践中体验需要学什么,并真正能了解、感受未来的实际工作。生产实习一般安排在专业课学习期间,或者课程学习结束后毕业设计之前。对于大四的学生,甚至可以将生产实习与毕业设计有机结合,缓解毕业设计时间不足的问题。
毕业设计在整个实践教学体系中综合性最强。学生进行毕业设计时,已经完成整个教学计划中所有课程的学习,完成其他各类实践。它承担着培养学生综合应用所学知识和掌握的技能,分析和解决实际问题、独立工作、团队协作等能力的任务。同时对学生在4年学习中所获得的知识掌握情况、学习和接收新知识和新技术的能力以及解决实际问题的能力进行检验。
整个实践教学体系体现了循序渐进的要求,既有基础性的验证实验,也有设计性和综合性的实验或实践环节,在规模上有小、中、大,难度上有低、中、高;内容上既有基本要求,还有更高要求,并通过更高要求引导学生进行更深入地探讨,体现实验题目的开放性。另外还强调实践环节与实际的紧密结合。
3 结语
编程能力和软件能力是计算机专业本科创新人才必备的能力,也是他们未来职业生存和发展的基础。加强学生程序能力和软件能力的培养不仅符合计算机专业对人才专业能力的要求,而且也满足就业市场对人才专业能力的期望。
研究不仅有益于信息科学技术学院计算机人才专业能力培养模式的创新,一定程度地丰富计算机教育领域关于人才专业能力培养的理论认识,而且在提高学生程序能力、软件能力,提升学生专业素质和社会竞争力上有着十分重要的现实意义。
参考文献:
[1]张海藩.软件工程[M].5版.北京:清华大学出版社,2008:5.
关键词:教学语言;数学基础;学习手段
中图分类号:TP393.07
计算机语言伴随着计算机而诞生,作为人与计算机之间传递信息的媒介,计算机语言分成机器语言,汇编语言,高级语言三大类。汇编语言的实质是和机器语言一样的,都是直接对硬件进行操作,其区别是汇编语言的指令采用了英文缩写的标识符,虽然同样需要将每一步具体的操作用命令的形式写出来,但是比之机器语言更容易识别和记忆。但是汇编语言的使用也有明显的缺点,汇编源程序一般比较复杂冗长、容易出错,要求程序员有极高的计算机专业知识水平,因此高级语言才是程序员们普遍使用的编程语言。计算机语言的教学,是为了让学生通过程序设计的学习进行各种硬件软件的应用开发。
1 选好教学语言
先说说教学语言的选择,高级语言的种类很多,但真真适合入门教学的却不多。现实中我们通常把面向过程的语言安排在入门阶段么,选择有三个:BASIC、C和PASCAL。BASIC语言,就名称的含意来看,是"适用于初学者的多功能符号指令码",是计算机早期发展史上应用最为广泛的程式语言。优点是构成简单、功能较全、适用面广、执行方式灵活,缺点是结构不够严谨,同时采用的是解释器翻译程序,费时较多。在后期的面向对象的语言的学习中,BASIC衔接的是VisualBasic,而VisualBasic虽然简单易学,但是运行时需要调用的动态连接库非常巨大,平台的移植性也非常差。而Pascal语言,最初就是被严格的设计成教学之用,目的就是强行要编程者使用结构化编程。从这一点上来说,Pascal是最初接触计算机语言的入门者们很不错的选择。但是相对于它严谨的被人称道的结构,Pascal的操作符不如C语言简洁易懂,同时也使得一些低级操作,如“位”操作变得较为困难。Pascal的升级是Delphi,许多人会说Delphi比较容易上手,但是如同没有白吃的午餐。Delphi的工业标准和可移植性远远及不上C++。取代了辉煌一时的Pascal语言的是C,C的编译器更快,并具有优秀的内置编辑器和调试器。很容易与汇编语言结合,不仅仅是在软件开发上,各类科学研究中都有对C语言的广泛应用。C++语言是具有面向对象特性的C语言的继承者。跟流行的Java比,C++的效率要高很多。在应用上,数据库应用程序开发、通信、手机等嵌入式系统和服务器端后台编程,几乎都是C++的天下。
2 打好数学基础
相对于人类所说的自然语言,编程语言是一种专门设计来表达计算过程的形式语言。
有着严格的语法规则。不同于英语等外语的学习,需要语境语感的培养,计算机语言类课程的学习,必须预先打好的基础是数学。计算机语言是计算机科学的分支,而计算机科学实际上却是数学的一个分支。程序设计的过程,就是解决问题的过程,而且是通过数学的方式来解决问题,编程只是用程序语言把你解决问题的方法写下来而已。程序设计重在设计二字。翻开我们的教学课本就会发现,在学习之初,问题的解决方法都是提供给学生的,学生只要照着给定的思路把文字语言翻译成计算机语言而已,到了课本的后面,这种解题方法的给出就很少出现。程序=数据结构+算法。所以说,编程语言其实只是工具,具体解决问题的时候还是靠算法,这个算法就是数学,有些算法很难,需要高深的数学知识,在学习了一段时间之后,学生的编程的能力就会逐步拉开档次,这就缘于各人解决问题的能力高低,这其中数学能力就是一个很重要的因素。
在计算机诞生初期,能够编写程序的都是数学家。时至今日,计算机已经进入了各个行业,程序的编写也在各种领域都有着广泛的应用,大部分的程序编写并不是要有很高深的数学知识,更多的是要求能够应用相应的数学方法,就是从众多的对象中找到共同属性的方法。结构化的程序的设计,无论多么复杂,总是由顺序、选择和循环这三种结构来实现的。从这个角度来看,我们的程序套用这三种结构其实就像是在使用三个不同的数学公式一样,只不过不是简单的挨个使用,而是循环交替的套用而已。
3 动手上机运行是最重要的学习手段
无论什么样的语言,最终的目的都是在于应用,要想挥洒自如的应用新知识新语言,实践练习永远是必不可少的一个环节。计算机语言的教学中,既有理论又有实践,既讲方法又讲动手能力。但是教师们会发现对于学生而言,语法和结构是那么的枯燥乏味,对象、属性、方法和事件又是多么的抽象难懂。所以很多学生会觉得,计算机语言太难懂太难学了,在这种想法下,我们的教学效果也就可想而知了。因此在“教”的这一方面,改用从简单的实例入手,让学生观看、模仿,在实际解决问题的过程中去领悟这些概念,就更加能体现出计算机语言的应用能力来了。
在“学”的这一方面,学习计算机语言同样没有捷径可走,只有先从最简单的程序开始动手写,而且必须要自己亲自动手写,即使是打印出“Merry Christmas!”这样的简单语句,都必须亲自动手操作一遍,有时候书上看得是很明白,往电脑面前一坐大脑就短路了,上机一写不是这里错就那里错!有的同学,把程序写在作业本上,发现了问题,就在作业本上把程序修改了一遍又一遍,还不一定能通过编译,倒不如老老实实地把代码输入电脑,看看是不是能运行,运行得到的结果是不是和预期的一样。有错误有问题,到电脑上去修改,修改完就编译,再去查看结果。当然也不是机械式的照着老师抄完就完了,而是写完要多去想想,为什么要这么想,多问几个为什么,多去理解解题的思路。比如是输出某个图形这样的题目,在完成之后,我们也可以在正确的程序上对某些语句进行修改,再看看修改后输出的图形会有怎样的变化。诸如此类的练习,经过一段时间之后,我们对于语句和算法的掌握肯定是要胜于那些喜欢在纸上谈兵的同学的。
4 学习的是方法和思想
我们学习了一门或两门计算机语言,不仅是学习了这种语言的语法和结构,更多的理解了编程的思想,学到的是用计算机语言去解决问题的方法,养成的是严谨的编程习惯,不同计算机语言之间,差异的可能是语法、语句和命令,但是这样的差异是非常表面的,内里的编程思想是想通的,所谓“一法通万法通”,在这里就是很适用的。掌握了学习的方法,抓住了编程的思想,之后学习任何其他的技术都会非常轻松。
5 “广泛”的教,“精细”的学
今后发展的方向也实在是太多。因此,我们的学校总是会尽可能多的开设课程,总是希望这些课程能涵盖所有的方向和领域。作为学生,毫无疑问的是要把这些课程都学习一遍的,但是这样的学习应该是有所侧重的。学生要弄清楚自己的目标,最重要的是要确定自己的职业发展,然后,再有目的性的去学习知识比如说技术领域,有很多发展方向:网络、数据库、底层算法、框架、架构、UI设计,性能优化,系统集成,太多太多。不需要漫无目的地学,这样也好,那样也好,所以都去学,结果学了又没用上。人的精力毕竟有限,所有知识都尽力去学的结果就是所有的知识你都不精通。所以,要先确定目标,然后做出选择,再制定计划,有的是需要学到精通,有的只要了解即可。老师也应该鼓励引导学生各自选择自己的发展方向,在广泛的教学基础上,钻研性的学习。
教授计算机语言,就是教授编程,而编程,是一门技术,它和语言学习一样,有需要掌握的语法和词汇;和数学一样,有解决特定类型问题的流程方法;它像各种工艺和艺术创作一样,有技术、工具以及人们经年累月发展起来的最佳实践方案。只要肯付出时间和耐心,“教”与“学”都将是一件非常有成就感的事情。
参考文献:
[1]李蕾.论信息技术教育的发展与教学变革[J].科技情报开发与经济,2007,26.
[2]樊颖军.浅谈计算机语言教学[J].科技信息,2008,21.
[3]刘洋.计算机语言案例教学中的教学策略[J].中国科教信息,2006(8):280-281.
关键词:编程能力;教学改革;计算机
作者简介:侯春明(1979-),男,白族,湖南吉首人,吉首大学信息科学与工程学院,讲师。(湖南 吉首 416000)
基金项目:本文系吉首大学校级教改课题“计算机课程群教学中技能培养的教学改革与实践”的研究成果。
中图分类号:G642.45 文献标识码:A 文章编号:1007-0079(2013)28-0163-02
高校信息类专业(如计算机科学与技术、网络工程、电子信息工程、通信工程、物联网工程等)课程体系中,程序设计类的课程占有相当的比重。常见的专业课有“C语言程序设计”、“Visual Foxpro程序设计”、“面向对象程序设计”、“汇编语言程序设计”、“网络程序设计”等。由于信息类专业的应用领域非常强调技术实现,普通高校学生必须具备较强的编程能力,才能满足社会对人才的要求。据统计,普通二本高校信息类毕业生,除了小部分继续攻读硕士博士学位外,绝大部分都在毕业后直接从事专业技术工作。[1]虽然不同专业对计算机编程能力的要求和应用领域各有不同,比如电子信息工程和物联网工程更侧重对硬件的控制和嵌入式方向,而计算机科学与技术和网络工程等专业更侧重系统软件开发和应用软件的开发。但是从整体上看,这些信息类专业都对学生的编程能力提出了较高要求。为了达到相应的培养目标,相关课程群应该在课程实训环节进行改进,以求提高学生的程序设计能力,进而全面提升学生的专业水平和动手能力,为国家和社会培养合格的人才,这是需要深入研究的课题。[2]
一、计算机课程群实训课的特点与不足
计算机课程群的实训课程是连接理论课程与编程能力的桥梁,程序设计类课程群对编程能力的培养尤为重要。但是在教学实践过程中,要达到全面提升学生动手编程能力的状态,面临诸多困难。
1.课时不足
随着高校课程体系的全面改进,为了宽口径的培养学生,以便学生将来能有更广阔的就业领域,信息类的各个专业被加入了越来越多的课程,程序设计类课程也面临着课时紧缩的问题。一方面要保证理论课的讲授与教学,另一方面要保证学生动手编程能力的提高。这样理论课程的时间显得非常紧张,必须在有限的时间内尽可能的把该语言中的各种各样的知识点传授给学生,还要保证他们能有足够的课时在实训课环节完成相关的实训内容,为此在时间和教学上就要合理安排。
2.技术的快速发展
信息类专业发展速度迅猛,很多技术在过去的几年快速的诞生和崛起。传统的程序设计类课程主要是侧重对基本语法的掌握和中小规模问题的分析与解决。比如运用一些经典的算法解决某些数学问题,并编程实现。这样的培养模式的结果是毕业生的动手实践能力无法满足社会上IT企业对人才的要求。
3.师资力量不足
高校教师的教学负担很重,除了要完成各种教学和科研任务外,还要负责学生管理工作。从全局来看,高校的信息类专业是新兴专业,很多高校的该专业教师以中青年为主,部分教师还需要进一步进行深造,比如攻读博士、博士后、做访问学者、参与各种学术交流等。因此,在计算机程序设计类的实训课中,很多时候都是一个教师辅导数十人学生。师资力量不足也是制约学生的计算机程序设计能力全面提高的重要因素。
二、计算机课程群实训课的教学改革建议
1.针对不同专业进行有重点的课程设计
为了提高计算机专业毕业生的职业素养与编程能力,学校应该加强学生的实训教学环节。[3]虽然信息类的不同专业都会开设各种程序设计课程,但是不同的专业侧重点明显不同,比如电子信息、电子科技、物联网等专业,从专业培养目标上看更接近对硬件的控制。在实训课的综合训练项目以及相应的课程设计的培养环节上,可以考虑做单片机、嵌入式系统中的项目。将编程能力训练放到具体的硬件控制项目中,既符合相关专业的专业培养目标,又能帮助学生有效的将程序设计课程与硬件类课程群进行融合,既提高了编程能力,又提高了综合的专业知识的应用能力。比如C语言程序设计,如果只是反复的训练经典的算法和习题,编程能力的提高还是有限。但是如果学生完成一个软硬件相结合的系统设计,对C语言在单片机控制或嵌入式中的应用开发能力就会快速增强。当然,对于计算机科学与技术或网络工程这样的专业,其专业培养目标更偏向于上层应用,也可以选择相关的实用性的软件开发项目(如数据库系统等)来训练学生的动手编程能力。在完成项目的同时,学生一方面加深了对相应专业课的认识,另一方面也加强了编程能力。
2.充分调动不同学生群体的学习积极性
在高校的专业人才培养模式中,不能按照一个固定的模式要求所有的学生,必须考虑到学生自身的实际情况,调动不同学生群体的积极性,才能最大限度的提升学生的程序设计能力。比如现在很多高校都将计算机等级考试和学位证挂钩,非计算机专业的学生必须通过计算机等级考试,才能顺利获得学位证。针对这一学生群体,应该将针对等级考试的训练合理的放入到实训环节,同时鼓励学生积极主动的多做等级考试的习题,并在上机实训的过程中多做题库中的题。一方面可以提升编程能力和动手能力,另一方面也能提高通过等级考试的概率。
最近几年,高校程序设计比赛以及其他的一些设计类比赛越来越受到高校和学生的重视。对于有志于参加全校、全省、全国甚至世界级比赛的学生,在实训环节中可以积极引导他们进行相关的训练。比如参加ACM程序设计大赛的学生,可以鼓励他们在实训环节中,在完成正常学习任务的基础上,充分调动主观能动性,多练习ACM题库中的习题,由浅入深,步步推进。而立志参加嵌入式系统设计的学生,也可以主动去编写一些嵌入式环境中的程序。使学生群体在提高自身编程水平的同时,也能更加接近相应大赛的要求,收到一箭双雕的效果。还有一些学生,立志于从事应用系统的开发,比如网站系统设计、数据库系统设计、电子商务系统、智能手机应用系统、物联网应用系统等。该学生群体对学习的实用性比较看重,更愿意在毕业前就找到专业领域的一个主攻方向,孜孜不倦地钻研该方向,往实用的方向发展。结合这些学生的兴趣和爱好,应该在相关的实训训练和课程设计中鼓励他们多动手写程序,进而力争做出对社会有实用价值的应用系统。在提升了编程能力的同时,也能更多的为社会作出贡献。
3.加强对编程能力的考核
传统的教学模式注重对知识的考察,计算机类课程群也不例外。一门专业课学习完成后,最常见的考核方式就是闭卷考试。这种方式可以很好地检查学生对该课程知识体系的掌握程度,但是对编程类的课程群来说,闭卷考试很难全面考核学生的编程能力。在教学实践中,经常遇到书本知识掌握良好但上机编程能力较差的学生。为了促使学生参与编程能力训练,应该加强对编程能力的考核。比如组织上机考试,将考试成绩纳入到整体的考核成绩中;也可以鼓励学生提交应用软件系统。但是上机考试在实践中也存在一定的困难,如普通考试,一个班级只要2个监考教师即可,但为了避免学生作弊,计算机上机考试需要大量的教师参与监考。另外,如果是固定的几个习题,在机房的环境中不便于监考,而如果是从海量题库中随机抽题,又很难做到绝对的公平,因为有的学生可能抽到较为容易的题目,而有的学生则可能抽到较困难的题目。但是从发展趋势上看,为了提高信息类专业学生的编程能力,加强对编程能力的考核还是非常有必要的。
4.在校企合作中加强编程能力的培养
信息类专业学生的一个主要就业领域是IT企业,如何培养适应现代IT企业的合格毕业生,一直是高校信息类专业教师研究的重要课题。外部社会和技术变化越来越快,高校中的很多课程和教学变化往往不能及时和外部接轨。为了解决这个问题,可以考虑广泛开展校企合作,选择一些专业对口的大企业,以实习的方式组织学生去企业学习,在实践中提高学生的程序设计能力。高校的程序设计类课程更多的是注重学生知识体系的建立和基本编程能力的培养,而各类IT公司更看重的是学生的实际研发能力。高校应该尽量和IT企业开展合作,一方面鼓励学生积极参与到企业的实际项目研发中,另一方面也可以扩宽学生的就业渠道,全面提升学生的编程能力。但是实现起来也有诸多困难,比如:高校的课程安排紧凑,学生要挤出较长的时间参与企业的软件研发,时间上比较困难;有的高校位于经济不发达地区,高校所在城市很难找到能提供相应机会的企业;低年级学生没有技术实力参与到企业的研发中,而高年级学生尤其是大四学生,又面临找工作的就业压力,到处参加面试也会给相关的实训和实习工作造成影响。
三、在提高学生编程能力上的一些实践
作为二本高校的计算机教师,在教学过程作了一些有益的教学改革尝试,初步取得了一些效果。作为班主任,在自己管理的班级中对学生进行分类,钻研应用技术的学生,鼓励他们组成兴趣小组(比如嵌入开发小组、电子设计小组、信息安全技术小组、数据库应用技术小组等),在实际项目的研发中提高编程能力。这些学生毕业后大部分成长为国内一些IT企业的技术骨干,而将来选择从事IT领域非研发方向(如管理、市场、技术支持类工作岗位)的学生,则鼓励他们学好基础知识,扩宽知识面,同时积极参加计算机等级考试和其他的一些技术类证书考试。为他们收集大量的考试资料,调动相关学生的学习兴趣,鼓励他们多通过相应考试。对于立志参加各类学科竞赛的学生,则鼓励他们更多的将精力放到比赛的训练和准备上来,并指导部分学生获得了较好的竞赛成绩。
四、结论
针对高等院校尤其是二本高校计算机课程群的实训课程的现状进行了分析,特别是针对程序设计能力不强的现状进行了分析,给出了在程序设计类课程群的实训环节进行教学改革的一些建议,并总结了为提升学生编程能力所积累的一些工作经验,以期为广大的工作在教学岗位的计算机教师提供参考。
参考文献:
[1]朱建凯.普通高校计算机专业实训教改探索[J].长沙大学学报,2009,(5):112-113.
关键词:网络安全;任务驱动;结对
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)27-0111-02
随着网络威胁的增加,社会对网络安全的重视程度也越来越高[1],网络安全已经成为计算机专业的重要学科。掌握网络安全的技术不仅需要扎实的理论基础,同时还需要具备较强的实践和分析能力。因此,如何在现有的环境下培养出理论扎实,实践和分析能力强的学生以适应社会和企业的需求[2],成为高校网络安全教学的一个重大挑战。
1 《网络安全》课程特点
《网络安全》课程需要的理论知识范围较广,且与之相关的技术也繁多,该课程主要有具有以下几个特点:
1)知识综合性强。《网络安全》是一门涵盖性非常广的课程,包含密码学技术、病毒技术、防火墙技术、入侵检测技术、VPN技术、WEB技术等。正因为《网络安全》的涵盖面非常广,所以该课程对于前导课程的要求也是比较高,需要学习计算机操作系统、程序设计、计算机网络、WEB设计、数据库技术、Linux应用等一系列课程。此外,除了课程需要的技术较多,对于每门技术也都需要扎实的理论基础。
2)更新速度快。网络中各种威胁层出不穷,而且技术手段也越加复杂。为了保证网络的安全,抵抗和消除网络的威胁,网络安全技术也正快速更新以应对复杂多变的网络威胁。因此,《网络安全》课程的知识点也需要不断地更新,以培养适应社会需求的人才。
3)实践能力强。网络安全绝不是纸上谈兵,而是注重实操能力。同一个问题在稍有差异的环境下,解决方法都不尽相同。同一问题,也可应用不同的方法去解决,每一种方法都可以灵活运用。熟练掌握网络安全技术,需要不断地进行实践。
4)分析能力要求高。网络威胁总是先于网络防护技术而出现,对于如何保证网络的安全需要基于已有知识理论和经验对网络新威胁进行分析,并进行实践尝试。《网络安全》课程无法也不应该穷尽所有的网络安全知识,而是需要培养学生的独立分析、独立动手能力。
2传统教学存在的不足
传统《网络安全》课程教学一般是先讲授理论知识,再进行实验教学。从学生实际反馈来看,这种教学方法不太好,因为理论与实践之间有时间差,学生在学习枯燥的理论知识时,没有实践加以补充,学生在实验课教学时对于理论知识都记忆模糊。
传统《网络安全》课程的内容安排一般是以理论知识点为中心展开,然后再介绍与理论对应的所有实践环节。学生在学习的过程中反应很平淡,知识内容很散,学生对于知识的运用也不灵活。如果对教学内容,以项目为驱动,设定达成目标,利用不同工具实现目标,并辅以原理解释。学生对于知识点的记忆较深刻,教学效果较好。
《网络安全》课程旨在培养学生掌握网络安全理论相关知识,能够对网络进行安全防护。但是学生在学习完课程后,往往还停留在将问题对号入座的阶段,当网络威胁通过变换旧技术或引入新技术时,学生便束手无策。出现这种情况的原因是学生的分析和灵活应用知识的能力,这样的学生无法满足社会的需求。
3结对编程
结对编程最早应用于软件开发环境中[3],其定义为两个程序员坐在同一个工作台进行软件开发,其中一位程序员负责开发思路及并口述代码,另一位程序员负责键盘编码,并且需要两人在软件开发中频繁的交流。两个程序员具有相同的缺点和盲点的可能性较小,当进行结对编程时程序员可以技术互补,相互交流经验并即时审核代码。实践证明,通过结对编程能够有效地提高软件开发的效率,并且可以明显降低软件中存在的缺陷。此外,结对编程对于需要提高实践能力、团队协作能力和分析能力效果显著[4]。《网络安全》作为一门实践能力强,注重培养分析能力和团队协作能力的一门课程与结对编程的作用是匹配的,但目前针对此课程特点的结对编程研究还较少。
4教学设计
针对前文中描述传统《网络安全》教学中的不足,本文从教学方法和实验方法两方面进行研究探索。
在教学方法上,针对传统教学过程中理论与实践结合不紧密的问题,提出基于任务驱动式教学方法。以《密码学技术》章节为例:以“公司销售部邮件泄露”为案例描述,引入课题,设置学习目标为能够根据实际公司情况,采用对应的加密技术确保公司邮件、文件安全,进而展开理论知识讲解和安全工具的原理及配置方法。同时,教学方法采用一体化教学教室。对于学生的理论讲解与实践教学穿行,统一在一体化实验室中完成。
在实验方法上,增加学生实践课程的占比,实验过程摒弃传统教学方式:如首先配置、软件的应用,然后完成并提交实验报告。实验要求两两组合,以结对方式进行实验。以《密码学技术》章节为例:两两组合后,根据任务实际情况要求,对问题进行分析、讨论,一个同学负责解决方案的确定,选择合适的加密技术,另一个同学负责完成命令和操作的执行,确定方案的同学可以在另一同学执行方案时同步进行审查。实践过程中结对学生间的角色进行轮流互换。
从广东松山职业技术学院《网络安全》教学课堂反馈情况来看,基于结对实验方式的任务驱动型一体化教学的教学效果较好。首先,学生对于计算机网络安全的兴趣大大增加,学生不仅在课堂保持较高学习兴趣,课后也会尝试课程深度扩展。其次,采用基于任务驱动的一体化教学后,学习对于理论知识的掌握也变得更深刻,尤其在学期后的综合实践训练的课程中,可以看出学生能够较灵活的运用网络安全技术。再次,结对实验的引入,通过不断的交流与讨论,学生对于理论知识的掌握,实际的个人动手能力,分析能力和团队协作能力较传统教学方式有很大的提升。
5 结语
计算机网络安全课程旨在培养理论知识扎实,并具备分析能力、动手能力和团队协作能力的综合性人才以适应社会需要,这对计算机《网络安全》课程的教学产生了挑战。本文根据计算机网络安全课程的特点,分析传统《网络安全》课程教学上的一些不足,从教学方法和实验方法两方面进行研究探索,提出以任务驱动型教学方式,结对进行实验的教学方法。从实践结果来看,采用该教学方法后,学生对课程兴趣提升,学生的分析能力、动手能力和团队协作能力都得到明显提升。下一步研究工作,将在结对编程的基础上,在课程后期增加对抗式课程设计内容,同时尝试引用翻转课堂,旨在进一步提升学生的分析、实操和团队协作能力。
参考文献:
[1] 罗明宇,卢锡城,卢泽新,等. 计算机网络安全技术[J]. 计算机科学,2000,27(10):63-65.
[2] 教育部. 关于全面提高高等职业教育教学质量的若干意见[J]. 中国职业技术教育,2007(1):14-15.
关键词:计算机C语言 计算机编程 实验教学 改革措施 分析 探讨
中图分类号:TP312.1-4 文献标识码:A 文章编号:1007-9416(2012)11-0229-01
1、计算机C语言教学特点分析
计算机C语言是进行计算机程序编写设计使用的一种计算机程序代码语言,在进行计算机程序编写设计应用中,C语言具有语言简练、数据类型丰富以及逻辑性强、完全结构化的特征,在计算机程序编写设计中应用十分广泛和普遍。同时,计算机C语言是高等院校计算机专业的基础学科中的一门基本语言,也是进行计算机数据结构以及数据库部分知识内容教学的重要基础教学部分,是进行计算机程序设计学习的入门学习课程。在进行计算机C语言教学过程中,由于C语言的基础入门学科特点以及数据类型丰富、多样特征,对于C语言教学的实践性要求尤其高,对于计算机C语言课程知识的教学以及对于学生掌握情况的检查,都需要通过学生上机的实际编程操作进行实现。因此,对于计算机C语言教学来讲,在进行C语言理论性教学过程中,也应注意加强对于C语言实验的教学开展,以培养学生C语言课程的相关能力和素质。
2、计算机C语言实验教学中存在的问题
在进行计算机C语言实验教学中,由于计算机C语言实验教学内容比较难以理解和掌握,而对于C语言实验教学的模式不当,导致初学者对于C语言实验教学部分逐渐失去学习兴趣,或者是学习兴趣不大。比如,一些C语言初学者,在进行实验教学内容部分的学习过程中,由于缺乏相应的对于C语言实验教学内容学习的思维模式,导致在学习过程中无法进行C语言与实践解决问题之间的转换与描述,导致C语言编程设计任务无法完成,从而逐渐形成一定的学习问题与压力,逐渐失去C语言实验教学的学习兴趣。其次,在进行C语言实验教学开展过程中,由于进行C语言实验教学的教学应用设备比较落后,导致实验教学开展中,设备无法满足一些实验教学的需求,从而对于正常的计算机C语言实验教学活动的开展造成不利影响,从而对于C语言实验教学目标以及教学效果造成影响。再次,进行计算机C语言实验教学开展过程中,由于进行C语言实验教学的方式比较单一,也是目前计算机C语言实验教学中存在一个重要问题,对于实验教学的效果以及教学目标、任务等的实现,都有很大的不利影响和作用。最后,在进行计算机C语言实验教学过程中,主要是为了通过上机的计算机编程设计实验,锻炼与培养学生的实践动手能力与解决实际问题的能力,对于学生掌握知识情况进行检测。但是,目前C语言的实验教学中,存在着对于C语言教学上机实践的考核措施与机制,这也对于老师进行实验教学成果的检验以及学生对于实验教学的真正掌握情况了解,有很大的不利影响,从而对于实验教学计划与教学开展设计、教学效果等都有很大的影响。
3、计算机C语言实验教学改革的有效措施
针对上述计算机C语言教学过程中存在的问题,以及对于C语言实验教学的影响作用,在进行计算机C语言实验教学的开展过程中,应注意从以下几个方面对于C语言实验教学的方式以及内容进行改革推进,以提高C语言实验教学的效果与水平。首先,在进行计算机C语言的实验教学过程中,可以通过合适实验教学方式,来提高学生对于C语言实验教学的学习兴趣。比如,通过错误案例的分析教学法,将学生编程设计中容易出现的错误问题,提前进行教学设计,并通过教学分析,在吸引学生兴趣同时,加深学生对于知识内容的记忆、理解。其次,应注意结合现代多媒体信息技术,开展多媒体网络的计算机C语言实验教学,并且主要在实验教学过程中改进教学方法,提高计算机C语言教学的效果,培养学生计算机C语言编程设计的相关实践能力与水平,推进计算机C语言的教学发展。
如下,是使用计算机C语言进行循环冗余校验码的实验教学应用过程。在进行这一部分的教学中,首先使用计算机C语言进行多项式除法的程序模拟设计,具体设计过程如下:
计算机程序的函数名称:polydiv;
计算机程序函数原型位置:CRC.H;
所属计算机数据库:CRC.LIB
在使用C语言进行函数计算设计过程中,会产生一个余数,余数存放在remainder文件中。
其中,计算机C语言多项式除法模拟设计中,头文件为siodef.h
USHORT polydiv (USHORT data,USHORT divisor,USHORT remainder)
{
static USHORT quotient,i;
for(i=8;i>0;I-)
return remainder
}
在进行上述应用计算机C语言进行多项式除法程序的模拟设计基础上,在使用CRC函数进行CRC测试程序设计实现,就可以实现计算机C语言对于循环冗余校验码的设计实现,并在教学过程中通过学生的实验操作,进行教学实现。
4、结语
总之,计算机C语言课程教学是一门实践性比较强的教学课程,教学过程中尤其重视对于学生实践动手以及实验设计能力的培养锻炼,因此,进行计算机C语言实验教学改革的分析与探讨,有利于对于当前实验教学中存在的问题进行避免与控制,取得较好的C语言实验教学效果。
参考文献
[1]卜登立,彭嵩松,唐卫东,龙侃.“汇编语言程序设计”课程教学改革研究与探讨.井冈山大学学报,2009(5).
[2]方艳红,赵海龙.计算机高级语言程序设计类课程实践教学改革研究.中国科技信息,2008(19).
[3]朱旻如,郭剑,朱立华.计算机语言课程中案例实验教学法的实施探讨.计算机教育,2008(18).
关键词:计算思维;VFP程序设计;计算机基础教育
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)06-1271-02
目前,计算思维是计算机界关注的一个热点。自2010年7月,九校联盟(C9)西安会议提出计算机基础教学的核心任务是计算思维能力的培养以来,国内多所高校围绕计算思维与计算机基础教学改革进行了深入的研究和实践,发表了一些计算思维研究和实践方面的论文。在新的形势下,如何在大学计算机基础教学中,培养学生在各自专业领域中应用计算机和计算思维解决实际问题的能力,对于提高学生的创新能力和信息素养都具有重要的意义。
1 计算思维
计算思维是美国卡内基梅.隆大学计算机系主任周以真(Jeannette M. Wing)教授提出的。周教授认为:计算思维 ( Computational Thinking )是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为,其本质是抽象和自动化。
计算思维是数学思维、逻辑思维和工程思维的综合,是与阅读能力、写作能力和算术思维并列的第四种能力,能够提升人类的能力。就像识字、做算术一样,是人人都必须具备的思维方式。
2 VFP程序设计教学现状分析
Visual FoxPro(简称VFP)课程是面向高等学校非计算机专业学生开设的计算机基础教育课程。VFP作为计算机程序设计的一门基础课程,应注重学以致用。学习的重点不只是编写程序,而是学习算法思想与问题求解的思路,增强学生计算思维能力的培养。
但是,从目前VFP程序设计教学,尤其是非计算机专业现状来看,普遍存在以下问题。
2.1 课程学时少
随着计算机技术内容的不断更新,以及信息技术在中小学的普及,在新的形势背景下,计算机基础教学面临着新的挑战。人们对计算机基础教学产生了片面的认识。认为“计算机会用即可”、“计算机即编程”,造成学时被压缩,资源得不到充分的配置和利用。就我校的计算机基础教学改革来看,“大基”的学时由64变成32,时间压缩了一半,学生计算机基础水平有待提高。
VFP的教学课时相对“大基”课时虽然要多些,但对于非计算机专业的学生来说,计算机语言底子更是薄弱,想在短期内掌握一门计算机语言,十分不易。对于授课教师而言,既要完成教学目标,又要学生掌握计算机语言使用方法,并且在教学中形成学生的计算思维能力是非常困难的事情。
2.2 以语言知识为主,偏理论,轻实践
在实际教学中,很多老师以语言知识为主线,详细介绍语法规则等细节内容,上机操作多以验证为主,偏重考试内容而不是编程,这和课程的教学目的是相悖的。导致学生学习积极性不高,感到枯燥,学的不牢,编程能力和分析解决实际问题的能力没有得到提高,更谈不上运用计算机解决专业问题。
3 以培养计算思维为核心的VFP程序设计教学方法
3.1 以计算思维为主线,改进教学内容和教学方法
计算思维养成以计算能力的培养为基础,对教学内容的改革,不是完全改变原有的课程内容,而是内容的再组织与优化,突出核心内容和方法。
教师在上第一节课时可以介绍一个完整的系统,比如学生信息管理系统。在演示过程中告知学生,每项功能可由哪些知识实现,让学生对本门课程有一个系统开发的概念。并了解VFP数据库管理系统在各个领域的应用。学习本门课程的目的,不是为了顺利通过考试,而是能够独立开发一个完整的系统,并能解决自己的专业问题。
在实际的教学中,以培养学生计算思维能力为核心任务,采用“任务驱动”和“案例教学”的方法,针对不同的专业和不同层次的学生设计教学任务。按照“提出问题—分析问题—寻找解决问题的方法—介绍解决问题的方法和知识—方法和知识推广—课后作业和拓展”的教学片段设计思路,对学生进行计算思维的实践。
3.2 注重程序设计思想和算法训练
计算思维的本质是抽象和自动化。在教学过程中,可将相同或相近的知识点整合,设计相应教学任务,让学生了解程序设计思想和程序设计过程。如求解方程、求阶层等任务,可先让学生用数学方法来求解,再引导学生用抽象的计算机语言来实现。
启发学生利用多种技术、多种算法解决同一问题,围绕问题求解和设计能力培养。例如求解“1+2+3+……+100”,可分别考虑用for循环、while循环来实现。采用有趣的案例,比如“猜数游戏”,“幸运7”,“测试体重”等,用多种思路设计与多种编程方法实现。
3.3 以上机实践为重点
VFP是实践操作性很强的一门课程,学生只有亲自动手编写代码,调试程序,才能掌握和理解所学的知识,了解编程的思路和方法,训练思维能力。对此,教学过程中可以考虑以下方法:
3.3.1 设计合理的实验内容
由于实践课时限制,学生练习时间较少,首先要使学生熟练掌握基本的语言知识,具备基本的编程和调试能力,才能逐步引导深入。实验内容包含主要重点内容,难度适中,有一些让学生发挥的余地,在书上能找到所有知识点和类似代码,但又不是完整的照抄,有助培养学生的设计能力。
3.3.2 实验任务具有趣味性和综合性
通过实验任务的趣味性、综合性等来增强实验内容的难度,从而强化计算思维训练。如在“幸运7”游戏案例中,把一些枯燥和不易理解的知识,变成有趣的游戏。不仅让学生理解面向对象程序设计的相关概念,并对应用程序的开发流程有了一个综合的认识。通过拓展知识,让学生实现多位数的幸运数字游戏设计。通过反复训练,以提升学生计算思维能力。
3.3.3 安排课程设计实验
在程序设计课程的最后环节,安排课程设计。或结合实例,完成一个项目。为学生提供一个全面考查学生水平的机会,对所学知识进行融会贯通。
4 结束语
计算思维的教育,是一种普适教育,对任何类型的学生都需要培养。什么是计算思维,如何去理解它,每一位教师都应该充分地认识到它的重要性。只有改变了教师的意识,才能把计算思维的培养贯彻到自己的教学中,才能培养学生的研究创新能力,提高学生的信息素养。面向计算思维的计算机基础教学改革任重而道远,还需要不断的探索和改革。
参考文献:
[1] 何钦铭.计算机基础教学的核心任务是计算思维能力的培养[J].中国大学教学,2010(9).
[2] 李丽新.任务驱动教学法在Visual FoxPro程序设计课程教学中的应用[J].吉林建筑工程学院学报,2011(6):75-77.
关键词:C语言;编程;学习策略
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)22-0080-02
1 C语言产生的背景
计算机程序设计语言经历了从机器语言、汇编语言到高级语言的发展过程,机器语言是最原始的代码语言,可以直接识别,也是第一代的计算机语言,随着社会化发展变化,后来用汇编语言中的助记符代替操作码来编写程序,但由于汇编语言自身特点也存在局限性,根据社会发展需求于是产生了C语言,C程序是经过编译后可以直接执行的面向过程的高级语言。
C语言是在BCPL语言的基础上发展起来的。70年代初,美国贝尔实验室根据工作需要研发出BCPL语言,后来在1973年,贝尔实验室在BCPL语言的基础上研发出了C语言程序,后来经过多次改版本,到了80年代初,美国国家标准化协会根据C语言的发展变化,制定了新的C语言标准,一直沿用到现今,为大多数编程者所遵循。
2 C语言的特点及优势
C语言是国际上广泛流行的计算机高级语言,现如今被越来越多的计算机编程人士所使用,它不仅可以用来编写软件代码,还可以用接近自然语言方式描述问题,同时兼顾高低级语言的优点,主要体现如下方面:
1)C语言简便,结构严谨、操作灵活。
2)C语言的运算符较多且表达式类型丰富,编写程序节约时间,工作效率高。
3)模块化程序设计方法,可以把一个大问题按层次分解成多个小问题的设计思想,使编程更加灵活,算法设计自由度大。
4)C语言生成目标代码可操作性强,程序执行效率高。
5)C程序图形功能较强,程序可移植性好。
由于C语言这些特点及优势,使它成为计算机编程者必学的程序设计语言。
3 C语言编程中常见的现象
第一,大一新生刚入校门,心理比较放松,大学的学习生活还未适应,就要开设程序设计语言课程,对于他们来说不知从何学起,心里没底。上机实践课时,C语言编程语法较严格,出现错误就不能运行出结果,导致学生在学习过程中慢慢失去信心和成就感,学习兴趣和热情不高。
第二,C语言的算法和结构有点复杂,理论的东西很难记住,听起来感觉很枯燥无味,不容易理解。
第三,课时安排不够合理,致使教师在每节课讲授内容必须保证进度,这样就给学生无形中增加了压力。特别是在刚开始学习时,学生兴趣都非常高,对程序设计课比较好奇感兴趣,但在后来的学习过程中,面对每节课大量的枯燥代码和编程理论及语法规则的限制,慢慢跟得有些吃力,往往是前面的内容还没有消化完,后面又开始新的内容,时间长了就会让学生产生消极心理,产生厌烦情绪,另外学习方法不对,也会导致学生缺少学习兴趣。
4 C语言编程的学习策略
4.1 熟悉程序开发环境
C语言程序编写一般经过程序编辑、程序编译、程序连接到程序运行结果检测这几个步骤来实现,建议在Visual C++编程平台(也可选择其他平台)进行实验,好快速掌握C语言编程环境,熟悉程序代码的调试过程, 为接下来的学习编程操作打下良好的基础。
4.2 掌握C语言语法规则,养成良好的编程习惯
学习C语言基础就是要学习它的语法规则,学习某种语句或命令。首先要了解它的规则是什么,作用是什么,怎么实现等,这样可以为后面的学习打下坚固的堡垒作用。比如什么是常量、函数定义的格式及其意义是什么,使用什么样的语句去运用它,这样想明白了编起程序来才能得心用应手。那么在编程中除了要掌握好语法规则外,还应培养较好的编程习惯,这样可以提高工作效率,减少代码出错的机会。
4.3 精通算法技巧
学习编程就是要学习它的思维方法,画流程图就是在构建写程序思路的过程。当画好一个流程图时编程思想也就出来了,再结合掌握的语法规则,在计算机环境下调试就可以出来了。程序=数据结构+算法,算法就是解题思路与步骤,掌握分析问题、解决问题的方法,就是锻炼分析、分解,最终归纳整理出算法的能力。计算机语言是表达方式,算法和数据结构才是灵魂。算法可以用自然语言或流程图来表示,在使用流程图时,应掌握一些流程符号,即用一些图框来表示各种操作,直观形象,易于理解,从而达到根据算法流程图来完成程序的输写。
4.4 掌握四种结构
C语言学习中掌握四种结构即顺序结构、选择结构、循环结构和模块化程序结构非常关键,因为这种这四种结构决定了C语言代码的执行过程,相当于是算法的流程体现,它们彼此可以互相嵌套。C语言对数据的处理是通过“语句”的执行来实现的,一条语句完成一项操作(或功能),一个为实现特定目的的程序应包含若干条语句。
在实际编写代码过程中,常常将前三种结构相互嵌套调用,以此设计出相应的算法来解决工作中遇到的问题。如果是设计大型项目的话,编写出的程序往往需要完成的功能较多,数据结构较复杂,长篇符的代码并不利用管理和维护,为了解决这种状况,如果采用C模块化程序设计思路就方便较多。
C模块化程序设计采用自顶向下逐步求精的设计结构,将一个大问题按层次分解成多个小问题的设计思路。一般由主控函数和子函数组成,即指将一个很大的代码段划分为一系列功能独立的小代码段部分,每个代码段完成一个指定的功能,那么将这些代码段合在一起就是一个完整的功能模块。其中每个代码段实质就是一个具体的独立子函数,函数与函数间可以相互调用,但不能相互嵌套,通过主控函数可以调用子函数(子函数不能调用主控函数)可以将各个函数模块聚合为一个整体完成相应的功能。因而,定义函数、定义函数名(函数名表示功能)、函数调用和返回值等就很关键和重要,初学的人要通过不断地上机实践才能掌握编程的流程和精髓。
4.5 熟知函数定义
函数就是完成相对独立功能的程序段,它具有独立性,代码适中,分析问题层次清楚等特性。函数由函数说明和函数体两部分构成,函数说明包括函数值类型、函数名、参数类型及参数说明;函数说明之后的花括号“{}”部分为函数体,里面由C语句构成。函数调用时,实参与形参应保持个数、次序及类型的一致性,以确保实参与形参之间数据的正确传递,为提高编程效率打下良好的奠定基础。
4.6 具备数学知识
编程是人把要表达的思想,通过计算机语言表达出来 所以最重要的就是数学逻辑思维。在C语言学习过程中,较好的逻辑思维可以比较容易学习C语言编程分析,选择更简捷的运算流程,C的核心语法并不要求很高的数学知识,高中阶段接触到的概念性的知识就足以应付。因而,数学知识对学习C语言重要性还是比较大。
4.7 会调用C语言库函数
库函数就是把函数放到库里,是别人把一些常用到的函数编完放到一个文件里,供程序员使用,程序员用的时候把它所在的文件名用#include指令加到里面就可以了(尖括号内填写文件名),例如#include。在编程时候需要调用库函数.
4.8 指针在C语言中的灵活运用
指针是C语言的一种数据类型,是指向变量和对象的地址,是C语言学习的重点内容。 指针的用途非常广泛,假设想通过函数改变一个变量的值,就得用指针而不能用值传递,特别是对象的数据量非常大,往往编程人员就会用指针来做形参,只需要传递一个地址就可以,大大提高了工作效率。另外,指针变量可以访问内存地址,也可以访问数组和字符串,使编写的C程序代码更简洁,效率高。指针的学习在C语言中是关键的内容,也是学好C的精髓所在,为了高质量地完成程序的编写,就需要掌握指针在C语言中的灵活运用,那就要能通过上机反复地调试代码,从实践中总结问题,完成指针的学习。
4.9 读代码和程序
C语言编程不只是理论性的知识,它还要求上机动手操作能力更强一些。每次C语言课的学习,只有通过上机输入大量代码的练习,才能发现错误代码段,分析解决存在的问题,不断总结经验,巩固课堂上老师所讲的内容。C语言编程不是单纯靠理论记忆就能学好的,它需要大量的上机实验来巩固,才能加深知识的消化理解,开拓编程思维,提高解决问题的能力,培养良好的编程态度。
读程序和分析他人写的代码也是学习C语言较好的途径,仔细研读程序时,注意分析别人是如何运用编程技巧的,研究它的实现方法和程序设计技巧,提高自己的程序设计能力,直到每一行都理解了,然后找几个题目编写,自己试图写出程序,反复实践,这样就能从错误中分析代码出错的原因,进行调试正确的代码段,不断积累经验,反反复复直到搞懂为止。时间久了,慢慢就对程序的掌握有一个比较清晰的过程。
4.10 借助网络资源
C语言的学习在课堂上的知识还是有限的,如果想获取更多的知识,可以借助网络平台来完成资料的补充。一方面可以在教学网站上得到相关的学习内容;另一方面可以登录相关论坛或C语言专题微信群参与讨论,获取学习经验,探讨编程技巧,这样对于学习者来说都非常便利。
5 结束语
C语言是计算机编程语言中应用最流行的一种高级语言,在C语言学习过程中,本文针对C语言特点、出现的现象和学习策略进行了分析,只要学习者认真领会C语言功能的强大,具备持之以恒的学习韧劲,一定会在实际学习中取得优异的结果。同时,C语言作为高校公共基础课,学习好它不但能提高自己的编程能力,还对整个计算机语言的学习起到奠基作用,为社会培养综合型人才更好的服务。
参考文献: