线上期刊服务咨询,发表咨询:400-808-1701 订阅咨询:400-808-1721

程序设计基础论文8篇

时间:2023-02-27 11:10:27

程序设计基础论文

程序设计基础论文篇1

【关键词】 程序会计; 结构化程序会计; 结构化; 会计基础规范

【中图分类号】 F230 【文献标识码】 A 【文章编号】 1004-5937(2016)20-0015-03

我国现实会计实务中,由各种原因形成的财务不规范和失真等问题已引起了会计专业内外人士广泛的关注,这些问题给会计监管、会计安全、会计公正带来不小的隐患,也给惩治腐败和预防国有资产流失留下漏洞。目前,针对这些方面的问题会计学术界给予了高度的重视,对其现象、成因也有许多的论述与分析,并提出了不少可行的建议,尤其是程序会计理论的提出,从理论层次指出“从会计的程序公正层面实现会计的公正”[1]的途径和可能性。但在实际会计实务中,程序并不能完全保障会计业务处理的规范,程序的设计、参数、执行、结果处理等方面都制约和影响程序的最终结果,这就提出必须使程序会计的运行符合一定的条件,也就是程序必须在一个结构的约束下来进行运行,结构化程序会计思想正是解决这一问题的假设模型。结构化程序会计思想有其自身的特点和优势,只有在这个模型下才能更有效地实现会计基础规范。

一、程序会计理论

程序会计是建立在程序公正理念上的关于会计确认、计量、记录和报告的时间顺序和方法步骤范畴(包括建立这些规范的程序本身)的总称。或者说,程序会计是一种程序化的会计确认、计量、记录和报告体系[2]。程序会计理论来源于对程序价值的充分肯定,不管是从“纯粹的程序正义”“完善的程序正义”“不完善的程序正义”[3]三个方面来看,还是从程序法法律实践看,“程序公正的标准是确定的、绝对的、容易遵循的、便于操作的”[1]。

程序会计理论将程序会计分为“纯粹的程序会计”“完善的程序会计”“不完善的程序会计”三个方面,认为程序具有独立的价值,应当树立起程序至上的理念。

二、程序会计理论在实践中的局限及结构化程序会计的提出

朱小平和马元驹提出的程序会计理论阐述了采用严格构建并遵循预设置的会计程序就能达到会计合理的结果,但该理论却忽视了程序运行所依赖的外层环境和基础设置,理论提出“程序会计追求会计过程的合理,只要严格构建并遵循预设置的会计程序就能达到会计合理的结果”[1]这一假设,但如何保障严格构建?如何确保“严格遵循预设置”并没有进一步的论述。所以,程序会计理论需要进一步完善。会计实务中很多问题并不是没有按“会计程序”操作但还是产生了,实际上,常见的一些问题正是因为一个设置不正确从而导致最后会计程序结果的错误。这样的例子很多,以某局系统会计基础规范化考核情况的通报为例:

(1)某系统下属全额单位自行发放或超出政策规定标准和范围发放补助、补贴。(2)某单位由于历史原因,几年前的财务人员对账不及时,截至检查日该单位有三个银行账户已销户,但银行存款账面尚有余额,银行存款账实不符。(3)个别单位未按要求设置会计岗位,岗位分工不明,等等。

这些问题并非完全是会计程序的问题,而是“严格构建并遵循”的问题,那么如何解决呢?结构化程序会计思想为解决“严格构建并遵循”这一问题提供了框架和可能。

三、结构化程序会计

(一)结构化的概念

结构是物质系统内各组成要素之间的相互联系、相互作用的方式。结构既是物质系统存在的方式,又是物质系统的基本属性,是系统具有整体性、层次性和功能性的基础与前提[4]。

结构化是指将整体经过分析分解成多个互相关联的组成部分,并从整体的视角去揭示各组成部分在整体这一架构内的功能和关联性,它强调组成部分在整体中相对完整的意义及在整体这一架构内的所处位置和功能,同时也强调架构在整体中所具有的功能性、独特性和稳定性。

结构化也可以从工具的视角进行理解,从结构化角度来研究事物系统,可以根据对象系统的结构来推测对象系统各组成部分的功能;反过来也可以依据对象的功能来预测系统整体的结构,从而实现对事物系统的充分利用和改造。

结构化强调架构在整体中所具有的功能性、独特性和稳定性的特征,使任何一个系统建构变得具有完整性、可控性、可移植性和简洁性。

结构化和单一性相对立,结构化揭示架构内各单一性要素的广泛联系和作用,结构化也因其具有稳定性而具有可移植性并呈现标准化。

结构化概念在其他领域也起着广泛和重要的作用,如德国西门子公司实施的结构化面试。结构化面试是按照一套标准的结构程序来进行,面试的内容、形式、程序流程、评分标准以及最终结果的生成与分析等,全部按照一套完整的设置和标准来进行,使得面试的实施过程更为规范,面试结果也更为客观、公平、有效[5]。

(二)程序的结构化

结构化是指所有要素的结构化,也包括程序的结构化。程序是指特定的一系列动作、行动或操作,而这些行动、动作或操作必须被运行于相同方式以便在相同环境下恒常得出相同的结果(例如紧急应变程序)。不太精确地说,程序可以指一序列的活动、作业、步骤、决断、计算和工序,当它们保证依照严格规定的顺序发生时即产生所述的后果、产品或局面。一个程序通常引致一个改变。

程序的结构化是用结构化概念对程序进行分析和理解,不管任何类型的程序,都具有一些基本的架构和功能,可以划分为输入、循序、选择、重复、输出等。

输入:指原始值的进入,在会计实务中是指各种需要处理的各种原始财务数据。

循序:指按照一定的顺序进行作业,在会计实务中是指报账流程、记账流程、核算流程、报废流程。

选择:指预设的各种判断和执行方向,在会计实务中是指对标准的判断和执行不同的标准,如绩效考核方案的执行。

重复:指从某一点开始再次按照一定的顺序进行作业,也常用于纠错流程,在会计实务中是指预算控制、核对证、账、表的相符,各级的检查。

输出:指最终值的产生,在会计实务中是指最终的财务数据,如月、季、年报表等。

(三)设置的结构化

设置是指保障程序运行的环境和基础。现有程序会计理论提出:只要严格构建并遵循预设置的会计程序就能保证会计的公正结果,但这个假说是有一个“严格构建并遵循预设置”的前提条件的,这个前提条件就是说程序是需要一定的环境和基础才能正确运行的,这个环境和基础是一个重要的前提条件,不管任何类型的程序流程都需要环境和基础,都需要环境和基础这个设置。设置的结构化就是用结构化方法对程序流程的环境和基础进行分析和建构,通过分析就会发现会计程序流程的环境和基础必然包括一些最基本的架构和要素:即程序流程的控位、框架、操作点、机能等。

1.控位

控位是指程序流程中的控制位,结构化程序会计中的“控位”(控制位)设置是必须的,程序不论其系统的大小,如果缺失“控位”,程序会计将难保规范。在“控位”中,“位”的设置是关键的要素,如“控位”在结构中的层级、多少、所属等,它处在程序流程中的关键控制点和关键环节点。如核算系统中(组织、层级)总负责机构(人)。

结构化程序会计的“控位”可以近似地理解为会计实务中的各级负责人或稽核人。

2.框架

框架是指结构化程序会计程序流程初始值的设置,它定义了程序的性质、方向等特征。可分为基础性框架、倾向性框架、强制性框架。

基础性框架为会计一般性常规规范,如会计数据的分析、鉴定、登记、归类、计算和编报的要求和方法。还包括凭证格式、编号、算法、系数的采用等。

倾向性框架为各种倾向性设置,如本机构预算管理、作业成本法以及责任会计等。

强制性框架为国家及各级管理机构的规范和标准要求,如《财务会计制度》《会计法》等。

框架是结构化程序会计运行的基础、规则和规定,同时也是会计基础规范是否失范失真的评价标准。框架是在程序运行时提前装载和设定的,在传统会计管理中,框架是通过会计实务中的各种制度来体现的。

3.操作点

操作点为结构化程序会计系统中人、岗的设置,也包括大型系统中机构的设置,操作点是程序运行中的一环,融入程序运行之中。

“操作点”和“控位”不同,“控位”可处于程序之外,控位调节和控制结构化程序会计的运行,而“操作点”在程序之中,只能在程序所限定的空间内进行活动,操作点在程序流程中一般指收费员、出纳员等。

4.机能

机能是发现问题、纠错监督和反馈机制,在结构化程序会计中“机能”的设置必不可少。机能首先的作用是反馈,反馈包括项目的反馈、运行状态的反馈和特殊问题的反馈。如“收入资金日报表”“借款还款进度表”“工资费用月报表”属于项目的反馈;“经费分析报告”“财务分析报告”“预算执行进度报告”属于运行状态的反馈;“证、账、表检查记录”“账户检查记录”“资产盘查记录”属于特殊问题的反馈。在反馈的基础上同时设置必要的纠错和监督机能。可以看到,会计实务中的很多问题是由于“机能”设置不到位造成的。

(四)结构化程序会计

