程序设计范文

时间:2023-10-15 10:12:53

程序设计

程序设计篇1

一、对教材中的“歌手大奖赛评分”程序进行拓展引伸,设计出比较智能多用途的程序

1.程序界面设计。新建一个标准exe工程,添加如表1所示的控件,并设置控件相应的属性。(见附图1)

表1 “时钟的时针和分针重合的问题”程序用到的控件及其属性说明

2.算法分析。① 请输入这次大奖赛的满分分数(如10分或100分等等)以及评委的人数,赋值给系统的公共变量public_min和public_i,这里要求事先定义好这两个系统的公共变量。

系统公共变量的定义方法:单击“工程”菜单,选择“添加模块”命令,在“Module1”框中输入Public public_min As Single, public_i As Single即可。

② 输入各评委的评分并计算。如果输入的数值超过事先输入的满分的值,系统则提示:“出错啦,分数超出范围。”在这里,用到了For …Next循环语句和输入函数InputBox(提示信息,标题,默认值,位置)和输出函数MsgBox“”。

③ 输出:去掉一个最高分和一个最低分后其余分数的平均分。

3.编写事件过程。在“大奖赛评分系统”程序中,用户单击“请先输入满分和评委人数”按钮后,开始读入满分分数和评委人数。

二、下面针对教材的第103页和第107页的“创新活动”中的问题,给出比较详细的程序编写过程

(一)教材第103页“创新活动”的问题。在12小时制的时间中,在钟表正常走动的时候,有多少个时针和分针重合的位置?它们分别表示什么时刻(精确到秒即可)?

请编写一个界面如附图2所示的“时钟的时针和分针重合的问题”程序,单击“开始计算”按钮,程序计算并显示出答案,单击“退出”按钮,结束程序运行。

1.程序界面设计。新建一个标准exe工程,添加如表2所示的控件,并设置控件相应的属性。

表2 “时钟的时针和分针重合的问题”程序用到的控件及其属性说明

2.编写事件过程。由于在“时钟的时针和分针重合的问题”程序中,用户单击“开始”按钮后,就在List框中显示出时针和分针重合的位置时刻,因此我们在“开始”按钮处编写Click事件过程。

对于“结束”按钮,我们只要在它的Click事件过程中写下一个语句“end”即可。

对于“哪些时刻时针与分针成平角或直角”等问题,做法类似,这里就不再赘述。

(二)教材第107页“创新活动”的第一个问题。编写一个猜数游戏程序,程序界面如附图3所示。单击“开始”按钮后,电脑随机产生一个1到100之间的整数,然后程序提示你猜一个数,如果你输入的数太大,则程序会提示你“太大了!”,如果你输入的数太小,程序会提示你“太小了!”,直到你猜中为止。最后程序还会报告你一共猜了几次。

1.程序界面设计。新建一个标准exe工程,添加如表3所示的控件,并设置控件相应的属性。

表3 “猜数游戏”程序用到的控件及其属性说明

程序设计篇2

    一、前言

    Windows提供强大的功能以及友好的图形用户界面(GUI),使得它不仅广泛的用作管理事务型工作的支持平台,也被工业领域的工程人员所关注。但Windows3.1并非基于优先级来调度任务,无法立即响应外部事件中断,也就不能满足工业应用环境中实时事件处理和实时控制应用的要求。因此,如何在Windows环境中处理外部实时事件一直是技术人员尤其是实时领域工程人员所关注的问题。目前已有的方法大都采用内挂实时多任务内核的方式,如Windows下的实时控制软件包FLX等,而iRMX实时操作系统则把Windows3.1当作它的一个任务来运行。对于大型的工程项目,开发人员可采用购买实时软件然后集成方式。

    对中小项目,从投资上考虑就不很经济。如何寻找一种简明的方法来处理外部实时事件依然显得很必要。

    本文首先阐述Windwos的消息机制及中断机制,然后结合DPMI接口,给出一种保护模式下中断程序的设计方法,以处理外部实时事件。经实际运行结果表明,该方法具有简洁、实用、可靠的特点,并同样可运行于Win95。

    二、Windows的消息机制

    Windows是一消息驱动式系统,见图1。Windows消息提供了应用程序与应用程序之间、应用程序与Windows系统之间进行通讯的手段。应用程序要实现的功能由消息来触发,并靠对消息的响应和处理来完成。

    Windows系统中有两种消息队列,一种是系统消息队列,另一种是应用程序消息队列。计算机的所有输入设备由Windows监控,当一个事件发生时,Windows先将输入的消息放入系统消息队列中,然后再将输入的消息拷贝到相应的应用程序队列中。应用程序中的消息循环从它的消息队列中检索每一个消息并发送给相应的窗口函数中。一个事件的发生,到达处理它的窗口函数必需经历上述过程。值得注意的是消息的非抢先性,即不论事件的急与缓,总是按到达的先后排队(一些系统消息除外),这就使得一些外部实时事件可能得不到及时的处理。

    图1

    三、Windows的保护模式及中断机制

    1.Windows的保护模式

    保护模式指的是线性地址由一个选择符间接生成的,该选择符指向描述表中的某一项;而实模式中则通过一个段/偏移量对来直接寻址。80386(486)CPU提供的保护模式能力包括一个64K的虚拟地址空间和一个4G的段尺寸。Windows3.1实现时有所差别,它支持标准模式和增强模式。标准模式针对286机器,不属本文探讨范围。增强模式是对386以上CPU而言,Windows正是使用保护模式来打破1M的屏障并且执行简单的内存保护。它使用选择器、描述器和描述器表控制访问指定内存的位置和段。描述器表包括全局描述器表、局部描述器表、中断描述器表。保护模式与实模式有许多不同。其中显着的差异是访问内存的机制不同。

    2.中断机制

    (1)实模式中断

    为了便于理解,我们先回顾实模式中断。

    在实模式下,中断向量表IVT起到相当重要的作用。无论来自外部硬件的中断或是内部的软中断INTn,在CPU中都产生同样的响应。

    ①CPU将当前的指令指针寄存器(IP)、代码段寄存器(CS)、标志寄存器压入堆栈。

    ②然后CPU使用n值作为指向中断向量表IVT的索引,在IVT中找出服务例程的远地址。

    ③CPU将此远地址装入CS:IP寄存器中,并开始执行服务例程。

    ④中断例程总以IRET指令结束。此指令使存在堆栈中的三个值弹出并填入CS、IP和标志寄存器,CPU继续执行原来的指令。

    (2)保护模式中断

    保护模式中断过程与实模式中断过程类似,但它不再使用中断向量表IVT,而使用中断描述符表(IDT)。值得一提的是,Windows运行时IVT还存在,应用程序并不使用它,Windows仍然使用,但含义已不同。

    ①IVT结构:IVT在RAM的0000∶0000之上,占据开始的1024字节。

    它仍然由BIOS启动例程设置,由DOS填充到RAM中。

    ②IDT中断描述符表:保护模式下,Windows操作系统为实现中断机制而建立的一个特殊表,即中断描述符表IDT。该表被用来保存中断服务例程的线性地址,它们是真正的24位或32位地址,没有段:偏移值结构。中断描述器表最多可含有256个例程说明,详细说明请见【3】。I

    DT结构见图2。

    图2

    ③当中断或异常发生时,处理过程与实模式类同。当前的CS∶IP值和标志寄存器值被存储。保存的内容还包括CPU其他内部寄存器的值,以及目前正在被执行的任务的有关信息(若必须发生任务切换的话)。CPU设法获取中断向量后,以它为索引值,查找IDT中的服务例程远地址,接着将控制转移到该处的服务例程。这是与实模式转移到IVT的不同所在。保护模式使用IDTR寄存器分配和定位内存中的IDT中断描述符表。IDT在内存中是可移动的,与IVT固定在内存中刚好相反。IDT中断描述符表在Windows中起决定性的作用。理解了Windows下保护模

    式的中断机制。有助于我们理解中断服务程序的设计,它的关键就在于如何将服务例程的地址放入IDT中断描述符表中。当中断发生时,如何将断点地址及CPU各寄存器值保护起来;中断结束时,如何将保护的值恢复。Windows系统本身并不提供实现上述功能的API,而DOS保护模式接口DPMI正具备了上述的功能。

    下面我们首先介绍DPMI接口,然后基于它实现Windows下中断服务程序的设计。

    四、DOS保护模式接口DPMI

    Windows除了标准服务外,还支持一组特殊的DOS服务,称为DOS保护模式接口DPMI,由一些INT 2FH和INT 31H服务组成。它使应用程序能够访问PC系列计算机的扩充内存,同时维护系统的保护功能。DPMI通过软件中断31h来定义了一个新的接口,使得保护模式的应用程序能够用它作分配内存,修改描述符以及调用实模式软件等工作。

    Windows为应用程序提供DPMI服务。即Windows是DPMI的宿主(host),应用程序是DPMI的客户(client),可通过INT-31H调用得到DPMI服务。INT-31H本身提供多功能。其中它的中断管理服务允许保护模式用于拦截实模式中断,并且挂住处理器异常。有些服务能够和DPMI宿主合作,以维护应用程序的虚拟中断标志。

    可以用INT31H来挂住保护模式中断向量,以中断方式处理外部实时事件。利用INT31H,功能0205H:设置保护模式中断向量,将特定中断的保护模式处理程序的地址置入中断向量里。调用方式:AX=0205H,BL=中断号,CX∶(E)DX=中断处理程序选择符:偏移值。返回:执行成功CF=清零,执行失败CF=置位。

    挂住/解挂中断向量的时机很重要。主窗口第一次被创建时会传送它WM-CREATE消息,这时是挂住中断向量的最好时机。退出时需解挂向量,否则Windows可能崩溃。主窗口接收到WM-DE-STROY之后进行解挂工作,是最适合的。解挂向量可先用INT35H,0204H功能将老的中断向量保存,退出时用INT35H,0205H恢复。

    五、编程实现

    有了DPMI的支持,我们就可以很方便地处理数据采集、串行通信等工业过程中的实时事件。下面以Windows3.1平台下中断方式实现的串行通信为例,说明中断程序的编制和实现。为便于参考,给出了详细的代码。开发平台BC3.1/BC4.5,其本身支持0.9版的DPMI,无需运行其它支持DPMI的软件。编程语言C,可与C++混合编译。

    初始化COM1,9600波特率,每字符8bits,1个停止位,中断接收,查询发送。

    //windows asy communication

    //by Li Xiuming

    //last modified on June 25,1996

    #include〈windows.h〉

    #include〈dos.h〉

    void interrupt far DataReceive();

    void interrupt far (*old-vector)();

    unsigned char datacom-r[1024],datacom-s[1024];

    int inflag=0;

    unsigned int s8259;

    int InitCom1()

    { //串口1初使化

    s8259=inportb(0x21); //读入8259当前状态并保存

    outportb(0x21,s8259&0xe8); //初始化8259,允许0x0c号中断

    outportb(0x3fb,0x83);

    outportb(0x3f8,0x0c);

    outportb(0x3f9,0x00);

    outportb(0x3fb,0x03);

    outportb(0x3fc,0x08); //允许中断信号送到8259A,以便能中断

    outportb(0x3f9,0x01); //0x01,中断允许

    return 1;

    }

    void interrupt far DataReceive()

    { //中断接收子程序

    static int i=0; //静态局部变量

    char rechar=0; //每中断一次,i自动加1

    rechar=inportb(0x3f8); //从数据口读出发送过来的数据

    if(inflag==0)

    {

    if(rechar!=s &&i==0) //帧起始

    {

    i=0;

    goto ll;

    }

    datacom-r[i++]=rechar; //存入datacom-r[](通信缓冲区)

    if(rechar==e) //帧结束

    {

    inflag=1;

    i=0;

    }

    }

    ll:outportb(0x20,0x20); //回送中断结束标志

    }

    //调用DPMI

    //保存旧的0CH号保护模式中断向量

    //设置新的保护模式中断服务例程

    void InitCom(void)

    {

    asm{

    cli

    mov ax,204h

    mov bl,0ch

    int 31h

    sti

    }

    old-vector=MK-FP(-CX,-DX);//保存

    asm{ cli //设置新的0x0c中断服务例程

    mov ax,205h

    mov bl,0ch

    mov cx,seg datareceive

    mov dx,offset datareceive

    int 31h

    sti

    }

    InitCom1();

    }

    //恢复8259状态

    //恢复0CH保护模式向量

    void RestoreComm(void)

    {

    outportb(0x21,s8259);

    asm{

    cli

    mov ax,205h

    mov bl,0ch

    mov cx,seg old-vector

    mov dx,offset old-vector

    int 31h

    sti

    }

    }

    在窗口第一次被创建时会传送它WM-CREATE消息,这时调用InitCom()即可。在主窗口关闭时,即主窗口中收到WM-DESTROY消息时,调用RestoreComm()恢复原来的状态。

    这样在对串口初始化,设置中断服务例程后,通信事件发生时,会立即跳入中断子程序中执行,越过系统的消息队列,达到实时处理通信事件的目的。而数据处理模块可通过全局标志flag访问全局的数据通信缓冲区获取实时数据。这种实现方式与基于消息机制的Windows通信API实现相比具有实时性强的特点,因为它超过Windows系统的两极消息机制。

    上述程序已在实际系统中得到应用。在Windows 3.1支持下,同时运行三个Windows任务:服务器SERVER(内有实时串行通信,多个网络数据子服务),客户CLIENT,FOXPRO数据库系统。整个系统运行良好。切换到WIN95平台下(支持0.9版DPMI),系统也运行良好。

    参考文献

    1 张豫夫、曹建文译.【澳】Barry Kauler着.Windows汇编语言及系统程序设计.北京大学出版社,1995

    2 赵人任等译.【美】Mike Klein者.Windows程序员使用指南(一).北京:清华出版社,1995

