语文数字化教学案例范例6篇

前言:中文期刊网精心挑选了语文数字化教学案例范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

语文数字化教学案例

语文数字化教学案例范文1

关键词:编译原理;教学案例;相似性检测

中图分类号:G64文献标识码:A 文章编号:1673-9795(2014)04(A)-0000-00

Design of an Integrated Application-oriented Teaching Instance

in “Compiler Principle”

ZHANG Ni,YAN Di-xin,LU Wei-zhong

(School of Electronic and Information Engineering, USTS, Suzhou 215011)

Abstract: Facing to the practice problems of the lack of the "compiler principle" teaching,the paper designed an integrated application-oriented teaching instance . The instance make compiler principle course as center, and integrate using of the relations knowledge of other professional courses,and has a similar detection function which can detect similarity of the students’ project, and verify the originality of students’ project. The design and implementation of the instance are completed by different combinations and expansion of knowledge. The instance make up for the deficiencies in teaching process, and also has a certain practicality.

Key words: Compiling Principles; teaching instance; similarity detection

“卓越工程师教育培养计划”是教育部于2010年6月启动的为期10年(2010―2020年)的重大改革项目。该计划旨在培养一大批创新能力强、适应社会经济发展需要的高质量工程技术人才[1-3]。编译原理课程作为计算机专业卓越工程师培养计划中一门核心专业基础课程,在新形势下要求其教学过程必须以学生为中心,巩固理论知识,加强实践教学,注重学生创新意识的培养。

然而,由于编译原理课程教学内容不仅包含形式语言、有限自动机、正规文法、正规表达式和LL(1)分析法等理论知识,而且编译的每个阶段都包含大量的复杂算法,学生在学习过程中感到抽象和难以理解[4]。通过对国内各高等院校教学现状的调查,目前编译原理课程教学过程中存在编译教学难点较多[5],实践环节缺少实际应用背景和以及未与其他课程进行有效的融合[6]等几个方面问题。为了达到“卓越计划”培养目标,必须对现有的教学方法和手段进行改革,探讨如何将编译原理课程的理论知识应用于实践或实际项目和如何加强编译原理课程与其他计算机课程之间的联系的问题,更好地将理论知识点贯穿融合到实践教学或实际项目中。

本文在“卓越计划项目”的资助下,将案例教学法[7,12,13]引入编译原理课程的教学过程中。通过选取恰当的理论知识点,结合数据结构、面向对象程序设计等计算机专业的相关课程,设计了一个能吸引学生兴趣,实践强化的综合应用型教学案例。

1 案例设计思想及意义

在计算机专业程序设计类课程的教学过程中,学生提交作业的形式是源程序的电子文档,这为有些同学拷贝和抄袭提供了便利,不仅影响学生对课程的掌握度,还影响了老师判分的公正性。程序相似性检测技术能够对学生提交的程序设计作业进行检测,验证学生作业的原创性,帮助教师在大量的学生作业中找出相似性较高,即存在抄袭嫌疑的作业对象[11],也有利于发现学生的创新性成果。通常程序相似性检测过程由程序源代码预处理,源代码转化,相似性比较,结果检测四个阶段构成。

在设计案例时,我们用编译原理课程中词法分析和语法分析算法思想来完成代码相似性检测过程中的源代码预处理和源代码转化两个阶段,使用数据结构课程中学过的字符串比较算法(如最长公共子序列算法等)作为相似性检测算法,可以选择案例开发环境有Eclipse,VC6.0和VS2010等。

此案例以编译原理课程为中心,结合了数据结构、面向对象程序设计等计算机专业的相关课程,实现了具有程序相似性检测功能的系统。大多数学生在理解和掌握案例中给出知识点的基础上,通过对其进行不同组合来完成案例的设计和程序实现,达到教学的基本要求,基础好的学生在掌握已给出案例的基础上选择更难的知识点来设计和实现案例,学到更多知识。使学生通过一个综合案例的设计和实现,巩固了多门课程的相关知识点,弥补了课程教学中缺乏实践的问题,加强计算机相关课程之间的横向联系,培养学生的学以致用的实践能力和创新能力。

2 案例相关的知识点

案例教学法的核心是案例的设计,案例设计应该与教学内容、教学进度相适宜,能恰当地融入相关的知识点。本案例的相关知识点有:与编译原理课程相关的基于程序设计语言的词法分析程序实现方法(手工方式)和基于LEX的词法分析程序实现方法(自动方式);与数据结构课程相关的一些字符串比较算法,如最长公共子序列(LCS)算法,Halstead算法和RKR-GST算法等;以及有一定的面向对象编程基础,能使用JAVA,C++,C#等其中一种语言编写程序。学生在熟悉和掌握这些知识点的基础上进行案例的设计和实现。

2.1 词法分析程序的实现方法

词法分析程序的工作原理是,从左至右扫描源程序的字符串,按照词法规则(正则文法规则)识别出一个个正确的单词,并转换成该单词相应的二元式(种别码、属性值),以数组、链表或文本文件等形式保存,交给后续模块使用。通常构造词法分析程序有两种方法。第一种是手工方式,即根据识别语言单词的状态转换图,使用某种高级程序设计语言,如C、C++、JAVA等,直接编写词法分析程序。第二种是自动方式,即利用LEX工具自动生成词法分析程序。

2.1.1 基于程序设计语言的词法分析程序

设计的主要思想就是构造出目标语言单词符号的有穷自动机(DFA)。手工方式实现词法分析的程序的步骤分为四个阶段,第一,定义目标语言的可用符号表和构词规则,即目标语言单词的状态转换图;第二,依次读入源程序符号,对源程序进行单词切分和识别,直到源程序结束;第三,对正确的单词,按照它的种别以〈记号类别,属性值〉的形式保存在符号表( 数组或链表)中;最后对不正确的单词,做出错误处理。

2.1.2 基于 LEX的词法分析程序