综上所论,结构化程序会计可以概括为通过全面系统设置和搭建会计作业程序流程及程序流程条件和环境,使会计实务程序运行在规范的关键核心要素和环境中,从而确保会计实务的规范和真实。结构化程序会计是会计基础规范的必由之路和理论支撑体系。

四、结构化程序会计的特点

结构化程序会计在实施时更容易搭建和进行要素设置。因为结构化的特征使得它的程序更加严谨,结构更加稳定。表现在以下方面:

1.要素全:结构化程序会计思想囊括了会计实务的方方面面,如会计机构、会计制度、会计人员、会计程序、会计的凭证、账簿、报告、档案等,这种全要素保障了结构化程序理论能够解决会计实务中的各种问题,支撑会计基础规范的实现。

2.可移植性:因为结构化程序会计的结构化特点,会计要素及程序流程变的“组件”化,这就为会计工作在不同机构组织中设置或在跨组织机构中进行移植变得简洁和容易。

3.安全性:结构化程序会计不仅重视程序公正的价值,更重视结构化的环境和设置要素的价值。“控位”和“机能”的提出增强了程序会计的公正性和安全性。在结构化程序会计中责任明确,可控性更明晰、更安全。

五、提出结构化程序会计理论的意义

(一)有利于会计理论研究

结构化程序会计作为一个新研究角度,有利于改变目前会计研究中角度单一的格局,进而为会计研究提供一个新的视角和方法。

(二)有利于软件的开发

会计实务中常用的是核算型财务软件,因为制约管理型财务软件开发的主要难点是软件环境搭建及设置要素模糊。而结构化程序会计理论为破解这一难题奠定了基础,为财务管理软件的开发提供了理论框架,我们也期望在会计实务中能够引入更多的人工智能,这样更加有利于会计基础的规范、真实、安全和公正。

(三)有利于责任划分和产生问题后的责任认定

用结构化程序会计设计和组织会计工作,环节明确、职责清晰,便于更好地保证会计程序运行不受“非法”因素的干扰,对会计程序运行进行“合法”的控制,对不规范行为更好地进行防范,更便于出现问题后的查找和产生问题后的责任划分及认定。

(四)减少人为因素干扰

有利于树立结构化程序在会计工作中的独特地位。结构化程序会计理论的提出,会让会计人员用新的视角审视和设计会计工作。从会计从业人员的根本思想意识上树立规范的思想,减少各方面的人为因素对会计真实公正的干扰。

(五)能对会计工作进行更好的检测和诊断

用结构化程序会计理论分析和检测,更便于发现会计实务工作中的内在机理,更能准确地发现问题和解决问题。以本文上面提到的某局系统会计基础规范化考核情况的通报为例进行检查诊断。

1.某系统下属全额单位自行发放或超出政策规定标准和范围发放补助、补贴。

诊断分析:这是一个强制性框架设置的问题。

2.某单位由于历史原因,几年前的财务人员对账不及时,截至检查日该单位有三个银行账户已销户,但银行存款账面尚有余额,银行存款账实不符。

诊断分析:这是一个“机能”缺失的问题。

3.个别单位未按要求设置会计岗位,岗位分工不明。

诊断分析:这是一个操作点设置错误的问题。

综上所述,结构化程序会计的提出,为解决财务会计基础规范失真的问题提供了一条可能途径。当然,笔者提出的观点能否成立,有待于进一步的探究和实证,这些初步的探索和尝试旨在抛砖引玉,以便促进会计界理论和实践的发展。

【参考文献】

[1] 朱小平,马元驹.论程序理念与程序会计[J].甘肃社会科学,2004(5):211-215.

[2] 朱小平,马元驹.论会计的程序公正[J].财会月刊,2004(1):5-7.

[3] 姚大志.一种程序正义――罗尔斯正义原则献疑[J].江海学刊,2010(3):31-36.

程序设计基础论文篇2

关键词:程序设计基础; 教学理念; 教学改革; 课程体系建设

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)31-0148-03

1 引言

《程序设计基础》是计算机相关专业的基础必修课,旨在培养学生基本程序设计思想和程序设计能力。它是一门理论与实践相结合、具有很强的实践性的课程,同时是后续课程《数据结构》、《面向对象程序设计》、《操作系统》、《计算机网络》等专业课的前导课,该课程掌握的好坏直接影响到许多后继课程的学习。

针对程序设计基础课程的教学改革已有一些研究成果,文献1结合程序设计基础课程教学改革与实践经验,提出一种新的教学模式;文献2针对"C语言程序设计"课程传统教学模式中存在的问题,并结合学校对该课程,改革的实际情况,探讨新的C语言教学模式;文献3提出了一种新的课程改革思路以提高教学质量和教学效果;文献4就如何开展综合性实践性实验做了探讨;文献5探讨了一种教学改革的思想和方法;文献6对C语言中的教与学方法改革进行了探讨。针对以往教学过程中存在的问题,经过认真的分析、总结,并参考了国内重点院校和同等院校的好的经验,结合安阳师范学院计算机与信息工程学院的实际情况,提出了“强基础、重实践、激创新”的教学理念,并应用于教学中。

2 课程分析

2.1课程地位

C语言是一种常用的软件设计语言,同时是其它面向对象程序设计语言的基础,熟练掌握了C语言,那么其他语言就触类旁通,学习起来也比较容易,它是计算机专业课程和相P语言类课程的基础,是和学生未来的发展息息相关的一门重要的专业基础课程。无论是准备考研的学生还是准备就业的学生,只要能够很好的掌握这门课程,就可以为以后的发展打下良好的基础。因此可以毫不夸张地说,C语言掌握的程度可以直接影响学生四年的学习,甚至对学生毕业以后的深造和发展也会有着深远的影响,该课程在本学科体系中的作用由此可见一斑。

2.2存在的问题

本课程所针对的教学对象是大学一年级的新生,新生入学以后,其学习方法和思维模式还停留在中学阶段,学习主动性比较差。且由于在中学阶段接触计算机知识比较少,造成学生在接触计算机知识比较少,程序设计能力几乎为0,结果造成对于课堂上老师讲述的基本语法和编程思想都是被动地接受,对于教材上的习题或者验证性的实验,掌握相对较好,但是对于要解决的实际问题,不知道如何下手,创新能力更无从谈起,导致在以后的教学过程中,不断有学生因畏难、缺乏兴趣、被动学习而掉队,这就影响了后续相关课程深入学习。

2.3课程目标

C语言的课程目标是以程序设计方法为主线,以语法和程序结构为核心,培养学生的基本编程能力,并不断提高学习兴趣,变应试教学为应用教学。在教学过程中,教学目标分为以下四个方面。

知识目标:在教学过程中,注重培养学生分析问题的能力,解决问题时,会定义合适的数据类型或数据结构存储数据,并且能够选择合适的控制结构并写成一个独立的功能函数。从而能够掌握基本语法和三种基本控制结构,掌握数组和函数的运用,掌握指针和结构体类型的应用。

技能目标:学生会编写简单的程序,能够积累一定的算法,如枚举法、贪心法、选择排序等常用的算法,初步具有算法分析和设计能力。在实验和实践过程中充分利用开放性教学资源与实验平台,提高学生的自主学习能力。

素质目标:通过学习,能够形成独立思考、具有解决实际问题的能力;可将学生分为若干个小组,课堂讨论和课程实践均以小组为单位,逐步培养学生的团队合作意识,达到同学之间互相帮助、共同学习和进步的目的。

情感目标:希望同学们能在自主和谐的气氛中学习,能够在学习过程中感受到乐趣,激发学生们的学习兴趣。采取的主要措施有:采用灵活的教学方法,吸引学生的注意。在授课中注意和实际问题的结合,激发学生的学习兴趣。组织一批比较有趣好玩的程序,比如俄罗斯方块、打字练习程序等,由老师完成其中的大部分内容,学生只有写出其中的一段代码,即可使程序运行,从而更好的激发学生自主学习编程的兴趣。

3教学理念

为了达到以上的教学目标,针对以往教学中存在的问题,结合安阳师范学院的实际情况,经过认真的分析、总结和研究,并参考了国内重点院校和同等院校的好的经验,确立了基于“强基础、重实践、激创新”的教学理念,改革了C语言的理论教学和实践教学。

1)“强基础”;改革传统的理论教学模式,分学期进行,前期在讲课过程中淡化语法,偏重基本知识点和基本编程能力的培养,并强调算法分析和程序的调试,后期偏重应用知识解决问题,从而帮助学生形成正确的程序设计思维方式。

2)“重实践”;改革传统的只有实验的教学模式,在教学过程中引入实践课,采用实验和实践并行的方式。目的可以提升学生的动手能力,并在课程建设过程中建立一些课程资源平台,如引入ACM在线评测平台、建立课程网站等,激发学生的学习竞争意识。

3)“激创新”;在实践的基础上,拓展出问题规模较大的一些问题,并引入教师的一些科研子课题,让感兴趣的学生参与其中,学院每年都会有一些大学生创新基金项目,让有想法的学生申请,目的是为了培养学生的团队合作精神和创新能力的。

4课程改革

4.1教材建设