程序设计篇3

关键词:课程改革;C++;教学内容;教学方法

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

1目前教学中存在的问题

“C++程序设计”现已成为大多数院校理工科学生必修的程序设计基础课。非计算机专业对程序设计的要求不同、学时不同,对学生的逻辑思维和基础知识结构要求也不同,所以教师不能只是沿用计算机专业的教学理念与教学方法。

C++具有繁多的数据类型以及复杂、灵活多变的语法结构,对于第一次接触程序设计的学生来说,要理解这些概念比较困难,容易挫伤学生学习编程的积极性,因此应对C++的教学内容进行适当删减,以满足非计算机专业学生的学习要求。

目前开设的“C++程序设计”课程,大部分教师还是沿用“C程序设计”的讲授方法,对面向对象的知识只是局限于教材上的例子,例子只局限于某个知识点,不利于面向对象概念的理解,传统的教学方法和教学内容已不能满足学生的需求。为此,必须找到一种适合学生学习特点的教学方法,使学生在有限的时间内迅速掌握C++的基本概念、基本技能和应用,激发学生对本课程的兴趣。

“C++程序设计”是一门实践性很强的课程,但目前的实践课教学存在很多弊端。传统的教学方法中,程序实验环节只是配合每一章所学的内容进行实践,这样的方法让学生只是孤立地了解程序设计的知识,所涉及的知识面较窄,缺少学科的综合性,造成学生实际动手能力很差,无法将实际的具体问题和程序设计知识联系起来。因此我们应对“C++程序设计”实验教学进行改革和实践,将教学的目的变为理论和实践并重,以提高学生的编程能力。

2教学内容的改革

C++语言内容繁多,在有限的课时内不可能也不必要面面俱到,所以教师要有效地组织教学、突出重点、把握难点,不要过多钻研语法细节,而要把握C++程序设计的算法思想、基本原理,由整体到具体,培养学生对C++语言的兴趣及正确的思维模式。在确定教学内容和方式时,要根据学生的计算机基础、专业背景、学习目标来安排。我们首先尝试将课程重点划分为三个层次:

基础层重点:数据类型、C++运算符、逻辑表达式及常用的C++内部函数;

中间层重点:控制结构、数组、指针、结构等知识及基本应用;

核心层重点:函数、类及构造、继承、多态、C++流。

三层重点教学体系更加科学地使学生在循序渐进中有效地学习C++基础知识,掌握程序设计的基本技能,有重点地加强了对学生编程能力的培养。

其次,我们将课程内部结构进行了改革:弱化指针,将指针内容浅化,并移到函数之前讲授;面向过程部分占60%比重,面向对象部分占40%比重。

再次,教学方法上采用案例式教学,教学内容应围绕教学案例进行划分,每一知识点内容均通过生动、有效的示例讲授相关知识点内容,我们将教学案例一般划分为三个层次:

(1) 基础案例:采用简洁案例验证基础知识,此类案例着重于较高的教学效率,使学生以直接的方式掌握基础语句使用格式及系统内部函数使用格式,理解相关基础知识。

(2) 简单程序案例:包含多个知识点的小型程序示例。

(3) 单元综合案例:每一章主要知识点及已学内容的综合案例。其示例内容为实际应用程序设计内容的某一模块或某一功能部分,使学生所学内容紧密地结合实际应用。

基本型案例、设计型案例及综合型案例相辅相成,使学生更快速、更准确地掌握相关知识点内容。

3教学方法的改革