LEX是一个词法分析器[8]的自动生成系统,它的输入是一个文本文件,文件的扩展名习惯用.l表示,称之为LEX源文件,该文件包含了用户定义的正规表达式以及每个正规表达式相对应的处理动作。LEX的工作原理是将源程序中的正规式转换成相应的DFA,而相应的动作则插入到输出的词法分析器中适当的地方,控制流由该DFA的解释器掌握。对不同的源程序,这个解释器是相同的。LEX最常见的版本是Flex,可以免费得到。基于 LEX的词法分析程序设计思路:编写LEX源文件,按要求抽象出正规表达式,同时滤掉输入串中所有的空格、Tab、回车及注释,最终形成.l文件。最后使用Flex编译器生成词法分析程序。

2.2 字符串匹配算法

除了数据结构课程已经介绍的字符串匹配算法(KMP算法),本案例还可以使用其他的字符串匹配算法,如最长公共子序列(LCS)算法,Halstead算法和RKR-GST算法等。依据词法分析程序的输出结果(单词符号串),利用字符串匹配算法来度量两个标记串的相似度。本案例提供这些算法的实现思想和源代码,供学生参考和进一步改进。

2.2.1 最长公共子序列(LCS)算法

LCS(Longest Common Subsequence)算法[9]即求两个字符串的最长公共子序列算法。算法的主要思想是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1序列,其对应的位置就是最长公共子序列的位置。其算法由求最长公共子序列的长度Length(l,j)和最长公共子序列LCS(A,B)两步构成。

2.2.2 Halstead算法

Halstead算法[10]以源代码中出现的操作符和操作数为计数对象,以它们的出现次数作为计数目标来测算程序容量和工作量。其基本原理是:统计每个程序段中用到的操作符和操作数,最终生成一个特征向量。操作符包括所使用编程语言的关键字、运算符和标准库名称。操作数是指程序段中所有由用户自己定义的符号串。系统为每个待检测相似性的源代码生成一个特征向量之后,再计算每两个向量之间的欧几里德距离,若两个程序段的特征向量之间的距离很小,就可以认为这两段程序很相似。

2.2.3 RKR-GST算法

RKR-GST (Running Karp Rabin Greedy String Tiling)是一种贪婪式字符串匹配算法[14],循环求取两个标记串中未被匹配部分的最大公共子串,并根据相应公式求出两个字符串的相似度。对源程序代码进行相似性检测的过程通常可分为两个阶段:第一阶段,对源程序进行词法分析或语法分析,剔除与程序结构无关的表面元素,产生标准化输出。第二阶段,采用字符串匹配技术两两比较各程序的标准化输出,进行相似度度量,求出其相似度。

3 案例设计与实现

本案例要求学生选择一种熟悉的开发平台(VC 6.0,Eclipse,VS 2010等),依照第二节中给出的基本知识点(学生需提前查阅相关资料,做好预习),通过对知识点的不同组合和扩展,如基于程序设计语言的词法分析程序+ LCS算法,基于 LEX的词法分析程序+RKR-GST算法和基于程序设计语言的词法分析程序+RKR-GST算法等,设计具有程序相似性检测功能的系统,然后编程实现综合教学案例系统。

在此,将以采用基于 LEX的词法分析程序(自动方式)来完成代码预处理及转换,使用RKR-GST算法进行代码相似性检测为例,给出设计和实现程序相似性检测系统的过程。在学生设计和实现本案例前,教师先演示这个已事先设计好的案例供学生参考,让学生对案例实现过程有一个直观的认识。本次设计具体分为代码预处理及转换、将源代码转化为标记串、RKR-GST算法实现及结果分析四个阶段。

3.1代码预处理及转换阶段

在理解有穷自动机知识点的基础上,结合第二节中给出的设计思想,设计了LEX源文件――LexScanning.l,其中自定义了一些词法规则、getToken()以及printToken()等函数,实现了词法分析功能,同时滤掉了用户源程序中所有的空格、Tab、回车及注释。如图1所示。之后使用Flex编译器将LexScanning.l文件编译生成名为CiFa.exe词法分析程序。

图1 LexScanning.l文件

3.2将源代码转化为标记串

在主程序中运行时,通过创建一个线程来调用CiFa.exe文件,进行词法分析,将用户源代码转化为标记串。

3.2.1参数设置

STARTUPINFO si;

memset(&si,0,sizeof(STARTUPINFO));

si.cb=sizeof(STARTUPINFO);

si.dwFlags=STARTF_USESHOWWINDOW;

si.wShowWindow = SW_HIDE;

PROCESS_INFORMATION pi;

3.2.2 创建线程

CString cmd = _T("CiFa.exe ")+m_file_path_1;

if(CreateProcess(_T("CiFa.exe"),(LPTSTR)(LPCTSTR)cmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))

{ WaitForSingleObject(pi.hProcess,INFINITE);

CFile file(_T("C:\\temp.txt"),CFile::modeRead);

……

dwFileLen=file.GetLength();

pBuf=new CHAR[dwFileLen+1];

pBuf[dwFileLen]=0;

…… }

3.3 RKR-GST算法

两个程序段之间的相似性即为它们对应的标记串之间的相似性。可将每个标记串看成由若干个子串组成,那么两个标记串中相同的子串就是它们的公共子串,其相似性可用所有公共子串在整个串中所占的百分比表示。公式如下[14]:

其中: | A |、|B |为token串A、B的长度。match(i,j,length ) : 在 A 中起始位置为i,在B中起始位置为j, 长度为n 的子串。Matches为公共子串集合。

案例中设计了函数void Greedy_String_Tiling (tile_type *tiles, char *A, char *B, unsigned MML) 循环求取两个标记串中未被匹配部分的最大公共子串,并根据公式求出两个token串A、B的相似度。其中参数 *tiles存放求出的所有最长公共子串,*A和*B分别来存放字符串A和字符串B,MML给出公共子串应达到的最小长度。

4 系统的测试及结果分析

准备了三个C语言源程序作为测试用例,其中测试用例一(test1.c)和测试用例二(test2.c)有少数变量名不一样和源程序的组织结构稍有差别之外,其他的内容几乎一样。测试用例三(test3.c)与测试用例一和测试用例二在内容和结构上则完全不一样。

4.1 test1.c与test2.c的比较

运行程序,点击“浏览”按钮选择要比较的两个源程序文件test1.c和test2.c,点击“词法分析”按钮输出test1.c和test2.c经词法分析后的结果,如图2所示。

图2 词法分析结果