本课程所选用的教材是由清华大学出版社出版,由谭浩强主编的《C语言程序设计》(第三版),之所以选择这本教材,是因为该教材比较符合初学者的特点以及认知规律,在内容选择,章节层次结构等方面的安排做得较好,同时作者将难点分散到各个章节中,例题也较为丰富,学生学习起来通俗易懂。且此教材以应用为目的和出发点,具有很强的实用性。这本教材也是目前国内各高等院校选用率最高的教材之一,目前国内的很多考试都是指定此教材作为参考书的。

教材从整体上可以分为两大部分,其中的一到九章为第一部分,是C语言的语法基础,偏重于基本知识的掌握和基本编程能力的培养;十到十三章为第二部分,是应用基础,偏重于应用所学的基础知识来解决实际编程中的问题。其中语法基础中的一到三章是基本语法,四到七章为程序控制基础,八、九两章为程序的组织方法。

4.2课程体系建设

该课程教学内容上包含有理论教学和实践教学两大部分,在理论教学中,主要内容包含有基本的语法知识,三种基本结构的使用,以及数组、函数、指针和结构体的应用;在理论教学过程中,注重把握重点,分散难点。实践教学分为实验教学和实践教学两部分。在实验教学中,主要注重培养学生基本理论知识的应用和基本编程能力的提高;在实践教学中,侧重用理论解决实际问题,培养学生的综合运用能力。为了达到“强理论、重实践”的教学目标,在课程的开设模式上,本课程分为两学期进行开设。大学一年级第一学期为《C语言程序设计基础》,主要学习教材中的第一到九章,偏重于基本知识和基本编程能力的培养,第二学期为《程序设计基础课程设计》,主要学习指针、结构体、链表、文件的知识点,偏重于应用知识解决实际问题,同时为后续课程打下良好的基础。为了达到以上目的,两个学期采用不同的教学模式:

第一学期,4+2模式;每周4节理论课、2节实验课。在具体教学内容的处理上,基本语法要少讲、精讲,而控制结构和程序组织为重点,要多讲多练。实验课程主要是包含有基础实验,综合实验,基础实验包含验证性的实验、程序的跟踪调试、设计实现等;通过实验,一方面加强学生对程序组织结构、控制语句的掌握和理解,另一方面促进学生对算法的认识,掌握如何调试程序,提高学生的编程能力。

第二学期,2+2+2模式;每周两节理论课、两节实验课和两节实践课。在第一学期的基础上,加强实践,注重应用理论知识解决实际问题的应用能力的培养。第二学期的实验安排和实践主要和后续课程《数据结构》中的内容相结合,为学生后期学习《数据结构》做好铺垫,打好基础;实践课分为两个阶段,前10周主要结合《河南省大学生程序设计大赛》的比赛形式,给出各种具体的问题,要求学生利用学过的知识自主解决,每周一个实践题目。后8周给出一个具体的比较大的综合性的题目,然后根据学生的程度对学生进行分组,每组3~5人,在教师的指导下,合作完成一个复杂的问题,整个实践课程的安排主要侧重于应用能力的培养,让学生初步具有大型程序设计的思想,并培养学生的团队合作精神,为以后学习其他面向对象的编程语言打好基A。同时实践课程中突出了对学生创新能力的培养,强化“激创新”的理念。

4.3教学方法的改革

针对教学对象的特点和达到的教学目标,采用了不同的教学方法应用于不同的教学内容中,在所选用的教学方法中,主要有以下几种:

案例导入法:把要讲授的知识点与实践案例相结合,揭示知识点和实际问题的联系,加深学生对知识点的印象,使得学生体会到知识的实用性,提高学习兴趣。

任务驱动法:通过理解问题,提出明确任务,以该任务为目标,讲授知识点;在引导学生解决的任务的过程中,要注意突出重点、分散难点。

对比教学法:将新知识和旧知识作对比,展示其异同;在具体的使用中,可以应用学生学过的比较熟悉的知识,或是前边章节中学过的学生掌握的比较好的知识点来和新的知识点进行对比,加深学生对所学习的新知识的理解。

讨论教学法:在已学习的知识的基础上,对已解决的问题进行扩充,提出问题新的问题,引导学生进行讨论或是要求学生自己讨论并加以解决,使学生加深对所学知识理解。

下面是针对程序设计基础中数组的定义与应用这一章节进行的教学过程的设计,在这一节的教学内容中,融入了多种教学方法:

数组是学生学习的C语言中的第一种复杂的数据类型结构,主要作用是用来做批量数据的处理,同时数组也是指针和动态分配内存的基础,在本节的教学过程中,主要分为以后6个环节:创设情景->观察归纳->解决任务->讨论探究->即时训练->总结反思。

1) 创设情景:为了避免直接介绍数组这样一种抽象的结构,使学生容易理解,在引入的过程中,用与学生紧密相关的奖学金评定问题,进行进入。

2) 观察归纳:通过对问题归纳分析,提出任务:如何在计算机内部存放学生成绩,以及如何对存放好的学生成绩进行排序;在讲述的过程中采用对比分析法,并借助于多媒体教学设备呈现。

3) 解决任务:对任务的分析,提出解决任务的方法为使用数组:知识讲授:主要介绍数组的定义,以及数组元素的引用,在讲授中解决任务,在讲授过程中注意把握重点,知识点讲授完毕,加强应用,解决提出的第二个任务,完成排序,进行算法分析,解决观察归纳过程中提出的学生成绩排序问题,在讲排序方法的过程中,采用形象的排序过程进行动画演示,使同学们可以在和谐的气氛中掌握整个排序方法。

4) 讨论探究:学生们对任务继续进行讨论,是否还有一些其他的解法。

5) 即时训练:提出新任务,如果想在已经排好序的学生成绩中插入一个新的学生成绩,使得数组还是有序的,应该如何做?

6) 总结反思:老师对学生所完成的任务进行点评,指出其容易错误的地方,同时,学生进行自评。

5考核方式改革

传统的课程考核方式主要是笔试环节,对于程序设计这样一门实践性非常强的课程,显得非常太合理,学院针对这种情况,改革了课程考核方式,对于第一学期,考核主要分以下三个部分:平时成绩占总成绩的20%,主要考查学生的出勤、作业、课堂表现等;实验环节占总成绩的20%,主要考查学生的程序调试能力、实验报告等;期末考试采用机试,占总成绩的60%,其中机试题采用安阳师范学院ACM在线评测系统,由学院老师出题,给出8到机试题目。按照难度给出分值。

第二学期增加课外实践,考核主要分为平时成绩20%和实验成绩20%以及期末成绩30%和课外实践成绩30%,课外实践主要考查学生的团队协作能力,在学期结束时单独考核,采用答辩的方式,分为以下几个部分:演示、答辩、创新、团队、报告编写等,根绝答辩的情况打分。课程评价体系中和以前的评价体系相比,最大的不同之处在于突出了对实践部分的考核,以考核为指挥棒,引导学生主动加强动手能力的培养。

6教学资源建设

学院主要建立了程序设计基础(C语言)精品网站,在网站中包括有课程大纲、课件、习题资料、实验设计指导等,并引入了教学辅助平台ACM在线评测平台,学生在学院的机房或者是外网都可以通过学号登陆练习一些基本的ACM大赛题目。结合这些结合ACM竞赛,可以培养主动式学习模式,激发兴趣,同学们在登录网站时也可以看到周围的同学的做题情况以及自己的排名,在学生中间可以建立竞争机制。

7结语

通过分析程序设计基础的课程特点和教学对象的特点,在课程的建设过程中,提出以上的教改思路,并将以上教改思路在学生的教学过程逐步的加以实践。从教学效果看,教学质量确实有了很大的提高,主要表现在学生整体素质、水平的提高和后续课程中老师的反馈。

参考文献:

[1] 李军,曹记东,林勇,等.程序设计基础课教学内容及模式改革[J].计算机教育,2013(8):34-37.

[2] 储岳中,秦锋,刘宏申.“C语言程序设计”理论与实践一体化教学的几点实践[J].计算机教育,2012(12):22-25.

[3] 于延,崔艳玲.“程序设计基础”课程改革实践[J].计算机教育,2012(20):47-49.

[4] 刘丹,刘德山.C语言程序设计课程综合性和设计性实验研究[J].计算机教育,2012(9):75-77.

程序设计基础论文篇3

关键词:C#程序设计;基础教学;教学方法;专业导向;兴趣导向

计算机基础教学是高等院校培养计划中一个重要部分。大多数高等院校的非计算机专业本科生的计算机基础课程由计算机文化基础和程序设计两部分组成。从全国高校的非计算机专业程序设计基础课程来看,主要以Visual Basic、FoxPro和C程序设计为主[1]。程序设计作为非计算机专业学生的基础课程,对于其在逻辑思维能力上的锻炼、在工作技能方面的提高有着重要作用[2]。那么,选择学习一门什么样的程序设计语言以及学生今后如何应用所学的知识是众多计算机基础教育工作者长久讨论的话题之一。

1程序设计基础教学现状

笔者走访了多所高校了解到,目前大多数普通高等院校将非计算机专业中的程序设计学习作为必修课程。绝大部分院校的本科生都参加了地方或者全国组织的计算机等级考试。第三军医大学等院校将本科生是否通过在计算机等级二级考试作为获得学位的基本条件之一。可见对于各个院校非计算机专业学生来说,程序设计是非常重要的。