“C++程序设计”中很多知识比较抽象、枯燥,学生不容易接受理解,教师在课堂教学中应该巧用生活中的实例化繁为简,以实例引导,讲解语法规则。我们在教学方法上尝试采用案例式教学,在每一章节、甚至每一节课均以要解决的实际问题为主导,构建问题情境,引导学生运用计算机语言描述解决问题的方法与步骤。案例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,而是以精选出的程序设计案例为中心,把学习的重点放在具体案例的讲述上,把要学习的语法和概念融入到具体案例中讲解。每一案例的教学方法采用以下三个步骤:

第一步:提出实际问题;

第二步:介绍解决问题的方法;

第三步:归纳出一般规律和概念。

采用“提出问题――介绍解决问题的方法――归纳出一般规律和概念”的新教学三部曲,使学生在学习每个新知识点时都有一个完整的、实际的、具体和有形的项目作为知识的联想和应用载体,进一步介绍C++程序设计的理论和方法。它不同于以前教学中“提出概念――解释概念――举例说明”的传统三部曲,整个教学过程强调在应用中学习,从而避免了枯燥、繁杂的理论说教,这不仅能增进学生的学习兴趣和积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。

在学习的不同阶段应采用不同的训练方式,教学方法改革的第二点是将学习C++划分为以下三个阶段:

初期阶段:教师应以演示编程为主,学生模仿编程训练的方式,在此过程中教师详细地讲解程序设计思路、程序设计方法及程序设计步骤;

中期阶段:教师演示部分难度较大的代码编写过程,学生在教师启发下完成其余的代码编写过程;

后期阶段:以教师简介程序设计思路、程序功能模块设计特点及主要技术运用特点,学生完成全部代码编写,教师则起辅导学生作用,教师充分注意因材施教。

教学方法改革的第三点是采用“三语”教学并用,“三语”教学是指以中、英及C++三种语言描述程序代码功能及实现方式,使学生易于理解每一代码行,从而理解整个程序。

“中”是指用我们正常的语言描述某一代码行;

“英”是指在对代码行中每一个英文单词正确发音基础上,讲解其单词原义及在代码行中的意义;

“C++语言”是指在中、英语言讲解的基础上用C++语言实现代码行,并解析其功能特点等。

4实践教学的改革

“C++程序设计”语言是实践性很强的一门课,培养学生的实践能力是教学的首要目的。因此,在授课的同时,如何引导学生利用上机实验来加强实践也是教学中的一个重要环节。我们为学生安排1:1的上机实验课时,其中2/3的上机实验是有老师辅导的,其余1/3由学生自主完成。上机作业要求与课堂内容有很好的衔接性,并且难易程度有机结合。在上机实验前,教师要讲清内容与算法,布置相关的编程作业,由学生单独动手编写程序,上机调试,培养学生自己解决问题的能力。教师在上机时要发挥其主导地位,可以提出改进算法的思路,让学生自己操作。实验完毕,教师对实验结果加以检查,并对出现的问题及时加以讨论和讲解。

“C++程序设计”实验教学的目的应是:(1)紧密配合理论教学,通过相关实验,帮助和加深对语句功能的理解;(2)通过实验可以将各门课程学到的知识融会贯通,思考利用C++程序设计语言解决实际应用问题的有效方法,从而使学生分析和解决问题的能力得到锻炼和提高。因此我们将实践教学训练体系划分为以下三个层次:

基本实验:占整个实验学时的60%。包括两个部分,一是验证操作,教师在讲授过程中学生直接操作验证的内容,如C++语句语法基本格式、C++系统函数的基本验证,约占整个课程学时数的25%以上。二是验证型实验,对C++语法和函数的基本应用,要求掌握程序的基本调试技能。

设计型实验:占整个实验学时的30%。例如循环应用、数组应用、排序问题、类与对象应用等,要求能编写简单应用程序。

综合设计型实验:例如结构化方法编程应用、面向对象方法编程应用、C++流应用等,约占整个实验学时的10%。

综合设计型实验由教师布置或由学生结合本人的兴趣,从实际应用中选择有具体应用背景的实验题目,安排学生分组共同完成。综合设计型实验的具体内容如下:

(1) 教师给学生讲解综合设计型实验的题目要求,要求学生在选好题目的基础上,认真研究题目要求,自行查阅有关资料,写出系统的需求分析,总体框架设计。

(2) 将系统的需求分析,总体框架设计交给教师批阅,师生一起讨论,确定系统的详细设计方案。

(3) 在限定的时间内完成C++语言的代码设计,完成各个功能单元的实现和调试。

(4) 联编调试,要求把各个功能块联编起来进行调试。

(5) 写出相关的系统分析、设计、实现等实验报告。

综合设计型实验建立起以学生为中心的教学模式,这样既锻炼了学生的动手能力,也加强了他们交流与团结协作的精神,全面提升学生的程序设计与软件开发能力。

另外,我们建立了互动式教学体系,通过建设“C++程序设计”课程网站,包括课程资料、实验指导、网上答疑、知识自测等子系统,形成功能强大、教学资源丰富的网络教学环境,开辟新的教学与复习手段,使学生学习和巩固知识的渠道多样化,进而提高我们的教学质量。课程资料提供了包括章节重点、教学课件等,用于配合课堂教学起到相辅相成的作用;通过网上答疑突破时空的限制,实现了教师与学生之间交流新思想和解决学习中遇到的难题。知识自测提供了试题的在线考试和模拟训练,试题类型包括判断题、选择题和问答题,学生在学完相应章节的内容后,可自行选择测试内容和题型进行在线测试。

5结论

程序设计课程的教学目的是要通过一门程序设计语言的教学,使学生掌握程序设计语言的本质,包括基本结构和基本算法等,从而掌握程序设计的一般方法。“C++程序设计”首先应重新组织教学内容,将课程重点划分为基础层、中间层和重点层三个层次,我们对课程内部结构进行调整,在教学方法上采用案例式教学,对教学案例划分为基础案例、简单程序案例和单元综合案例,采用“提出问题――介绍解决问题的方法――归纳出一般规律和概念”的新教学三部曲,将深奥的理论讲得通俗易懂,增进学生的学习积极性。在教学过程中,应采用中文、英文及C++三种语言共同教学,强调学生实际应用和实际动手能力的培养,加强实验教学环节,注重启发式教学与综合作业的结合,提高学生的综合编程能力。

进行“C++程序设计”课程的改革,主要是将现代计算机程序开发的主要手段传授给学生,淡化程序设计理论,强化实验及实训过程,培养学生抽象思维能力,训练学生初步的编程能力,强化训练调试程序技能,使其具有一定的程序开发能力,有利于学生将计算机这种现代化工具运用于今后的学习工作中。

参考文献:

[1] 谭浩强. C++程序设计[M]. 1版. 北京:清华大学出版社,2004.

[2] 刁成嘉. C++面向对象编程基础[M]. 1版. 北京:机械工业出版社,2008.

[3] 金丽. C++语言课程教学改革[J]. 科技信息:学术研究版,2007(35):201.

[4] 敖志广. 非计算机专业本科生C语言的教学实践[J]. 计算机教育,2007(2):53-54.

程序设计篇4

一般来讲,语言类课程的教材通常如下安排:第一章讲授语言的历史背景、特点、运行机制等。第二章介绍语言的数据类型、运算符和表达式等内容,此时的实践课基本上不具有实质性内容,通常几周后学生才有动手操作的机会。课程的讲授基本上都以语法为主线,在讲授某一章语句语法时,会配有程序说明,但也仅作为内容的示例或验证来加以讲解。这种教学模式的形成有其历史原因,过去计算机都比较少,学生很难有上机的机会,所以希望上机时减少由于语法错误而浪费的时间,一般在上机之前将要运行的程序在纸上写好,然后仔细检查,认真验证,唯恐出现语法错误,延长调试时间。这种教学模式一直延续到现在,已完全不符合现在社会发展的需要,其弊端主要有:以教师的讲授为中心,学生入手比较晚,积极性不高,所编写的程序大多是对内容的验证,创新能力得不到锻炼和提升。等到学生语法都已学完,能够做一个综合性的大型程序设计时,也快接近结课考试时间,学生忙于考试,无心编写程序,得过且过,效果不是太好[1-3]。

2转变教学模式