接下来,设置相似阈值为5之后,点击“比较”按钮,则进行两个源程序的相似性比较,比较的结果如图3所示。两个文件的相似度为91.089112%,结果符合我们的预想。

图3 相似性检测结果

4.2 test1.c与test3.c的比较图4给出了test1.c和test3.c的相似性检测结果,过程与上面相类似。相似度为13.265306%,符合我们的预期。

图4 相似性检测结果

5 结语

本文给出了笔者在编译原理教学过程中使用的一个案例。该案例以编译原理课程为中心,结合数据结构、面向对象程序设计等计算机核心专业课程,将几门课程的知识点联系在一起,突出“编译原理”课程的实用性。学生在实现综合案例之前,教师通过对已实现案例的演示,让学生有对实验过程及要求有了直观的了解,促使学生设计实现出更好的具有程序的相似性检测功能系统,巩固编译原理和数据结构等课程相关的知识点,激发学习兴趣,提高学生的学习质量和效率。今后的教学研究中,我们将对该案例进行扩展,使之能分析如.net等高级语言编写的源程序代码,增加一些新的知识点,进而可供高年级学生在课程设计中使用。

参考文献

[1] 林健.面向卓越工程师培养的研究性学习[J]. 高等工程教育研究,2011,(6):5-15.

[2] 徐世军,范伟,黄贤英.面向卓越工程师培养的专业课程教学实践. 计算机教育.2013(13) 22-25.

[3] 李锋,夏小玲.计算机软件工程专业卓越计划实践教学. 计算机教育.2013(13) 18-21.

[4] 李冬梅,施海虎."编译原理"课程的教学研究与探索. 计算机教育.2008(08):10-12.

[5] 张昱,陈意云,郑启龙. 编译原理课程的教学方法和教材建设[J]. 中国大学教学,2005,(7):61-62.

[6] 计卫星,陈英等.简析计算机专业知识在编译课程教学中的渗透与融合.计算机教育. 2010(03):23-25.

[7] 秦艳琳,吴晓平.“信息安全数学基础” 案例教学[J].计算机教育,2010(01):141-144.

[8] 陈火旺,刘春林,谭庆平等. 程序设计语言编译原理[M].北京:国防工业出版社,2000.

[9] 于海英.字符串相似度度量中LCS和GST算法比较[J].电子科技,2011(3):101-103.

[10] Halstead, Howard M. Elements of Software Science[Z].Elsevier,1977.

[11] 张莉,周祖林.代码相似性检测在程序设计教学中的应用.计算机教育.2009(13):116-118.

[12] 张月琴,孙冰.案例教学法在“大学信息技术”课程中的应用研究[J].中国电力教育,2012,(25):63-64.

语文数字化教学案例范文2

内容;标准

【中图分类号】 G623.23

【文献标识码】 A

【文章编号】 1004―0463(2016)

13―0065―01

在新课程改革的大背景下,小学语文教学正在发生巨大的变化。越来越开放的小学语文课堂需要更加个性化、多元化的评价方式。档案袋评价法是一种新课程改革理念指导下的评价方法,其可以将学生的学习过程中技能进步与知识累积下来详尽地进行评价,促进学生终身发展。下面,笔者就档案袋评价法在小学语文教学中的应用谈些自己的看法。

一、设定小学语文档案袋评价的目标

档案袋评价法与其他评价方法的最大差异就是其拥有十分灵活的评价类型。不同类型的评价方式,档案袋中内容的组成部分也是不同的。实施档案袋评价法最为基础的就是要设定评价目标。根据小学语文的特点,教师可以为档案袋评价设定下列目标:1)档案袋中累积的资料要让学生意识到自身在哪些方面持续地改善,从而提升学习自信心。2)档案袋评价要与学生的语文学习相联系,直接展示学生的进步与存在的问题,以便让学生可以自我反思。3)在固定阶段后开展综合性评价,帮助教师了解学生的学习成果,以检验教学效果,给教学计划的完善与优化提供准确的依据。帮助学生更加准确认识自己。例如,在识字教学时,教师可以利用档案袋来进行“每天多认识三个字”的活动,让学生通过档案袋来将自己从广告牌子、包装袋、故事书等上面认识的新字通过摘抄后集中存放到档案袋中。教师还可以定期组织学生一同进行交流,评选,看看谁识的字又多又准。这样一来就可以满足建立档案袋的目标,让学生看到自己在识字写字方面的进步与成长,并且还可以给教师提供教学计划依据,以便教师制定更加完善的教学方案。

二、选择小学语文档案袋的内容

小学语文档案袋的内容可以包括下列几个方面:1)小学语文课外阅读。在小学语文学习中,阅读能力是影响学生语文成绩的重要因素之一。因此教师可以将目标设定为提升课外阅读能力档案袋。档案袋的内容可以分为两个部分,分别为大家统一的资料以及符合自身学习情况的资料。大家统一的资料是每一位学生都会累积的内容,通常来说都是教师统一设定的,这些内容引导着学生在课外阅读过程中培养良好的阅读习惯与阅读原则。而符合自己学习情况的资料则是学生根据自己的学习情况来选择的,其目的是为了展现每一位学生的自我个性,让学生可以按照自己的学习状态不断调整课外阅读方案。例如,教师可以让学生填写“阅读推荐卡”,充分发挥学生与学生之间带动与影响的作用。让学生将自己阅读过的精彩的书籍与大家一起分享,并且由学生们选择自己最期待阅读的书籍。这样一来不单单可以激发制作“好书推荐卡”同学的信心,还能够让学生关注到更多更好的书籍。2)与语文成绩记录和反思相关的内容。为了展现学生在语文知识与技能方面的成长情况,教师可以搜集记录学生作业表现,选择每次考试试卷以及订正正确答案的记录纸、语文错题集等作为语文成绩记录与反思的资料。

三、制定小学语文档案袋评价标准

语文数字化教学案例范文3

关键词:自主学习;在线判题智能辅导;C语言

中图分类号:G434 文献标志码:A 文章编号:1673-8454(2017)07-0086-03

一、引言

C语言程序设计是一门实践性很强的课程,在教学过程和学生的自主学习过程中,都需要通过大量的练习题来巩固所学知识、检验学习效果。很多C语言课程教学平台和自主学习平台也提供了大量的题目(主要是编程题)供学生练习。由于学生数量众多,学习时间也不一致,教师很难及时为每位学生所做的题目进行评价并给出针对性的指导。