就语言来说,Visual Basic、FoxPro和C是各高校非计算机专业考生中选择比例最大的,几乎各占1/3。经过近10年的风雨历程,计算机信息技术的发展已是突飞猛进。就C语言这一经典语言来说,对于非计算机专业学生,除非将来工作以后经常需要编写底层应用程序,否则C语言就显得不太实用,而在五彩缤纷的图形用户界面已成为主流的今天,再让学生去学习枯燥乏味的控制台应用程序,则不太容易使学生产生兴趣。要编写符合目前主流技术标准的高层应用程序,Visual Basic也显得有些力不从心,Java、C#、C++等语言更多得被挂在这些“90后”学子的嘴边。

2C#程序语言引入程序设计课堂的探析

我们在第三军医大学的计算机基础课程教学中进行了改革试点,选择C#语言作为授课语言基于以下两点原因:

(1) 跟上技术发展,追踪当前热点知识。C#语言是Microsoft为.Net环境开发的一种全新编程工具,集C/C++语言的功能、Java语言面向对象的特征以及Visual Basic语言的易用性为一体,为在.Net环境下计算机应用提供了功能强大、全新、易用的程序设计工具[3]。由于其提供了大量的系统定义类,并有着与Visual Basic非常相似的操作特点,学生可以很方便的建立应用程序。同时,以C#语言主导的.Net框架可以开发控制台应用程序、Windows窗体应用程序、Web应用程序以及Web服务等多种应用程序,可以极大地增强学生的学习兴趣。并可以在基础课程结束以后,根据学生的专业需求以及深层次教育需求扩展C#教学系列内容。

(2) 与专业技术相结合,进一步整合教学资源。随着信息技术的迅猛发展,计算机基础教育与医学知识粘合度要求越来越高,以往经典教学方案在新的信息技术和医学专业知识发展下慢慢出现脱节的状况[4]。以我校医学特色为例,各医学科室、教研室与新技术、新设备相关的软件系统都在逐步朝.Net等方面升级,任教老师的许多开发工作也都逐步转移到.Net、Java等新技术平台上来,.Net具有大量的组件和开发模块,在网络通信、Web技术、影像处理等方面有着特别的优势。使以往的窗口应用程序设计、网络编程、网站建设等各门课程能够成系列地进行汇总。对于各专业学生学习这一技术,既可以使他们很快地融入到专业技术应用上去,也可以确保在学习完这门课后能够编写具有一定应用效果的实用的程序,真正服务于自己的专业。

3我校采用C#语种教学的实践经验

从2008年开始,第三军医大学将生物医学工程五年制本科学员的计算机基础程序设计课程改为C#程序设计,我们在原课程设计基础上,从三个方面进行教学改革实践。

3.1倡导实例化教学,融入PBL方法[5],紧扣专业与兴趣

在课堂教学上,根据教学组成员运用C#从事软件开发的实际经验,精挑细选了100多个短小精致的教学实例,这些实例在知识面覆盖、技巧性、趣味性和实用性等方面力求做到完美的统一,加有详细的注释,教学过程中大部分知识点都围绕着实例分析而展开讨论。为强化其学习兴趣,辅以病例统计、数据筛选、医院挂号等实际问题作为学生实训要求,以解决问题的态度学习循环语句、条件语句、文件基础等重要的程序设计概念。让学生明确学习的目标,深信程序设计对于以后的专业发展有良好的帮助作用,并在潜移默化中培养其运用信息技术解决实际问题和逻辑思维的能力。

例如,数据库操作概述作为计算机基础课程程序设计部分的了解性学习,有4个学时,由于数据库数据存储本身比较抽象,对于医学专业学生的学习应该突出实用性,重点向学生建立一个直观的应用概念,便于以后专业应用上的扩展学习。所以,在课程设计上可以以一个大实例为主线,以若干小实例为每个小知识点的连接带。课堂学习就是围绕着如何实现这个大实例为目的。首先以图文方式介绍附属医院正在运行的医院信息系统(Hospital Information System,HIS)中前台药品查询功能,并以此功能的实现贯穿于本次课的学习始终。以引导性方式询问学生在纸上记录药品清单应当怎样建表?若是在纸质的药品清单表上你会怎样快速的查找需要的药品?从而建立数据库结构、索引等数据库概念,将数据库应用的意义直观化。针对非计算机专业学生的知识特点,归纳出数据库编程工作的4部分:建立数据库、连接数据库、读写数据库、数据处理。

(1) 建立数据库:将前面引导性的问题实例化,现场与同学一起在Access等小型数据库上建立数据表结构并填充数据。在此过程中熟悉数据库结构中的主要元素,介绍主流数据库产品,强调对不同的数据库要举一反三。

(2) 连接数据库:以套路化的套接关键字方法现场演示如何连接Access数据库,介绍套接关键字中各个部分的意义。其他数据库的连接套接字简单提一下即可,强调需要时独立查找。

(3) 读写数据库:紧跟连接数据库的学习,学习如何把数据表中的数据导入程序中,并以各种方式显示出来。

(4) 数据处理:将读出的全部内容请同学用以往学习的循环、数组知识进行筛选处理。并对比性介绍SQL语句的筛选语法,比较其在数据库编程的优劣性。

在学习以上四部分的过程中,贯穿着精确查找、模糊查找、药品统计、药品归类等小实例,通过对读取的数据采用循环、数组知识解决方法与SQL语言解决方法的对比,在复习以往知识的基础上加深对数据库知识的印象。由于一开始以图文并茂的形式介绍HIS系统中药品查询的意义和使用情况,并适当延伸数据库在个人物品管理、好友管理、论文管理、医学实验数据管理中的意义,通过实用性来提高学习兴趣。最后,请同学们整合前面所学知识并可在课后查询资料,思考如何将课堂上所学习的各个独立模块构建成复杂的药品查询系统。

3.2坚持理论实训1U1授课模式,强化实践能力

倡导实例教学、PBL教学、精心准备典型实例和引导学生学习兴趣的根本目的在于使学生掌握并能运用所学知识。因此,在C#教学中,我们总体上坚持一次理论一次实训的授课模式,在较短的时间内,将所学理论知识迅速强化,并让学生在实践中加深认识和扩展学习。

以3.1中列举的数据库操作概述的教学方法为例。在理论课堂上通过实例化教学、融入PBL方法以及力求紧扣专业与兴趣归根到底是要求学生通过自己的实践去掌握所学知识。因此,在4个学时的学习时间分配里,课堂理论教学2个学时,剩余2个学时用于学生自主实训练习。在布置实训作业时,可以依据学生理论学习的反馈情况,以3~5个小实例为要求,由学生自己思考如何去做,老师可以对学生的疑惑进行引导性回答。也可以将理论课上学习的简单药品查询系统改编为论文查询系统。以题目、作者、内容、时间为查询关键字,提供精确或者模糊的查询功能。在这一过程中,老师只是从旁引导学生思考解决问题的方法。学生根据理论课上的实例并可通过网络获取帮助的方法自行完成作业。实训作业记入平时成绩。

3.3以实训为主导,拓展学生自主性程序设计

在实训课中,除了必须练习的典型实例,老师应注意抓住空余时间与学生交流,参考PBL教学法的思路,引导学生思考运用所学的知识完成一些带有趣味性的程序[5]。在这一思想指导下,由老师指导,学生自己完成了模仿QQ空间里的文字转动画软件“迤逦文字”、图片加个性水印的“轻松打水印”以及体现出军校特点的“军人资历章排列网站”。这一系列作品得到了大部分学生的欢迎,我们将学生完成的作品下发给全体学习C#语言的学生,就关键性代码进行了讲解,学生提高积极性的同时还额外学习了基于Web的程序设计思想,效果超出了我们教学的预计目标。

例如,教学组成员设计了灰度图像转换成伪彩色图像的实例,核心代码只用了8行语句就能实现所需的功能,实例涵盖了数组、循环、文件基础、位图对象定义等知识点,引起了学生的极大兴趣。以单帧图片处理的实例为基础,引导学生进一步思考彩色B超的工作原理,思考如何处理连续多帧图片的方法。受到这个实例的启发,医学影像专业学生运用差影法原理,自主设计了“水迷宫”试验和临床重症监护软件,在核心期刊发表科研论文2篇,并获得学校本科生创新成果一等奖。这一结果又反过来引发学生的学习兴趣。

4结语

素质教育涵盖创新教育、实用技能教育,我们通过更新程序设计语言这一过程,更重要的是将教学手段、教学资源与学习导向进行重新的梳理和整合。希望在计算机基础教学的过程中不仅仅在学生的综合素质上起到作用,也能在专业发展上有所突破。程序设计基础方面的教学试点目前已进行了一年,在此过程中积累了大量的经验,学生的能动性自主设计也为我们下一步教学提供了更丰富的素材。总之,只有深化教学改革,从学生实际出发,增强学生的兴趣和实际应用水平,才能更好地达到计算机基础教育中程序设计部分的教学目标。

参考文献:

[1] 张建威,张兵兵. 非计算机专业的计算机教学改革与素质教育初探[J]. 药理医学杂志,2008,21(6):744-745.

[2] 刘方,倪飞舟,左翔. 高等医学院校计算机程序设计课程教学探索与实践[J]. 电脑知识与技术,2009,5(5):1277-1278.

[3] 周峰,李德路,王征. Visual C#.NET 2005中文版基础与实践教程[M]. 北京:电子工业出版社,2007:1-2.

[4] 李雯娟,曾照芳,曹中源,等. 医学专业计算机基础教学的现状与改革[J]. 医学教育探索,2008,7(6):585-586.

[5] 展海冰,张运坤,张志刚. 网络环境下计算机类课程PBL的设计与实践[J]. 中国成人教育,2009(11):158.

Practice and Analysis of C# Programming for Non-computer Majors in Computer Base Teaching

QIAO Liang1 ,CHEN Xin2 ,SONG Wen-qiang1

(1. Department of Computer Science, Third Military Medical University, Chongqing 400038, China;

2. Chongqing Zhengda Polytechnic College, Chongqing 400056, China)

程序设计基础论文篇4

关键词:高职;程序设计基础;探索

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2017)02-0131-02

《程序设计基础》是信息工程学院的专业群平台课程之一,也是学生参加全国计算机等级考试以及水平考试及专科毕业生“专升本”考试的必考课程。此课程主要介绍程序设计方面的基本理论、基本知识和基本技能,为学生进一步学习《C#.NET程序设计》、《PHP程序设计》等专业课奠定基础。但在,在教学过程中,学生普遍对此课程不感兴趣,觉得该课程枯燥、难懂,针对此种情况,对C语言程序设计的教学方法进行了一系列的探索,受到了学生的好评。

1 教学内容的选取

教学内容以突出基础理论知识的应用和实践能力的培养为原则,以应用为目的,加强针对性和实用性。把整个课程内容重新进行编排和选取。根据《程序设计基础》课程的教学目标,将课程的教学内容分为两个部分:语言基础篇和编程提高篇,即将教学过程划分为语言基础和编程提高两个阶段,在不同的阶段通过实施不同的教学方法展开教学,通过任务驱动引导程序设计的教学、结合编程项目教学深化教学、采用理论与实践一体化实现编程教学的提高。

2 教W内容的突破

传统的《程序设计基础》课程,以语言知识为主线,偏重理论知识的讲解,学生不容易理解掌握。针对此种情况,在新的教学中过程,整个教学以程序设计为主线,基于工作过程为导向,注重学生程序设计思维的训练。

3 教学方法的设计

3.1快速入门,逐步深入,分散难点

在学习程序设计的过程,把教学内容分主题。主题教学分为案例分析、要点讲解、实践训练、疑难解答。实践训练又分模仿、改写、创新。通过案例分析,程序演示,学生能够快速入门。通过要点讲解、疑难解答,学生对知识点的掌握能够逐步深入。通过上机实践,学生由模仿,改写,到创新,学生一步步提高了自己的编程能力。例如:在《程序设计基础》中有一个知识点是关于两个变量值的交换。如果直接给学生讲抽象的知识,学生就容易和数学上的知识混淆。我在上课的过程中,首先举了一个案例:有两杯水,一杯糖水和一杯盐水。现在要把两杯水进行交换,问学生怎么办?这个时候,学生就会明白,交换的只是杯中的水,而且要交换必须要有一个空的杯子,而且交换必须经过三次,顺序不能出错。通过这样一个案例分析,让学生快速入门;通过要点讲解,让学生逐步深入。通过此学习,学生在学习排序,运用这个知识点就会觉得非常容易。

3.2任务驱动、删繁就简

在《程序设计基础》的教学中采用任务驱动教学方法,通过任务激发学生的求知欲望,将知识溶入到一个个具体的任务中;通过学生“完成任务”培养学生的实际操作能力和分析问题、解决问题的能力。任务驱动、删繁就简,把复杂的问题简单化,让学生透过现象看本质。例如:在程序设计过程中,一定会讲到数据类型、数组、指针等概念。而这几个知识点最本质的就是一个计算机内存空间的分配。一个是单个存储空间的分配,一个是连续存储空间的分配,一个是动态存储空间的分配。只要把内存空间的分配搞清楚了,其问题就可以迎刃而解了。

3.3温故知新、触类旁通

在编程提高阶段的教学中引入一个具体的项目,采用项目教学方法,以项目为载体,通过项目将理论知识与实际应用结合起来,围绕项目展开教学;通过项目分析与递进,将项目分解成具体的任务,再通过“实施项目”培养学生的编程能力和实际项目的开发能力。通过项目教学法,可以让学生温故温故知新、触类旁通。例如:在做学生成绩管理系统的过程,就要应用到算法排序。学生的名次是一个整数排序,学生的成绩一个是数组排序,学生的功课是一个字符串排序。虽然它们的题目要求不同,但用到的基本思想都是相同的,只是数据类型不同。通过复习旧知识,来学习新知识,做到举一反三,融会贯通。

4 结语

随着时代的发展,学生的变化,教师应根据学生的实际情况,因材施教,。坚持实践化教学,适应计算机发展趋执势,做到学以致用,培养学生分析问题、解决问题和应用程序开发的综合能力。使课程教学在探索中前进,在前进中完善,最终达到教学相长。

参考文献:

[1] 牟占生,董博杰. 基于M00C的混合式学习模式探究――以 Coursera 平台为例[J]. 现代教育技术,2014(5):73-80.

[2] 王之元,易晓东,等.面向 MOOC的程序设计语言课程教学设计[J]. 计算机教育,2014(2):55-58.

[3] 翟文宪.案例教学初探[J]. 课程・教材・教法,1996(6).

程序设计基础论文篇5

关键词:精品课程 课程建设 教学模式

1.课程定位及历史沿革

程序设计基础是高等学校一门重要的计算机基础课程,是计算机基础教育的基础与重点,高级语言程序设计课程是继大学计算机基础之后的一门必修基础课,属于校级平台的必修课程。

我校的程序设计课程由一系列课程组成,包含了C语言程序设计、Visual Basic程序设计、算法与程序设计、面向对象程序设计以及高级程序设计等五门课程。其中,前两种程序设计语言类课程面向我校广大非计算机专业学生开设,后三种程序设计语言类课程是我校计算机专业学生的专业基础课程。虽然高级语言种类不同,但程序的基本思想都是相同的。并且,程序设计的基本理论及思想不仅仅在计算机科学各领域使用,在其他非计算机专业的计算机辅助教学中也大量运用。它所讨论的知识内容和提倡的技术方法,不仅为计算机专业后续课程如操作系统、数据库系统、编译原理等课程提供了必要的知识基础,同时,对从事软件开发与设计也有着不可替代的作用,而且为广大非计算机学生,诸如电子控制类、机电类、信息管理类学生提供了必要的基础知识和技能训练。

1997年以前,该课程只是小规模在学校部分专业开设,内容以Basic为主。1997年成立计算机基础教研室,负责面向全校的计算机基础课程,这时该课程授课语言改为Pascal。从2001年后,我们以学生专业需求为导向,选择不同的高级语言,以便为后续相关课程服务。理工类非计算机专业学生学习C语言,文科类学生学习Visual Basic,计算机相关专业采用能支持面向过程方式和面向对象方式的C++语言,计算机专业高年级学生学习Java语言。至此,按照不同专业需求及不同学生层次设置课程,课程内容不断更新,逐步形成比较完整的系列课程体系。丰富的程序设计语言及分专业、按层次教学,使得程序设计课程能够适应当前市场实际需求,在实际教学中受到学生的欢迎,也深得后续课程教师的肯定。

2001年程序设计课程被计算机学院列为院级重点建设课程,2005年成为我校重点建设课程,2006年被评为校级精品课程。

2.贯彻教学+应用型教学模式,抓好各个教学环节

(1)更新教学内容,改革教学方法和手段,提高教学效果。

为了适应计算机技术快速发展的新形势,从1999年开始,我们对教学内容适时做了根本性调整,具体来说有四次较大规模的调整:1999年以前讲授语言以Basic为主;1999年-2001年转换成Pascal语言;2001年-2004年为C语言,2004年至今,按不同专业及学生层次不同,在不同阶段开设不同语言,大致可分为文科类、理工类、计算机专业高年级三大类,分别讲授Visual Basic、C语言、面向对象程序设计C++及Java。

在不断更新教学内容的同时,在教学方式和手段上也尝试进行改革。从2001年起开始针对不同层次学生实行分级教学,做到因材施教,使基础好的学生能更上新台阶,而基础较差的学生能够掌握程序设计最基本的要求。为了适应程序设计基础系列课程操作实践性强的特点,课堂教学全部在多媒体教室通过大屏幕结合黑板在计算机上边讲边演示。2003年开始实行双语教学,针对数学和英语成绩非常优秀的学生开设纯英文环境的计算机教学。2004年建立了课程网站,将有关课件、教案、习题及答案等放在校园网上,并实现局域网内的在线考试,利用网络技术实现多媒体教学。促进教学手段多样化,为帮助学生自主学习提供了有利条件。