目前计算机的发展速度很快,学校里供学生上机使用的计算机越来越多,上机条件越来越好,编译平台也发生了很大的变化,会给编程者以更多的提示,缩短了检查编译错误所需时间。学生的理论课基本上也能够在机房上课,教师边讲学生边做,克服了过去只听教师讲授而看不到真正操作环境的局限,因此,仍然沿用旧的教学模式已不能适应新形势下人才培养的需要。可以从以下几个方面对课程进行优化研究。1)打破传统教材的顺序,前后结合。传统教材都是先介绍某种计算机程序设计语言的历史背景、特点,之后介绍这种语言的一个简单的小程序,讲解框架和基本单位,这个阶段可以有一次上机实验的机会;然后就是算法,接下来是数据类型,对这部分内容的讲解要占很长的时间,在这段时间里,学生动手的机会很少,很难建立起对该类语言的印象,而且到后期能够动手操作的时候这部分内容基本上又都忘了,还需重新加深印象。另外,教师讲解时间过长,容易使学生产生厌学情绪。有鉴于此,在讲解这部分内容时,我们可以结合后续的知识,比如讲解数据类型的同时,可以结合输入/输出语句同时进行,针对每种数据类型告知学生如何输入,如何输出,并结合实例进行大量练习。一般的教材都将输入/输出语句的讲解设置在数据类型之后,学生经过数据类型的练习后,再接受输入/输出这一章的学习时就很轻松,老师仅做一个总结就可以了。一般来讲,每一种语言都有一个程序的框架,首先要知道这个大的框架,然后才能向其中添加自己的代码。所以讲解的顺序应该是最简单的程序,可能只由几行代码构成,甚至可能就是一个程序的框架,加上一些简单的输入/输出语句。由此循序渐进,由易到难。现时期的教学模式可以从以教材章节为中心向以项目为中心来转变。教学中虽然不严格按照教材的章节顺序讲解,但是项目的选择也不能过于随意,要能够覆盖教材的知识点,而且能够符合学生的认知规律。在项目中讲授语法知识,直观不抽象,入手才会比较快。2)双项目驱动。课上可将一个项目作为主线,比如学生信息管理系统,从这个系统的功能构成一直到每种功能的具体实现都和学生共同完成,课下再以图书信息管理系统为主线,让学生仿照课上的实现过程自己设计。在这种思路下,仍然要打破传统教材的讲解顺序,比如在学生信息管理系统中,介绍完程序设计的基本方法后,可以确定出本项目的主要功能模块。如果是C语言课程,就给学生确定出主要函数的框架,但这并不意味着要给学生介绍完整个函数一章的内容,只需告知学生程序是要分模块设计的,不讲函数的实现细节。然后再一个模块一个模块地加以实现,其他语言的讲授与此类似,期末时,学生便学会了两个项目的开发。语言类课程可以使用相同的项目,比如学生信息管理系统和图书信息管理系统,但在完成时可以采用不同的形式,一方面使学生对该项目的功能烂熟于心,另一方面又能对比每种语言的不同点及优缺点,进一步加深印象。3)听看抄改写。教授课程采用“听看抄改写”五部曲方式,听教师讲解,看老师的操作,学生动手抄写程序,学生模仿老师的操作自己动手实现,学生仿照已实现的程序改写。以期达到举一反三,多多练习的目的。其中增加了一个“抄”的环节,一方面,现在计算机资源的利用率很高,学生很少有机会手写程序,所以一旦需要手写程序时(比如面试)就无从下手;另一方面,学生通过手写程序,确实可以加深很多印象。这五部曲中“听看”固然重要,但“抄改写”占的比重更大,老师通过了解学生动手过程中出现的问题总结经验,发现学生对哪些问题已掌握,哪些问题还不熟悉,还不了解,还需要深入讲解,以便加强练习,做到每一个练习都是有针对性的,使学生更快更好地掌握所学的知识。

3转变教学重心

传统方式下,每节课基本上都以教师讲解为中心,经过上述课程教学模式的转变之后,很容易使教学重心也发生转变,即以教师讲授为中心向以学生学习为中心转变,比如上述“抄改写”的比重和“听看”的比重相近,学生动手操作的机会增加,能力增强,积极性自然也就高涨。教师也从一节课不停地讲解中解放出来,留给自己更多的时间观察学生,留给学生更多的时间锻炼自己,学生和教师共同查缺补漏,共同完善教学。在教学过程中,应尊重学生的差异性和多样性,并采取有效的措施因材施教[4]。转变教学重心还要以提升学习兴趣为基础。在入门阶段,为了吸引学生的注意力,激发他们的学习热情,使用的程序尽量具有一定的趣味性,可以是一个简单的小游戏,比如第一节课就让学生自绘简笔画。再如简单的猜数字游戏,两人一组,一个学生做,另一个学生玩。后期,随着学生能力的提高,可以使用越来越复杂的程序,以培养能力为重心,开拓学生的创新思维,学生在已知程序中学习到该语言的基本语法后就可以按照自己的思维给出更具创意性的设计。在课上学习基本语法时,也可以多做游戏,比如教师给出一个关键字,一个学生比划一个学生猜,再比如“跳跳跳”等小游戏。

4辅助工具建设

4.1课程网站建设笔者结合自己多年的教学经验总结出:采用传统教学模式与网络相结合,会收到良好的效果。建立课程教学网站,上传课件、工具、学生作品等,同时提供讨论区、留言板,方便学生之间、师生之间的交流,定期优秀的学生作品,给其他同学提供榜样和思路,通过这种手段来达到提高学生动手能力,激发学生的学习热情和兴趣。4.2其他教学工具的使用从专门为学生开发的仿真教学系统的使用中可以得出结论:在上述教学手段的基础上,可再开发一些辅助教学工具,如点名系统、速度测试系统、习题自测系统、仿真系统等。另外,还可以增加一些视频案例以增强学生的认知和提升学生的兴趣[5]。4.3多种考核方式提供多种考核方式,侧重考查学生的动手操作能力、创新思维能力。鼓励学生自主设计程序,对于好的程序作为优秀作品在全班展示,并为下一届学生留存[6],提供更多学习经验。

5结语

高校计算机专业会开设很多语言类课程,这些课程中有些是学科基础课,有些涉及学生今后的专业方向,因此每门课程学习的好坏都有可能影响到后续课程的学习,尤其像作为学科基础课的C语言,这门课学习好了,后续课程的学习就会比较容易。因此,对这些课程亟需转变传统的教学模式,笔者根据多年教学经验总结出一些教学转变的思路,并开发了相应的辅助教学工具:如习题自测系统、仿真教学系统等,经过实践后都取得了很好的效果。

程序设计篇5

一、对简易程序作用及其局限性的思考

1982年《民事诉讼法》(试行)和1991年《民事诉讼法》中都规定了简易程序。2003年,最高人民法院颁行了《关于适用简易程序审理民事案件的若干规定》(以下称《若干规定》),试图扩大简易程序的适用范围。这种司法导向的形成,一般认为是基于两方面原因:一方面,我国的民事案件在上个世纪90年代后呈快速上升趋势,现有民事诉讼程序(即普通程序和简易程序)不足以应对日益增多的案件数量,这是司法机关不得不考虑更多地采用简便的程序审理案件的现实压力;另一方面,则是源于司法实务部门认识到简易程序具有的区别于普通程序的独特价值,即普通程序注重程序正义和实体正义二元价值,往往为追求实体正义,遵循严格的程序而花费高额诉讼成本和司法资源,相比之下,简易程序在不损害基本实体正义的基础上,简化了诉讼程序,有利于满足当事人及时解决纠纷的要求,从一定意义上说,简易程序的程序正义价值具有相对性的特点。

由于我国处于社会转型期和矛盾多发期,法院受理的案件迅速增长。最高法院公布的数据显示,全国法院在过去五年中受理的民事案件数量每年都增加20%左右,2010年已经突破1000万件,而法官数量并未明显增长,在某些经济欠发达地区甚至还有所减少,司法资源全线紧张。面对这一现实,最高法院在不同场合一再强调法院面临的压力之一就是群众日益增长的对司法的需求与司法服务难以应对之间的矛盾。21世纪初,全国法院适用简易程序审理的案件比例平均达到70%左右,个别地方甚至达到90%。与普通程序相比,简易程序已经成为我国民事诉讼制度中最为普遍适用的诉讼程序。同时,上述数据也表明,我国民事诉讼具有大部分案件标的金额较小、双方当事人对案件事实争议不大的特点,简易程序因其具有程序简便、成本较低的优势,也为当事人所接受。按照上述比例,在1000万件民事诉讼案件中,如果有70%的案件适用简易程序审理,则意味着大约有700万件案件排除了对普通程序的适用。立法之初,全国人大法律工作委员会设想的适用简易程序审理的案件,应该占全部案件数量的15%左右。但是,实际的适用结果大大超出立法者的设定,使简易程序成为主要的解决民事纠纷的诉讼程序。正是基于这样的现实,最高人民法院为了推动诉讼程序的进一步简便化,在简易程序基础上试行了简易速裁程序和小额诉讼程序,并且收到了较好的效果。但是,司法实践的成果要总结归纳并上升为法律,仍然需要做进一步的讨论,这涉及简易程序与小额诉讼程序的定位和制度安排等问题。实际上,速裁程序和小额诉讼程序的试行正是基于简易程序本身存在种种问题而进行的实践探索。