目前一些教学实践过程中采用在线判题(Online Judge)系统进行自动评分。[1][2]在线判题系统大多采用测试用例的方法进行判断,即编制若干组测试用例,模拟运行程序,将数据输入程序,并将输出结果与预期结果进行匹配,如果完全匹配成功判对,否则判错。这种方法能够很直观地判断学生程序的对错,对促进学生提高实验水平也有很大帮助,但这种判断方法并不能完全适用于学生自主学习的场景。

(1)在线判题的前提是必须保证程序能够运行。而学生(尤其是初学者)编写的源程序可能存在个别语法错误而不能通^编译并生成可执行文件。这些程序不能得到分析评价和针对性辅导。

(2)输出结果与预期成果进行文本匹配来判断对错的方式,使一些只在输出格式上有错误的程序判断为错。程序中某些数据类型的精度问题也可能导致输出结果有误差,从而导致判断为错。

(3)目前的在线判题系统只能对题目整体进行判断对错,不能具体定位到程序出问题的部分并针对学生的错误进行辅导。

自主学习过程中,很多初学者可能找不到以上出错的原因,而浪费了很多学习时间,降低了学习效率。而在教师现场辅导时,可以很容易发现其中的错误,并可以根据其程序给出分析评价并进行指导。近年来,许多教改项目对在线判题系统进行改进,主要的研究思路有通过优化判题流程[3]、语义检测的稳定模型[4]、基于关键字和序列匹配[5]等方法,这些方法在一定程度上解决了以上问题。本文借鉴以上思路,结合测试用例、编译系统、结构分析法等设计了一种在线分析及辅导系统,可以用于应用C语言教学平台及自主学习系统,经过测试,在线分析和辅导系统可以模拟教师现场指导,从而提高学生学习的效率。

二、系统设计

基于对在线判题系统优缺点的分析,本系统采用以下原则进行设计:①系统基于成熟的在线判题系统,采用测试用例法对学生提交的源程序进行初步分类。②对于初步分类为错误的程序再采用编译分析、结构分析等方法进行进一步分析。设系统整体流程如图1 所示。

整个系统分为四个部分――测试分析模块、编译分析模块、结构分析模块、辅导模块。

首先对源程序进行编译链接,如果编译成功,可以生成exe文件,调用测试模块进行测试。如果编译不成功,则需要对源文件进行进一步分析。①调用编译分析模块解析程序中出现的语法错误并进行自动修正。②调用结构分析模块分析程序的结构问题。

在测试模块中,如果测试用例全部通过测试,程序判对并将此程序加入参考答案库中;如果部分通过,则进行用例分析,并调用结构分析模块分析程序,如果全部未通过,直接调用结构分析模块进行分析。针对各个模块分析、对比得到的程序问题,分类别(语法错误、格式错误、结构错误等)对学生进行针对性辅导。

三、详细设计

1.测试分析模块

测试模块首先要设置若干组合理的测试用例。测试用例需要覆盖到程序的所有结构路径。如分支结构中,每个分支至少要有1组测试用例。测试用例除了设置输入输出外,还需要设置测试用例说明,如分支结构中,每组测试用例必须设置该分支测试用例说明。

通过测试用例对程序进行模拟运行,如果测试用例全部通过,程序得满分,如果该程序的结构模块与参考答案库所有答案均不同,将该程序加入到参考答案库。如果部分通过,对未通过测试的用例进行分析,得到程序出现错误结构路径。针对部分同学的格式、数据类型精度等情况可能造成判错的问题,需要在现有的测试用例方法基础上增加容错的机制。常见的格式错误有:

多写或少写空格、制表符、回车符等符号造成的错误。格式控制串“%m.nf”“%md”未按要求书写造成的输出格式错误。

将间隔符号如“,”“;”等写错引起的错误。

在输出时多写或漏写了其他说明性文字引起的错误,比如输出变量a的值。格式输出要求“a=5”,而学生程序只输出了 5,漏写“a=”,或者要求输出5,而程序输出“a=5”。

为解决以上由于格式问题导致系统判错,需要对测试用例的参考输出结果和用户程序的实际输出结果进行归一化操作后再次进行比对,并对测试用例中的输出结果进行细化设置。

(1)格式归一化操作。对测试用例的参考输出结果或程序的实际输出中常用的控制字符如空格、制表符、换行符等为统一的间隔标记。归一化后再次进行比对。

(2)精度归一化。在编写程序过程中,由于学生用的数据类型不合适可能导致数据结果存在误差,如float类型数据在6位数之后出现的精度误差,需要对学生提供的源程序数据精度进行归一化,统一为精度较高的数据类型。

(3)输出结果的细化设置。在《C语言程序设计》课程中,编程题输出结果一般可分为“说明性字符串”、“计算型数值”、“间隔符号”等三大类,其中核心为“计算型数值”。在设置测试用例参考答案时分别细化标记三类输出,在进行结果比对时按照“完全匹配―>计算性数值匹配―>间隔符号匹配―>说明性字符串匹配”的顺序进行比对结果。

2.编译分析模块

目前的在线判题系统,一般是在服务端使用编译工具对用户提交的源程序进行编译链接,如果能够编译通过,进入测试用例模块进行测试。如果不能通过,则进行报错。编译系统所报的错误基本都是针对源程序中存在的语法错误,有的指示位置有偏差,有的错误是由前面的错误引起的,有的描述不直观,对初学者查找错误造成很大的误解,不能直接对学生修改程序起到指导作用。本系统根据教师在教学实践中的经验,将编译系统的报错进行分析,反推出源程序中的书写错误,并进行直观提示。由于每一种编译器的报错提示有差异,本文以VC6.0 编译器为例,如表1所示。

根据编译器的提示错误的顺序依次自动修正源程序中的错误后重新进行编译,如果编译成功,则重新进入测试用例模块进行测试,如果编译不成功,再次修正错误,进行编译,直至可以编译或者修正次数大于设定的阈值。

3.结构分析模块