(2)构建完整的实验体系,培养应用型人才。

程序设计系列课程是理论和实践要求都相当高的课程,而我校各专业的人才培养目标是培养能够从事科学、技术和应用各领域中有关教学、科研、开发和应用的复合型人才。因而在程序设计系列课程中,培养学生获取知识的能力和分析、解决问题的能力,从而为将来实际应用打好坚实的基础是我们一直在努力探索的问题。全面的实验内容、实验过程全程指导,是保证课程目标实现的基础[1]。

加强上机实验环节是该系列课程主要的实践教学手段,通过对计算机语言的实践,使学生掌握程序设计的基本思想、基本方法[2]。实验教学时学生在教师的指导下进行上机操作,保证一人一机。每位教师指导一个自然班,要求学生每个实验项目都要按规范格式填写实验报告。为进一步加强实践性教学环节,我们根据实际情况及时调整了理论教学与上机学时的学时分配,例如,C语言的实验学时从原来20学时增加为30学时。

在实验内容方面,课程的实验分为基础性实验和鼓励学生创新的综合设计性实验两部分。基础性实验主要是一些预先设计好的实验。学生通过实际操作,能够加深对课程所讲授的基本原理、技术和方法等知识点的理解。在系列课程中,根据不同语言课程的特点,制定了各具特色的基础性实验,以全面强化学生对基础知识的掌握。但是这种实验只能称之为验证性实验,而要想让学生把本课程的知识融会贯通,还需要通过综合性实验的锻炼。不同程序设计语言都根据各自特点,设计出有一定难度又与科学研究相关的综合性实验。这些措施提高了学生的学习兴趣,达到了很好的教学效果,受到学生的普遍欢迎。此外,为提高实验教学效果,我们紧跟学科发展的步伐,动态更新实验教学内容,及时加入反映学科领域的最新科技成果,保证教学内容的先进性。除了不定期更新实验内容,修订实验大纲外,我们还有针对性地编写了适合我校学生实际情况的实验指导书。现在,程序设计基础系列课程所涉及的每门课程都有规范、翔实的实验指导书。

针对有课程设计的“算法与程序设计”和“面向对象程序设计”,课程组教师组织有专题学生选题讨论会,要求教师开题必须从学生学习的实际情况出发,做到既有难度较大的题,又有较容易的题,供其自由选择以利于独立完成,同时改变以往的成绩评定方式,采用课程设计答辩方式,每位学生在设计完成后必须参加并通过答辩,才能拿到学分。

(3)精讲多练,改进考核方式。[3]

本着精讲多练的原则,改革了考试方式。由于程序设计系列课程的习题涉及的内容多、范围广,所以在考核上,我们从以往偏重于期末考试成绩改变为注重阶段性考试,在学期中间增加了两次平时上机考核。这一措施使学生在平时就注重每一部分的知识学习,增强了对学生程序设计基本素质的培养力度。

(4)加强教材及教学辅助资料建设。

基于课程目标不断更新的要求和计算机技术不断发展的实际情况,我们不断改进使用教材的质量。在使用国内外先进教材的基础上,根据本校学生的实际情况,编写了教学急需的内容新、覆盖面宽且简明扼要的优秀教材和实验指导书,以满足不同课程类型教学的需要。到目前为止,课程组已经正式出版教材4部。在实施双语教学过程中,积极引进原版教材,采用由Brian W.Kernighan和Dennis M.Ritchie编写并由Prentice Hall出版的影印版教材。此外,我们根据实际需要不定期修订教学大纲和实验大纲,每年更新电子教案,使得教学内容能反映实际需求和技术最新发展。

(5)加快现代化教学,方便学生自主学习。

我们不断加快CAI辅助教学课件、网络课件和录像教材等的配置和研制,从多方面创造条件方便学生自主学习,激发学生学习积极性。从2002年开始,教师自制多媒体教学课件多套,全面实行了CAI教学。2004年开通了课程网站,将教学课件、实验安排、教学文件、教学辅助资料等静态资料和辅导、答疑、课程通知等与学生动态交流的诸多工作放置到校园网上,从而为教师和学生学习提供了信息共享的平台。教师通过课程网站论坛,及时了解学生对课程的建议和意见,动态调整教学手段和方法。现在程序设计基础系列课程的网上论坛已经成为我校学生与教师学习、讨论的热点论坛之一,以此为载体极大地提高了学生学习积极性,同时为我校“一校两区”进行教学提供了较好的范例。

在课程网站开通的同时,我们进一步完善了自主开发的网上通用考试系统,使之具有强大的题库管理功能,能实现自动组卷、审卷与发卷、答题与交卷、试卷评阅和成绩管理与统计分析,且对个人课后练习将提供全面支持。学生通过网上练习系统和考试模拟系统,可以对学习过的知识进行自我考核和评价。

3.教学队伍建设

优秀的教师队伍是保证课程建设质量的关键所在[4]。经过多年建设,现在程序设计系列课程已经形成了老、中、青相结合,教授、副教授、讲师俱全的教学梯队。现有专职教师17名,平均年龄37岁,其士3人,硕士以上学历占教师总数的比例为90%。教学团队制定了中青年教师培养制度,有计划、有目标地对教师进行培养,先后送出5人攻读博士学位,5人攻读硕士学位。

经过有计划、系统的培养,这些青年教师取得了可喜的成绩。在学校、学院组织的青年教师教学基本功竞赛中,有2人次获得学校二等奖,2人次获得学院一等奖,3人次获得学院二等奖。同时,这些青年教师还参加了不同的科研项目组,在实践中提高了自身的专业素养。课程任课教师年终考核都在良好以上,并有6人次年终考核为优秀。

小结

经过多年积累,程序设计系列课程在教学模式、方法与手段、教学内容、考核方式、网络化教学和实践环节等各个方面不断完善和改进,逐步形成了有较高水平的教学团队;采用课堂授课、计算机演示、网络学习相结合的多种媒体相结合的教学手段。通过一系列改进措施,课程达到新层次。但与国内重点院校相比,本课程的教学尚有许多不足,主要集中在如下几点:授课教师的职称结构与重点院校尚有距离,课程教学的研究立项还不够,部分学生由于自主学习能力不足,学习效果低于预期结果,这些都是在以后的教学研究中需要重点讨论的问题。另外,课程网站资源还有待进一步充实,因此要达到全方位的网络化教学还有待加强与改进。

参考文献:

[1]尚利宏.北京航空航天大学“嵌入式系统设计”精品课程建设[J].计算机教育,2006,(8):7-9.

[2]殷人昆,邓俊辉.清华大学“数据结构”精品课程建设[J].计算机教育,2006,(8):20-22.

[3]朱莉,顾保磊.当前高校计算机系列课程建设初探[J].中国地质大学学报(社会科学版),2002年9月,2,(3):70-71.

[4]杨宪泽.高校计算机基础教学探讨[J].西南民族大学学报(自然科学版),2005,(6):1015-1017.

该文为武汉工程大学2006年教学研究项目。

课题名称:计算机基础教学精品课程建设内容及模式探讨

程序设计基础论文篇6

关键词:图式理论;程序设计语言教学;程序阅读

1 问题的提出

程序设计语言类课程是面向所有专业一年级学生开设的计算机基础课程,以南华大学为例,非计算机专业为4学分64学时,工科采用c语言,文科选用VB语言。课程目的是通过学习程序设计语言,掌握基本的程序设计思想和编程方法,具备运用程序分析解决实际应用问题的能力。目前教学中普遍存在教学课时短、学生基础参差不齐、教学以“语言”为主、上机以“验证”为主、考核方式单一、重语言轻应用等问题,导致部分学生不知学为何用,甚至滋生厌学情绪,致使教学质量不高。从语言学角度看,程序设计语言与外语同属语言范畴,可借鉴外语教学取得的研究成果与成功经验。

2 理论基础

图式记忆结构,包括语言知识、社会知识、文化知识等。1932年,英国心理学家Bartlett首先使用了图式(Schema)这一概念,用来解释人类的高级心理活动。1980年,美国人工智能专家Rumelhart进一步发展完善了这一理论。图式是大脑为了便于信息存储和处理,而将新事物与已有的知识、经历有机地组织起来的一种知识表征形式,是相互关联的知识构成的完整的信息系统。

图式理论的主要观点是,人们在理解新事物时,需要将新事物与已知的概念、过去的经历及背景知识联系起来,对新事物的理解和解释取决于头脑中已经存在的图式。图式能促进理解,也可阻碍理解。如果输入的信息与记忆中的图式结构不一致,会导致两种情况,一种是拒绝接受与自己原有概念相反的信息;另一种是修正、增补原有的知识结构、尽可能与新的信息一致。图式理论将阅读过程解释为读者所具备的背景知识和阅读材料相互作用的过程。这种对读者运用图式知识进行语言理解和文本解读的阐述就是图式理论,现已被广泛用于语言研究和阅读研究。

根据图式理论,程序阅读的心理构建过程基于两个方面:一是程序文本提供的新信息;二是读者已有的相关知识,如程序设计范式。这一心理过程的完成要求读者利用记忆中的编程语言知识,以及过去的经验、程序设计范式和背景知识对程序所传递的信息进行加工编码、联想和预测,领会作者通过语言符号表达的意图,从而达到与作者相互交流的目的。