不少学者将简易程序存在的问题归结为以下几个方面:

(一)我国《民事诉讼法》关于简易程序的法律规定存在缺陷

现行《民事诉讼法》涉及简易程序的规定仅仅有五个条文,最高人民法院2003年9月10日出台的《若干规定》,规定了更为灵活简便的程序操作方式。可是,在案件适用范围和对象问题上,仍然缺乏恰当的规定,这就使得很多案件,即使当事人协议选择适用简易程序,但由于法律规定的缺失,简易程序的适用实际上基本上委之于法官的判断。

(二)目前的制度设计不尽符合我国民事诉讼的现状

按照立法者的设想,简易程序的优点在于简便性和迅速性,因此在时间的安排上应该尽可能根据当事人的选择和案件的实际情况予以缩短。现行《民事诉讼法》关于简易程序案件适用3个月审理期限的规定,对于一些有一定复杂性的案件或许适用,但是对于小额案件则明显过长。因此,在简易程序中难以解决如何根据当事人的要求和案件的具体情况进一步缩短审理时间的问题。

(三)简易程序与普通程序之间转换的任意性

按照最高法院的司法解释,简易程序和普通程序在一定条件下可以转换。最高法院《若干规定》第三条规定:“当事人就适用简易程序提出异议,人民法院认为异议成立的,或者人民法院在审理过程中发现不宜适用简易程序的,应当将案件转入普通程序审理。”这就是说,在满足该条规定条件的前提下,简易程序可以向普通程序转换。即:第一,当事人提出异议,法院认为异议成立的;第二,法院审理过程中认为案件不适合用简易程序审理的。很显然,该条规定的条件过于“简易”。容易造成简易程序过于随意地转换为普通程序,实质上为案件审理程序的“非简易”埋下了伏笔。

(四)简易程序“普通程序化”

简易程序与普通程序的最大区别是,简易程序采用独任制,普通程序采用合议制,简易程序的审理期间原则上为3个月,普通程序的审理期间原则上为6个月。但是在其他方面,例如法庭调查、证据收集和证明、诉讼费用的负担、上诉期限等方面,立法机关和司法部门并没有对两种程序作出明确的区分,实际上简易程序并不彻底简易,反而由于程序事项的繁缛而与普通程序难以区分。

上述问题的存在一方面使法院的审判压力没有得到实际的减轻,另一方面出现群众即使将小额案件诉至法院,法院由于案件数量多、程序复杂而难以迅速审结的问题,导致群众不愿行使诉权或者不能就小额的、简易的纠纷案件获得及时裁判,这就是我国立法、司法和理论界普遍关注的小额诉讼当事人诉权及其保护问题,它与当事人宪法上的权利直接相关。

二、利用小额诉讼程序的权利与宪法的关系

在小额诉讼程序的设置上,如何根据我国的国情,即国家如何基于自身拥有的司法资源向具有司法需求的群众提供相应的法律服务,是我们必须考虑的问题。如果我们仅仅认为诉权的行使完全取决于当事人的意思自治,只要按照法律的规定受理和审理并作出裁判即可,则这种认识与我国宪法和法律关于保护当事人诉权的规定精神相去甚远。那么,小额诉讼程序究竟与宪法存在何种关系?

(一)小额诉讼程序涉及当事人诉权保护问题

一方面,从各国的情况看,各国是否在宪法中规定诉权并不一致。日本宪法第32条规定:任何人皆享有接受审判的权利不得剥夺。美国等国家虽未在宪法中明确规定公民的诉权,但或可由宪法有关条款推导出来,或由宪

法判例等方式确认。另一方面,在国际条约和公约中,关于诉权的规定却是十分明确的。《世界人权宣言》第8条规定:“任何人当宪法或法律所赋予他的基本权利受到侵害时,有权由合格的国家法庭对这种侵害行为作有效的补救。”《联合国关于公民权利与政治权利的公约》第2条第3项也明确规定:任何人在其权利与自由受到侵犯时均享有有效的诉讼救济。

我国传统法律观念、法律规定和司法实践实际上是把诉权理解为狭义的、仅仅由诉讼程序法规定的权利加以理解的,并未认识到诉权与审判权之间的关系,更未明了诉权与审判权的相互作用。正因如此,我国学者多认为我国宪法未对诉权作明确规定。我国在2004年修改宪法时规定了国家对人权的保护。作为人权的一个重要组成部分的诉权虽然没有在我国宪法中具体规定,但是,在人权的框架内,诉权作为宪法性权利的特征可以通过对立法精神的解释加以突出。我国《宪法》第三十三条明确规定公民在“法律面前人人平等”。这与联合国人权公约规定的任何人在其权利与自由受到侵犯时均享有有效的诉讼救济的含义是相通的。在宪法规定的“法律面前人人平等”原则下,如果每一个人一方面享受着诉权,另一方面却因为种种原因不能行使诉权,这将意味着宪法规定失去了实际意义。因此,保障公民能够在发生纠纷时平等地行使诉权,是民事诉讼程序规则设置的重要目标和任务。

由于社会经济发展不平衡等原因,并非任何法律规定的权利,包括诉权都能够均等地由每一个人实际行使。其中部分原因正是我们的诉讼程序制度未能设置适合于公民根据纠纷实际情况及时有效地选择利用的诉讼程序。宪法和法律规定的获得裁判的权利,或者“法律面前人人平等”的权利,在诉讼程序的利用上却并不真正平等。为此,最高人民法院、最高人民检察院的相关司法解释,都特别关注公民的诉权保障问题。因而,小额诉讼程序的设置,在诉讼制度的安排上将为公民行使诉权提供有利的平台,其意义在于通过程序的多元安排,保证享有诉权的当事人能够在发生纠纷时,根据纠纷的实际情况选择符合自己要求的程序,“多、快、好、省”地实现自己的合法利益。这就是保护小额诉讼当事人诉权所具有的宪法意义。

(二)小额诉讼程序涉及当事人经济利益保护问题

从各国规定和我国关于小额诉讼程序的讨论看,小额诉讼程序主要适用的对象范围为“钱债”纠纷,直接涉及当事人的金钱等经济利益。可是,如果仅仅用经济利益这一抽象的概念来理解,这类案件所涉及的显然会让人想到仅是私人的利益。但实质上经济利益是与个人的财产密切关联的。究其原因,经济利益一旦确定其归属于个人,即具有财产的性质。如此一来,宪法关于保护公民财产权利的规定就具有了非同寻常的意义。如果纠纷不能有效利用社会救济手段(当然包括诉讼手段)得到及时有效的解决,其结果必定使纠纷当事人遭受经济利益丧失,从而导致财产的损失。在我国当今社会状况下,同样的财产的损失对于持有不同财产的人的意义是不同的。有的人家财万贯,特定财产损失无关紧要。有的人家贫如洗,微小的财产损失都可能导致其生活无以为继。所以,不能仅仅根据纠纷涉及金额的多寡来简单判断小额纠纷案件的意义所在,而应该从宪法关于财产权保护的角度来加以解释,小额诉讼程序与《宪法》第十三条关于“公民的合法的私有财产不受侵犯”的规定具有内在的紧密的联系。

(三)小额诉讼程序涉及人格尊严问题

我国《宪法》第三十八条规定:“中华人民共和国公民的人格尊严不受侵犯。”人们对人格权的理解往往与精神、道德、尊严关联。总理在2010年十届全国人大第三次会议上所作的《政府工作报告》中提出“要让人民生活得更加幸福更有尊严”,中央在“十二五”规划中进一步明确肯定了温总理提出的这一设想,并特别强调要加快促进消费结构升级,不断满足人民群众日益增长的物质和精神文化需求。上述阐述,实际上已经赋予人格权以新的含义:人格权的实现,在法律上必须使人享有能够对影响诉权和财产权的纠纷迅速加以解决的权利。在涉及小额诉讼程序问题上,人格权具有两层含义,其一是小额纠纷涉及的不仅仅是标的物的价格问题,还涉及纠纷形成和解决的社会机理问题,事情虽小,意义重大;其二是小额纠纷直接冲击的是当事人之间的权利义务关系,但是其深层却是当事人立世做人的尊严问题。而这两者,毫无疑问,都与我国宪法关于人格权、名誉权保护的规定不可分割。所以,尽管小额诉讼程序处理的是小额欠钱债纠纷,其背后的人格因素必定要考虑到其中。试想:一个连法律规定的诉权和财产权都难以得到保护的人,何谈其法律上的人格尊严?

可见,小额诉讼程序与公民诉权、财产权、人格权的保护和实现均有密切关联,从宪法角度解释设置小额诉讼程序的意义,对于统一认识,认真设计和安排相关制度具有重要意义。