为了分析源程序的结构,需要为每道题目设置参考答案。参考答案的要求一是要标准化,采用标准流程和通用方法解决问题,参考答案书写要求规范,并详细注释。二是要鼓励多样化思维,答案不一定唯一,应给出一种或几种参考答案,形成答案库。在判题的过程中,对全部通过测试的新答案,也要加入到参考答案库中。

C语言程序的结构有如下特点:

绝大多数C语言中源程序都可以转化为“预处理命令+若干个函数”的结构,细分到每个函数,又可以分为顺序、选择和循环3 种控制结构及其嵌套结构。[5]

关键语句。C语言有32个关键词,每个关键词往往代表一种语法结构。根据关键词,可得到关键语句序列。

即使算法相同,不同人编写的程序也可能完全不同,可能变量名不同、变量定义的顺序不同、控制结构不同(比如循环语句,有人习惯用for语句,有人习惯用while语句)等。

根据C语言程序的结构特点,将整个程序解析为若干个模块,解析顺序:①预处理命令部分。②全局定义部分。定义全局变量、全局函数声明等信息。③函数模块:根据函数模块的结构特点,经过文本分析,可以获得函数的结构,并获取函数名、返回值类型、参数列表等信息。④关键语句序列,根据C 语言中的关键字,获取函数中控制结构语句。形成关键语句序列。

通过解析程序可以得到程序结构分析结果及层次结构。如:

函数结构(参数列表)

输入语句

循环结构

分支结构

循环结构

输出语句

系统采用XML格式进行存储,并进行比对。

4.辅导模块

在自主学习过程中,学生进行测试的目的主要是发现学习的薄弱环节,并得到针对性的指导。根据测试分析模块、编译分析模块、结构分析模块得到的分析结果,针对学生程序中出现的主要问题,对学生进行针对性指导。

如果程序判定为正确,将成绩记录为满分,系统推荐下一个难度的学习资料和题目进行练习。如果未得满分,依次根据以上三个模块得到的分析结果进行针对性指导。如果为格式问题,给学生展示正确的书写格式,并为学生提供格式方面的强化指导,为其推荐格式方面的训练题目,加强训练。如果是语法错误,根据编译分析系统分析结果,给出错误提示,指出修正方法。未按题目要求编写函数,或者函数的格式不正确,强化其函数定义方法及书写格式、函数参数设置等,并提供参考范例供学生学习。结构型错误,为学生提示标准答案的结构框架及参考范例。

四、总结

本文设计了一种C语言程序智能评价及辅导系统,目前在《C语言程序设计》课程的自主学习平台中进行了应用测试,作为课程的辅助教学平台。经测试与综合分析,取得了较好的效果。

(1)本系统细化了在线判题系统判题规则,改变以往的练习系统只判断对错的模式,通过编译分析模块和结构分析模块,能更细致找出学生的错误和给出细化的建议,提高了学生学习的效率。

(2)在判题系统的基础上增加了针对性辅导的功能,学生通过自主学习系统,不仅可以检验自己的学习水平,还可以得到针对性的辅导,发现学习的薄弱环节,提高学生的学习水平。

(3)在实际运行中,也发现了系统的一些缺点,比如对个别解题思路比较特别的程序不能给出准确的解读,智能化还有待提高,在下一步工作中还要继续进行研究。

参考文献:

[1]熊茜,雷亮,许莎,陈刘奎.基于在线判题系统的C语言实验教学改革[J].重庆科技学院学报(社会科学版),2015(10):67-69.

[2]廖雪花,厉兰洁,唐思娩.基于Online Judge 的C语言程序设计实验课教学改革研究[J].计算机教育,2016(6):130-132.

[3]蒋燕敏.自动判题算法及网络考试平台研究[D].浙江:浙江工业大学,2014.

[4]晶晶,陈华,范宜标.C语言智能评分系统的开发[J].龙岩学院学报,2016(2):75-80.

[5]杨利军,董红斌,梁意文,谭成予.源程序语义检测的稳定模型分析方法[J].计算机工程,2006(15):96-98.

语文数字化教学案例范文4

关键词:高中化学;幽默语言;名人效应;谐音转化;诗歌体;谜语;数字归纳记忆

中图分类号:G633.8 文献标志码:A 文章编号:1674-9324(2014)30-0280-03

英国学者M.鲍门指出:“理想的教师应当达到艺术化的教学水平,善于利用幽默来激发学生的兴趣,使学生学得更好。”幽默的语言能让学生在愉悦中学习,在趣味中感悟,寓教于乐,开启学习化学知识的大门。幽默是化学教师的一种智慧,更是一种能力,下面我结合自己二十多年的化学教学经验谈谈高中化学教学中幽默语言的巧用。

一、巧用名人效应

现如今,“名人效应”在生活中的很多方面都产生了深远的影响,比如名人代言的广告就能够产生刺激消费的作用,名人出席慈善活动就能够带动社会关怀弱者,所以我们在课堂中也不妨请名人帮我们“代言”化学。案例1:高中化学必修1引言部分是高中化学的第一堂课,第一堂课学生将对教师产生第一印象,因此对教师来讲第一堂课非常关键。化学新课标中强调小组合作讨论学习,在介绍学习方法的时候教师不妨这样介绍:高中化学学习不能学贝多芬,要学张学友和成龙,因为化学靠“背”是不能“多分”的,只有“张”开你的嘴巴,“学”习你们小组的朋“友”,你才能“成”为学习化学的一条“龙”。案例2:高中化学必修1金属钠的化学性质,金属钠与水的化学反应现象我们通常用“浮、熔、游、响、红”来描述实验现象,为加强学生的记忆,教师可以联想为“芙蓉又想红”:“芙蓉姐姐最近又有了自杀的新闻,是不是又想红了?”芙蓉姐姐是近几年网络上一个颇具争议的人物,学生人人皆知,学生在哄堂大笑中接受了新知识。

二、巧用谐音转化