按照图式理论,学习者的图式知识结构分3种类型:内容图式(content schema):指文章内容的背景知识,读者对文章主题的熟悉程度;形式图式(formal schema):指读者对文章体裁结构的理解程度;语言图式(1inguistic schema):指学习者对词汇、语法、习惯用法等语言知识的掌握程度及语言运用能力。

程序阅读具有鲜明的学科特色,应扩展图式知识结构内涵,如表1所示,内容图式(content schema):指程序应用的背景知识,如:N—tier、MVC、MVVC、ORM、SignalR等;形式图式(formal schema):指一定的程序设计范式,如:顺序、分支、循环、递归、控制流图、事件响应模型、数据访问模型、Web生命周期、设计模式等;语言图式(linguistic schema):指编程语言的基本符号集合、语句、对象、控件、属性、事件、方法等。程序设计语言教学本质上是以某种特定编程语言为基础,传授程序设计思想。它强调思维的定式,而非局限于语法语义本身,所以教学核心是帮助学生在头脑中构建程序设计有关图式,尤其应注重形式图式的训练。

外语教学以“听说读写译”为训练手段,程序设计采用“读译写”作为训练方法。“读”指阅读代码;“译”指理解他人代码,从代码中抽象出思想,如算法、控制流、数据结构等;“写”指编写程序解决应用问题,将自己的解题思想用程序设计语言加以实现。3种方法都离不开对程序的阅读理解,图式理论是解释阅读过程的理论,所以教学中应指导学生主动地运用图式理论,改善程序阅读效果,进而提高程序设计语言教学质量。《礼记·中庸》中使用“博学之,审问之,慎思之,明辨之,笃行之”来描述学习的层次,它指明了学习的一般规律。程序设计语言教学应遵循这一规律。“读”是基础,该阶段应博学、审问,即广泛阅读程序,掌握基本语法与常见范式;“译”是提高阶段,应慎思、明辨,即分析对比程序;“写”是最高阶段,应笃行,即学以致用,使用编程语言解决实际应用问题。

3 教学中的应用

根据上述分析不难得出以下结论,传统教学模式以教师为中心,以语法为纲,主要分析讲解语句,片面强调语法和算法的重要性,缺乏创新能力培养,显然有悖于图式理论。因此,教学实践中应以学生为中心,以应用为导向,以程序设计范式为核心,遵循“读译写”学习规律,帮助学生主动地构建形式图式,激活扩充丰富已有图式,培养创新能力、实际应用能力。

3.1 构建形式图式

因为学生没有任何程序设计基础,头脑中也就不存在相关图式,所以首先要帮助学生构建程序设计图式。根据图式理论,认知受已有图式影响,因此构建的图式应尽可能确保其质量,这将影响今后学习。我们从Microsoft OneCodeSample与微软示例项目中精心挑选阅读材料,保证程序代码遵循统一的命名规范、编码、注释和文档规范。以1~2个项目贯穿教学全过程,每次课都有一个UI,既容易激发学生兴趣,又可以作为示例模仿,课堂以形式图式讲解为主,辅以图片动画便于理解加深印象。因为语言图式比较简单而且IDE工具提供智能提示功能,因此这一部分由学生自学掌握。部分形式图式案例,如表2所示。

3.2巩固已有图式

因为新信息的获取质量取决于已有图式,尽早激活已有图式有利于学生对新图式的理解和掌握,为此教学中采用了以下措施:①每次授课先回顾上次内容以激活已有图式;②采用螺旋模型逐步增加新信息以丰富扩充已有图式,如表3所示;③联系生活实际,列举现实生活中或学习中遇到的问题,说明如何用程序设计思想进行解决;④邀请学生介绍课后练习的基本解题思路,与学生共同讨论存在的问题及改进意见,刺激学生的学习兴趣,激发学好程序设计语言的欲望;⑤由学生上机实践,解决应用问题;⑥采取“书面考试+上机考试+综合应用”的考核方式,引导鼓励学生学以致用。

4 结语

上述方案自2009年起在软件工程卓越班实施以来,已先后培养了3批学生,收效显著。与普通班比较,实验班学生不但熟练掌握了编程语言语法,而且能运用程序设计思想独立完成课堂示例与课后练习,部分学生还编写了宿舍管理、游艇出租管理、出租车计费等实际应用程序,自主学习能力、应用能力、创新能力明显提升。

程序设计基础论文篇7

计算机产业已渗透到国民经济各个领率域和人民生活的各个方面,是衡量一个国家科技水平和综合国力的重要标志。计算及应用软件专业的应用论文联盟范围更是极其广泛,该专业主要培养具有系统掌握计算机基本理论和基本知识,能熟练运用计算机从事科技信息管理及软件开发,能从事各类图像设计与绘制,有较强的实践能力和自我发展能力以及硬件设备维护工作,符合社会市场经济需求的专门人才,实现“一张文凭,多种证书,一技之长,一专多能,品学兼优”的培养目标。

一、主要结构介绍

(一)知识结构

1、通用知识。通用知识是学习和掌握专业基础理论、专业知识的基础和工具,并对今后从事的计算机应用工作起辅助和支持作用。通用知识包括扎实的文化、社会科学和法律知识,以及计算机数学基础、计算机应用基础、c语言程序设计、计算机网络基础、操作系统原理等专业必备的基础理论知识。

2、专业知识。专业知识是从事计算机应用技术工作的根基。专业知识包括visual foxpro程序设计、visualbasic .net程序设计、java程序设计、图形图像处理、flas制作、网页制作等。

(二)能力结构

1、基础能力:计算机相关高等数学的应用能力;基本程序设计能力;计算机系统管理和维护能力;外语应用能力;汽车驾驶能力。

2、专业能力:使用高级语言进行程序的设计、调试和维护能力;熟练使用办公自动化系列软件的能力;运用关系型数据库visual foxpro设计和应用管理信息系统的能力;利用visual basic语言编制一般视窗应用软件的能力;计算机多媒体素材的处理能力;综合性网页设计与制作能力。

3、综合能力:社会适应能力;学习能力;竞争能力;组织与管理能力;创新与创业能力。

(三)素质结构

1、思想道德素质。具有科学的世界观、人生观和道德观,有明确的是非观念;具有爱国主义、集体主义精神,有良好的敬业、创新意识。

2、文化素质。具有高等数学、程序设计、数据处理等理工科知识,有一定的科学素养;具有必要的哲学、法律、职业道德等人文社科知识,有一定的文化素养。

3、业务素质。掌握计算机的基本知识,能够熟练操作各种常用应用软件;具有常用应用软件的安装、调试、使用和管理、维护能力;具有一般应用程序和数据库系统的编写和使用能力;具有以业务知识为基础,专业操作能力、创新能力为标志的较高的业务素质。

4、身心素质。具有强壮的体魄、旺盛的精力,掌握基本的擒拿格斗方法。养成科学的强身健体的习惯,具有良好的心理素质。

二、主要课程介绍

马克思主义哲学原理、高等数学、基础英语、c语言、汇编语言、数据结构、操作系统基础、离散数学基础、数据库原理及应用、微机原理与接口技术、邓小平理论理论、数字电路、线性代数、计算机导论、计算机组织与结构、马克思主义政治经济学基本原理概论、中国近代史纲要、英语二、物理(工)、离散数学、工程经济、操作系统、软件工程、数据结构、数据库原理、高等数学(工本)、计算机系统结构、计算机网络与通信、面向对象程序设计、概论论与数理统计(二)、课程设计、毕业设计。

三、应获得的职业资格证书

计算机硬件工程师、计算机二级三级、计算机国家二级三级、linux管理、平面设计师、网站设计师等。

转贴于论文联盟

程序设计基础论文篇8

关键词:高职高专 程序设计 教学改革

程序设计是计算机专业领域中最为核心的工作。在程序设计工作中,既要对问题进行分析,又要考虑各种设计的可能性,更高层次地,还要考虑运行程序的代价问题。作为计算机各专业的三大基础课之一,学生对其掌握的熟练程度将直接影响后续课程的学习。

一、 程序设计基础课程教学的现状及面临的问题

1、教学的现状

各院校开设的程序设计基础课程,多为教授学生某一种程序设计语言,其中Pascal、VB、C、C++、Java语言较为多见。 C语言作为当今最为流行的程序设计语言之一,不但成为计算机专业的必修课,而且也越来越多地成为非计算机专业的学习课程。但在实际的课程教学中,许多教师和学生都认为C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,教师教学和学生学习都感到困难,并不同程度产生畏难心理。特别地,多数院校将C语言作为计算机专业学生进校后首先接触的第一门专业基础课,这种现象尤为明显。

2、面临的问题

一直以来,关于如何讲授面向大学生的程序设计基础课程,许多人争论的焦点放在了语言选择上,把讲授的重点放在了语言的语法规则介绍上。从短期看,这样做便于学生学,也便于教师教。但从长期看,越是注重以语法来衡量学生对语言的“掌握”程度,就越是忽略了程序设计真正使用的基本思维方式和方法,最后导致学生可能在学习完一学期的课程之后,满脑子除了一些语法知识,几乎没有任何分析解决实际问题的技能。