三、宪法原则下小额诉讼程序的制度设计

在小额诉讼程序的制度设计上,应该考虑如下问题:

(一)对小额诉讼程序利用比例的理性预期

从我国的司法实践看,现有的简易程序已经处理了相当数量的小额纠纷案件。据统计,1992年至1999年,全国法院受理一审借贷纠纷案件和借款合同纠纷案件年均增幅达16.5%,而同期支付令案件的比重却大幅下降。1992年至1999年,全国法院适用简易程序审理的民事经济案件占同期审结的一审民事、经济案件总数的76.4%,而同期适用督促程序的案件与之相比却明显下降。其中,前者具有钱债因素的案件占有相当比例。从日本的资料看,日本通过简易法院和家事法院审理的案件超过全部民事案件的60%,其中相当比例案件系适用小额诉讼程序审理。可见,对小额诉讼程序的利用比例应该有准确的预期,不能再如当初设计简易程序那样,简单地设定20%以下的数值。

(二)对司法资源的正确评估

鉴于小额诉讼程序由基层法院适用,因此有必要对我国基层法院的法官数量情况做全面的把握。由于缺乏基层法官数量的数据,笔者只能根据2009年全国法院法官数量的数据加以说明。2009年我国法官数量为24.9万,审结民商事案件10551749件,人均42.4件。考虑到刑事、行政法官以及并不直接从事审判工作的法官也包含在其中的因素,如果将法官的人数进一步精确到直接审理民商事案件的法官,这一数量将会有所增加。由于基层法院审理了80%以上的案件,基层法官占了法官队伍的80%以上,相同数量的法官从事小额诉讼案件的审理,其审理的案件总数必然会大大上升。按照适用简易程序的案件占60%计算,有600多万件案件通过简易程序审理。如果其中有30%的案件符合适用小额诉讼程序的条件,就意味着有180万件案件可以适用小额诉讼程序审理。增设小额诉讼程序有利于进一步提升司法机关解决纠纷能力,保障小额诉讼案件当事人的诉权,有效利用现有司法资源。

(三)小额诉讼程序的独立性和结合性

作为对比,本文前面就简易程序存在问题及其局限做了简单阐述,从中可以看出,简易程序在制度设计和实际适用上,基本遵循的是“简易从属普通”的原则,以普通程序作为基础。由此导致除了某些程序差异外,简易程序呈现“普通程序化”特征,这与制度设计实际上并未把简易程序作为独立程序有关。有鉴于此,笔者建议,在设计小额诉讼程序时,应当全面规定程序规则,实现程序的彻底独立,同时作为例外有条件地保持与普通程序的衔接。

(四)关于小额诉讼程序的结构特征和适用范围

这涉及三方面问题:一是小额诉讼程序、应诉方式的简便化。换言之,尽管是在民事诉讼这一“严格”的诉讼程序中进行,小额诉讼程序仍然可以保持其“非正式诉讼”的特征。二是在小额诉讼程序适用的案件限定于“钱债”纠纷的前提下,应该通过确定具体的“小额”来明确案件的范围,如可以在一定数额幅度内,授权高级法院根据本辖区情况制定适用小额诉讼程序的案件诉讼标的数额,报最高法院批准。同时,为了避免由于小额诉讼程序的简便迅捷而出现当事人滥用程序的问题,有必要对当事人在一定期限内的利用次数或者具体理由做适当限制。三是在程序选择和程序救济途径方面尊重当事人的选择权,同时,为了保证小额诉讼程序的“迅捷性”,可以考虑参照《仲裁法》的规定,在当事人协议同意的前提下保留一定的程序强制性。建议在采取一审终审制度的基础上,设置适当的救济途径,如允许当事人在一定期限内以一定理由提出异议,也可以允许当事人协议放弃异议权利。

四、构建我国小额诉讼程序的具体建议

基于上文的分析,笔者主张在我国民事诉讼法中规定专门的小额诉讼程序,作为与简易程序、普通程序并列的第一审程序制度。在适用法院方面,由基层法院设立专门的小额法庭以及由基层法院派出法庭适用小额诉讼程序审理小额案件,有利于满足小额案件当事人对于诉讼成本和诉讼效率的特殊需求,便利于当事人及时行使小额案件的诉权。

小额诉讼程序的适用案件范围是此次立法过程中争议的焦点之一。目前主流意见似乎是将小额程序限制于一定数额以下的钱债纠纷。对此,笔者持有一定异议。小额钱债纠纷固然具有法律关系较为清晰、是否适用于小额诉讼程序易于判断等特点,但是并不意味着其他纠纷对小额诉讼程序的适用没有需求。根据笔者了解的情况,在申请再审案件上提一级后,大量的小额案件和相邻关系、劳动争议、婚姻家庭等适宜由当地法院处理的案件都上提到高级法院审查,不仅极大地增加了高级法院的审判压力,而且大大增加了此类案件当事人行使诉权的成本。有的案件争议标的并非金钱,但与其耗费的司法资源相比又显得及其微小,如某些相邻关系纠纷等。从程序的整体设计和前后关联角度考虑,建议在确定小额诉讼程序的适用范围时,采取一定数额以下的纠纷强制适用、特定类型或者一定数额以下的纠纷允许当事人合意适用、某些类型案件禁止适用的灵活方式,在诉讼的节约便捷、尊重当事人的程序选择权和保证特定类型案件实质正义三方面需求之间求得适度的平衡。在强制适用小额诉讼程序的案件标的金额确定方面,建议立法采取规定上限幅度的方式,由各高级法院根据本辖区经济发展和居民收入水平提出建议,报经最高法院批准,并报立法机关备案予以确定,以适应我国各地经济发展水平不平衡的实际情况。

在诉讼管辖方面,是否有必要对小额诉讼案件进行特殊规定值得探讨。有学者建议区分当事人的类型适用不同的管辖原则,对于双方当事人或者原告为法人和其他组织的,适用“原告就被告”的一般原则,对于原告是公民,而被告是法人或者其他组织的,则适用“被告就原告”的管辖原则。其原因在于小额诉讼案件标的金额或者争议较小,如果仍然适用“原告就被告”的一般地域管辖原则,则权益受损的当事人因考虑到诉讼成本的支出,往往选择放弃诉权的行使,从而在事实上剥夺其诉权。此种观点有其合理之处,但根据当事人类型的不同,对于同类案件适用不同的原则确定管辖法院,似乎与民事诉讼管辖法院应当具有明确性和确定性的要求不尽相符,也不符合民事诉讼的平等原则。笔者建议,小额诉讼案件的管辖确定应当与其他类型案件遵循相同的原则,同时,可以通过允许请求判令败诉方当事人承担对方合理诉讼支出的方式,保障当事人的诉权行使。

关于小额诉讼的审级制度及其救济程序,在小额诉讼程序应当适用一审终审已成共识的基础上,目前主要争议在于应当给小额诉讼当事人设置何种救济程序,是通过提出异议的方式进行救济,还是通过赋予当事人申请再审权利的方式进行救济。笔者认为,两种方式的主要区别在于小额诉讼案件的裁判是否一经作出即发生法律效力,如果允许当事人在一定期间内提出异议,则裁判必然需要经过该异议期间才能得以确定,而这与小额诉讼案件对于争议解决快捷性的需求并不相符,也为某些当事人拖延诉讼提供了合法途径。相较而言,笔者建议采用申请再审的方式为当事人提供救济。其主要考虑在于,采取允许申请再审的方式,意味着小额诉讼裁判一经作出立即发生法律效力,当事人可以据此申请执行从而迅速实现权利,同时,由于只有在符合再审事由时才启动再审,只有少部分案件才能进入再审,有利于保障裁判的稳定性。与此相适应,建议把不服小额案件裁判的申请再审作为“申请再审上提一级”的例外,规定当事人应当向作出生效裁判的法院申请再审,避免小额案件仍需由上一级法院进行再审审查所形成的对其程序独特价值的减损和抵消,节约当事人的诉讼成本。关于向原审法院申请再审是否能够保证审查的公正性和质量的问题,笔者认为,小额案件大多为法律关系简单、争议标的额较小的案件,在采取一审终审后,即使个别案件出现错误,在明确规定应当另行组成合议庭审查再审申请的基础上,通过基层法院的审判监督程序完全可以进行监督和纠正。一审终审加申请再审的程序设计,既有利于保证审理程序的简便快捷和合法权益的及时实现,又有利于从实体和程序两方面对于小额案件裁判进行监督,保证诉讼公正。