谐音转化的妙处在于将零散的化学知识点进行串联,就如同我们将一粒粒散落的珍珠串成项链,一粒粒的珍珠难以保管,但串成项链后就可以挂在脖子上做装饰品,既好看又方便保管。化学中的某些知识点通过谐音转化后也能达到同样的效果。案例3:高中化学必修1氧化还原反应的时候,我们通常将反应规律:氧化剂―得电子―化合价下降―被还原,简略写为“氧价降还”,学生从小看过不少有关杨家将的电影,可以谐音为“杨家将还”,解释为杨家将回来了,“氧”谐音为“杨”;“价”谐音为“家”;“降”谐音为“将”,“还”理解为“回来了”,一句简单的“杨家将还”让学生记住了氧化还原反应规律。案例4:高中化学必修1金属元素在地壳中的含量从高到低为O、Si、Al、Fe、Ca、Na、K、Mg、H、Ti,氧硅铝铁钙、钠钾镁氢钛,巧妙的谐音为“养闺女贴该,那家没青菜”。

三、巧用诗歌体

诗歌读起来语音和谐、节奏鲜明,琅琅上口,特别容易引起学生的兴趣,同时大大降低记忆的难度。案例5:高中化学必修1离子方程式的书写是重点和难点,特别对于哪些盐可以拆哪些盐不能拆感到非常困惑,我总结了一首诗帮助学生度过这道难关:“钾钠硝酸铵盐溶,硫酸铅钡水中留;盐酸只有银和汞,碳酸绝大都不溶。”解释为:所有的钾盐、钠盐、硝酸盐、铵盐都易溶于水,都必须拆开;硫酸盐只有硫酸铅、硫酸钡难溶于水(硫酸钙、硫酸银微溶),其他硫酸盐都要拆,盐酸盐只有氯化银和氯化汞难溶、其他盐酸盐都要拆;碳酸盐除了碳酸钾、碳酸钠、碳酸铵外都不溶。案例6:高中化学选修5,烷烃的命名:碳链最长称某烷,靠近支链把号编。简单在前同相并,其间应用短线连。案例7:高中化学选修4盐类的水解规律:有弱才水解,无弱不水解;谁弱谁水解,越弱越水解;都弱都水解,同强显中性。

四、巧用化学谜语

谜语是富有中华民族特色的一种文字游戏,将谜语运用到化学课堂中大大增强了学生思维的积极性和课堂的趣味性,符合高中生思维活跃的特点,教学效果大为提高。案例8:高中化学必修1《硫酸》一课用谜语引入:一物体重九十八,性格奇特脾气大,你若不慎沾上它,包你落个大伤疤(打一化学物质)。老者生来脾气燥,每逢喝水必高烧,高寿虽己九十八,性情依然不可交。(打一化学物质)。望梅止渴(打一化学物质)。案例9:高中化学选修5《苯》一课引入:有人说我笨,其实并不笨;脱去竹笠换草帽,化工生产逞英豪(打一有机物)。

五、巧用数字归纳记忆

数字归纳记忆的妙处在于将化学记忆过程浓缩为几个简单的阿拉伯数字,化腐朽为神奇。案例10:高中化学必修1物质的分离和提纯方法过滤的操作要领是“一贴二低三靠”,简称“123”案例11:高中化学必修1离子方程式的书写步骤为:一写二拆三删四检,简称“1234”。案例12:鉴别物质的过程归纳为:一取样,二配液,三操作,四现象,五结论,简称“12345”。案例13:高中化学必修2《元素周期表》的组成:七个主族、七个副族、三个短周期、三个长周期、一个零族、一个第八族、一个不完全周期,简写为“7733111”,可以跟学生风趣地解释为这是我的新电话号码,大家请记住哦。还可以将“7733111”进一步浓缩为“731”,与日本军国主义最臭名昭著的部队731同名,强化学生的记忆。

前苏联教育家斯维洛夫认为:“教育家最主要的,也是第一位的助手是幽默。”幽默的语言能让学生在快乐的气氛中去探索、理解和掌握知识。可以使原本沉闷的课堂变得活跃,学生在笑声中学习、掌握各种知识和技能。教师运用幽默语言的趣味性来调动学生的兴趣,那是一种艺术,一种境界,一种人格的魅力。

参考文献:

语文数字化教学案例范文5

关键词:案例教学 Visual Basic 教学改革

中图分类号:G642.0 文献标识码:C DOI:10.3969/j.issn.1672-8181.2013.13.011

1 前言

高级程序设计语言是计算机类专业必不可少的一门专业基础课程,Visual Basic(简称VB)源自于BASIC编程语言,它继承了BASIC语言简单易懂的特点,采用面向对象、事件驱动的编程机制,提供了直观的可视化程序设计方法。它从1991年开始的第一版到现在,主要经历了六次版本的更新。VB提供可视化的界面设计、事件驱动的编程机制以及强大的功能,是培养学生抽象思维能力、掌握信息处理技术的重要课程[1]。因此,很多高职院校在选择计算机编程语言时把VB列为首选基础课程。

VB课程教学强调培养学生的动手能力、分析问题和解决问题的能力。在教学过程中,教师应该思考如何提高VB课程的教学质量、通过各种方法进一步培养学生的实践能力和创新能力。我校针对这些问题,在对VB课程进行改革基础上,通过实践教学和案例教学方法来提高学生的实践能力。本文主要介绍在实际案例教学过程中的点滴、经验。

2 课程改革的意义

现在大多数Visual Basic教材使用的是传统编程语言采用的教学过程,即“语言基础程序结构文件(项目)管理综合应用”。大多数的高校中采用的传统教学方法,即“基础知识常用控件(概念、语法等)控件属性、方法每个控件实例综合实验设计”。传统教学使学生能够系统的、连惯的学习、掌握知识,多年来培养出很多优秀的编程人员。但对于高职院校的这个特殊群体,传统教学过程的教学用例,服务于特定章节语法教学,往往受限于服务目标、应用深度而脱离实际应用需求,很难引起学生学习兴趣。

为了进一步探索研究教学方法,激发高职学生的学习兴趣,更好地掌握程序设计能力,我校立项“《Visual Basic程序设计》课程教学案例规划与设计”研究课题,旨在探索、设计有效的教学案例,研究、创作丰富的教学资源,以达到更好的教学效果。

3 案例教学意义

