时间:2023-09-22 17:06:01
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇计算机编程技术学习,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
1 引言
《计算机网络编程技术》作为《计算机网络》的后续课程,是理论与实践相结合的关键课程。本课程要求学生在理解计算机网络的原理,掌握tcp/ip 协议簇中数据链路层、网络层、传输层和应用层等网络应用程序的设计思想和编程模型,运用高级语言或者面向对象语言进行开发,同时能够利用相关网络知识解决实际问题。对于电子信息科学与技术专业的学生来说,学习《计算机网络编程技术》课程的主要目标是“面向应用,突出实践”。传统的以课堂为中心、以教师为中心的教学方法不再适合本课程的教学,因此该课程教学模式的改革也势在必行。基于“案例驱动的教学法”是以任务为目标,将教学过程中的重点和难点以案例的形式提炼出来,让学生据题而思、据题而想、据题而做。“案例驱动教学法”教学模式在《计算机网络编程技术》课程教学中,为全体师生构建了一个学习情景,学习内容围绕一个确定的目标,有重点有主次的了解相关理论和方法,有效地提高了学生的学习效率和学习兴趣,充分培养学生的自主学习能力、协作精神和创新能力,因此它适合《计算机网络编程技术》课程教学的开展。
2 基于“案例驱动教学法”教学特点
“案例驱动教学”是在老师的指导下,学生针对具有代表性的典型案例,进行针对性的分析和讨论,做出自己独立的判断和评价的教学方法,从而实现一定的教学目标。这是一种具有启发性、实践性,能开发学生思维能力,提高学生判断能力,决策能力和综合素质的新型教学方法。
传统教学模式一般是“提本文由收集整理出概念——解释概念——举例说明”,是一种以教师讲授为主的教学。而案例驱动教学法采用“提出案例——分析案例——完成案例——评价小结”,是以布置案例为出发点,以分析、完成案例为中心点,以评价案例为延伸点,符合新课程“改变课程实施过于强调接受学习、死记硬背、机械训练的现状,倡导学生主动参与、乐于探究、勤于动手,培养学生搜集和处理信息的能力、获取新知识的能力、分析和解决问题的能力以及交流与合作的能力”的要求。它具有以下特点:
(1)老师启发性。和传统的“填鸭式”教学相比,案例驱动教学法是一种启发性教学。由老师提出问题和与教学内容相关的案例给学生分析,改变传统的教学过程中学生被动接受的状况,有效地激发了学生独立思考问题的能力,启发学生解决问题分析问题的思维方式。
(2)学生主动性。与传统的教学不同,案例驱动教学以教师为引导,以学生为主体。学生在老师的指导下,输入案例,通过对案例进行分析和讨论,深入理解和掌握案例本身所反映出的基本原理,进而提高分析问题、解决问题的能力。
(3)老师学生互动性。根据案例的难易程度,可以采取灵活多样的实训方法。可以独立完成也可以和其他同学交流完成。由于学生的水平存在差异,在实训过程中,出现问题需要老师引导学生围绕案例,进行相关知识的探讨和获取,找到解决问题的方法和途径。知识和经验在师生之间双向流动,并在学生之间相互交流。
(4)评价小结。根据案例教学的内容和目的,对于案例完成较好的同学进行成果展示,通过展示可以给其他同学开拓的思路。在展示结束后可对学生在实训中的表现进行鼓励性的评价,这样可以不断加强学生的信心,给学生指出不足,提出希望,做出小结。
3 网络编程技术课程中案例驱动教学法的应用
3.1 理论教学设计
课程教学从网络编程基础知识入手,涉及互联网体系结构、ip地址和端口、tcp和udp协议,网络服务、c/s和p2p编程模式、套接字、编程接口等,也涉及到程序设计中进程、结构、函数、对象、类、i/o模型、进程阻塞、多线程编程等。网络编程技术作为应用型课程,强调基本概念的理解与实践相融合。如何在有限的学时内,让学生最大限度地了解网络编程技术,增加课程的信息量,提高学生的学习兴趣,培养学生的问题求解能力是该课程讲授的关键。我们以案例教学法对教学内容进行实施,所有的教学内容以案例的形式出现在课堂中。例如,qq及时通讯、网络会议、在线五子棋等设计,既形象地将理论和实践结合起来,又提高了学生的学习兴趣。从教学效果上看,案例式教学启发了学生的兴趣,丰富了学生的知识结构。为了避免课堂上少量案例不能覆盖全部的实际应用,在教学方法上,老师注重由点及面的教学思路,引导学生的思维,举一反三。
3.2 实践教学设计
网络编程技术课程的实践性很强,学生只听不练很难达到学习该课程的目的,因此在理论教学的同时还要加强上机实践教学,将上机实践环节贯穿于课程教学的全过程。在实验内容组织上,老师充分考虑实验题和理论教学的衔接,以及实验题目的综合可操作性和难度,将实验题目分为设计题和综合题,如下表1所示:
实验的实现虽然不与具体的编程语言有必然的联系,但是编程语言在教学环节中有非常重要。对于学生而言,学习网络编程是在高年级阶段,必修课程学过高级程序设计(c或c++)、面向对象程序设计(java)、.net开发(c#.net),任选其中一种语言似乎都可行。但据开课前我们对学生的调查显示,大部分同学首选c#进行编程。因此,课程教学课题组决定,老师上课注重网络基本理论的讲解,编程实践以c#为主。
关键词:数据结构;建构式教育理论;理论教学;实践教学
近年来,在产业界急需大量软件开发人员的情况下,普通本科院校计算机专业学生的就业率持续走低。网络、报纸等媒体对计算机本科教育现状多有批评,甚至出现了大学不如培训公司的极端观点,严重影响了学生对专业课程的学习兴趣、动力和信心。数据结构是计算机专业的核心基础课程,上承程序设计语言、离散数学,下启操作系统、编译原理等课程,其重要性不言而喻。一方面,数据结构学科具有难度大、抽象层次高、概念繁杂等特点,学生很难掌握,更不要说将抽象理论与就业实践需求相结合。另一方面,国内主流数据结构教材和相应的传统教学模式侧重于培养学生的计算机学科基础理论素养,而将如何通过组织数据结构教学活动积极推动就业的问题留给了任课教师[1]。这造成了学生学习数据结构的目标不明、信心和动力不足。笔者面向就业需要明确了数据结构的两大主要教学目标,并在实际教学过程中实践建构式教育理论,尝试解决学生对专业认识不清、学习兴趣不足、编程基础薄弱等问题。一些做法得到了学生的认可和配合,成功地激发了学生的学习主动性、在一定程度上培育了学生的创新精神。
1面向就业需求的数据结构教学目标
教育要服务于社会生产需求。数据结构教学也必须紧扣这一根本目标。本节从满足就业需要的角度阐明了数据结构教学的两个主要目标:
1)培养超越具体程序设计语言技巧的编程技术。
现阶段是一个传统的生产生活方式迅速向电子化、信息化转变的时期。人们需要开发和维护更多、规模更大的计算机系统来满足生产和生活的需要[2]。这就决定了具有熟练编程技术的程序员在很长时期内都将受到产业界的青睐。大学对学生编程技术的培养始于程序设计语言的教学,如C语言,Java语言等。但是现今编程语言繁多,各种新概念层出不穷,常常出现学生无所适从或者质疑某门语言课程已经过时无用的现象。甚至很多教师也在争论讲授何种编程语言。笔者看来掌握编程技术(而不仅仅是语言),回归编程的本质问题更加重要,无谓地追赶时髦不可取。作为编程语言课程的后续,数据结构教学的重要目标就是帮助学生理解编程的本质、锻炼编程技术以及学习提高编程技术的方法。
2)培养围绕复用的软件开发方式。
随着软件规模的日益增大,软件开发模式逐渐从“从无到有”的模式过渡到“从有到有”的模式,即复用现有的丰富的软件资产,开发新的应用系统。事实上,复用的思想已经被广泛的用于软件开发实践之中,从各种各样的程序库、软件开发包、软件构件、Web服务等各种可复用资产已经简化了软件开发的难度、提高了软件开发的效率也极大地改变了软件开发的模式。数据结构学科本身就是对软件复用思想的一种实践,它通过总结大量软件系统中反复出现的数据结构(如表、树、图、集合等),定义和实现处理这些数据结构的基本操作,最终达到能够在不同项目开发中反复应用的目的。这些基本数据结构和算法已经被实现为可复用的产品随着程序设计语言,如C++STL、C#collections,Javacollections等,并得到了广泛的使用。因此,数据结构教学的另一个重要目标就是引导学生习惯围绕复用的软件开发方式,能够使用和定制已有的数据结构和算法库。
其他传统的数据结构教学目标,如培养学生面向实际问题进行算法设计和分析的能力,培养学生计算机学科的基本理论素养和思维方式等也非常重要。但普通本科院校学生对理论内容的接受能力以及将理论和现实就业需求相联系的能力相对较弱且教学时间有限[3],笔者认为重点突破本节给出的两个更具体、更可达的教学目标,并在实现这种具体教学目标的过程中潜移默化地培育学生的计算思维和理论素质,将会取得更佳的效果。
2建构式数据结构教学
教学理论研究以及教学实践反馈均表明,学生主动学习的效果远较被动地接受老师灌输的效果好的多。因此,为实现上述教学目标,在建构式教育理论的指导下,笔者探索并采用了一系列建构式教学措施,激发学生的主动性和兴趣,取得了较好效果。
建构主义认为,学习并非学习者对教师所授知识的被动接受,而是学习者以自身已有知识和经验为基础的主动建构过程[4]。
2.1理论教学措施
课堂教学是数据结构教学活动的主要部分,充分利用课堂教学时间,激发学生学习数据结构的兴趣和信心,帮助学生建立学习数据结构的环节非常重要。我们采用了如下措施:
1)组织小型讨论。
好的开始是成功的一半,好的课堂教学须在上课之初就抓住学生的注意力,让学生带着轻松、愉快的心情听课。我的做法是在课堂的前5分钟,提出一个学生感兴趣的话题,组织若干个有3~5位同学参与的小型讨论。到一个学期结束时,每位同学都有至少一次的发言机会。讨论的主题可以灵活设置,如时事、技术、社会热点等。有时,课堂中间学生比较疲惫、注意力下降的时候,也可以穿插一点讨论,改善课堂环境。大多数学生非常喜欢这种讨论活动,积极参与其中,成为课堂的一部分,从被动上课转变为喜欢上课。
2)重建理论知识所针对的问题。
国内的经典数据结构教材侧重严谨的理论,较少讨论各种概念、算法出现的背景以及探讨的问题是否仍然具有现实价值。而回答这些问题能够帮助学生重建理论知识所针对的问题原型,重现解决方案的提出、发展乃至最终成熟的整个过程,更有助于培养学生解决实际问题的能力,养成批判性、创新性思考的习惯。
2.2实践教学措施
数据结构是帮助具有基本编程语言基础的学生锤炼编程技术的关键课程。它揭示了程序设计的基本面,即如何处理相互之间存在一种或多种数据关系的数据元素所构成的集合、如何设计算法并分析算法的优劣。
2.2.1实验内容设置
实验内容设置是进行实践教学的最重要部分。从覆盖知识点的角度看,实验内容须面向数据结构教学目标,即实验内容须能够锻炼学生的编程技巧,如算法设计、调试、测试以及调优等能力,还能够让学生体会到围绕复用开展软件开发的威力以及思路。从覆盖教育对象的角度来看,实验内容须面向大多数同学并充分考虑优秀同学,即实验内容须划分不同的层次,让大多数学生能够很容易入手,并让有能力、有余力的学生能够不断地深入,直至形成综合型课程设计。
2.2.2实验考核手段
考核手段在教学环节中至关重要。考核手段是学生学习和锻炼自身能力的风向标。为保证每位同学都能积极完成实验并有所收获,避免抄袭和敷衍的现象,笔者采取了综合型的考核手段。
3应用中遇到的问题
建构式教学模式在应用和推广过程中遇到的主要问题来自三个方面。其一,目前学生的课业负担较重,习惯于被动“填鸭”而不习惯于主动“求索”,这是推动和开展建构式教学模式的主要障碍。其二,建构式教学活动,需要师生的密切交流,但现有师资不足难以满足实际需求。一个可能的解决方法是综合多门课程和多个老师,建构整体的知识框架和学习体系,避免课程教学中的重复劳动,提高师资的利用率。另一个可能的解决方法是利用互联网技术,建立在线教学园地。其三,建构式教学模式仍然处于探索阶段,各学科缺乏建构式教学素材。从笔者在实践教学的体验来看,应尽量从学生的学习背景和能力成长规律出发而不仅仅是从学科背景出发,为学生建构知识体系设计更平滑的路线。
4结语
笔者提出将“培养超越具体程序设计语言技巧的编程技术”和“培养围绕复用的软件开发方式”作为普通本科院校的数据结构教学目标,在建构式教育理论的指导下,设计并实践了一系列建构式教学措施,分析了应用建构式教学模式所遇到的一些问题。
未来将开展两个方面的工作。一是通过问卷调查、统计分析等手段定量地分析建构式教学方法的实际效果;二是创造和积累建构式教学素材,如研究数据结构课程设计过程中不同类型学生的知识建构路线,挖掘并推广其中优秀的知识建构方法。
参考文献:
[1]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)[M].北京:高等教育出版社,2006:8-101.
[2]蔡敏,郑尚志,梁宝华.“数据结构”课程教学改革之我见[J].计算机教育,2009(4):50-51.
关键词:多核课程;编译原理;知识点
多核技术的出现与快速发展使计算机技术发生了重大变化。多个处理器核心的出现,为软件在单处理器上的并行提供了丰富的硬件资源。为了充分利用这些计算资源,编译技术需要从为单核编译发展到为多核编译,因此有了新的发展。为了应对多核技术及其引起的相关计算机技术发展的需要,众多高校都通过开设多核课程的方式,将多核技术引入到计算机教育体系当中。编译是多核技术发展的重要推动技术之一,多核资源的有效利用有赖于编译对多核的支持。因此,在多核课程中,将编译原理相关知识内容融入进来,对多核课程中多核基本原理、多核编译优化方法教学和多核编译优化工具的使用具有重要作用。笔者以武汉大学“多核架构及编程技术”课程为例,对多核课程中的编译原理知识点进行分析。
1“多核架构及编程技术”课程概述
武汉大学从2005年就开始关注多核技术,并已经开始探索将多核技术引入到计算机教学体系当中。随后,武汉大学基于自身教学和科研积累,根据对多核技术的深入了解,对多核知识点进行了分析,开设了面向本科生的“多核架构及编程技术”课程[1]。
1.1课程目标
多核技术的出现使多线程在单处理器上的并行成为可能。而多核处理器则已经成为了主流处理器。传统面向单核处理器的程序设计方式正逐渐向多核并行程序设计迁移。学生需要学习和掌握多核相关知识,才能够更好地适应技术发展和来自企业的需求。课程力求使学生在学习之后,能够了解和熟悉多核的基础理论,并在此基础上掌握多核程序设计方法以及相关的多核优化工具。为了更好地开展多核课程教学,课程可以分为两个模块,分别是理论教学模块和实践教学模块。两个模块相辅相成,共同完成课程的教学目标。多核架构及编程技术课程设置如图1所示。
1.2多核课程理论设置
多核技术的理论是多核课程的基础。在“多核架构及编程技术”中,我们将多核技术相关的基本理论进行分层,形成层次化的理论教学内容设置。首先将计算机处理器架构的发展作为多核架构的前导性内容,然后是多核处理器体系结构,接下来介绍并行计算及其与多核技术的关系,之后介绍多核平台上的程序设计技术,最后是与实践关系密切的多核平台程序调试技术和基于编译优化的多核调优技术。通过层次化的理论设置,让学生形成多核技术理论的整体框架,构建进一步学习和开展实践的扎实基础。
1.3多核课程实践设置
由于“多核架构及编程技术”是面向本科生的,因此,教学重点之一是如何让学生掌握多核程序设计技术。为此,课程组设计两大类的实践教学方式:基础实验和课程设计。其中,基础实验侧重基于多核体系结构的程序设计,包括基本的多核并行程序设计,Windows和Linux环境下的多核程序设计,以及常用的库和工具软件的使用。通过基础实验,学生能够掌握最为基本的多核程序设计方法。课程设计则是综合性实践,要求学生对多核知识体系比较了解并具备多核程序设计能力,因此既是对学生多核程序设计能力的全面锻炼,也是对其学习效果的全面检验。
2多核课程中编译原理内容设置的必要性
半导体技术的进步推动着多核技术的不断发展。要充分利用多核技术提供的丰富硬件资源,就需要解决如何使软件能够以多线程的方式进行并行的问题。而解决这一问题的核心方法之一,就是利用编译技术对已有的软件进行多核多线程的优化,或是通过编译的支持,来完成多核多线程的程序设计[2-3]。
已有众多的研究者在开展相关的多核编译和多核优化的研究。这对于多核技术和编译技术的发展都将起到很好的推动作用。而随着多核技术的不断推广,面向多核的应用正在快速增加。因此,在计算机及相关课程的设置中,将多核环境下的编译尤其是编译优化技术作为关键内容,就显得十分必要。
由于多核环境下的编译是多核技术和编译技术的融合,因此,进行课程设置时就需要充分考虑两者如何进行结合,来更好地开展教学活动。在已有的编译原理课程中,增加新出现的多核编译内容面临巨大的挑战。首先,在传统的编译原理课程中,往往是单核单处理器的编译技术,不包含并行编译的技术或者很少包含这部分内容。其次,多核编译需要并行计算的相关基础理论知识作为先导基础知识,这在传统编译原理课程中是无法实现的。最后,传统的编译原理课程往往已经具备了较为完备的课程结构,增加新的多核编译理论和实践内容会产生较大影响。因此,在已有的编译原理课程中,增加新的多核编译教学内容尚需进行研究;而现有的编译原理课程中也是以既有编译原理教学内容为主[4-6]。
多核课程的核心就是如何利用多核技术提供的硬件资源来提高程序的运行效率。在进行“多核架构及编程技术”课程设计时,根据教学目标,多核技术利用片上多核处理器资源进行线程级并行,是多核课程中的核心教学内容之一。这就离不开编译的支持。由此可见,在多核课程中设置编译原理内容,是多核课程设计本身的必然要求,并已经成为部分高校多核课程设置的选择[7-8]。
在开展多核编译及其优化的教学之前,首先需要学生对并行计算、多核体系结构等理论具有相当程度的理解,才能进一步学习。在多核课程中,并行理论、基本多核体系结构和多核程序设计方法都是不可或缺的教学内容。因此,在多核课程中安排多核编译内容,有利于学生更好地学习。
由于多核编译仍然在发展当中,因此它既面临着应用的需求,也是当前科研的前沿内容之一。要开展多核编译的教学,就要充分考虑课程所面向的对象,合理地进行多核编译具体内容的安排。
武汉大学在进行“多核架构及编程技术”设计时,重点考虑如何安排相关的编译原理内容。根据课程组在教学和科研方面积累的经验,多核编译是多核技术的关键内容。在进行多核程序设计和优化时,基于多核编译的优化是重要的方法,也是多核程序优化工具的基础。因此,武汉大学“多核架构及编程技术”将多核编译作为必要教学内容安排。
3多核课程中编译原理知识点
多核课程中的编译原理内容是多核编译相关。然而,当前多核环境下的编译技术仍然处在发展当中。因此,在科学研究领域,多核编译技术不断创新;而在实际的应用领域,更多的是将传统并行编译技术进行优化,以应用到多核上。这就给多核课程中编译原理内容的设置带来了挑战。节能型多核课程中编译原理内容的设置,需要解决两个问题,首先是多核课程究竟需要哪些编译原理的知识点;其次是如何安排课程中相关编译原理的知识点。
3.1基本知识点分析
CAI是指计算机辅助教学。计算机辅助教学(CAI)是一种借助计算机进行的教学活动。论述了教学内容,安排了教学过程,并以对话的方式与学生进行教学训练方法和技术。CAI作为一种教学方法,利用多媒体技术、编程技术、动画仿真技术、知识库技术等计算机技术,有效地解决了传统教学方法的单一性和片面性缺陷。
作用:
一、运用计算机辅助教学可以激发学生的学习兴趣。
二、在多媒体计算机进行通用技术课堂教学有利于培养学生的观察力和创新能力。
三、计算机辅助教学可以帮助通用技术教师把握课堂效率。
四、计算机辅助教学对学生的学习能力的提升。
(来源:文章屋网 )
关键词:项目教学法;网络编程;程序设计;项目;项目评估
中图分类号:G642文献标识码:A文章编号:1009-3044(2011)18-4388-03
The Application of Project Teaching Method on Network Programming Teaching
CAI Jing-mei
(College of Information and Computer of Shanghai Business School, Shanghai 200235, China)
Abstract: Based on analysis of the place of Network Programming in the computer curriculum,teaching content and problems, combined with the Objective of the applied undergraduate students, it is suggested that implementing project teaching at Network Programming is necessary. The noteworthy methods and problems in implementing project teaching practice are fully summarized from teaching preparation to practice. It is discussed that the good effective of project teaching method to motivate undergraduate students to construct integral computer network architecture, inspire learning interesting and improve the comprehensive ability of applying knowledge.
Key words: project teaching method; network programming; project; project evaluation
随着网络应用的普及,高校计算机专业知识体系中网络技术课程已演变成课程群,《网络编程》成为网络技术课程群中的一门核心课程[1]。根据ACM/IEEE-CS计算机科学课程2008报告建议:伴随21世纪Web应用的普及和网络技术的发展,面向网络计算领域的知识可能将会强调编程、软件工程、数据管理、移动、人机交互、安全和智能系统等[2]。网络技术的进步需要学生能从网络编程实现的角度去深层次地学习网络知识。
网络技术领域的知识包含理论和实践,教学应理论联系实际,要为学生提供自己动手实践的学习过程。《网络编程》是一门实践性很强的课程,这一特点决定了其教学法必须重视教学过程中理论性、实操性和创新性的结合。传统的以课堂为中心、以教师为中心的教学方法是不适合本课程的教学。
1 课程特点
《网络编程》的教学内容知识点广泛。不同类型的高校计算机专业采用的教学内容和实施的教学方法都不尽相同。
1.1 课程的地位
本课程为计算机专业高年级本科学生提供了集中学习一门重要的编程技术的机会。《网络编程》在计算机学科的网络技术课程群中与其它课程的关系如图1所示[1,3]。前序课程是《计算机网络》和《程序设计》,如图1虚线箭头所示,是学好网络安全、网络管理和TCP/IP协议等课程的充分条件。
1.2 教学内容
网络编程的教学内容通常分为三类:基于TCP/IP协议栈的网络编程、基于WWW应用的网络编程和Web Services网络编程。基于TCP/IP协议栈的网络编程是最基本的网络编程方式,使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发网络应用程序[4];基于WWW应用的网络编程,主要是使用各种编程工具、脚本语言、规范,开发Web服务器应用程序;Web Services网络编程是全新的网络编程理念,提供了一套架构标准,为开发基于互联网平台、面向网络服务的软件系统提供便捷。
教学内容有三种类型。一是覆盖三类,强调广而浅,让学生掌握最基本编程基础上去认识和体验网络编程领域的广泛应用前景,不少国外大学本科选用这种形式。二是覆盖第二类,基于一种规范或工具开发网站,对学生的网络知识体系和编程能力要求不高,倾向于实用性技能培养。三是覆盖第一类,强调掌握网络编程基础知识、学会基于协议的网络编程技术,注重学生深层次地了解网络知识体系和网络编程能力培养。作为衔接《计算机网络》的网络编程课程,教学内容采用覆盖第一类比较合适。具体也可分为四大模块:网络编程基础知识、网络编程工具和环境、套接字网络编程技术、基于TCP/IP协议的网络应用系统编程。在内容结构上,套接字网络编程技术是核心,网络编程基础知识和工具是手段,基于网络协议编写网络应用系统为最终目标,如图2所示。
1.3 教学问题
要在《网络编程》教学中取得“授之以鱼,更授之以渔”的教学效果,必须关注一些关键的教学问题。首先,《网络编程》中的程序设计接近于小型软件系统开发[5]。要求学生对课程使用的程序设计语言工具的应用能力较强。因此,帮助学生提高使用编程语言工具的能力是教学中不能忽视的问题;套接字网络编程知识和技术是课程重点学习的新知识,不管是基于TCP、UDP的套接字编程,还是基于程序设计语言Socket网络类库编程,或基于应用层协议的网络类库编程,编程的基本模式是固定的,但技巧和形式灵活多变,容易让初学者摸不着边际。理清知识点之间的层次依赖关系,是教学中的难点和重点;重视课程的综合编程实践活动,为学生提供了综合运用课程知识和技术、体验实际岗位网络编程项目开发过程的机会,是实现本课程的教学目标不可缺少的部分,如何有效地帮助学生完成这部分的学习也是教学中不能轻视的问题。
2 项目教学的可行性
项目教学法是师生通过共同实施一个具体的项目而进行的教学活动,是理论教学和实践教学的有机结合[5],符合计算机网络领域内的知识掌握要求理论和实践并重的基本要求[2]。在实际运用中,需结合课程教学目标、内容以及学生等多方面因素来灵活实施方能取得效果。
2.1 本科项目教学法特征
本科项目教学不同于职业技术教育中的项目教学。职教中的项目教学法遵循“实践-理论-实践”模式,以实际的工程项目为对象,注重的实践动手操作能力的培养。而应用型本科教育培养既有理论又有操作能力的人才,所以项目教学法应遵循“理论-实践-理论”模式,从课程的知识体系出发,围绕着课程中的概念、原理和技术展开,通过项目的实际操作,加深对理论和原理的理解。
本科项目教学法的目的是培养学生整合知识和经验的能力,让学生在实践过程,理解和把握课程要求的知识和技能,树立自信心,培养团队意识,体验积极探索和不断进取的精神。本科项目教学法对授课教师的要求更高,除了熟悉所教课程的内容和结构外,还要创设学习资源和协作学习的环境,熟悉项目教学的组织管理、沟通技巧和教师角色定位[6]。
2.2 项目教学的必要性
从对本校2007级计算机专业学生进行的一学期的教学实践成果来看,项目教学法在改变教学过程和学习评估方面有较大的优势。
改变传统“一言堂”模式,以项目为主线,让老师和学生同时参与学习。尽管学生在项目实践中,会碰到很多问题,但为了解决问题,学生会查资料,会和同学、老师讨论,会自主通过各种途径去完成项目,使以往单调的学习过程变得生动起来。而教师通过将课程的知识重点和难点有序地落实到相关的项目中,通过讨论、评价等反馈机制,容易掌握学生的学习状态,及时调整教学的重点和进度。
采用过程性、多形式的评价机制,激励学生的学习积极性。引导学生通过互评和自评来了解自身的优势和不足,在相对轻松、愉悦的学习氛围中,发挥自己的长处,树立学习自信心。教师参与并组织评价过程,及时肯定学生的优点,让学生有成就感,从而有继续学习的动力;及时指出学生的不足,提示学生加强哪些知识点的学习;若发现有创新的思维则予以大力表扬,激励学生积极探索[6]。
3 项目教学法的实施
项目教学法实施过程中应注重三个重要环节:项目设计、教学和评估。项目是教学的主线,选择合适的项目至关重要;项目教学中,要注重发挥以学生为主体、以教师为主导的作用完成知识架构;实施合理的项目评估方法,以评促学、以评促教。
3.1 项目的设计
项目设计是实施项目教学的出发点。教师首先从学生在课程结束后能学到什么为出发点设计项目。事先确定项目的数量和学习目标,以便能够按照“逆向开展”的思路,将课程中需要学生掌握的重要概念、原理、技巧、应用能力、以及技能落实到对应教学项目中。每个项目的工作量和难易程度适中,项目之间逻辑结构清晰,项目形式可以多样性,但每种类型项目应采用统一的模板,包含学习目标、要解决的问题、完成时间、参考资源和评价标准等。在设计融合较多知识点、结合实际问题的综合性项目时,应考虑到学生已有的知识结构、学习兴趣和解决问题能力方面的差异,要设计不同的评估标准,保证所有学生都能从完成项目中获得成就感。
项目分为研究型、实验型和应用型项目。研究型项目以课外小组形式完成,学生通过阅读指定资料、信息查询、比较、讨论和分析等方法进行概念问题求解,项目成果为PPT展示和报告,由同学互评。实验型项目分为验证和简单设计两类,促进学生熟悉网络编程模式、工具和接口技术,在实验课内独立完成,教师批改并反馈。应用型项目是帮助学生综合应用知识和技术进行网络编程,要求学生模拟实际岗位网络应用程序开发流程来完成应用型项目,按照选题、项目计划、需求分析、系统设计、代码编写和调试、项目报告等一系列流程来执行,小组成员分角色承担项目开发中的各项任务。项目完成后进行自评、互评、教师参评和总结。将课程项目分类设计,结构清晰,有利于教师在有限课时内有序地开展项目教学。
3.2 实施项目教学的步骤和方法
课程教学从网络编程基础知识入手,涉及互联网体系结构、IP地址和端口、TCP和UDP协议,网络服务、C\S和P2P编程模式、套接字、编程接口等,也涉及程序设计中进程、结构、函数、对象、类、I/O模型、进程阻塞、多线程编程等。教师授课后对应布置研究型项目。在下次授课时随机抽取学生演讲,由同学互评教师点评。没有抽到小组将学习成果交演讲小组同学评估。师生共同参与,学习气氛轻松活跃,能及时发现学习问题并调整教学重点。
实验型项目内容主要选自教材中实例和课内外简单的网络编程练习题,教师先示范讲解,学生可以参考教材中的实例或其它参考资料,难度适中,学生稍加努力都能完成。比如熟悉网络编程和调试环境、基于TCP套接字接收和发送数据编程,基于UDP套接字接收和发送数据编程等。每个学生递交实验报告由教师评估并反馈,为完成应用型项目做好准备。
应用型项目应在1/2学期开始实施。因综合性强且工作量比较大,故数量不宜过多。需要事先下达项目任务书,明确项目学习目标、需完成的任务、所涉及的知识点、完成项目的流程、以及在项目过程中需要提高的能力、完成时间和参考资源等。学生分角色承担项目任务,并模拟实际综合性软件的开发流程进行。这是学生完全独立开发的过程,也是项目教学法的精髓所在。学生在规定的时间范围内可以自行组织、独立计划,学生有机会安排自己的学习行为,可以在完成基本功能的基础上自由发挥。教师在这个阶段所起的作用就是辅导和推动,为学生答疑解惑,学生也可以和教师进行交流探讨。在项目进行过程中,鼓励学生展示中间性成果,协调项目小组中成员之间或组和组之间的矛盾,指导小组成员开展合作交流。
3.3 项目评估方法
项目评估是项目教学中的重要一环。分为自评、互评和教师评。为了保证学生在自评和互评中能客观公正地评价自身和他人的优缺点,要事先设计好自评和互评表,包含具体的评定条目和分数等级,等级划分不超过3项,学生只要在相应栏目中打勾。互评表由项目组长管理,教师定期检查。
研究型项目采用自评加互评,目的在于提高学生的责任感和学习主动性。项目评价表的评定条目要基于事实,比如“概念陈述正确”、“工作过程描述正确”等,便于学生操作。实验型项目由教师独立评估,教师在评估中要指出问题及解决的方法。应用型项目评估包括自评、互评和教师评,要求学生现场演示和答辩,教师当场测试验收成果并评估,其它小组对演示小组答辩成果评估,这两部分按比例构成项目成果的最终评价。应用型项目评估还应包含学生在项目进展过程中的表现,由学生自评和互评构成,评价表应包含诸如“按时完成阶段性任务”、“积极参加小组讨论”、“能及时改进方案”、“注重沟通配合”等条目。
利用评估表对项目进行评估,便于提高评估的客观性,利于评估的可操作性。教师根据一定的比例,将研究型项目、实验型项目和应用型项目评估综合为该学生的课程成绩,能客观地评价学生学习能力。
4 项目教学有效性分析
通过自行设计的问卷了解学生对项目教学法的评价。问卷在最后一次应用性开发项目评估前进行,统一发放,当场收回。发放问卷46份,回收46份,有效回收率100%,有效答卷率96%。调查结果如表1。
由表1分析,项目教学法在提高学生学习兴趣和学习主动性方面效果显著,但在提高学生学习能力方面效果不是最佳(表中肯定低于80%项),说明对于没有接受过项目教学法的学生来说,较难在短时期内改变学生的专业学习能力和学习习惯。
此外,由于部分学生长期养成的学习依赖思想,采用项目小组方式后,这部分学生参与积极性不高。为了保证项目进程,小组优秀学生“包干”这部分学生的工作,导致最终的项目成果中体现不出哪些学生没有参与项目工作,因此当学生整体自主性较差,项目教学要结合传统教学进行;在项目法教学过程中,当学生自主活动或以小组进行活动时,教师如果创设的学习情景比较单一,比如只有教室、常规布置的机房等,可能在开展项目教学的最后阶段会带来学习疲倦感。因此要保持持续较高的学习兴趣,教师掌握多种沟通途径和推动手段。
5 结论
项目教学法整合了各种教学、学习工具和资源,充分发挥学生的主观能动性[8],尤其适合在应用型本科计算机专业高年级综合性程序设计课程的教学。项目教学法把理论教学与实践教学有机的结合起来,促进学生建构良好的知识体系;项目教学法充分发掘了学生的创造潜能,全面培养了学生分析问题和解决问题的思想和方法;团队合作等能力得到全面的锻炼和发展。
参考文献:
[1] 教育部高等学校计算机科学与技术教学指导委员会编制.高等学校计算机科学与技术专业核心课程教学实施方案[M].北京:高等教育出版社,2009.
[2] ACM/IEEE-CS the Interim Review Task puter Science Curriculum 2008:An Interim Revision of CS[Z].2001.
[3] .网络编程技术课程的教学改革思路[J].西安邮电学院学报,2010,15(2).
[4] 叶树华.网络编程实用教程[M].北京:人民邮电出版社,2010.
[5] 刘淼,刘怀亮.计算机专业《网络编程》实验教学改革探索[J].实验室科学,2007(4).
[6] 王若明.管理信息系统课程中“项目教学法”的探讨[J].中国管理信息化,2010,13(10)
[7] 何利英.项目教学法在《电机与电气控制》课程中的应用[J].辽宁师专学报,2005(5).
关键词:案例教学;网络程序设计;评价体系;实践教学
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)28-0276-03
一、背景
随着计算机和网络的普及,在我们身边,随时随地都在利用各种应用程序实现用户之间的交互。打开浏览器,打开各种各样的聊天和通信工具,我们随时接触到的是网络。未来的IT产业,计算机网络相关的应用将成为核心。高性能的服务器设计、分布式程序的管理、数据的高效传输以及数据传输过程中的安全控制等,都是网络程序设计者要考虑的问题。“网络程序设计”作为“计算机网络”的后续课程,是计算机相关专业的一门重要课程,该课程将计算机网络技术及实践应用有机地结合,对学生加深理解和运用计算机系统、计算机网络的基本原理及程序设计能力的提高等,都起到至关重要的作用。无论学生将来是从事软件工程、网络工程项目的设计与开发,还是计算机网络相关的科研和管理工作,都极有可能需要进行网络程序设计,因此这门课程在教学中占有重要地位。但在实际教学过程中,我们发现不少学生存在程序设计能力不强、操作系统及计算机网络基础知识不扎实等问题,主要体现在以下几方面。
1.学生编程能力差,不能熟练运用VC开发工具。目前的一些高级开发工具,如VC、Java、VB、.NET、Delphi等,都可以实现基于网络协议栈的编程,但是除了VC以外,其他开发工具都是在一个较高抽象层次上进行面向对象的开发,利用这些工具学生无法深入理解操作系统网络通信的底层接口,而VC环境提供了底层的网络编程接口,因此通常是作为“网络程序设计”开发环境的首选。但由于VC环境中的MFC基础类库非常庞大,系统结构复杂,应用程序设计接口难于掌握,因此尽管学生在此之前已经学习了“C语言程序设计”及“面向对象程序设计”等基础课程,也很难在短时间内熟练理解和运用VC开发工具。
2.一些前期的专业基础课掌握不扎实。本课程会大量涉及到“计算机网络”和“操作系统”两门课程的基本内容,如线程、进程、同步、互斥等概念;网络协议模型中各层次的地位及工作原理;等等。而这些课程只偏重理论的教学,没有将一些原理应用到实践上,导致学生理解困难,没有办法灵活运用。
3.现有的“网络程序设计”教材内容难易程度往往出现两极分化,有的过于注重基础,只讲授简单的套接字接口、应用层的FTP、HTTP和POP3协议等方面的编程,没有涉及到与身边密切相关的一些网络程序,如广播、多播技术、ARP欺骗技术、P2P数据交换技术等,学生只能学到一些简单的应用,和工作的需求相距较远。有的教材偏难,甚至涉及到底层协议的开发,这样的教材也不适合应用型本科层次的学生。
针对以上问题,本文根据多年的“网络程序设计”课程的教学经验,对该课程的理论教学及实验教学内容进行了探索,提出了教学改革设想,针对理论和实践教学内容、教学方法和教学评价过程进行了研究,提出了适合于应用型本科计算机专业“网络程序设计”课程的改革方案,并在教学过程中进行了实践,实践结果表明新方案在培养学生学习兴趣、巩固基础知识及提高实践能力等方面有一定的积极作用。
二、课程的改革措施
1.教学内容的选取。作为应用型的本科院校,课程教学内容的选择要难易适中,同时符合社会对人才的需求,注重学生能力的培养,本课程偏重于学生的网络编程能力,对操作系统原理、计算机网络知识的理解和运用能力、工程驾驭能力等方面的培养。教学内容既要注重基础,也要注重实际应用的需要,强调课程的工程化和实用性等特点。为了便于学生理解相关的原理,我们针对每一部分教学内容都设计了相关案例,通过案例教学,将操作系统、计算机网络的基本原理、网络协议、一些经典的网络编程技术和实际应用案例等内容有机整合。在理论教学中,我们选择了8个方面的内容进行讲授,并设计了一一对应的教学案例,如表1所示。
在所涉及到的教学内容中,第1部分对过往知识的简单回顾,包括所涉及到的计算机网络、操作系统等方面的知识,并以一些常用的网络程序为例,简单介绍其工作原理;第2部分是考虑到学生没有VC的编程经验,通过对话框应用程序和单文档应用程序,简要介绍MFC的基本框架以及用VC程序的架构、代码的执行过程等;第3部分是对传输层之上的套接字编程接口进行介绍,同时通过设计一个应答的聊天程序,让学生理解套接字的工作过程;第4部分介绍了一个典型的应用层协议FTP的软件开发,其他的如POP3协议、HTTP协议等与FTP协议的开发过程异曲同工,因此没有介绍;第5部分通过多线程方式实现FTP文件的上传和下载,让学生掌握多线程技术;第6~7部分选择的是一些与身边密切相关的网络应用,包括广播和多播、网络扫描和检测技术及点对点(P2P)通讯技术等。
2.实验内容的设计。实践教学环节是对课堂教学环节有益的补充,也是提高学生自身能力的关键环节。考虑到学生自身水平参差不齐,我们根据课堂讲授的内容以及知识点的内在联系,设计由浅入深、由易到难的实验,尽可能选择身边应用比较广泛的案例贯穿实验环节,课堂上所讲的案例可以作为学生上机的DEMO,学生在此基础之上补充和完善。根据难易程度,我们将实验教学所涉及的知识结构分成三个层次:第一层是基础实验,强调学生熟悉VC开发平台和利用套接字接口实现基本网络通讯程序;第二层是高级实验,它在基础实验之上,实现应用层FTP协议的编程、多线程编程、ARP欺骗及打洞编程等;第三层是我们设计了两个综合实验,将综合运用所学的网络知识和编程知识,实现一个较大的程序,学生在完成高级实验时,也可以自己选择题目,但要求选择的题目必须能够体现知识的充分应用。前两层实验要求学生必须在指定的时间内完成,第三层综合性实验要求学生利用课外时间或课程实训时间完成,然后统一在实验室演示和考核。
由于网络程序都涉及到客户端和服务器端的通讯,单独一个学生很难在有限的时间内完成每个实验,因此要求学生进行合理分组,每组2~3人,共同协作,完成实验内容,这也有利于培养学生的项目协同能力。每次实验结束后,要求每个小组提交实验报告,按照软件工程的思想编写报告内容,涉及到问题的描述及定义、问题的解决方案、问题的设计思路与规划、概要及详细设计、编程体会等。实验报告是对每个案例的总结与回顾,可以加深学生对案例及相关理论知识的理解和掌握,锻炼学生的文档编写能力。
3.教学方法的设计。在课程教学过程中,根据其工程性、实用性等特点,我们采用了经典的案例教学法,采用经典案例贯穿整个教学过程,选择的案例尽量保证知识点之间的连贯性,比如在讲多线程编程技术时,可以在已开发的FTP客户端程序基础之上完善完成多线程的上传和下载功能;在讲到打洞技术时,可以在第3部分已经设计的简单聊天程序之上,实现不同局域网之间的通信;等等。在教学时由浅入深、循序渐进,改变传统的“填鸭式”教学模式,从以教师教为主向以学生学为主的方向转移,尽量让学生积极参与到教学过程中。由于该课程有较强的实践性,通过案例教学和实践,很容易激发学生的自主学习兴趣,提高学生的创造性思维。
4.构建合理的学生评价体系。在对学生考核评价体系的改革方向上,力求过程评价与结果性评价、形成性考核与终结性考试、精确性评价与模糊性评价相结合;考核内容应以课程标准为依据,倡导灵活多样的考核原则,考虑学生差异,注重学习和发展过程评价。考核方法不再仅以传统的卷面考试方式来评判,实验过程的评价占有较大的比重,根据学生在小组中承担的工作量及小组的完成情况,给出每个学生的成绩,这样可使一些动手能力强但考试成绩不理想的学生获得满意的评价结果。
三、结语
通过对“网络程序设计”课程的教学改革,我们设计了符合应用型本科人才教学的课程教学内容,根据课程工程性、实用性的特点,将教学理论与实践应用紧密地结合,构建案例教学的模式,促进学生构建良好的知识体系。在上机实践环节,我们采用了分组的方式,充分发挥了每个学生的优势,增强了学生的动手能力、写作能力。实践表明,改革后的教学方法有效地解决了以往教学中存在的学时少、学生动手能力差、理论与实践脱节、知识理解和掌握不牢固等问题,取得了良好的教学效果,对其他课程的教学和实践具有重要的指导意义。
参考文献:
[1]蒋峥峥,陈晓红,王进,等.网络工程专业“网络程序设计”课程的案例教学实践[J].计算机教育,2013,(2):27-31.
[2]刘琰,常斌,罗军勇,等.面向能力培养的网络编程技术课程教学方法探讨[J].计算机教育,2010,(18):52-55.
[3]王云儿.新建应用型本科院校以能力为导向的学生学业三维评价模式探析[J].教育研究,2011,(6):102-106.
关键词:高职院校;编程思维;编程能力
中图分类号:G712 文献标识码:A文章编号:1007-9599 (2011) 12-0000-01
To Develop Programming Ability of Students from Vocational College Computer Major
Wang Yanhui
(Henan Finance and Economics School,Zhengzhou450012,China)
Abstract:This article from the vocational college computer science students programming skills training problems in the process of starting my analysis that in the learning process is necessary to pay attention to the cultivation of programming ideas,but also pay attention to the actual coding, it is necessary to attach importance to a single course learning,but also attach importance to the knowledge of integrated application systems.
Keywords:Vocational colleges;Programming thinking;Programming ability
一、问题提出
随着信息技术的普及,计算机语言也不再是高深莫测的天书,很多非计算机专业出身的人都能使用计算机语言来编写程序。然而,很多高职院校计算机专业的学生常常为如何培养自己的编程能力以及如何写出优秀的程序而困惑。编程的能力和技巧又应当如何培养呢?
二、学习实践中面临的主要问题
(一)语法语义学习得好,编程思路乱如麻。如在C语言学习过程中,教师往往注重基本数据类型、函数定义方法的讲解,在教学过程中注重纠正学生语法方面的错误;在课程考核过程中,以“读程序写结果”的方式来考核学生C语言语义方面的基本知识。这样造成的结果是学生读程序写结果没问题,对变量、函数的形式定义也没有问题。但学生感到算法的编写是最吃力的,即教师一讲算法就懂,让自己独立思考时思路如一团乱麻。
(二)学生理论学习时间多,应用讲的少。从目前高职院校计算机专业的课程体系来看,学习课程大致可以分为如下几类:政治类课程、英语类课程、数学物理等基础类课程、计算机专业课课程。但专业课课时也就1/3―1/2左右。因此具体到某一门课程时只能课时压缩,仅能够讲完基础部分,应用没讲就结束了。最终结果是学生学习的课程理论多,具体应用少,实践动手的机会少。
(三)学生阅读程序多,消化吸收程序少。很多编程书籍上都包含有大量的示例程序代码。大部分学生把程序看一遍就不了了之,或者把随书附带的光盘中的源代码拷贝到电脑上,在开发环境下编译运行再看看结果。完成课后作业时,往往去网上搜索答案,然后抄下来便是完成作业了。看的读的程序多,真正吸收消化的程序少,离开课本,离开网络即使再简单的算法也写不出来。
(四)学生学习课程多,融会贯通的课程少。高职院校计算机专业的学生在校学习期间会学许多计算机专业课程,如《数据结构》、《编译原理》、《计算机组成原理》、《计算机操作系统》、《计算机网络》、《java程序设计》、《Web Servers应用开发》、《软件工程》、《C语言程序设计》、《计算机及组装与维护》、《数据库概论》、《数字逻辑》、《离散数学》,高职院校计算机专业的学生在学校里可以接受系统的教育,知识体系上是较为完整的,但这还不够。现今中国高职计算机教育的课程设置囊括了计算机科学与技术一级学科的全部主干核心科目,但是每门课程又是独立教学的,连贯性不足,因此难以形成系统化的体系。学生看待问题时往往只会分门别类地割裂看待,而很难将所有课程有机地联系在一起,不利于群体优势的发挥。
三、学习过程中应采取的主要措施
(一)首先进行编程思维训练,然后进行编程语言语法语义的学习。面对一个新的问题,任何人都会不由自主进行一下发散思考,太多的分支结果导致混乱,同样也都要有一个整理思路的过程,画框图是一个很好整理思路的过程。在编写代码前,首先用流程图或框图整理问题的解题思路,不要一开始便编写。个人认为应该从教材的例题和课后习题出发,首先将例题的解题思路转化成流程图,学生通过流程图来整理编程思路,学生经过这种专业技术的训练,可以为代码编写打下坚实的基础。(二)借鉴国外的理论教学,跟实际动手能力结合起来,分段进行课程教学,有分段设计任务。最后,学生对理论也有了解,动手能力也提高了。就具体课程而言,采用案例教学法,首先进行案例演示,然后讲解案例涉及的知识和技术。这样学生对所学知识产生兴趣,有了一定的感性知识之后,再提升到理论高度,循序渐进掌握知识。在教学过程中,首先重点讲授解题思路、算法设计以及编程构思,突出上机训练,在编写程序的过程中学生进行探索,程序设计的成果能极大地增加学生的成就感、培养学生程序设计的兴趣,采用案例教学方式,通过形象思维加深理解巩固知识,便于学生掌握利用计算机程序设计来解决问题的技术与方法。通过案例驱动教学强化公共层面逻辑思维能力的培养,突出专业层面的基本程序设计能力训练。(三)编程不能纸上谈兵,必须真刀真枪地干。世界上本来就没有从来不练琴的钢琴家,当然也不会有从来不编写代码的编程高手。核心技术必须掌握在自己手里才能确保立于不败之地。自己到底掌握的牢不牢靠,自己应该心知肚明。如果你想学好,千万不要高举“拿来主义”的大旗,干着“复制粘贴”的勾当。所以,无论你看再多书,读再多程序,复制粘贴N次,如果最终不能变成自己的技能,那都是在欺骗自己。(四)系统学习计算机系统知识,并融会贯通。在这一点上,国外一些高校已经在课程体系的研究和设置上进行了改革,并取得了非常好的效果。个人比较推崇由美国卡耐基梅隆大学的两位教授所编写的《深入理解计算机系统》一书。《深入理解计算机系统》一书从开发人员的角度出发,从程序设计来讲述计算机系统原理,将计算机组成原理、计算机操作系统和汇编语言与接口技术等多门课程有机地串在了一起,是对原有课程的一个非常好的补充和丰满。
关键词:编程语言 软件 应用
中图分类号:TP311.175 文献标识码:A 文章编号:1674-098X(2016)12(b)-0085-02
1 什么是编程语言
编程语言是用来定义计算机程序的形式语言,用来向计算机发出指令。计算机语言数量很多,每年都会产生大量新的编程语言。按层次来分,编程语言可分为3类:机器语言、汇编语言和高级语言。机器语言由机器指令集构成,能够直接被机器执行。机器语言写的程序存在不便于阅读、难以记忆的问题。汇编语言本质上也是直接对硬件操作,由于采用了助记符,相比机器语言更加方便书写与阅读。在高级语言中,将多条汇编程序语句合并成更简洁的编程语句,同时自动完成一些如堆栈、寄存器分配管理等工作,更加方便程序员开发程序。
编程语言的出现可以说给人类社会快速发展提供了一个契机。目前编程已经渗透于我们日常生活的每个方面,我们所使用的电子设备、软件服务中都运行着大量的程序。近年来,不仅是高科技产业,传统行业也在积极投入互联网时代,网站、软件等编程需求巨大。研究编程语言具有重要意义。分析各个编程语言的特点,能够指导编程者选择更适合任务的编程语言,提高开发效率。同时能够对编程初学者起到指导作用,以便选择合适的学习路径。相对于机器语言与汇编语言,日常编程任务更多x择高级语言,该文主要讨论高级语言的发展与特点。
2 高级语言发展简史
目前已经有数千种编程语言被发明,每年仍有大量新的编程语言诞生。我们一般认为1957年由John W.Backu研发的Fortran是世界上第一门高级编程语言。1957―1959年这段时间,是编程语言刚开始新兴的时候,这个时候Fortran、Lisp、Cobol也就是编程语言的雏形出现。1972年,Dennis Ritchie在B语言的基础上改良和发展,最终将其命名为C语言[1]。C语言作为一种经典的编程语言,至今仍被广泛使用。而之后贝尔实验室又在C语言的基础上推出了更强大的面向对象语言C++。1991年和1993年,Python和Ruby语言也相继被发明。1996年Sun公司了Java的第一个开发工具包,标志着Java[2]成为一种独立的开发工具,此后Java一直是一种非常流行的编程语言。
据TIOBE编程语言社区的编程语言流行趋势排行榜统计显示(前部分节选如表1所示),2016年仅有两种语言的增长率超过了1%,分别是Groovy和GO语言,可以发现谷歌的GO语言将成为发展最快的语言。从此榜单可以看出,目前Java、C、C++使用量排名前三,而Java语言也是以9%的差距大大领先于排名第二的C语言。
如图1所示,在2003―2005年间,Java语言使用指数有明显的下降,2006年有所回升,而在后来的几年(2015年前)里依旧呈逐渐下降的趋势。2015年以前C语言使用量较为稳定(15%~20%),近两年迅速下降至10%左右。C++语言在过去的10年中呈动态下降趋势,2016年使用量占主流编程语言的6%左右。图1中未统计MATLAB使用量,因为MATLAB并非软件开发语言(图片来源于TIOBE编程语言社区)。
3 常用编程语言特点分析
3.1 C
C语言是一门标准化高的编程语言,适用于不同的计算机系统,因为它具有较好的可移植性,所以成为了应用非常广泛的语言。C语言方便灵活,语言简洁,它只有32个关键字,9种控制语句,运算符包含的范围广。所以,相较于其他的高级语言,C语言容易上手。但语法限制不严格,设计时比较自由的同时也使C语言被滥用。图2展示了一个C语言编程的常见错误,在if语句后误加了一个分号,此时不管是否'a>b',程序运行输出都是'a>b'。C语言可以进行系统程序的编写,比如UNIX就是由其编写的。C语言不仅是高级语言,而且还可以像汇编语言一样对物理内存、硬件直接进行访问与操作,有时因为操作不当也会造成严重的错误。
3.2 C++
1983年,贝尔实验室将改良后的C语言命名为C++,这门语言在保留C语言大部分设定的基础上增加了面向对象[3]。面向对象核心概念是类与对象,类就是一个由属性相同的对象组成的抽象集合,而对象是类的具体实例。C++语言可以直接以类为模板定义出若干个对象,所以面向对象技术使重用数据、代码变得更加便捷。相比C语言,C++语言更适合开发大型软件,许多系统支撑软件和应用程序都是由C++编写的。C++运行速度比C慢,和C一样都存在语法的滥用。
3.3 Java
Java语言的前身是由Sun公司在C++基础上改造出的Oak语言。Oak语言在经过许多年的修改后最终成为了现在的Java语言。与C++一样,Java同样是个面向对象的编程语言,它的数据库操作强大于前者,并且C++中不常用的特征都被删掉,使得Java更容易上手。Java的一项优点是它具有很好的安全性,因为它没有指针,所以不会被程序员得到一些隐藏的信息,也令Java更加可靠。Java语言适合于大型项目的开发,方便一些企业编写程序,但它在较底层的开发项目中显得不足。如今,由于Android系统的普及,作为其基本开发语言Java为更多人所知。
3.4 MATLAB
MATLAB也称作矩阵实验室[4],它包含了600多种数学计算所需的函数,在矩阵运算、数值运算和数据处理等方面的功能很强大,是一个专业的数学软件。它的语言简单,语法也相对不严格。MATLAB语言编写与我们日常书写的方式是很像的,易于上手。MATLAB的图形功能也十分强大,它可以根据数据方便地做出各种图形。MATLAB读取文件功能也十分强大,能够快捷、智能地读取各种数值文件。总之,在数学和科研领域上,MATLAB的便捷性和高效性是远远强于介绍的前3种语言的。
4 常用编程语言应用场景分析
在学习编程或进行软件开发时,编程者应当根据自己的任务需要选择合适的编程语言。C语言多运用于操作系统以及底层软件的编写,比如Unix、Linux和大家熟知的Windows系列等。与C语言相比,C++语言常运用于更上层的软件编写,比如QQ和迅雷等常见Windows桌面软件,另一个很重要的应用是大型游戏的开发。Java语言则更多运用在商业应用软件以及网站的开发,使用J2EE(企业级Java开发框架)能够快速、高效地完成大型商业网站开发任务。在目前流行的Android操作系统上,应用软件都是基于Java语言编写的。相比于其他3种语言,MATLAB广泛运用于科学计算编程,而不适合软件开发。
参考文献
[1] 倪瑞晓.C语言编程技术的分析研究[J].计算机技术与发展,2009,19(12):251-254.
[2] 贾俊奇.软件开发下的JAVA语言[J].中国科技信息,2014 (13):133-134.
【关键词】计算机软件开发 JAVA编程 应用研究工作
JAVA语言最初是一项嵌入式系统的设计产品,随着互联网的逐渐发展成熟,JAVA语言的很多特点比如安全性、可移植性以及程序码较小等被发掘更适用于互联网中,所以JAVA编程语言的应用研究工作得到了很大层次上的进步,并逐渐被开发成一种计算机编程语言。在大数据时代的到来之际,JAVA在互网上倍受欢迎,拥有极其广阔的发展前景。
1 JAVA编程语言在计算机软件开发中的起源
JAVA编程语言是从SUN公司开发的Oak语言中起源的,Oak语言是一种用于消费性电子产品中的语言,但是由于某些商业原因未能得到很好的发展,最后随着WWW以及互联网的逐渐壮大被改进成了JAVA编程语言。JAVA编程语言将C++编程语言中的指针舍弃,并将其技术核心全部继承,通过引用代替导致错误的指针,并将运算符的多重继承以及重载等进行舍弃,同时增加了回收站功能,解决了内存的问题。JAVA编程语言同普通的解释执行和编译功能的计算机有很大不同,JAVA编程语言能够将源代码编译成二进制字节码,通过虚拟机执行二进制字节码,实现到处执行的特性。随着J2SE1.4.2的问世,最初JAVA语言的编译时间得到了更大的提升。
2 JAVA编程语言的特点
2.1 语法结构
在JAVA编程语言中,所需运用到的编程语法非常简单,通常是将语言的各个部分进行有机组合后形成程序。一般来讲在刚刚接触JAVA语言时,多数人都会觉得JAVA语言的语法结构和C语言、C++很相近,将JAVA语言的使用方法同C语言和C++进行联系,C语言的灵活性非常强,工作效率也比较高,被广泛运用于商业性的软件编写中,而C++相对于C语言来说多了OOP支持,二者在计算机语言中都倍受欢迎,所以用户经常能够根据C语言和C++二者的优点进行JAVA语言的编写,同时舍弃二者缺点,避免发生错误。在JAVA编程语言中选择了引用,有效地避免了指针法存在的安全隐患,保留了指针法的灵活性,起到了简化JAVA语言语法结构的作用。
2.2 编程对象
在JAVA语言的程序编写过程中,面向对象是一种新型的程序设计方式,使用类、对象、集成、多态以及装修等基本概念进行程序设计,从现实社会中客观存在的对象来构造软件系统,并在系统中运用人的思维方式。编程人员通常会将程序划分成为多个模块,根据不同的模块选择相应的编写方案,在确保各模块之间的独立性的同时,提升了编写效率。
2.3 优点
JAVA编程语言能够在Web站点灵活使用下载各个应用程序,可移植性能非常突出,网页能够下载用户需要的程序、图像以及HTML等元素,且程序码较小,方便用户后期进行查看使用,同时JAVA编程语言对数据类型以及长度进行了严格的规定,并确保能够在任何计算机上对Web程序进行运行工作,具有较高的安全性。JAVA编程语言的各种特性使得其应用非常广泛,减少了开发时间的同时,缩减了应用程序的费用支出,并且有效提升了开放结构。
3 学习JAVA语言的心得体会
JAVA语言通常用于大型的服务器程序开发工作,所以必须要了解Unix的开发、环境系统处理、开发环境、常用命令等,熟悉常用命令后熟练地掌握开发环境。然后进入语言学习阶段,可以通过曾学习的C语言或者C++语言等的基本规律逐渐摸索JAVA语言的学习规律,在掌握基础之后逐渐熟悉掌握JAVA编程对象的基本实现原理等。JAVA是一门具有阶梯性质的语言,要严格按照JAVA语言的特点循序渐进,按照顺序学习,避免走弯路。同时在学习JAVA编程语言时,要保持良好的信心、恒心和毅力,切忌遇到困难就产生退缩的想法。
但是如果是出于拓展知识面、增加技能的目的,那么在学习JAVA语言的基本入门知识后,可以通过一些寓教于乐的框架来巩固知识,锻炼运用JAVA编程语言解决实际问题的能力。例如在玩Robocode写坦克机器人的战斗逻辑,就可以通过结合几何与编程知识一起学习。
4 JAVA编程语言的应用价值
4.1 主要性因素分析
在现实生活中要充分结合JAVA语言的具体特征。根据技术方面的具体需要,对语言开发系统进行系统分析研究,同时对于系统的操作过程进行分析,进行全面的资源开发工作。在编程语言运行过程中,通过使用动画切换等方式对当前的图像资源进行处理,使操作质量得到提升。在编程语言应用过程中,要通过流程的实际情况确立使用模式,确保按照定向操作方式进行交互工作,在完成管理后可以进行可视化处理工作。此外,还需要结合系统整体运行的要求,对操作细节进行处理,确保系统发挥出更大的性能优势。
4.2 辅因素分析
在进行JAVA编程语言操作过程中,要合理的对编程系统的阴阳角进行控制,使系统防水层得到更好的保障。此外还要随时对系统管道进行勘察,防止出现地漏现象,有效结合卷材应用的模式对系统可操作性进行提升。在JAVA编程语言的构成中,通过运用剪裁手段提升编程语言的质量,同时在系统完成粘贴工作后,要通过材料的冲刷时间进行表面材质的处理,有效提升技术应用的质量。
4.3 应用范围
随着JAVA编程语言的应用范围逐渐扩大,不同的应用平台需要不同的JAVA程序,目前其运行环境就包括了三个不同版本,在实际生产生活中要根据设计及情况选择不同的运行环境,实现网络服务灵活稳定化。
5 总结
JAVA编程语言是互联网中一种特有的语言,在WWW与互联网快速发展的今天,JAVA编程语言的进步飞快并且稳定。另外,JAVA编程语言采取了开放策略,不但激发了各软件开发商的工作热情,同时提升了编程语言的质量,使JAVA编程语言的队伍越来越壮大,发展前景越来越广阔。
参考文献
[1]古丽米热・买买提.基于计算机软件开发的JAVA编程语言分析[J].硅谷,2013(16):37-41.
[2]汪旭.基于计算机软件开发的JAVA编程语言分析[J].应用研发・软件设计,2011(10):265-266.
[3]程蓉蓉.基于计算机软件开发的JAVA编程语言分析[J].宿州教育学院学报,2015(01):55-58.
数控编程是一项繁重工作,编程质量在很大程度上决定了零件的加工质量。影响零件编程质量的主要因素有:加工工艺路线、刀具类型、走刀方式和方向、切削用量、转角清根的处理以及加工精度与过切的检查等。下面我把如何学好数控编程的方法和步骤分析如下。
一、学好数控编程要求掌握的基础知识
对于初学者来说,务必要重视基础知识的学习。比如《机械制图》、《金属切削原理》、《机床加工工艺》等,它是我们研究数控的第一步。在学习的过程中要注重传统知识的学习,万变不离其宗,只要掌握了最基本的原理,再难的问题也会迎刃而解。
1、学好机械制图
机械制图是职业学校机械类专业一门重要的技术基础课,就是研究绘制和阅读机械图样的原理和方法的一门专业基础课。它的目的和任务是:学习正投影的基本理论;掌握阅读和绘制机械图样的基本知识、基本方法和技能;培养对空间想象的能力。只有学好这门课,才能学习其他专业课,才能练好操作技能,它对于我们今后的学习和工作也非常重要,制图课的重点是读图、识图上。
2、了解金属切削知识
要知道刀具材料的特性、发热、过载、转速、每层下刀深度等,要知道这把刀切削这块金属材料应该给什么样的转速,每分种可以跑多少毫米,每层能加工多深。需要掌握的知识有:金属材料,刀具材料和种类,刀具对金属的切削能力力学分析,要有普通铣床或车床实习经验。
3、熟练应用编程软件
这部分是纯软件问题,如何切削,想好了,分析透了,就要软件去控制,产生想要的切削方式。
选择好要加工的曲面或实体后有很多值依次设置好,如深度控制,从Z高加工到多高,每层加工多深,层与层之间如何提起刀具,加工范围控制等。
4、掌握零件加工工艺
所谓工艺,就是如何加工,怎么加工的问题,当熟悉了刀具对材料的切削能力,了解了软件控制,接下来就是怎么样切削才好的问题。比如想加工一个模具(零件)的一个平面或者一个角落,怎么走刀才走的更光,会不会碰到底部的圆角,加工出来漂亮不漂亮,会不会有余量切削不到,等等。真正学好数控核心在工艺分析,加工的工艺路线是影响制造质量的主要因素。加工工艺是否合理完全决定于编程人员的工艺制定,一不小心,常会忽略一些技术细节,如下刀点不正确、抬刀的安全高度不够、走刀方式不理想、没有定义过切检查面等。如果在试加工中复查不严,不及时纠正,轻者会造成打刀、降低制造质量,造成工件返工;重者造成工件报废,甚至发生人身设备事故。
加工工艺的重点是典型零件的加工方法、工艺安排以及切削三要素等方面。
二、数控编程的学习内容和学习过程
第1阶段:基础知识的学习,包括数控加工原理、数控程序、数控加工工艺等方面的基础知识。
第2阶段:数控编程技术的学习,在初步了解手工编程的基础上,重点学习基于CAD/CAM软件的交互式图形编程技术。常用软件有UG、Pro/Engineer、Mastercam、Cimatron和CAXA等,这些软件也都具有设计开发功能。
第3阶段:数控编程与加工练习,包括一定数量的实际产品的数控编程练习和实际加工练习。
三、数控编程的学习方法与技巧
同其他知识和技能的学习一样,掌握正确的学习方法对提高数控编程技术的学习效率和质量起着十分重要的作用。
在数控编程的学习中,理论与实习是两个基本环节。在认真学习理论课的基础上,以一体化的生产实习为主导,理论密切联系实际,有主次的进行学习。实习要由理论知识来指导,把课本上的知识灵活运用,变为自己的技能,练习中要不断总结他人和自己的经验和教训。
下面是几点建议:
1、集中精力打歼灭战,在一个较短的时间内集中完成一个学习目标,并及时加以应用。
2、对数控系统功能进行合理的分类,这样不仅可提高记忆效率,而且有助于从整体上把握数控系统功能的应用。
3、从一开始就注重培养规范的操作习惯,培养严谨、细致的工作作风,这一点往往比单纯学习技术更为重要。
4、将平时所遇到的问题、失误和学习要点记录下来,这种积累的过程就是水平不断提高的过程。
四、利用数控加工仿真软件学习数控机床编程
初学数控编程者需要大量的编程练习,并进行实际调试。用试切法来检验数控加工程序显然不合理,而且也难于实现。如果利用仿真技术,这些问题可以轻松得到解决,从而避免编程时人为出错或工艺不合理造成工件报废。
模拟仿真环境下,在计算机软件上虚构出高速数控机床的加工环境,放上一个预先做好的“毛坯”,让“刀具”进行动态模拟仿真,其情形就像真实加工过程一样,仿真过程可以随时暂停,仿真时间可以自由控制,以便编程设计人员进行检查。模拟仿真结束后,编程设计人员即可根据“刀具”运行的情况和“工件”加工后的效果来调整加工工艺路线。这种虚拟加工技术,既可减轻编程人员的精神负担,又可保证模具的制造质量。
将计算机仿真运用于数控人才培训的教学之中,产生了各种数控仿真教学系统。比如:上海宇龙数控仿真软件、南京斯沃数控仿真软件、广州超软数控仿真软件等,这些教学系统既能单机系统独立运行,又能在线运行。独立运行即机床模型方式,其培训设施只需一台微机,数控机床的模拟操作在显示屏显示的仿真面板上进行,而零件切削过程由机床模型三维动画演示,用这种方式进行初步学习是经济有效的;在线运行即机床工作方式,这种方式下教学系统将与实际机床连接,由硬件实现零件切削过程,这时除了操作者是用仿真面板操作外,其它则与实际机床的真实情况一样,仿真平台包括刀具轨迹仿真、切削力仿真,加工精度仿真、三维动画仿真、加工工时统计分析。操作者可以在虚拟的环境中进行机床运动和切削过程等的仿真,从中获得相关的加工数据。如进给轴的位移量、换刀状态、主轴转速、加速度、进给量、加工时间等。通过加工过程的仿真,了解所设计工件的可加工性,验证NC代码的正确性以及评价和优化加工过程,并通过在线修改NC代码来优化NC代码。
需要特别指出的是,实践经验是数控编程技术的重要组成部分,只能通过实际加工获得,这是任何一本数控加工培训教材都不可能替代的。
我国是制造大国。在新一轮国际产业结构中,我国正逐步成为全球制造业的重要基地之一。“以信息化带动工业化,发挥后发优势,推动社会生产力的跨越发展”是国家发展战略,应用高新技术,特别是信息技术改造传统产业,促进产业结构优化升级,将成为今后一段时间制造业发展的主题之一。这就要求我们这些新世纪人才具有较高的专业素质和综合素质。成功没有什么捷径可走的,它需要我们知识的不断积累和进步,最终运用于实践。
另外,我希望同学们掌握书本上的知识的同时,也要走出书本去看一看,多想想身边的事物,有什么是我们所学的知识可以运用的,不断思考就会不断进步。
参考文献:
随着计算机技术的不断发展进步,网络在线学习和考试必然在未来的教育过程中扮演重要角色,教育工作者应该不断探索怎样利用计算机技术和网络技术替代传统的学习模式。作为一个新兴的技术,网络在线考试正不断应用到各个教育领域,此举大大节约了考试的成本。本文主要研究分析了网络在线培训考试的意义背景,发展状况,可行性分析以及目标和构思。
【关键词】在线考试系统 远程调用
计算机技术及网络技术已经在当今社会的各个领域得到广泛的应用,不断推动着经济的巨大发展,利用计算机来完善及辅助教育系统,促进教育的不断进步也必将是现在和将来教育领域的发展趋势,教育工作者需要探索的一个新方向就是怎样运用先进的计算机技术来改变传统的教育系统,伴随着计算机的普及以及人们对于计算机的认识和使用能力的提高,网络在线考试系统已经越来越多的应用到社会各个行业。
1 在线考试系统的背景及意义
随着现代信息技术和通讯手段的不断发展和更新,利用互联网进行信息传递使人们的生活变得更加简单快捷、在此背景下,传统的文化教育模式受到了以数字化及网络化为代表的先进信息技术的冲击,这务必会对传统教育的教学方式,教学手段,教学内容面带来较大的影响和变革。在信息技术日新月异的今天,如何利用现代的高效便捷的网络技术进行教育是广大教育工作者需要思考的问题。
目前很多高等院校都致力于打造数字化校园,数字化校园就是运用计算机技术,网络通信技术,把学校的生活管理服务和教学等所有资源全面数字化,并且对这些资源进行科学规范的整理,打造资源管理和用户管理的统一化,运用业务流程和组织再造,不断推动学校的制度,管理创新,以达到实现教育决策规范化,教育信息化,管理规范化的目的。
网络在线考试系统就是在这样的背景下产生的,相比以往传统的考试模式而言,具有考试方式灵活多的特点,同时系统也能够自动化评阅试卷、打分和进行试卷分析,大大节约了人力,财力和时间成本,
2 在线考试系统发展状况
考试按照历史的发展可以分为以下几个阶段:
(1)笔试阶段,这是计算机数量少但参加考试人数多的一种考试,它的优点是便于组织,不足之处是考试内容缺乏实践能力的考察,浪费大量纸张,同时无法对学生进行全面考察。
(2)应用软盘的上机考试,这是网络技术相对落后但计算机已经得到普及时的一种考试形式,它可以把考试内容和学生的实践能力结合起来,考察学生的动手实践能力,但软盘可能出现读写缓慢或无法读写的情况,影响学生的发挥,并且可能出现考生互换软盘的作弊现象。
(3)应用网络的上机考试,它已经成为了目前计算机考试的主要模式,考试效率高,节约考试成本,但对于网络环境有很高的要求。
现今,B/S和C/S是在线考试的两种主要形式。B/S考试必须安装Web浏览器,用Web的浏览器和服务器进行考试;C/S是在局域网内有一台充当服务器的计算机,且必须装有客户端软件,考生登录客户端进行考试,考试结果自动上传客户端。
3 在线考试系统的可行性分析
3.1 开发网络在线考试系统的必要性
(1)减少人力和物力的花费。相比传统的考试模式,运用网络考试不需要进行试卷的印刷,省去了印刷费用,同时也节约了这部分的人力开支,并且计算机可以进行自动阅卷,分析试卷,省去了老师大量的时间和精力。
(2)充分共享运用现有的资源。在传统教育系统下,老师只能够自己出题,或一起讨论研究试题样卷,利用网络技术,来自不同地方的教师就无须见面就能够共同构建题库,并且相互之间可以分享经验及资源。
(3)电脑自动化组合试卷 灵活便捷。以往的考试,是老师提前出题然后打印,考试题目单一,固定,并且无法兼顾到各个层次水平的学生,利用无纸化考试系统,就可以设置多种组卷方式,保证兼顾各个知识点,同时每个学生抽到的考题不同,也可以减少作弊等现象的发生。
(4)计算机辅助 杜绝人为错误。传统考试的出卷,分卷,阅卷都是由人工来完成的,会产生很多不必要的人为错误,而在在线考试系统中,计算机从头到尾进行控制,高效准确,节省人力,学生甚至可以当场知道自己的考试成绩。
3.2 开发网络在线考试系统的现实性
(1)现有条件的满足性。当前,不仅高校甚至各个中小学都打造了自己的校园网络,各个学校都不断改革自己的教学手段,观念,方式及内容,重视自己的教学质量和师资力量,这些都为网上考试系统的开发提供了基础及支持。随着社会经济的发展,计算机已经普及到各家各户,大家都能够比较完全的了解计算机的应用,同时网络考试系统的界面简单易操作,这些都说明我们具备充足的条件利用计算机进行考试。
(2)编程技术具有可行性。由于编程工具的不断发展和编程技术的不断发展,使得技术开发人员能够迅速的掌握开发技巧,为网络考试系统的开发提供可能。
(3)经济上的可行性。网络考试极大地缩减了人力物力时间成本,世界各地的老师只需要一台计算机或有互联网连接的考试系统平台,就能够轻松的组织各自的考试,它无需印刷试卷,教师出题,分配考场,统计成绩等等,节约了大量的资本。只是对计算机的数量有一定要求,但是当今社会经济的发展使得各大学校和个人都有足够的能力去支付所需设备,不需要为它去专门花销,因此它可以大大节约成本,产生社会经济效应。
4 在线考试系统的发展目标和发展思路
网络考试系统的目标与构思主要表现为:
(1)协助教师打造个人专属的题库及试卷库。
(2)帮助学生利用网络在线完成各个课程所需的考试。
(3)利用网络系统老师和不同部门之间能够分享工作经验,协作彼此工作。
5 结束语
网络在线考试管理系统,在今后的各个领域都将会得到广泛的运用,它是突破传统考试模式的一种新型考试方式,可以极大的节约人力物力以及时间成本,符合今后的发展趋势,具有很广阔的发展前景。
参考文献
[1]鲁立.网络考试系统的关键技术的分析[J].信息技术与课程整合,2012(03).
[2]傅宇.基于网络考试系统的研究[J].现代教育技术,2013(09).
作者简介
袁晓曦(1982-),女,湖北省武汉市人。研究生学历。现为武汉软件工程职业学院讲师。主要研究方向为人工智能及其应用。
关键词:数控加工自动编程技术;理实一体化;教学研究
DOI:10.16640/ki.37-1222/t.2016.13.205
0 引言
《数控加工自动编程技术》是一门实践性很强的课程,该课程旨在培养学生的三维造型、工艺分析、自动编程及现场加工能力。下面以数控铣床自动编程技术为例从授课内容研究、课程组织形式和主要教学方法及手段、授课中可能存在的主要问题及相应对策研究、考核方法及教学实践等多方面进行阐述。
1 授课内容的选择
1.1 CAD/CAM软件的选择
典型的CAD/CAM软件主要UG、PRO/E、CAXA、Master CAM及POWERMILL等。在软件选择上靠考虑服务对象的实际,培养对象主要面向大中型企业的可以选用UG或PRO/E等;培养对象主要面向中小型企业的可以选择CAXA或Master CAM等。
1.2 主要授课内容的确定
在授课内容选择方面一定要有针对性,要体现“实用性”的特点,杜绝大篇幅的理论讲授,而是以项目为载体,结合工厂加工实际,融入“必需”、“够用”的知识。以UG为例,可以进行以下内容教学:建模模块可包括:基本体素建模项目、线框建模项目、草图建模项目、装配建模项目和工程制图项目;自动编程模块可包括:平面铣削项目、型腔铣削项目、固定轴铣削项目、孔加工项目等必修项目和非固定轴铣削项目及高速铣削项目等拓展项目;加工模块可包括:典型平面类零件加工、典型凸模零件加工和典型凹模零件加工等综合项目。
2 课程组织形式及主要教学方法和手段
本课程实践性强,以理实一体化教学为课程主要组织形式,依托计算机开展造型、编程及零件加工仿真教学,依托数控铣床开展典型零件的数控现场加工教学。融“项目研究”教学法、“研讨式”教学法和“案例式”教学法为一体,采用多媒体教学和现场教学,开展项目研究,突出学生的主体地位,强化学生的自主学习能力,提高学生的专业素质和专业技能。
3 课程实施中可能存在的主要问题及应对策略
3.1 项目选择和教材问题
项目的选择要有针对性,依据职业技能标准,结合企业岗位生产实际,汇总专业应用的主要信息,经过加工处理,提炼出主要知识点,联合企业一线技术人员,共同选择典型案例并组织开发适合区域行业特点的、实用的教学教材。
3.2 师资问题
课程采用理实一体化教学和现场教学,这就要求任课教师不仅要具有较厚的理论基础,而且要求拥有很强的实践动手能力,同时知识结构不能跟企业实际脱轨,因此实施时,师资问题成了较大阻力!为了更好的开展教学,可以让学校的专业教师开展机房部分的理实一体化教学,聘请企业的一线技术人员作为兼职教师带领学生开展现场加工实践,即保证了较厚的理论基础,又让所学知识紧密贴合企业实际。
3.3 教学资源问题
三维造型部分和自动编程部分的教学资源都是没有问题的,每个学生一台电脑还是容易保证的,然而到了实践环节,由于数控机床数量和教师数量的问题,常会使实践环节仅仅流于形式,很大程度上影响教学效果。因此,可以采取分批学习的方法,进行小组划分,每个小组的同学要进行具体分工,一部分进行工艺分析,一部分进行编程,一部分用VERICUT软件进行仿真加工,一部分进行现场加工,然后不同的项目,角色互换。这样即保证了学生都参与到了实训教学中,而且较好的解决了实习资源问题。
3.4 学生成绩评定问题
本课程的考核方法,应改变以往的一张试卷确定成绩的考核方式,注重学生的平常学习情况的考查,主要采用过程考核的方法。可从课堂表现、阶段测验、作业、仿真加工和现场加工等方面进行考核,最终确定成绩评定结果。结合学习内容的重要性,合理分配各考核内容所占比重:课堂表现(10%)、作业(10%)、阶段测验(20%)、仿真加工(30%)和现场加工(30%)。由于考核常态化,所以对学生的平常学习起到了很好的督促和激励作用,能在一定程度上调动学生的学习积极性。
4 教学实践
本课程已按照这种模式开展了教学,在很大程度上调动了学生的学习积极性,提高了学生的专业素质和专业能力,企业对学生的反馈也较好,课程整体效果不错,希望能给同行起到一定的借鉴意义!
参考文献:
[1]周伯秀.理论与实训一体化在数控教学中的探索[J].装备制造技术,2011(11).