关于具体程序设计,小额诉讼程序应当尽可能简化程序,便利于当事人诉讼。在和答辩方式上,可以采取更为简便的表格或者口头记载于笔录的方式,可以采取电话、短信、电子邮件、捎口信、邮寄等任何能够通知到对方当事人的方式进行传唤、应诉、答辩。在审理方式上,除开庭审理外,应当允许在当事人同意的基础上书面审理。在裁判方式上,可采用格式化裁判文书,或者在当事人同意情况下不载明裁判理由直接载明裁判主文即可。在审理期限上,建议规定30日以下的审理期限,双方当事人申请延长审限的,可以延长15日,延长后仍不能审结的,则转入普通程序审理。同时,由于小额诉讼程序绝大多数没有律师,而此程序具有与简易程序和普通程序诸多不同的特点,适用一审终审,因此,应当更为强化小额诉讼案件审理法官的释明责任,要求法官就案件事实查明、举证责任分配、诉讼程序推进、当事人诉讼权利义务向当事人充分释明,共同促进小额案件审理程序的公正、快捷。

五、结语

程序设计篇6

程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。

程序设计的基本概念有程序、数据、子程序、子例程、协同例程、模块以及顺序性、并发性、并行性、和分布性等。程序是程序设计中最为基本的概念,子程序和协同例程都是为了便于进行程序设计而建立的程序设计基本单位,顺序性、并发性、并行性和分布性反映程序的内在特性。

(来源:文章屋网 )

程序设计篇7

关键词:大工程观;VFP程序设计;课程建设

高等学校的计算机教育,特别是非计算机专业的计算机基础教育,在很大程度上决定着未来社会人们应用计算机和信息化技术解决自身领域问题的能力高低,所以计算机基础教学备受社会各方面的关注。Visual FoxPro(简称VFP)具有强大的数据处理能力,操作性强,数据处理的概念直观明了,非常适合非理工类专业学生计算机应用的需求。目前,“VFP程序设计”课程成为江苏工业学院全校非理工类专业学生计算机基础教育的必修课之一。我校“大工程观”理念下的学生培养目标是:一是具有工程实践能力,二是具有综合的知识背景及整体性的思维方式,三是具有职业道德及社会责任感。针对非理工类专业学生的特点,并结合“建立大工程观”和“工程集成教育”的教育理念[1],我校“VFP程序设计”课程也进行着教学改革,“VFP程序设计课程改革与实践”于2008年获得了江苏工业学院高等教育教学成果奖。

1授课对象特点和现行教育方式的问题

在学习计算机知识的过程中,非计算机专业学生,特别是非理工类专业学生的思维方式不同于计算机专业的学生。其次,非理工类专业学生往往将计算机看成一种工具而非自身的兴趣所在,更非其职业追求的目标。再次,非理工类专业学生有着不同的专业背景,将来会从事各行各业的工作。

一般针对非理工类学生的程序设计教学方式仍然是“传授知识”型的,学生处在被动接受知识的状

态,缺少自主思考,通过教学过程获得的知识在不长时期内可能就会淘汰殆尽。课程考试大多以闭卷笔试为主,一张试卷就决定学生的成绩,也在很大程度上导致学生注重课本理论知识而轻实践的状况。

“大工程观”的教育理念是明确人才培养的服务面向,把主要精力用于工程应用型人才的培养上[2]。非理工类专业学生学习计算机是为了学以致用,提高运用计算机解决实际问题的能力,同时能自觉吸收新知识、新技术,并注重用计算机解决学习、科研和生活中的实际问题,不应把大部分时间花在理论知识的学习上。

2大工程观理念下的课程建设

2.1教学团队建设

建立一支具有较高政治思想素质和业务素质的教师队伍,是进行课程建设和提高教学质量的基本保证。教学团队建设的目的是为了广泛调动广大教师本科教学的积极性,形成优秀人才的团队效应,确保教学质量不断提高。教学团队建设的指导思想是实施人才强校战略,强化一线教学队伍建设;提高师资队伍的整体素质,优化教学人才结构,推动教学内容和方法的研究与改革,促进教学研讨和教学经验交流;推进教学工作的老中青相结合,发挥传、帮、带作用,加强青年教师培养,促进教学队伍建设的可持续发展。目前,“VFP程序设计课程”教学团队是江苏工业学院校级优秀教学团队之一。

基金项目:“十五”部级课题(FIB070335-A7-46)。

作者简介:顾晓清(1981-),女,江苏工业学院教师,研究方向为计算机网络;杨长春(1963-),男,江苏工业学院教师,研究方向为数据库应用技术;薛磊(1969-),女,江苏工业学院教师,研究方向为数据库和数据挖掘。

2.2教学内容和课程体系改革

针对非理工类专业学生的学习需求,我们必须选择正确的教学内容,设立相应的课程体系,运用恰当的教学模式与方法,将理论与实践紧密结合,以提高教学效果和质量。

“VFP程序设计”的内容主要包括数据库技术、面向过程的程序设计和面向对象的程序设计等三大模块。它虽然是一门程序设计语言课,但又不同于其他高级语言,突出应用是在数据管理方面。所以教师应该先讲授数据库表的操作,以数据处理为主线讲授对关系型数据的组织,如数据库文件和数据表文件的建立、管理和处理,这是最典型最基本的内容,让学生树立以数据处理为中心的观念。第二,教学过程中不能单纯地将这三大模块割裂。我们建议将三大模块合理地穿插对比讲解,这不仅能使学生将所学内容前后联系起来,也有助于学生对所学知识的巩固和理解,方便理论与实践的教学安排,使学生每一次上机都有明确的实验任务。

本着以上指导思想,我们修订了本课程的教学大纲、实验大纲、考试大纲等一系列教学文件,对教师的教学行为进行规范,引导师生转换教、学的重心。经过近几年的教学实践,学生的数据处理能力有了明显提高,解决实际问题的能力有了进一步提升。

2.3教学方法与手段改革

(1) 教学中采用“案例教学”教学方法。

教学内容要结合项目所需进行讲解,让学生从完成项目的角度主动去学。“综合”和“实践”是大工程观的主要内容[3],在整个教学过程中用一个实际的管理系统贯穿始终。第一次课上演示图书管理系统,教师告诉学生这个系统就是用VFP开发的,它由几个功能模块构成,要实现这个系统需要哪些知识,对应本课程哪些章节。这样可以使学生从一开始就能明确课程的学习目的与目标,进而激发学生的求知欲望,变被动学习为主动学习。

(2) 教学中采用“任务驱动”教学方法。

每次教学活动都围绕着实现、完善这个系统组织和安排教学内容。根据当前教学主题设计并提出“任务”,针对所提出的任务,采用演示或讲解等方式,给出完成任务的思路、方法、操作和结果,引导学生边学边做,完成相应的教学任务。

(3) 在教学活动中贯穿多种方式的讨论。

这一环节设置培养学生的创造性和自主性。在

“大工程观”教育背景下,创造和创新能力是工程教育的关键。对同一个项目,实施的方法可能不同,教师应让学生在项目中发展个性,创建自己的知识结构。老师可利用课堂授课期间或网络课堂展开方法和技术的讨论。在讨论中,老师主要起牵引、组织和控制的作用,通过讨论比较,让学生从不同角度掌握该项目的解决方法,筛选解决该项目问题的最佳途经。讨论课结束时,教师根据讨论情况总结讨论内容。

2.4实践教学改革

VFP是一门操作性很强的课程,形形的命令及属性设置操作很简单,教师在多媒体教室的讲解学生都能听得懂,但是综合起来什么也做不起来,这就是理论与实践的脱节。因此要从根本上改变实验教学依附于理论教学的传统观念,形成理论教学与实验教学兼顾并重的教学理念。为突出实践教学的重要地位,我们改进了实验内容和方法。

(1) 实验教学大纲的修订和实验项目的改造。

根据教学大纲的要求,我们修订了实验教学大纲。本课程共设置25个实验项目,考虑到教学计划课时,分为计划内、计划外必做和计划外选做三种类型。这种实验安排既能满足多实验学时的教学要求,又能培养学生的实践动手能力。

另外,我们注重实验项目的设计,不仅设计了基础和验证性实验,促进学生思考,进一步巩固课堂教学效果,还设计了综合性实验和设计性实验,培养学生对知识的综合应用能力。例如,实验“数据库的设计和实现”要求学生综合运用理论知识和操作方法,建立一个完整的后台数据库;“表单综合设计”实验

要求学生运用表单控件的知识、SQL命令及编程技巧设计一个较复杂的具有统计查询功能的表单等。我们还在实验中安排了“试一试”和“思考题”等内容,避免了“按部就班、机械操作、知其然不知其所以然”的现象,促使学生在思考中完成实验,进一步拓展学生的思维空间。

(2) 开设课程设计环节。