案例教学是一种以提出的问题为核心,以设计好的案例为基础,围绕案例进行讲解的教学模式,适合各种学科的教学,也是将要普及的一种教学方式。案例教学特点是,根据课堂教学目标和教学内容的需要,通过设置具体案例,引导学生参与分析、讨论、表达等活动,让学生在具体的问题情境中积极思考、主动探索,以提高教与学的质量和效果,培养学生认识问题、分析问题和解决问题等综合能力[2]。要让学生学好VB这门课程,首先要让他们产生浓厚的兴趣。在培养兴趣的同时更要尊重学生的认知规律,由易到难的组织教学,对于高职院校的学生,我们可以适当地调整教材顺序和课程进度,从实例入手,实例中既包含前面学过的知识,也包含新知识点。这样利于对旧知识的复习和对新知识的理解。通过案例演示,使学生能够通过思考和模仿,在具体的操作中形成对新概念的认识。

我校针对本校学生的特殊性,进而改变传统的语言教学方式,尝试案例教学法实现教学目标,通过培养学生学习VB课程的兴趣,调动学习的积极性和主动性,培养学生的求知欲,激发学生强大的学习动力,训练学生的思维、动手方面的能力,提高学生程序设计能力。我校采用实例按照由简单到复杂,循序渐进的学习过程,从入门级、提高级和应用级三个学习层次上制订了入门层次的“加法器”、“数字时钟”、“定时器”,提高层次的“计算器”、“文档编辑器”、“文件管理器”、“媒体播放器”和应用层次的“图书管理系统”、“动画制作”共9个教学中使用的案例。总体上要包含常用控件及其常用属性和方法,并涵盖所有的数据类型、程序控制结构、文件系统等基本语法。

4 案例教学实例分析

每一个教学案例的内容,均包括5个有序的组成模块:案例演示、学习目标、内容简介、案例分析、知识小结,这5个部分按照学习期分为预习、学习和复习3个阶段,预习阶段包括“案例演示”和“目标说明”两个模块,预习阶段主要作用是提高学习兴趣、明确学习目标、做好学习准备[3]。“内容简介”模块和“案例分析”模块构成学习阶段,这个阶段学习形式是面授教学,主要是讲解本案例所涉及知识,培养程序设计能力和编程能力。“知识小结”以及作业习题等教学资源构成了复习阶段。

下面通过案例演示、学习目标、内容简介、案例分析、知识小结五个模块对提高层次中的记算器实例进行分析。

第一步,案例演示。运行程序界面,表现形式是动画,通过自动或者半自动播放的动画,将程序运行效果形象地展示给学生;使学生通过演示界面来了解案例中各个按钮的功能,整个案例达到的效果,从而激发学生的学习兴趣。

第二步,学习目标。目标说明模块向学员说明学习本案例需要使用以往哪些知识,学习后能够掌握哪些要点以及掌握到何种程度。预习阶段主要作用是提高学习兴趣、明确学习目标、做好学习准备。

本案例中包含了新知识点框架按钮、菜单和控件数组的使用方法,同时也涉及到以前所学的基础知识,如窗体、文本框、标签、命令按钮等基本控件的使用及属性的设置,分支结构(如if语句)等。在复习、使用以前所学的知识的同时,学习新的知识,这样可以让学生在轻松愉快的氛围中快速了解并掌握框架按钮、菜单和控件数组的使用方法,达到较好的教学效果。

第三步,内容简介。总体介绍案例背景、使用范围和方法、涉及的语法、控件和技巧等内容。

分析本实例的思想,计算器案例是目的是用VB的方法来实现计算器的基本功能,简单的加、减、乘、除计算,在上图中后两个文本框分别显示第一个文本框中数字的十六进制和大写形式,数字区的命令按钮为用户输入要计算的数字,功能区中的命令按钮实现不同的运算。在编程过程中分析比较用控件数组来实现的优点。

在本案例中还涉及到多窗口,常用函数的使用,if语句,Select Case多分支选择语句,for循环语句,过程和函数的定义与调用,菜单的设计与使用等。

第四步,案例分析。侧重讲解案例程序的实现方法,以及案例实现过程中的难点。

①设计应用程序界面。

设计程序界面非常重要,外观设计要遵循“简洁、整齐、美观”的原则,使界面达到合理、美观的效果。排列形式会对用户操作的直观性和易用性产生重要影响。将控件按功能分类放置于窗体的不同的区域,使界面更加直观。在这个过程中,重点关注每个窗体的布局及窗体间的调用关系。在此基础上,按事件驱动的机制,进行代码设计,编写程序。

在本案例中包括控件有标签框Label1,文本框Text1,1命令按钮Comman1,框架按钮Frame1,菜单。

②设置属性。

对各个控件进行必要的属性设置,对学过的知识进行复习,对新接触的知识详细介绍其具体的属性及功能。用案例边设计边讲解。窗体的属性设置了名称,标签框使用了name、caption属性,分别用来设置控件名称、显示在按钮上的文本。这两个属性是有关控件的命名属性,作用是一致的。

文本框除了使用了name、caption属性,还使用了Visible属性,设置控件是否可见。命令按钮使用了name、caption属性,数字区及功能区采用的控件数组。框架按钮使用了name、caption属性,框架按钮对数字和功能进行分类,主要起控件组容器的作用,使其中的控件作为一个整体,达到界面清晰的目的。

菜单的设置,菜单中有“关于”菜单项,将弹出新窗体。通过“工具―菜单编辑器”菜单打开菜单编辑器,在其中完成菜单的设计。“帮助”菜单的调用。通过VB集成开发环境“工程―添加窗体”菜单,使用“关于”对话框模板创建一个“关于”窗体。然后在计算器应用程序“帮助―关于”子菜单的单击事件中加入窗口显示代码。

③编写代码。

根据内容简介的分析来编写在要实现计算器的功能所需要的代码,在编写代码的过程中,应严格遵循结构化程序设计的原则,尽量减少模块间的联系,模块内各语句间的联系要紧密,即“耦合小,内聚大”。

④调试运行程序。

通过运行结果来发现问题,对代码不断进行修改、调试、运行,要全面考虑到各种情况,直到达到最终要求为止。

⑤保存工程及可执行文。

第五步,知识小结。总结本案例学习中的重点,列出常见问题以及解决方案;教学资源用于使学员进行巩固所学知识,以及在已学知识基础上融会和扩展。

5 结论