二、教学内容的改革

纵观教学的现状和所面临的问题,笔者认为程序设计基础课程应围绕程序开发周期,即分析问题、设计程序、编写程序代码、测试程序以及其他额外步骤等展开教学。但这并不容易实现。首先,若要从程序开发周期的各个方面教授学生,需要花费较多的课时。目前各院校开设的程序设计基础课总课时不尽相同,但大多在50到60课时之间,其中有三分之一是学生实验实训环节。换句话说,教师用于讲授的时间一般只有30课时左右。其次,以C语言为例,涉及基本数据类型、运算符和表达式、控制结构、数组、函数、指针、结构体和共同体、位运算和文件等诸多内容,显然,要在30课时内讲授完是很困难的。第三,即便是用填鸭式的方式将上述知识全部灌输给学生,学生也是不可能学会的。反而会造成学生的抵抗情绪。第四,本科计算机专业的程序设计教学一般是在一年级上学期先开设程序设计导论课,然后再开设具体的语言程序设计课,这是个循序渐进的过程。然而高职高专计算机专业的培养目标和教学进度与本科的是有区别的,因此,本科计算机专业的教学模式不能全部采纳。笔者以总学时50课时,其中讲课30课时,教授C程序设计语言为例,认为课堂教学可以进行以下改革。

1、以结构化程序设计为核心,重点讲授程序设计的控制结构

人类的自然语言有千百种,归根结底都是人类思想交流、记录的工具。计算机语言同样也是对解决具体问题的算法思想的表达工具。表达的形式――程序设计语言千差万别,但表达的内容――算法则是殊途同归。这里所说的算法不单是算法的概念和具体的某种算法,还包括算法的表示方法如流程图、结构图和伪代码等。程序设计语言本身只是在最后用来描述算法的一种工具,而任何程序不外乎由顺序结构、选择结构和循环结构组成。不论用哪种语言编写程序代码,都无法脱离这三种控制结构。可以说,是否掌握它们的用法决定了学生设计程序的优劣。因此,笔者认为,在高职高专的程序设计基础课中,让学生学习、掌握如何分析实际问题和设计解决它们的算法及算法描述的同时,应重点传授三种控制结构。

以往除了三种控制结构外,指针也是C语言的教学重点,或者说是重中之重。不可否认,指针是C语言的精髓,对程序设计有锦上添花的作用。能够驾驭C这门程序设计语言,势必熟练掌握指针的运用。而且,在目前的各类计算机等级考试中,C语言的指针也是必考而且重点考查的内容。那么,仅把教学重点放在控制结构上是否合适呢?笔者是这样考虑的:

第一,学习指针需要研究指针四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、以及指针本身所占据的内存区。这个学习的过程是相当费时的。较短的课时教授较多的内容之间存在矛盾。

第二,学习指针还要有一定数据结构的知识,对于初学程序设计的学生而言,过快地接触指针会使他们措手不及。有限的认识能力和知识水平与较复杂的应用之间存在矛盾。

第三,作为高职高专的程序设计基础课,浅显易懂实际上是非常重要的。高职高专学生的学习基础相对本科以上层次的还是较弱的,更应当使课程真正发挥“基础”的作用,成为为学生打下的坚实基础的奠基石。

那么,在高职高专的程序设计基础课中,是否就不必教学生指针的知识呢?当然不是。在学生掌握了程序设计的控制结构以后,选择性地将指针的概念及其一般的规则进行讲授,其他复杂及带有技巧性的内容,可以放在后续课程,或者在应考培训班里再作深刻的研究。

2、始终贯穿程序开发周期的教学,培养学生建立良好的程序设计风格

如1中所述,不能从语法规则角度来衡量学生对语言的“掌握”程度,不能忽略程序设计真正使用的基本思维方式和方法的教学。人类学语言很多时候不是先学语法语义规则的,而是先能听懂,然后会跟着说,然后才是学习书写以及其它更高形式。学习计算机语言也是一样的。让学生从感性再到理性去认识和理解程序设计,学生才有可能在学完课程之后大有收获。

现实中一个程序的开发是要经历一个漫长的开发周期的:分析问题阶段是整个周期中最困难的部分也是最重要的部分,需要明确期望的结果,需要明确有哪些信息参与来得到结果,需要对什么样的数据进行什么样的操作去得到期望的结果;设计程序阶段是开发过程的核心,需要把分析阶段的结果模块化,并采用算法加以描述;编写程序代码阶段用具体的计算机程序设计语言实现前一阶段的算法;测试程序则需要花费更为漫长的时间,因为实际的用户无法容忍一个有隐患的软件。这样看来,具体的程序设计语言要在整个开发周期的第三阶段才发挥作用。而程序设计风格就像一个人的习惯一样有好坏之分,好的程序设计风格会增强程序的可读性和易用性。因此,在学生学习程序设计基础之初,就应该注重培养学生的良好编程习惯,并在每个章节的教学中展开对程序开发周期的学习,让学生认识和理解整个程序开发过程,这样才不致使程序设计语言的教学脱离实际的应用。

必须注意到,高职高专的目标是培养应用型人才。学生在掌握一定理论知识的同时,更重要是实践。适量的实验实训环节必不可少,教师也应重视学生的实验实训课。以往有些教师因为总课时少,在不能增加总课时的情况下为了多讲理论便压缩实验实训课时的做法不可取。

三、教学策略的改革

作为程序设计基础课,让学生了解到什么是程序设计的基础是重要的。其实,具体的程序设计语言已经是实现程序的方式了,所以它才规则详尽、语法严谨、技巧多样。从这个角度也不难理解初学的学生为什么会感到困惑和吃力。

1、注重培养学生描述算法的能力

要用计算机解决实际问题,那么,在对问题进行分析后,就要针对问题设计解决该问题的算法。设计算法就是要把解决问题的步骤用清晰的语言表示出来。有多种方法可以描述算法,如自然语言、图像符号、伪代码等。用自然语言表示算法,人比较容易理解,但书写较烦琐,而且在某些场合,由于自然语言含义的不确切性,容易引起歧义,造成误解;对较复杂的问题,用自然语言又难以表达准确。因此,一般情况下较少采用自然语言这种方式表示算法。据笔者所知,部分院校的程序设计基础课在算法描述这个知识点的教学上以介绍流程图或结构图这类用图形符号的描述方法。笔者认为除此方法之外,也应注重对伪代码的讲授。伪代码介于自然语言与程序设计语言之间,代码简单、可读性好、并且类似自然语言,使用它可使被描述的算法较容易地以任何一种程序设计语言去实现。教师在教学过程中不一定限于具体的一种程序设计语言,训练学生用不同方法描述解决问题的算法,特别是伪代码,可以增强他们组织语言的能力,进而更好地理解程序的控制结构。

2、注重培养学生良好的程序设计风格

程序是最复杂的东西,良好的格式能使程序结构一目了然,便于编程人和其他人理解它,同时有助编程人的思维,帮助其发现程序中不正常的地方,使程序中的错误更容易被发现。因此从学生学习开始,教师就该讲授什么是良好的程序设计风格,并严格要求学生按分层缩进法书写和键入程序代码,尽量避免学生养成不良习惯后再去纠正,为时已晚。

3、注重培养学生分析问题的能力,从不同角度分析问题

多数教材在第一章就能见到程序代码,虽然在代码后会有注释,但学生在课程学习之前多数是从未接触过程序设计语言的,他们不懂语法语义规则,这个时候即使只是简单的格式输出程序代码,学生也是难于理解的;在学生学习一段时间有一定基础之后,他们又迫切需要阅读那些用于解决问题的可执行的程序代码。可见,机械地讲解教科书上的例题教学效果不好。对于一个问题,可以从提出问题的角度入手给出分析的步骤,如:什么是问题要输出的结果?什么是问题已经有的数据?用什么方法可以得到结果?或者从算法描述的角度给出同样的分析步骤;亦或从程序代码的角度,边讲解边让学生思考代码究竟是要解决一个什么问题。并且引导学生举一反三,逐渐使学生具备解决问题的能力。

四、结论

本文主要针对课时少知识点多这一矛盾对高职高专程序设计基础课教学内容和教学策略的改革进行了探讨。笔者也注意到:一个完整的课程内容通常有九大要素,即吸引注意、告知目标、追忆学前经验、呈现教材、提供指导、实际演练、提供反馈、评价成就及强化学习、保留与迁移。因此在教改过程中,除了教学内容和教学策略外,还有许多待研究的问题。

上述教学内容、教学手段的改革,已经在程序设计导论课程教学实践中运用。笔者将继续努力研究,使程序设计基础课程教学日趋完善。

参考文献:

[1](美)维尼特(Venit,S.),(美)德雷克(Drake,E.).《程序设计基础》(第三版)[M].北京:清华大学出版社,2008

[2]高林,周海燕.《程序设计方法与案例分析》[M].北京:人民邮电出版社,2005

[3]谭浩强.《C程序设计》(第三版)[M].北京:清华大学出版社,2005

推荐期刊