为了更好地培养学生的综合素质,提高他们的动手能力,在“VFP程序设计”课程结束1~2周后,教师安排一周20学时的课程设计,并由专任老师指导。“大工程观”要求学生在新的教学组织里广泛地接触不同专业,并了解各专业之间的相互联系,打破了大学专业之间的隔绝状态。教师结合各专业的特点精心选题,让每一个学生独立开发一个小型的VFP信息管理系统,例如教学管理系统、人事管理系统、等,题目具有灵活性和伸缩性,不但锻炼学生的应用编程能力,还锻炼了学生的设计能力。

2.5立体化教材建设

教材是教学内容的基本载体,是教师教学的依据,是学生学习的依据。因此,结合本校学生的特点,我们已初步建成了以“基本教材+辅助教材+参考资料”三个层次组成的,“文字教材+网络教材”相结合的系列化、立体化教材体系。现已编写出版了《Visual FoxPro程序设计基础教程》、《Visual FoxPro学习辅导与上机实验》等教材,均已由清华大学出版社出版,受到广大学生及同行的好评。

此外,每一位授课教师都建有“网络课堂”,提供了“电子教案”、“多媒体课件”、“自测题库”等多媒体教学资源,供学生自主学习。学生课后利用网络资源获取教学资源,得到教师的远程指导,进行各种学习交互讨论,参加在线测试,了解自己的学习状况。2008年学校“网络课堂”建设评比中,“VFP程序设计”获得了一等奖。

2.6考核方式多样化

在课程考核中采用多种方法,对学生的知识能

力、设计能力、实践能力等进行综合评判,力求全面客观衡量教学真实水平。将平时与期末、理论与实践、学生与教师等方面结合起来,进行全方位、全过程的多元化综合考核。近年来,我们实现了统一学时、统一命题、统一考核、统一阅卷等统一。为保证试题的质量,组织教师研制了一套题型丰富、题量适中的试卷库,并定期进行更新与维护,实行试卷从试题库中随机抽取的原则。为了使考核结果真实有效地反映出教学的实际情况,提高考核结果的信度和效度,本课程考试实行全校统考、教考分离、流水阅卷。

3结语

建立适应“大工程观”的“VFP程序设计”课程还有许多工作要做,需要与其他课程进行衔接和配合,还需要不断通过深化改革。我们将对照国家和省精品课程建设的标准,在教师的教学科研水平、课程体系、人才培养的模式、学生的动手能力和创新能力培养、网络资源建设等方面加大改革力度,努力使本课程的建设再上一个新台阶。

参考文献:

[1] 赵婷婷,买楠楠. 基于大工程观的美国高等工程教育课程设置特点分析――麻省理工学院与斯坦福大学工学院的比较研究[J]. 高等教育研究,2004(6):94-101.

[2] 陈志刚. 基于工程观办学特色的思考[J]. 江苏工业学院学报,2005(4):43-46.

程序设计篇8

《C程序设计语言》是计算机及相关专业中一门重要的计算机基础课程,由于其在当今系统软件和部分应用软件的开发中具有实用性强的特点,又与硬件和程序设计环境底层的联系紧密,是当今计算机软硬件工程师应该掌握的一种基本的、比较实用的程序设计语言。它作为学生入学后第一次系统地学习与高级程序设计语言和程序设计有关的内容的一门新课程,本身就比较难;再加上其内容的庞杂、语言描述的灵活,更让学生感觉难上加难。因此对于担任该课程的老师来说,如何教好这门课程,培养学生运用C程序设计语言分析问题、解决问题的能力,是这一门课程的目的和宗旨。

二、采用案例教学,培养学生的兴趣和积极性

C程序设计是应用性很强的一门课程它既有理论又有实践,既讲方法又讲动手能力。一般来说,教材中前几章都是先介绍C程序设计语言的一些概念和基础知识,然后才介绍程序的建立和运行。这些概念和基础知识,既枯燥又比较抽象难懂。在教学中,我们打破课本原有的顺序组织课堂教学的方式的逻辑结构体系,改用从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和概念的延伸,让学生在轻松愉快的气氛中学习新知识。

案例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,而是以精选出的程序设计的案例为中心,把学习的重点放在具体案例的讲述上,把要学习的语法和概念融入到具体案例中来讲解。整个教学过程中强调在应用中学习,从而避免了枯燥的理论说教,不仅能增进学生的学习兴趣,而且对提高学生综合分析和解决实际问题的能力也大有帮助。那么该如何培养学生对C语言课程的兴趣呢?案例教学法是培养学生学习兴趣的有效途径一。

三、运用多媒体CAI课件教学,提供交互式学习环境

C语言的内容比较繁杂,我们把概念、定义等一些知识性的东西用幻灯的形式投影出来就会使课堂内容更加丰富,提高学生的注意力,节省老师板书的时间,让整堂课的效果改观。但是课堂上课件的演示也要适当,避免喧宾夺主,使学生更多地关注了形式的变化,而忽略了内容本身。相应的,课件在其他内容的处理上就要慎重了。比如算法、程序的设计,我们不是只注重给学生一个结果、一个程序,而更应该展示给学生的是一个过程,一个思想,也就是怎么样去解决这个问题。我们的重点在于教会学生掌握方法,即帮助学生学会自己解决问题,而不是帮助学生解决问题。即授人以渔,而非授人以鱼。因此在讲解这些内容的时候就不能是一张幻灯一个算法、一个程序,而应该重点介绍方法、思想,根据题目求解的过程,一步一步把结果“写”出来。

多媒体CAI课件主要包括课程内容、算法演示、在线测试、在线讨论以及资源中心五部分功能。多媒体CAI课件可以提供交互式环境供学生学习,并自动根据操作过程进行实时评价。将多媒体CAI课件和教师课堂讲授有机地结合起来,能形成最佳教学任务的综合性手段与教学方案。

四、把握课堂教学方法,提高课堂教学质量

(一)注意“互动式教学”,切记不要“自演自说”。互动式教学就是要改变老师是课堂上唯一主体形式的状况,让学生也作为主体形式参与到课堂上来。互动式教学既可以提高学生的参与积极性,还可以避免学生上课疲劳,产生注意力不集中的现象。互动式教学在形式上有老师提问,让学生上黑板演算、上教师机操作,让学生讨论等,让学生进行正误判析,解决普遍性问题,或者请有独特思路的同学演示自己的方法或程序,对比各种方法的优缺点,鼓励大家再提出新方法。实践证明,这种教学方法效果显著,课堂活跃,学生的参与程度很高。但是我们在进行师生互动方面也要注意把握一个度的概念,让课堂既要有互动的活跃氛围,也要有好的课堂秩序,使得课堂互动有序有效进行。

(二)培养学生读程序的能力。程序是C语言的本质,读程序是学习C语言入门最快,也是最好的方法。要培养学生独立编程的能力,首先应该培养学生读程序的能力。学生读的程序越多,见识的编程的思想、方法、技巧也就越多,就能更加扩展自己的编程思路,还能在某些时候把别人的东西拿来归为己用。

在培养学生读程序方面要注意循序渐进,先给学生读一些简单的、只有几行的程序,然后逐渐增大程序的复杂度。

(三)采用问题驱动法。在C程序设计语言课程中,有一些概念之间的差别和程序的设计步骤如果只通过教师讲述,学生在字面上可以接受,但在理解深度上往往难以达到令人满意的效果,如果能设计出一系列问题,让学生在实践和解决问题的过程中自己去探究和体验,情况将完全是另一个样子。另外,采用一些有趣的问题来引入对某些语句结构的学习同样有相同的作用。

采用问题驱动法,一切都要求学生自己动手动脑设计,他们在操作过程中探究和解决问题的积极性和主动性得到

了调动,从而达到了我们的教学目标。

五、加强实验环节的教学设计,辅助理论教学

C程序设计语言是实践性很强的一门课,培养学生的实践能力是教学的首要目的。因此,在授课的同时,如何引导学生利用上机实验来加强实践也是教学中的一个重要环节。C程序设计语言实验教学的目的应是:1.紧密配合理论教学,通过相关实验,帮助和加深对语句功能的理解;2.通过实验可以将各门课程学到的知识融会贯通,思考利用C程序设计语言解决实际应用问题的有效方法,从而使学生分析和解决问题的能力得到锻炼和提高。依据实验教学的目的,考虑学生的个体差异,将实验设置成不同的类型:必做和选做实验:这两类实验都是结合相关课程的教学需要由授课教师设计的;前者目的在于帮助学生掌握基础知识和实验研究方法,后者则在于培养和鼓励学生的学习兴趣、扩大知识面以及培养学生的应用能力和创新意识。从而大大激发了学生的学习热情,为其今后的学习和工作打下良好的基础。

六、结束语

上一篇:产品创新设计范文 下一篇:广告设计与制作范文