我校在VB课程实践教学过程中形成了新的案例教学体系和配套教学资源。教学中更侧重于培养学生的设计能力和实践能力以及学生的独创能力和动手能力。实践证明,高职学生面授课采用案例教学,取得较好的教学效果,培养学生的程序设计能力和自学能力,案例教学在实用性和应用性上有优势。充分调动学生学习的积极性,提高学生分析问题、解决问题的能力。在程序设计方面,学生的整体水平有所提高。

当然,案例教学也有它的不足之处,在知识的系统性、连贯性上不如传统教学。因此,还有很多东西值得我们去探索和研究,我们须加强教学改革,改善、调整教学案例,进一步丰富、配套的教学资源,是今后探索的目标和方向。这样才能提高学生的创新能力。

参考文献:

[1]余华,何玉香.Visual Basic程序设计[M].北京:北京理工大学出版社,2005.

[2]孙万东.案例教学模式的课堂管理策略[M].哈尔滨:黑龙江高教出版社,2007.

[3]刘声田,裘皓杰.Visual Basic程序设计课程案例教学研究及课程教学资源建设[DB/OL].

语文数字化教学案例范文6

但在课堂教学中,有些教师的教学设计在发展学生思维能力方面还没有给予足够的关注,因此下面让我们走进不同的教学活动,通过案例分析加以说明、剖析,以寻求有效解决问题的方法。

一、Free talk,你让多少学生的思维活跃起来?

语言学习的目的就是用来交流,所以小学英语最突出的特点就是谈话较多,那怎样的谈话方式才是行之有效的,才能最大限度地开启学生的思维之门呢?让我们走进两位不同教师的课堂,来分析一下他们的谈话。

案例一:

T: Hello, boys and girls. Today I’m your new English teacher, Ms Wang.

T: Hello, girl. Nice to meet you.

S1: Nice to meet you.

T: Hello, boy.

S2: Hello, Ms Wang.

T: What’s your name?

S2: My name’s Wang Dawei.

这样的Free talk,在陌生的师生之间不存在压力,所以学生可以自由地和教师谈话,但是这种一对一的谈话,让大部分学生处于等待状态,这个环节的五分钟实效性很差,对于学生的思维培养基本没什么帮助。

案例二:

T: Hello, boys and girls. First let’s play a game. I say my news, you say yours.

T: My name’s Ms Li.

Ss: My name’s …

T: I’m 30 years old.

Ss: I’m 10/11/12 years old.

T: I’m a girl.

Ss: I’m a boy/girl.

Ss: I’m from Weihai…

Ss: I’m from…

和上面的案例相比,谈话的内容一样,只是谈话的方式发生了改变,但结果却大不相同,学生们聚精会神地倾听教师的信息,并以最快的速度作出反应,气氛热烈,学生的思维活跃,参与度非常高。

二、Warm up,你真正地热起来了吗?

“Warm up”作为小学英语教学的一个重要环节,对孩子整节课的思维状态起到了重要的作用。让我们来看看这两位教师的做法。

案例一:

在教授鲁教版三年级第二册第三单元“playground”的时候,这位教师是这样设计的:

T: Let’s do some actions. I say, you say and do.

T: Sing.(师边说边做动作示范。)

Ss: Sing.(生说英语并做动作。)

T: Dance.

Ss: Dance.

在这一活动中,学生们百分之百地参与到活动中,边说英语,边做动作,看起来很热闹。但是课后我找了几个学生来问,“今天课前教师安排了什么教学活动?”学生们大多数都很茫然,极个别学生还有一点印象。同样的热身环节我校的一位教师安排了效果完全不同的教学活动。

案例二:

T: Hello, I’m your new English teacher. This is a picture about me. You can guess and ask me some questions.

课件出示教师的照片并给出教师的四个信息点“July, Mary, doctor and 4”,让学生来猜测教师的基本信息。

S1: Is your birthday in July?

S2: Do you have a friend Mary?

S3: Do you have a baby who named Mary?

S4: Is your husband a doctor?

活动中,学生们积极踊跃地发言,思如泉涌,把教师想要他们表达的内容表达得淋漓尽致,把他们的语言表达水平真实地展现在上课教师和听课教师的面前,为教师更恰当合理地安排下面的教学内容做了很好的铺垫。

细想以上两个案例,和案例一的热闹活跃相比,案例二的热身活动异常的安静,但是安静的背后却是学生思维的激流暗涌,头脑风暴在悄无声息地进行。在教学过程中,我们不能追求表面的热闹,而忽视对学生思维的训练,学生更需要通过思考把教师传授的知识内化为自己的终身积累。

三、Presentation,简单传授还是从全新的角度多层次呈现?

小学生所学的英语内容一般比较简单,形式也比较单一,在教授“number”数字一课时,所提供的文本内容是:How many? One, two, three ,four, five, six, seven, eight.

案例一:

在一班讲授数字这一课时,教师安排学生认读数字,快速数数,打乱顺序数数,倒数数字,虽然课堂效果也不错,但是缺乏真实感与实用性,思维含量低,学生只是在机械地说着数字,并没有真正地掌握并运用所学数字。如何提高课堂的思维含量,让单薄的教学内容厚实起来呢?在给二班上课的时候,教师做了如下的调整:教师给学生提供了一些生活中的常见电话号码,例如“119,110”等等,让学生说一说这些号码,并补充自己还知道哪些生活中的常用号码。教师还设计了让学生说说自己的门牌号码、车牌号码、一年中有几个月、一个月有多少天、一个完整的足球队有多少成员等等,学生非常有表达的欲望,拓展了思维,真正做到了用数字来表达生活中的一些信息。

四、Expansion,拓展了学生的思维还是知识?

好的课堂提问,有利于师生交流,有利于唤起学生的注意力,激发学生的求知欲,发展学生的思维。比如在教学26个英语字母时,在拓展环节,教师制作了一棵美丽的苹果树,树上有25个字母苹果。这时可向学生提问:26个字母苹果,哪一个被小调皮摘走了?这时学生会积极地思考,寻找26个字母的顺序,总想最先找出少了哪一个。在给五年级的学生讲解过去式的时候,在最后的拓展环节教师设计了打破了别人家的玻璃、警察提问的环节,让学生用过去式描述自己在过去的时刻干了什么。有了这样生动真实的提问,学生们都积极思考,用英语表达自己的行为,为自己摆脱嫌疑,促进了英语思维能力的发展。