前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的c语言程序设计论文主题范文,仅供参考,欢迎阅读并收藏。
关键词:S-P;C语言程序设计;课程改革
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)27-0183-02
目前,高职教学中的考试还是延续了采用试卷化来考察学生的成绩,将成绩的好坏作为衡量学生学习结果的标准。为了更好的进行教学评价方式的改革,适应在新时期教育发展趋势对考试评价提出的要求,就需要引入一些科学化,系统化的评价方式来进行有关课程的评定。S-P表是一种采用形成性评价理念为基础,使用图形化的数据表现形式和强大的数据处理能力的评价法,被广泛地应用在各种类型的测验评价中。本文主要以《C语言程序设计》课程为研究对象,运用S-P表分析法的相关参数计算结果的同时结合理论研究方法,将试卷的测验作为切入点,对《C语言程序设计课程》相应教学内容的教学情况进行分析研究。
1 《C语言程序设计课程》中存在的问题
近年来,高职院校对于C语言程序设计的课程实践教学非常重视,加大了对基础学科的投入,从教材的编写,师资的培养到参加各种类型的竞赛相比有很大的改善,但仍然存在很多的不足,主要表现在以下几个方面
(1)课程学习目标不明确。
在高职的《C语言程序设计课程》教学过程中,发现学生对于课程的认识非常浅,仅仅认为该课程是其他程序设计类课程的基础,具体会对高职的计算机专业的学习有多大的帮助完全不理解,因此导致学生在学习的过程中不够重视。
(2)理论教学过程忽略培养学生的综合能力
在传统的理论教学过程中,都是采用章节式的教学形式,引导学生从循序渐进按照章节来进行学习,在每一章学习的过程中,采用判断题,程序填空题,编程题的方式来进行对理论过程的消化,因此这种效果看上去可以起到对知识点有益的补充,但是缺乏从整体结构上进行把握,忽视了对综合应用能力的考察。
(3)实践教学开展的效果不佳。
目前,高职院校的程序设计主要是教学理论的讲解和上机的实践过程,实践环节的地位始终都是摆在理论教学环节之后,主要是用来对理论教学加强实践过程中的一种表现,因此课程的安排初期,无论是从实践学时的分配、以及实践课程的开展次序来看都明显的弱于理论教学。因此在教学过程中学生对实践过程的教学不够充分重视,造成了在考核过程中有些学生的理论很强,但实践上机调试偏弱,在一定程度上严重违背了程序设计课程的学习宗旨。
(4)课程评价机制落后,严重束缚学生的创新能力。
课程评价一般分为理论评价和实践评价两种方式,理论评价多以选择题,判断题,程序填空题等方式出现,考察学生对于程序的理论知识点的掌握情况,这种方式无法从根本上考察C程序设计的运用,在上机过程中的考核方式由于学生的人数和时间的关系,无法做到对每一个学生进行考察,即使在考查过程中,也往往是依靠程序的正确结果来进行给分,而对于一些错误答案的程序往往不够重视,在这其中可能会导致有些错误的程序往往包含了一些学生的新的思想和想法,这样会严重打击学生的积极性,使得学生放弃自己的想法复制一份结果正确的标准格式代码进行提交,不利于提高对学生创新能力的培养,降低了他们对于学习的热情。
2运用S-P方法分析《C语言程序设计》课程
2.1 S-P分析法简述
S-P 分析法是一种非常好的试卷评价方法,它主要考察学生的学习情况、辅导内容和考试方式为主旨,将考察学生的方式采用图形化的方式进行表达,是一种理论结合实践的验认知诊断评量技术。
2.2课程数据导入
本文将各试卷的知识点对应的成绩作为研究的对象,对原始的成绩进行合并转换,画出相应的 S 曲线和 P 曲线,并采用 S-P 方法进行评价分析。本步骤中所做的工作主要分为两个阶段:
(1)学生成绩的准备。首先,对三份试卷的原始成绩进行收集和整理,将收集好的试卷中的原始题目和成绩进行合并,得到全新的考试成绩表。表中的每个成绩数值对应题目的知识点都不尽相同,为后续的转换组好准备。
(2)将新的学生成绩考试表转换成学生原始得分布尔矩阵。为了更好的进行研究,本文采用的问题平均的得分值作为赋值的标准,所以试卷中题目都需要进行布尔转换,在新学生成绩考核表中分数的转换均需严格按照赋值标准进行判断和转换。
2.3 S-P分析课程课程因素
(1)试卷信任度
本文选取了近三年的三次《C语言程序设计》的期末测试,本次测验根据经典测量理论,即采用分半法来计算相关系数的方法来计算信任度系数值。
计算过程如下:
步骤1:计算出整个测验中每个学生在试卷中的奇数题目的总得分()和偶数题目的总得分()。
步骤2:用下列公式求出奇数题和偶数题这两组分数的相关系数:
步骤3:用如下斯皮而曼-布朗公式进行校正:
依据经典测试理论,本文对三份《C 语言程序设计》课程试卷计算各自的信任度系数值,来进行客观的分析这些试卷的测试结果是否具备真实性。计算的过程是首先对所有参加测试学生的试卷按照题目的奇偶编号进行统计,累计统计每份考卷中的奇数题目的得分,以及偶数题目的得分 ,将这些值导入到 Excel 的环境中对所有的奇数题目总分和及偶数题目总分和以及的值、的值和的值,并分别求得这些值各自的总和,最后将这些结果都代入公式(1) 和公式(2)中即可求得最后的信度系数值。
(2)试卷效度
根据经典测试理论有关效度的分析方法。本研究结合近三年来的三次《C语言程序设计》课程考试答题情况和标准答案的分析得到了三次考试本身的效度情况,其次,对三份试卷的所考察的知识点进行计算和统计,并根据考试教学大纲中的要求进行对比,发现试卷考察的知识基本覆盖所规定的教学知识点。
(3)差异系数
将三份试卷的数据导入S-P表中,按照差异系数公式(3)来计算差异值。
式中:表示差异量,表示正确回答率。
一般来说,考试类型的不同导致的差异系数的值也会不同,一般对应检测学生成果的考试取值在0.5左右,而本次使用的试卷符合这个测试类型。 三次试卷的测试差异系数值为表1所示:
3使用S-P分析《C语言程序设计课程》反馈
(1)学生学习状况方面
统计计算三个班级中参加期末考试的学生的原始分、平均分、差异量三个考试班级中学生的得分率和学生成绩差异情况,对三个班级的学生学习状况按照这些指标进行分类。这种分类是动态的,由多种统计数据划分,将学生的个体与全班的表现对比,可以多角度的了解学生状态,以便他们在考试中发挥出现异常都能帮助授课教师继续分析和追踪。
(2)试卷整体质量方面
本课题中使用的《C语言程序设计》的试卷质量不尽相同,每份试卷的信度和效度都不同,特别是在效度方面,三份试卷的效度都比较高,其次,三份试卷的难度情况和分值情况不同,特别是在2013年的试卷中,P曲线存在明显的断层,这说明该年的试卷在出题方面存在一定的问题。
(3)教学环节和因素分析方面
通过S-P分析得到,任课教师仅仅关注教学知识点是不够的,分析中发现学生和教师对于存在的知识点的学习感受和教学效果是反应到一些具体的教学环节和因素上的,例如学生对于课程的学习兴趣,分析程序的思维能力,教学过程中的多媒体的手段以及课程内容的安排等等,这就要求教师在课程的日常教学实践中能够从教学环节和饮食上进行分析和改进,提示教学知识点的教学效果,这样不仅可以帮助教室解决教学过程中的问题,还可以根据学生的具体情况设计更适合学生的教学方法。
(4)学生能力方面的挖掘分析
使用S-P分析方法对课程的诸多因素进行了分析,课程的评价也是学生的学习能力和学习兴趣的反应,因此使得授课教师加强学生对《C语言程序设计》中语法细节掌握情况的反馈,以及学生具备的基础能力情况,进一步挖掘和培养学生的学习能力。
4贡献及总结
本文以 2012,2013和2014三个年度的《C 语言程序设计》课程作为研究对象,通过使用S-P参数公式得到相关的反馈信息,针对参与考试的学生的学习情况、试卷质量和相应的教学知识点的相关情况进行了分析和研究,得到了如下的内容:
(1)对《C 语言程序设计》课程大纲下的三个年度的学生考试成绩进行汇总,并对学生的考试情况、试卷质量和教学知识点覆盖等情况进行了统计分析;
(2)通过S-P分析法得到试卷中的部分的异常试题和需要重视的知识点多注意的教学知识点,分析和总结出这些引起共性的知识点的教学效果教学环节和因素,并反馈给了任课教师,以便能够更好的提醒和帮助老师进行课程上的改革,以便取得更好的教学效果;
(3)将S-P分析过的部分班级的学生学习《C 语言程序设计》课程中的状况及时反馈给教师,并能够在今后的教学过程中能够注意学生的学习状况并加以指导;
(4)不断完善S-P表的评价分析理论,并需要结合教育学中经典教育测量理论中的有关信度、效度值的指标计算分析内容,可以弥补自身的不足,并能够与课程的其他方法进行补充,不断完善提高。
5综述所述
需要不断在《C语言程序设计》课程中进行改革,本文的S-P评价方法还存在一定的不足,需要在今后的教学过程中不断改进S-P评价方法,使之能够为计算机课程的改革教学提供有利的支持。
参考文献:
[1] 冯丽娜.S-P表分析法的教学应用研究-以《C语言程序设计》课程测试为例[D].内蒙古师范大学硕士论文,2013.
[2] 万岩.S-P表在教学评价中的应用及其计算机实现[D].华中师范大学硕士学位论文,2008.
课余之后,本人还继续培养自己的其他能力,熟悉SQL SEVER平台的各种开发与管理操作,能利用数据库进行信息分析与管理;熟悉C/C++/C /ASP等语言,能利用Visual Studio 2005进行应用Windows应用程序,Web程序的开发.了解等数据库接口技术和XML,系统分析与设计与软件工程方面的基本知识.拥有较好的英语阅读及口语能力.责任心强,善于沟通,善于团队合作,勇于实现自我管理自我学习,对技术有较浓的向往. 所获奖励 2005/05/2005年全国大学生英语竞赛A级 三等奖
2005/11 重庆邮电大学经管学院“创业计划”大赛 一等奖
2005/06 重庆邮电大学校数学建模竞赛 三等奖
2004/03 重庆邮电大学优秀学生奖学金一等奖 三次
2006/03 重庆邮电大学优秀学生奖学金二等奖 一次
2006/09 重庆邮电大学优秀学生奖学金三等奖 两次
2005/09 重庆邮电大学优秀学生干部
2005/09 重庆邮电大学科技创新百佳先进个人
2004/09 重庆邮电大学三好学生
2004/03 重庆邮电大学经管学院学生会科技协会优秀干事 两获此称号 所获证书 2006年03月全国大学英语口语考试证书C+等级
2005年04月全国计算机等级考试三级信息管理技术证书
2005年03月大学英语CET四级证书 实践经验 1. 停车场演示系统:专业个人上机实习,C语言模拟.主要练习对于数据结构基础知识的掌握以及高级语言程序设计的方法技巧.
2. DVD在线租赁系统:数学建模竞赛论文,团队合作完成,主要研究和解决DVD在线租赁网站的需求预测,购买和分配中一些重要问题,应用到0-1背包算法,禁忌算法等知识.同时用C++实现部分功能.
3. 基于Web的个性化信息服务系统:系本专业信息组织与存储课程设计,本人在其中当作组长,用ASP语言及其Acess实验部分以下功能:除了基本网站基本检索功能以外,根据用户信息,检索历史提供个性化信息推送服务研究.
4/2006年于中国网络通信集团公司重庆分公司运行维护部实现暑假企业跟班实习一周,了解其通信运营工作流程,网络维护的基本技能与经验.
5. 基于SQLDMO的数据库备份与恢复子系统:毕业设计论文,使用C 语言在.net平台下数据库系统备份与恢复的简单实现方法.
关键词:计算思维;C语言程序设计;算法;教学方法
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)32-7291-03
目前,计算思维能力的培养已成为计算机教育重点研究的课题之一,作为计算机专业的专业基础课和非计算机专业的公共基础课,《C语言程序设计》是培养学生计算思维能力的理想课程。通过该课程的学习,学生应学会问题求解的基本思路和方法,具有一定的编程能力,并能理解计算机思维的过程和学会利用计算学科的思想、理论、方法和技术解决客观世界实际问题的思维方法,然后把相应的思维与方法内化为“方法论”,更广泛地为工作、学习与生活服务。因此在《C语言程序设计》课程的教学中探索适合培养计算思维能力的教学方法十分必要。
1 计算思维
最早提出计算思维教育理念的是美国卡内基·梅隆大学的周以真(Jeannette M. Wing) 教授,计算思维的概念一经提出就引起了国内外教育界的广泛关注,周以真教授倡导的是系统的加强计算思维教育。计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为[1]。它包括了反映计算机科学领域的一系列思维活动。周以真教授认为计算思维是人的思维,是人们利用计算科学的思想、方法、理论和技术解决客观世界实际问题的思维方法,这与我们强调的培养学生具有分析问题和解决问题的能力是一致的。周教授认为计算思维是一种递归的思维、是一种通过约简、转化和仿真等方法将一个复杂的问题解析成一个我们会求解问题的思维方法、是一种基于关注点分离的方法、是一种采用抽象和分解来进行复杂系统设计的方法、是一种利用启发式推理寻求解答的方法,对于系统的设计要考虑它的简洁和美,对一个程序的评价要考虑它的准确性和效率。计算思维的本质是抽象(Abstraction)和自动化(Automation)[2],反应了计算的最根本问题[3]:什么能被有效的自动进行?周以真教授还认为计算思维不仅仅属于计算机科学家,它应是每个人应有的基本技能,对于大学生来说,我们更应该培养他们的计算思维能力,在大学中应将计算思维能力培养推进大学通识教育之中。其实周教授所描述的计算思维教育一直隐藏在我们的教学中,计算思维教育重要目标之一就是培养解决问题的良好意识,而我们在教学中有意无意地都在培养学生分析和解决问题的能力,只不过在以前的教学中未将这种思维特征显式的表示出来而已。美国计算机科学技术教师协会指出,学校的每一类课堂教学都应该采用计算思维这样一个工具。对于大学一年级学生必修的《C语言程序设计》课程来说,究竟采用什么样的教学方法才能更有助于学生计算思维能力的培养,值得我们探究。
2 计算思维教育与《C语言程序设计》课程教学
计算思维教育的最主要的目标之一就是培养学生解决问题的良好意识,也就是说当碰到实际问题时,就能意识到能否利用计算学科的思想、方法和技术来求解。当学生具备了应用意识以及相关知识,碰到应用领域的实际问题时就会意识到如何去解决。计算思维能力的培养不仅要培养学生解决问题的意识,同时还要培养相应的能力,只有这样才能掌握正确求解问题的方法和技术,才能达到解决问题的目的。所以说计算思维教育不是灌输一大堆概念与知识,而是要注重培养学生解决问题的思想、方法、意识、兴趣和能力。计算思维最本质的内容是抽象与自动化:抽象是通过简化、转换、嵌入、递归等方法将一个较复杂的问题转化为许多简单问题,然后再进行求解的过程[4];自动化是利用计算机的运算能力来实现问题求解,以弥补人的计算缺陷。抓住了这两个核心就能有效地培养学生的计算思维能力。
程序设计类课程是训练学生思维的一个非常有效的平台,计算机专业会开设多门程序设计类课程,但对于非计算机专业的学生来说,一般只开设一门程序设计类课程,所以大一开设的《C语言程序设计》课程对非计算机专业的学生的计算思维和创新能力的培养起着非常重要的作用,事实上《C语言程序设计》课程中的许多知识为计算思维的培养提供了很好的案例。但这门课程目前大多采用传统的教学方法:“先讲授理论知识,然后上机实践”,上机实践的目的也是用来巩固课堂上所学的知识点。随着知识点的增多,大量难理解、难记忆的新概念和新规则的出现,学生会觉得这门课程越来越难学,学习兴趣和学习主动性逐渐下降,学习效率低下。并且这种偏重于理论讲解的教学方法,在一定程度上束缚了学生思维的发展,大多数学生面对实际问题的求解和实际应用程序开发根本无从下手,限制了学生自主发现和解决问题的能力的发展。C语言程序设计课程的主要任务之一就是培养学生的编程能力,编程能力是计算思维和技能化知识的综合体现,而检验计算思维能力的结果就是实践操作,所以在教学中一定要重视实践环节。在实践教学环节要求学生能编写程序解决实际问题,如果学生不能综合运用所学的知识、也没有探索精神,那对学生来说是有一定难度的。如果上机环节没有激发学生的学习兴趣的案例和问题,学生也会感到乏味,从而知难而退。所以,要提高学生的编程能力就要有目的对学生的抽象思维、算法设计、代码编写、程序调试、程序分析等能力进行训练,同时要提高学生的学习兴趣。将计算思维融入到《C语言程序设计》课程的教学中将会改变学生的思维方式,在教学时还应把握一个中心点:计算思维是一种方法论,从方法论层面培养学生求解问题的意识,这样课程就会变得生动有趣了,学生也容易接受。然而,运用什么样的教学方法才能有效的将计算思维融入到《C语言程序设计》课堂教学中,以提高学生运用计算机知识抽象和分解问题的能力,是一个挑战。当然,让学生潜移默化地掌握计算思维,无疑是最佳选择。
3 面向计算思维能力培养的课程教学方法改革
3.1融计算思维于案例教学中,激发学生学习兴趣
我校《C语言程序设计》课程的教学是面对不同专业的学生,所以教学中应与学生所学的学科专业联系起来,对不同的学科专业选用不同的教学案例,通过合适的、面向不同学科专业的实例达到既阐析计算思维,又给出面向特定学科专业的范例教学效果。具体的做法是:先选用合适的应用实例并提出问题,然后由问题引入知识点、由知识点带动语法的掌握、由语法规则推动计算思维的理解。也就是说先让学生对所学的知识产生兴趣,有了一定的感性认识后再提升到理论高度,循序渐进地掌握知识。例如在学习循环结构时,面对体育专业的学生就可举“大奖赛评分”的例子,面对数学专业的学生可选用“求1!+2!+3!+……+20!的值”、“判断一个数n是否为素数”、“打印乘法九九表”等这种与数学有关的例子,面对英语专业、中文专业的学生可选用“从键盘输入20个字符,分别统计出其中大写字母、小写字母、数字字符、空格字符和其它字符的个数”的例子,其它的专业可选用“猴子吃桃问题”:有若干个桃子,猴子每天早上吃前一天剩下的一半零一个,到第十天时只剩下一个桃子,问猴子在吃这些桃子之前共有多少个桃子?由于这些问题或者与学生所学的专业有关联或者比较有趣,学生会由此对所学的知识也产生兴趣,而且这些例子都具有计算思维的显著特征,对培养学生的计算思维是非常好的案例,学生也能在兴趣中主动接受新知识及培养思维。
计算思维是一种问题求解的思维,它将问题求解的过程用程序化的方式表达出来[5],计算思维的自动化是“机械式”的按照步骤自动执行,因此对问题的求解就要有精确的算法描述和严格的符号表示。当学生面对实际问题时,根据已有的知识提出问题求解的方案,并用算法进行描述,然后编写程序,最后用机器来验证问题求解结果。例如对于“猴子吃桃问题”这个案例,根据计算思维的特征和高效,引导学生用计算思维的递归方法发现和解决问题,并引导学生用N-S图精确描述算法,再用C语言中相应的语句编写程序。这样,学生在学习过程中体会递归算法的思想和过程,并掌握递归方法和C语言中相应的知识和语法,当碰到类似的问题就会想到用类似的方法解决问题。
3.2采用多角度思维训练的教学方法,以激励学生的创新意识
《C语言程序设计》课程中计算思维能力的培养主要体现在对学生分析问题和解决问题能力的培养,那在教与学过程中如何培养呢?首先教师要设计一个能吸引学生注意力问题,并仔细分析该例子的代表性、应用性和趣味性,例如对于循环结构这个知识点选用“猴子吃桃问题”是一个很有代表性的例子,学生根据老师提出的问题,思考解决问题的方法,老师适时为学生提供帮助,运用计算思维的各种方法启发学生,对于这个问题可启发学生用递归的方法求解,逆向思维,从后面往前推断。当然,在教学过程中,老师还需要尊重学生的个性发展,鼓励学生提出不同的解题方法,不断启发学生,让他们积极主动的探究学习,使其能举一反三。
程序设计类课程的价值之一在于训练和提高学生的计算思维能力[6],不能让学生只按照老师逻辑思维解决问题,所以学生在设计算法时,鼓励学生对同一个问题设计多种不同的算法,这样有利于培养学生创新意识。当然,还要注重算法的简化和优化,在众多的算法中找到一种最优的算法。例如“百钱买百鸡”问题可用三重循环来实现,但仔细一分析还可只用二重循环来实现,并且循环次数由106降低到104,一个简单的改进让学生看到算法优化的魅力,进一步再启发学生算法是否还可改进?循环次数是否还可以降低?这样采用多角度思维训练方式就可充分调动学生学习的积极性,激发学生的学习热情和创新意识。
3.3融计算思维于实践教学环节中,强化计算思维的训练
对于实践性很强的《C语言程序设计》课程的教学,上机实验应是教学的核心,也是培养学生计算思维能力的一个重要环节,所以在该课程的教学中需重视上机实践这一教学环节。过去常用的 “先讲解程序后上机实验” 这种传统教学策略,一般只能增加学生的感性认识及培养学生的上机能力,不能很好的培养计算思维能力。另一方面,大学生一般对一些具有挑战性的任务具有浓厚的兴趣,所以设计的实验任务尽量要生活化和趣味化以激起学生的兴趣,实验任务还需具有一定的综合性来增强实验的难度,从而强化计算思维的训练。例如在分支程序结构中可以安排火车计费程序或计算个人所得税额程序等。教师在设计实验内容时还要注重培养学生的创新思维,也就是说教师设计的实验内容要适合学生的知识结构和心理特点,同时为学生创新思维留出空间,要求学生勇于探索,并引导学生认真思考寻求多种解题思路,在计算过程中培养学生的严谨性,引导学生对所设计的算法进行必要的优化,然后使用正确的语句编写程序,并通过上机调试与修改程序运行得到正确结果,在研究问题的求解过程、算法设计与优化及程序调试过程中强化计算思维的训练。
4 结束语
将计算思维融入《C语言程序设计》的课程教学中,作为一种教学改革尝试,其目的就是将程序设计中所涉及的计算思维潜移默化的植入学生的日常思维。在教学中从有利于培养学生计算思维的角度重新组织该课程的教学内容、改革教学方法,在教学中注重加强学生计算思维能力的培养,使学生学会问题求解的基本方法,能自觉运用计算思维的方法来解决客观世界的实际问题。虽然在教学实际中取得了一定的成效,但通过这一门课程来形成计算思维显然是远远不够的,作为21世纪人类必备的技能之一,计算思维的培养势在必行。然而,在课程教学中,采用什么样的教学方法能才能更好的培养和提高学生的计算思维能力,依然是值得探索的问题。
参考文献:
[1] Wing J M. Computational Thinking[J]. Communication of the ACM, 2006(49): 33-34.
[2] Goldman C V,Zilberstein S.Decentralized control of cooperativesystems:Categorization and complexity analysis[J].Journal of AI Research,2004.
[3] 董荣胜.计算思维与计算机导论[J].计算机科学,2009,36(6):50-52.
[4] 陈杰华,戴丽娟. 以培养计算思维为核心的程序设计实验教学[J].实验技术与管理,2011,28(1):125-127.
[论文摘要] 本文通过分析新形势下IT业界需求和目前教学形式的局限,通过对校企互动、课程设置、教学模式等六个方面的阐述,找出一条符合时展的工学结合的C语言教学改革之路。
以计算机科学为灵魂的信息产业是优化我国产业结构,促进低碳经济,改变我国以劳动密集型产业为主现状的希望之星。产业进步,教育先行,纵观我们数年来在信息产业人才培养上取得的一些成果,不难发现其中存在着教学内容与产业脱节,落后于产业发展的现象。因而在学生就业和企业揽才时就会看到这些现象——学生发现在校所学的东西无法满足企业的需要,而企业在求贤若渴的同时又面临着无法找到合适人才的困境。本文尝试探索将工学结合这一教育模式应用于计算机教学实践中,特别是在C语言的教学改革中来解决上述问题。
在探索工学结合教育理念的过程当中,笔者不断认识到,工学结合不应该仅仅只是一种学生培养模式的改变,还应该体现在学校与企业互动方式、课程设置、教材选择、教学模式选择和学生实习实训等各个方面内容的变化。
1 校企互动
在工学结合的实践中,学校应该走出去,引进来。积极跟企业接触,尽量早的把企业进入到人才培养和教育的过程中。对于有意向的企业,可以实行定向招生、培养计划,在招生期间学校和企业就可以联合面试和招生,在学生第一、二年在校期间,学校和企业可以共同就教材选择和师资力量上合作。比如学校教师+企业导师的“双师制”教学,学校教师和企业资深工程师结合产业需要共同编写教材,以及学校教师教学和企业工程师定期或远程的答疑等,探索学校和企业共同培养、工学结合的新路子。
2 课程设置
C语言在计算机科学中有着非常重要的地位,它不仅是其它众多现代编程语言的基础,也是业界应用最多、最为广泛的语言之一。但是在笔者看来,目前各高校在C语言程序设计课程的内容设置上存在不合理的现象。首先,C语言程序设计不应该仅作为一门单独的课程来开设,而是应该变成系列课程。产业界在做产品和做项目时,编程语言的运用只是作为一个最基本的因素存在而已,可以说同时拥有编程语言知识、平台开发知识和产品领域知识的开发者才是一个企业真正的人才。产品相关领域知识的学习在实际开发过程中会由产品经理来解决,而且不同的产品需要不同的领域相关知识,这个是学校教育基本无法解决的问题。但是反观我们目前的课程设置,其实只是解决了编程语言知识这一问题。举例来说,学生要想在Windows操作系统下开发程序,除了C语言知识外还要学习Windows的众多API、GUI知识等平台开发知识,我们在这一块的课程设置上存在着诸多空白。
针对这一现状,笔者觉得我们目前的C语言教学中非常有必要把C语言程序设置成一个系列课程,就是所谓的“大C语言课程”。整体上可以按语言相关知识和平台相关知识这两块来划分,然后结合目前企业和行业发展来设置课程。对于需要Windows平台开发人才的企业,我们的课程设置在语言相关类课程上可以开设“C语言程序设计”和“C++程序设计”等课程,在平台相关类课程上可以开设“Windows程序设计”、“MFC/WTL程序设计”和“DirectX程序设计”等课程。对于需要Linux/Mac平台开发人才的企业,可以增设“Unix程序设计”、“GTK/GNOME程序设计”、“OpenGL程序设计”和“iPhone程序设计”等课程。
在企业分工日益精细的今天,绝大多数企业需要的是专才,而非通才。如桌面客户端开发和在线客户端的开发完全是两个不同的部门,也有着完全不同的人员配置。而我们当前的课程设置中,一个专业中既有《C语言程序设计》这类桌面程序开发技术的课程,又有《ASP.NET程序设计》这类Web开发技术的课程,这就造成了学生培养时间加长和精力分散的问题。在笔者看来,在课程设置上,高校完全可以进一步细分,首先在大方向上可以用桌面应用开发和Web应用开发来分专业,然后再从几个大专业上进一步划分。当然,在现实操作上,学校存在着师资力量不足和教师培养的问题,不可能在所有方向上均开设不同专业,但是也可以退一步只开设传统的优势专业,从而在业界中得到认同。对于非专业课程,比如针对Web开发专业的学生,《C++程序设计》完全可以作为选修课程,由学生凭兴趣自主选择学习。 转贴于
3 教学方式
3.1 教材选择
在教材选择方面,学校除了可以考察和借鉴国外同类高校的优秀教材外,还可以跟企业共同探讨选取和使用业界的优秀书籍作为教材使用,既能避免重复的编写工作,又能达到跟上业界最新发展的目的。
目前各高校在教授C语言这门课程的时候多采用谭浩强编写的《C程序设计》或者自己组织编写的教材。笔者则推荐由C语言设计者Brian W. Kernighan和Dennis M. Ritchie编写的《The C Programming Language》(也称《K&R》),中文译名为《C程序设计语言》,由机械工业出版社出版。这本书无论从作者的资历还是内容的权威性上讲都是学习C语言的不二选择。
3.2 环境选择
在实验和上机环境的选择上,目前国内各高校基本上采用的都是Windows平台加Visual Studio的搭配。但是这种环境的缺点是费用过高,如果采购正版,那么对于高校来说仅装配实验室这一台就要投入大量的资金,而不进行采购又会存在版权问题。另外一个非常大的坏处就是把学生限制在里Microsoft的产品系列中,一来不利于扩展视野,二来微软的C/C++编译器历来都对C/C++标准的支持存在问题。所以笔者建议高校在准备实验室环境的时候可以大胆引进以Linux操作系统为平台的开源软件,使用更好遵循标准的GCC编译器,这样不仅节约了大笔的办学经费,也让学生在跨出校门前可以接触到更多元化的学习环境。如果学校已经采购了Windows操作系统的许可证,也可以在Windows平台上部署集成了GCC Windows版的免费IDE环境Code::Blocks,这样也不失为一种好的解决方案。
3.3 教学模式选择
在教学内容上,要力争突破过去那种教学项目内容枯燥的模式。可以将实用化和趣味化的项目引入到课程教学过程当中,将项目分解成一个个具有实际意义的设计模块,每个设计模块的实现必须解决多个疑点,将C语言教学的内容结合到每个疑点中,每次课内容就是由1至3个疑难点引出的C语言知识,当一个模块中所有的疑难点都解决了,相应设计模块也就实现了。在设计实现的同时可以启发学生进行多角度拓展和优化模块设计的训练,这样能让他们更多的掌握C语言编程的技能、技巧以及经验知识,如程序编写的可读性、可维护性、可拓展性以及工作人员的分工协作等,这些问题在设计实现企业产品的项目中都会遇到,通过这种模式可以实现教学内容职业化。
4 实习实训
在工学结合的实践当中,实习实训无疑是一个非常重要的环节。学校的实习实训方面可以更加灵活,突破以前2+1的模式,不仅仅只在第三年才安排实习,而是每学期的都按照课程进度安排相应的实习实训来检验教学成果,同时适应企业需求。
5 结束语
在高职计算机专业“c语言程序设计”课程的教学过程中,基于工学结合的理念,通过实际项目的制作,能使学生将所学知识转化为实际工作的能力,提高学生的实际工作水平、综合素质和就业竞争能力,为企业提供适用型的人才。
参考文献
[1]汤旭慧, 宋荣, 唐建东.基于工学结合的高职电子类专C语言教学新模式的探索[J]. 中国职业技术教育,2008.
[2]刘瑞芳,曾海燕.C语言课程教学的改革与探索[J]. 计算机教学与教育信息化,2008.
论文摘要:“C程序设计”课程是信息类专业的专业基础课程,该课程的教学质量直接影响后续专业课程的学习。本文将课程教学质量的提高转化为三种能力的培养,即学习能力、应用能力和知识迁移能力,探索通过三种能力的培养提高“C程序设计”专业基础课程的教学质量。
1引言
掌握一门高级程序设计语言是高等院校学生利用计算机解决实际问题的必要条件之一,而C语言是当前国内外广泛使用的高级程序设计语言之一,因此“C程序设计”成为计算机科学与技术、软件工程、网络工程等专业的基础课程。该课程的教学水平不仅影响本课程的学习效果,而且影响后续课程的学习效果,所以提高该课程的教学质量具有十分重要的意义。
“C程序设计”课程传统的教学模式是“理论+实验”。理论教学一般采用“计算机+投影+黑板”的教学设施,教学课件是PPT文档,教学方法是教师控制PPT播放的进度,边播边讲,学生边听边记笔记。实验教学包括验证实验、设计实验和综合实验三种类型。一般采用“实验指导书”的教学材料,学生根据“实验指导书”的安排进行实验。该教学模式比较适合教师对教学进度进行控制,教师处于“主动”地位,而学生处于“被动”地位。
2问题的提出及相关研究
2.1问题的提出
通过对学过该课程的学生和后续专业课程的教师进行教学效果调查,发现传统教学模式中存在如下不足:
(1) 学生的反馈。课程的语法知识太多,理解和记忆都不太容易,即使记住了语法知识也不一定能灵活应用,程序调试不容易通过,独立地编写程序更难等。
(2) 后续专业课教师的反馈。语言基础不牢固,学过的知识如何应用到新的课程还有些困难;适应新的开发环境能力差,动手编写程序的能力弱,缺乏克服困难的主动性等。
在传统的“理论+实验”教学模式下,加强学习能力、应用能力和知识迁移能力的培养成为提高教学质量的关键问题。
2.2相关研究
针对“C程序设计”课程传统教学模式存在的不足,探索诸如“建构主义教学方法”、“案例教学法”和“项目教学法”等教学方法在该课程的应用成为研究热点。
建构主义认为,知识不是通过教师的传授得到的,而是学习者在一定的情境,即社会文化背景下,借助其他人的帮助,利用必要的学习资料,通过意义建构的方式来获得,学习的质量是学习者建构意义能力的函数,而不是学习者重现教师思维过程能力的函数。建构主义教学方法已经在”C程序设计”教学中得到了一定的应用并且取得了较好的效果,但这些方法对教师的组织能力和学生的参与水平有比较高的要求。
“案例教学法”是目前国内外比较流行的一种教学方法,被普遍应用于医学、法学和管理学等学科的教学,也被广泛应用于计算机教学中。“案例教学”有助于提高学生的学习兴趣和分析与解决问题的能力,但设计和编写教学案例会给教师增加额外的负担,而且选择能够激发学生学习兴趣的教学案例也不太容易。
“项目教学法”是通过实施一个完整的项目来实施教学活动,通过理论与实践教学的有机结合,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。该方法有助于提高学生应用知识的能力,但对学生的克服困难、认真钻研的主动性要求比较高,如果过程监控不到位,则可能出现严重的抄袭问题。
本文研究在“理论+实验”的教学模式下综合应用各种教学方法的长处,既不过多增加教师的工作量,又提高学生三种能力的培养水平。
3注重三种能力培养的教学探索
“C程序设计”课程专业基础课程一般在第一或第二学期开设,面向大学新生,中学应试教育的学习方法已经不能完全适应大学的学习内容,因此教师在课程中应注重对学生学习能力、应用能力和知识迁移能力的培养。
3.1注重学习能力的培养
“C程序设计”课程包括C语言知识、结构化程序设计思想等内容,学生开始学时候比较认真,对所学内容掌握较好,但大部分同学过于注重细节,习惯机械记忆,随着知识点的增多,机械记忆容易出错,逐渐失去学习兴趣。因此笔者从课前预习、课中听讲和课后复习三个阶段引导学生把握学习的主线。
(1) 课前预习。课前对将要学习的内容作一个概要性的预习,让学生对学习内容有个初步了解,分清重点和难点,提高学生的听课效率。为了取得较好的预习效果,要提前布置预习内容,然后对预习内容进行检查,譬如将单选题测验、概念提问等检验的情况记入平时成绩。
(2) 课中听讲。引导学生认真听讲,首先要有充分准备的教案,其次要进行适时的课堂提问,再次对学生课堂笔记进行检查,譬如课后用2~3分钟随机抽查部分学生的笔记,检查的情况也记入平时成绩。
(3) 课后复习。为了督促学生及时地复习,要布置一定的作业题,下一课要对复习的效果进行考查,考查情况也记入平时成绩。
经过一段时间的督促,大部分学生能够适应三阶段学习方法,逐渐提高自己的学习能力。
3.2注重应用能力的培养
程序设计课程重在应用,在应用中掌握语言的语法知识、编程思想,将抽象的概念和知识形象化,有利于知识的理解与记忆。本文应用“案例设计”的教学方法、“项目开发”的教学方法探索对学生应用能力的培养。
3.2.1 “案例设计”的教学方法
案例设计是“案例教学”应用于“C程序设计”课程获得成功的关键,一般由教师完成。由于教师与学生的知识背景和阅历不同,兴趣点不可能完全一致,所以教师辛苦设计的案例并不一定能引起学生的兴趣。为此,笔者引导学生进行案例设计,即“案例设计”的教学方法。
“案例设计”的要点包括:(1)经典教学案例的讲解。通过讲解使得学生掌握案例设计的步骤、方法。(2)案例征集。用“头脑风暴”法激发学生的灵感,促进优秀案例的产生。(3)案例评价。案例展示、学生评价、教师评价、优秀案例答辩等形式的案例评价,有助于提高学生的参与意识。(4)案例库完善。案例库存放所有学生的案例设计及评价,有助于学生进行意义建构或学习探究等。
3.2.2“项目开发”的教学方法
“案例设计”形成的案例其实就是项目的需求分析,对案例进行编程实现有助于学生获得真实的项目开发经历,进一步明确注释、编程风格和开发记录等对项目成功实施的意义。
“项目开发”的要点包括:(1)数据模型。要区分数据或结果的存储方式是内存还是外存,内存方式可以是变量、数组或链表,外存方式是文件。(2)功能规划。包括功能安排和菜单设计。(3)函数规划。根据功能要求明确函数调用关系。(4)函数设计。包括函数的原型、数据传递方式和功能实现。(5)系统调试。应用项目管理的思想,对系统进行整体调试和完善使用说明的编写。(6)项目评价。项目实施情况按指标进行等级评价,争优的项目需要参加答辩。
3.3注重知识迁移能力培养
不少同学认为,C语言太灵活,容易出错,直接应用C语言开发系统的机会很少,这影响了他们学习“C程序设计”课程的积极性和主动性。其实,每一种高级程序设计语言虽然各有特点,但它们之间存在许多共性的东西,学好了C语言,对学习其他高级语言有较大的帮助,这就是知识迁移能力。因此,在教学过程中,除了要注重学习C语言本身,更要注重学习高级语言的共性。
(1)IPO思想。一般程序都包括输入(Input)、处理(Process)和输出(Output)三部分,编写或分析程序分成三个部分有助于简化问题。
(2) 结构化思想。三种基本结构、复合语句和结构嵌套。任何复杂的结构都可以细分为这三种结构,结构化读写和分析程序有助于提高学习效率。
(3) 模块化思想。宏、函数、方法或过程就是程序模块,C语言是一种函数式语言,函数是C程序的模块。模块化可以将一个复杂的问题简化,有助于问题的控制与解决。
在程序分析或设计中,注重上述高级语言程序设计的共性,有助于培养学生的知识迁移能力。
4结束语
根据对2003级、2004级计算机科学与技术专业学生学习效果和教学反馈的数据分析,发现在现有的教学模式下,通过在“C程序设计”专业基础课程中培养学生的学习能力、应用能力和知识迁移能力,大部分学生不仅提高了学习C语言、应用C语言解决问题的能力,而且在语言学习方法、程序设计思想和编程实践积累的经验等方面都取得了较好的学习效果。
参考文献:
[1] 祝智庭. 现代教育技术——走向信息化教育[M].北京:教育科学出版社,2002.
[2] 蔡红. 建构主义教学方法在“C程序设计”教学中的应用[J]. 理工高教研究,2007,26(4):98-99.
关键词:数组;元素;数据;类型
中图分类号:TP313文献标识码:A文章编号:1007-9599 (2010) 16-0000-02
Elements of the Array in C-language
Zhang Kexing
(Foreign Language Teachers College of Taiyuan University,Taiyuan030012,China)
Abstract:The array is the most commonly used programming data st-
ructure.Array can be divided into array of values(integer group,real array),a character array and pointer array and the array of structures.
This array will be examples of various types were analyzed and explained.
Keywords:Array;Element;Data;Type
一、引言
数组是相互关联的一批数据的序列,序列中的数据称为数组的元素,可按照排列顺序编号,起始编号一般为0,前后两个数据的编号有差异,通过编号可以唯一指定数组中的数据成员。数组中的元素可以是基本类型,也可以是构造类型。按照数组元素的不同可将数组分为数值数组、字符数组、指针数组、结构数组。
二、数值数组
数值数组是指数组元素是整型、实型、及其相关类型的数据,简单说,就是元素是数字的数组。
例1:
main()
{
int i,a[10];
for(i=0;i
a[i]=i;
for(i=9;i>=0;i--)
printf("%d ",a[i]);
}
在该例中,第一个for语句给数组a中的10个元素赋值为整形数据0-9,赋值以后数组中数据如下:
第二个for语句将数组a中的10个数字反序输出,即9、8、7、6、5、4、3、2、1、0
数值数组是数组中使用率最高的数组,需要注意的是一个数组中的数据必须是同一种类型的数据,
{int a[3];
a[0]=3;
a[1]=2.5;
a[2]=3.0;}
是不合法的。
三、字符数组
C语言没有专门定义字符串数据类型(如其他语言中的string),它用以'\0'结尾的字符数组来表示一个逻辑意义上的字符串。
字符数组主要有两种用途,(1)存储字符串,(2)存储字符或字符变量。这两个是不同的,刚开始接触时很容易混淆。下面进一步分析这两者的不同。
首先初始化时不同,用于存储字符串,例如:char str[]="Hello"; 用于存储字符或字符变量,例如:char Chars[]={‘H‘‘e‘,‘1‘‘1‘,‘o‘}。这两者的存储方式是一样的,但是存储内容稍微有所不同,那就是第一种情况会在结尾加上‘\0’,存储情况类似于{‘H‘‘e‘,‘1‘‘1‘,‘o‘,‘\0‘},存储空间会比第二种情况大一点,但是这个存在空间并不被计算进字符串(其实只是字符数组)变量中。
C语言中提供的字符串操作函数其实是针对于结尾是‘\0‘的字符数组进行的。输出函数printf中的输出参数%s也是针对于结尾是‘\0‘的字符数组。
另外,还有一种方法可以定义字符串(其实也是字符数组),声明如下:
char * string = "this is a point charArray.";字符指针指向字符数据的第一个字符的位置。
最后,有两点特别说明。
(1)字符串常量给出的是地址值。如
char *p, s[10];
p="hello";//正确
(2)不能用赋值语句给字符数组整体赋一串字符,例:
char str[10];
str = "abc";//错误
例2:
char c[10]={‘c’, ‘’, ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,’m’};
赋值后数组元素如下:
四、指针数组
在C语言中,一个数组的元素值为指针则是指针数组。 指针数组是一组有序的指针的集合。指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。
指针数组说明的一般形式为:
类型说明符*数组名[数组长度]
其中类型说明符为指针值所指向的变量的类型。
例如:
int *pa[3]
表示pa是一个指针数组,它有三个数组元素,每个元素值都是一个指针,指向整型变量。
例3:
通常可用一个指针数组来指向一个二维数组。指针数组中的每个元素被赋予二维数组每一行的首地址,因此也可理解为指向一个一维数组。
main(){
int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
int i;
for(i=0;i
printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
for(i=0;i
printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}
本例程序中,pa是一个指针数组,三个元素分别指向二维数组a的各行。然后用循环语句输出指定的数组元素。其中*a[i]表示i行0列元素值;*(*(a+i)+i)表示i行i列的元素值;*pa[i]表示i行0列元素值;由于p与a[0]相同,故p[i]表示0行i列的值;*(p+i)表示0行i列的值。
在C语言中,数组元素全为指针的数组成为指针数组。
一维指针数组的定义形式为:“类型名*数组标识符[数组长度]”。
例如,一个一维指针数组的定义:int *ptr_array[10]。
指针数组的含义:
指针数组中的每一个元素均为指针,即有诸形如“*ptr_array[i]”的指针。
由于数组名本身也是一个指针,因此指针数组中的元素亦可以表示为“*(*(ptr_ayyry+i))”。又因为“()”的优先级较“*”高,且“*”是右结合的,因此可以写作**(ptr_array+i)。
五、结构数组
数组的元素也可以是结构类型的。因此可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。
方法和结构变量相似,只需说明它为数组类型即可。
例4:
struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5];
定义了一个结构数组boy,共有5个元素,boy[0]~boy[4]。每个数组元素都具有struct stu的结构形式。
例5:计算学生的平均成绩和不及格的人数。
struct stu
{
int num;
char *name;
char sex;
float score;
}boy[5]={
{101,"Li ping",'M',45},
{102,"Zhang ping",'M',62.5},
{103,"He fang",'F',92.5},
{104,"Cheng ling",'F',87},
{105,"Wang ming",'M',58},
};
main()
{
int i,c=0;
float ave,s=0;
for(i=0;i
{
s+=boy[i].score;
if(boy[i].score
}
printf("s=%f\n",s);
ave=s/5;
printf("average=%f\ncount=%d\n",ave,c);
}
本例程序中定义了一个外部结构数组boy,共5个元素,并作了初始化赋值。在main函数中用for语句逐个累加各元素的score 成员值存于s之中,如score的值小于60(不及格)即计数器C加1,循环完毕后计算平均成绩,并输出全班总分,平均分及不及格人数。
六、总结
数组是程序设计中最常用的数据结构。数组可分为数值数组(整数组,实数组),字符数组以及指针数组和结构数组。数组可以是一维的,二维的或多维的。数组类型说明由类型说明符、数组名、数组长度(数组元素个数)三部分组成。要想将不同的数据用不同类型的数组存放,就需要深入了解每一种类型的数组及其特点,这样才能灵活运用,充分发挥每种数据类型的长处。
参考文献:
[1]谭浩强.C程序设计教程[M].北京:清华大学出版社,2007,7
[2]李岩.C语言程序设计基础与上机知道[M].北京:清华大学出版社,2006,3
[3]马秀丽等.C语言程序设计[M].北京:清华大学出版社,2008,3
[4]罗坚.C语言程序设计[M].北京:中国铁道出版社,2009,2
作者简介:
论文摘要:本文首先分析了当前汇编语言的教学现状及实验环节的重要作用,然后阐述了汇编语言实验教学的设计思路,给出了较详细具体的实验内容安排。
1 汇编语言及其教学现状
汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是唯一能够利用计算机所有硬件特性并能直接控制硬件的语言。对程序的空间和时间要求很高的场合,汇编语言的应用是必不可少的,至于很多需要直接控制硬件的操作场合则更是非用汇编语言不可。用汇编语言编写的程序的执行速度通常比高级语言(如C/C++)快很多,甚至成百上千倍。相应的,汇编语言的缺点就是使用者需要对硬件有更深入的了解,编程效率不高。
“汇编语言程序设计”课程的任务是为“计算机组成原理”、“接口”、“操作系统”等后继课程提供必要的基础知识,它对训练学生掌握与硬件相关的程序设计技术、从事自主版权计算机芯片和系统软件的开发、信息安全、过程控制等方面,均有十分重要的作用。无论计算机技术如何发展,机器语言、汇编语言的计算机程序设计语言体系仍然是计算机技术的基础,也是计算机技术的重要知识体系之一。不能了解和熟悉汇编语言,不仅将导致学生知识结构的缺乏,也可能导致学生认知水平的降低,开发手段的贫乏。
然而,初学者往往感到它难学、难懂、抽象,更难以掌握。教师开展教学困难,学生学习和掌握困难,教学效果差,以致会影响后继课程的学习。
2 实验环节在汇编语言教学中的作用
在计算机相关专业的教学领域,实验和实训教学是培养大学生学习能力、实践能力、思考能力、创新能力的重要环节和有效途径。显然,学生在学习汇编语言这门课程中产生的困难,首先来自于他们对所学知识缺乏必要的感性认识,没有充分的实验。
计算机在很多方面不同于其他学科,尤其是与硬件有密切关系的课程。由于汇编语言课程具有硬件操作的密切相关性,实验环节在整个教学活动中就占据了举足轻重的地位.汇编语言的实验对培养学生的动手能力和学习兴趣,提高学生阅读、编辑和调试程序的能力,有着不可替代的重要作用。学生通过实验课深入了解CPU、存储器、接口及外部设备的工作特性,对数据在计算机中的表达和传送产生感性认识。在实验中对汇编语言达到更好的理解、掌握,从感性认识上升到理论认识。
3 实验教学的设计思路
由于各高校办学类型不同、培养目标不同、所在地及周边地区社会需求不同,计算机及其相关专业的教学内容也应有所不同。对于非研究型院校的相关专业,对“汇编语言”的教学可以集中在适度的理论知识和充分的操作实践上。“适度”体现在理论课的讲授中内容不必展开太宽,“充分”体现在实验课的安排上要充分。
尽管学生学习汇编语言有着不少困难,但“兴趣是最好的老师”,要激发学生的学习兴趣。有了兴趣,他就能积极地思考,大胆地探索,变被动接受为主动思考。因此,汇编语言的实验教学总的思路就是要以激发学生兴趣为主线,尽量设计趣味性的实验内容,充分发挥学生的积极性和创造性。
很多学生不重视实验课的主要原因之一是认为实验课的好坏对学习成绩影响不大,目前多数院校的学习成绩评定,仅以期末一张考试卷的好坏而定,这使很多学生重理论、轻实验。因此,应认真记载每个学生在实验课上的实际操作能力和编程能力,并以优、良、中、差进行仔细考核,开学初就明确告诉学生这种考核制度的存在,使之开始就没有怠慢的情绪,从思想上重视实验。
实验教学的安排按照由浅入深、循序渐进的方式进行,合理选择实验内容,尽量避免过多过杂,内容选择注意举一反三,即以启发思维为主,对设计型、综合型实验只要能完成预定实验目标,不苛求实验过程与步骤的统一。实验所演算的汇编语言程序应具备好的观测效果,能直接体现计算机的操作特点,教师演示和学生实践穿行,并且注意重复对比,让学生发现自己操作的失误,加深对汇编语言操作规律的理解。
实验教师在实验中主要起到引导的作用,实验前的讲解以重点、难点和注意事项为主,不应面面俱到,可以先给出一些问题,让学生带着问题去做、去观察、去思考。实验中,则应以学生为主体,让每个同学通过操作行为感受计算机的物理过程,教师将理论揉在实例中的具体操作中,学生会感到数据是有形的,CPU的操作是物质化的。经过反复练习,学生不但学到了基础知识,而且提高了综合分析和理解能力。实验中,还要鼓励学生自己修改实验,有时学生对自己编的程序没有把握,一旦上机实验后就清楚了。他在计算机上修改程序,观察修改后的结果,实际上就是了解改动部分在整个程序中所起的作用,这种作用的认识和理解不是通过说教得来的,而是切身经历的、看到的,学生对它的理解、记忆就要深刻得多。
4 实验内容的具体安排
具体的实验内容应覆盖汇编语言教学中的各重要方面,内容涉及debug、汇编语言编程环境、汇编语言程序设计、输入输出与中断、Win32汇编、汇编语言与C语言的混合编程等。类型分为选作和必做。每个实验分属验证型、设计型或综合型。
4.1 稳扎稳打练好基本功:debug和编程环境
“万事开头难”。对汇编语言的学习,能否开好头很关键,很多学生就是因为开始没学好,感觉跟不上,就不再认真地学习了,有的甚至放弃了。其实汇编语言实验开始的基础部分是比较简单的,想掌握它是没什么大问题的。
汇编语言源程序通常以ASCII文本文件的形式保存,通过汇编链接形成一个EXE可执行文件。对EXE文件的调试构成了实验课的主体内容,贯穿始终,而EXE文件的调试通常是通过debug实现的。学生通过使用debug可以观察到存储器的数据存储情况,也可以随时观察到CPU中寄存器的数据变化。debug的反汇编命令是理解汇编语言的助记符形态和机器指令的01码形态的对应关系的重要工具,学生可以通过它深入体会汇编语言中指令的构成及各部分含义。debug提供的单步执行命令是另一个重要工具,利用t单步执行一条指令,及时观察数据缓冲区的变化情况,这也是进行调试、发现程序错误的最直接有效的方法。
debug的实验部分以使用a、t、r、d、u等命令为主反复进行指令练习。学生通过使用debug观察到指令执行前后机器中数据的变化,对深入理解计算机的工作原理、汇编指令的作用是直接的和不可替代的。学生不再感到机器是复杂的,指令是抽象的。
接下来安排的实验则是对汇编语言编程环境的熟悉和掌握,这也是重要的一环。对编程环境不熟悉,不仅会影响学习汇编语言的效率,还会引起一些不必要的错误发生。因此可以考虑多给几个简单完整的程序,让学生多去 使用编程环境,熟悉汇编链接过程。实验初,只给一些正确的程序,让学生经过汇编链接可以较容易地形成exe文件并成功执行,看到了正确的结果,学生就有了方向,也就有信心去做下面的实验了。
在熟悉了简单的编译过程之后,接下来可以在原有程序中适当安排一两个错误,让学生观察汇编链接中出现的错误信息,理解这些错误发生的原因,这一点对程序调试是至关重要的,如果看不懂错误信息,就没有办法正确定位错误,也谈不上修正错误了。
以上分析,学习汇编语言伊始,一定要练好基本功,包括对debug的熟练使用,对编程环境的熟悉。这部分实验一定要安排得充分,力求使学生不再对机器望而生畏,不再对汇编指令有抽象难懂的感觉,如果能开好这个头,后继的学习就顺利得多了。
4.2 轻轻松松做改变:汇编语言程序设计
由于学习汇编语言之前,学生通常已经学习过一门程序设计语言,因此这部分实验可安排简单、典型的验证型、设计型实验,以编写程序为主。先要求学生用之前学过的程序设计语言实现,然后再给出汇编语言的实现,通过对比;学生自然可以发现汇编语言与其他程序设计语言的异同。当程序出现错误时,则必须要求学生使用debug进行调试,观察变化,排除错误,加强程序调试能力。
4.3 细心耐心学核心:输入输出与中断
中断是学习汇编语言的重点加难点部分,能否真正掌握汇编语言也在于此,中断也是汇编语言的魅力所在。这部分实验一定要找一些学生感兴趣的、具有明显观测效果的例子,至少安排两个阶段的实验。第一阶段以验证型实验为主,先使学生熟悉中断过程、中断处理程序的框架;第二阶段以设计型实验为主,让学生自己去思考中断过程中发生的事情,中断程序设计的方法。对这部分知识的传授一定要有耐心,对每个程序的讲解要透彻、概念清晰。中断是真正要用的东西,之前学习的内容只是为它做铺垫,不能学好中断,汇编语言这门课的真谛就没有学到。
4.4 兴趣延伸:WIn32汇编、汇编语言与C语言混合编程
很多学生学习汇编语言之初就会问汇编语言用在哪里,很少接触到汇编语言等问题,其实现在汇编语言很少单独使用,而Win32汇编、汇编语言与C语言的混合编程用的比较多,这两部分内容学起来并不难,可当作拓展知识部分,作为自学内容。教师可以找一些实际使用这部分内容的例子,让学生知道汇编语言的用途,使学生不再“学而不用”,“学而不知用”。
考试时间
云南大理2020年4月自学考试时间安排在4月11日星期六、4月12日星期日(上午9:00-11:30;下午14:30-17:00)举行。
考试须知
(一)考场设置:由各州(市)招生考试机构确定。需在县城以外设考场的,须报省招考院批准。“广告”专科只在昆 明设考点。
(二)考生应试时,须带准考证、考试通知单和居民身份证(或其它能证明身份的有效证件),三证不全者不得进入考场。考生必须严格遵守考场规则,不得以任何形式作弊。凡违纪违法者,按2011年教育部第33号令和《刑九修正案》严肃查处。
(三)考试成绩以百分计,六十分及格,不及格者可参加该门课程的下一次考试。考试成绩公布在“云南省招考频道(ynzs.cn)”网站上,考生自行登录查询。考生对成绩有质疑的可在成绩公布之日起10个工作日内到各州(市)招生考试机构办理查分申请,由各州(市)招生考试机构汇总后统一到省招考院查分,查完后通知考生。省招考院不直接对考生查分。
(四)考试时,对需要使用计算器的科目,考生可携带没有存储功能的计算器,并且不得互相借用。不准使用有存储、接收、发射功能的电子工具。考生进入考场考试严禁携带任何通讯工具,否则将视同作弊。
(五)同一考试时间段,一名考生只能参加一门课程的考试。
(六)全国计算机等级考试(NCRE)成绩在自考系统中的使用:
根据全国考委办函[2004]148号文件规定:
1.NCRE课程暂与高等教育自学考试的部分专科课程进行衔接。
2.凡获得NCRE一级合格证书者,可以免考高等教育自学考试中的《计算机应用基础》(课程代码:00018)或《计算机应用技术》(课程代码:02316)课程(包括理论考试和上机考试两部分)。
3.凡获得NCRE二级C语言程序设计(笔试和上机)合格证书者,可以免考高等教育自学考试中的《高级语言程序设计(一)》(课程代码:00342)课程(包括理论考试和实践考核两部分)。
4.凡获得NCRE三级PC技术(笔试和上机)合格证书者,可以免考高等教育自学考试中的《微型计算机及其接*术》(课程代码:02319)和《微型计算机原理及应用》(课程代码:02277)课程(包括理论考试和实践考核两部分)。
(七)全国公共英语等级考试成绩在自考系统中的使用:
高等教育自学考试的考生参加PETS二级或PETS三级考试,笔试合格者的成绩可直接替代自考有关专业大专或本科公共英语〈即英语(一)(课程代码:00012)、英语(二)(课程代码:00015)〉的考试成绩,并可获得相应的学分(PETS二级替代专科英语(一)成绩,PETS三级替代本科英语(二)成绩,英语专业不能替代)。考生是否参加相应口试,则根据考生是否要求获得PETS等级证书或高等教育自学考试的相关专业来定。
(八)汉语言文学本科专业的毕业论文答辩定于每年的5月和11月,分两次举行,考生可与云南师范大学文学院联系进行答辩事宜。英语本科的“口译与听力”,专科的“听力”、“口语”考试时间由云南师范大学外语学院安排,请考生与学校联系。
(九)已取得自考专业全部课程合格证书的考生,如该专业有实践、实习、设计、毕业论文等考核要求的,应及时和主考院校联系实习考核事宜,待取得合格成绩后,方可办理毕业证书。
一 课程体系设计和实践实训设计整体思路
1.遵照教育部对经济统计学专业的要求
严格遵照教育部对经济统计学专业的要求。主干学科为理论经济学、应用经济学、统计学,其中核心课程为西方经济学(微观经济学、宏观经济学),计量经济学,财政学,货币金融学,会计学,经济统计学,国民经济统计学,概率论与数理统计,抽样技术与应用,应用时间序列分析。实践性教学环节包括实验课程(含基本统计分析软件应用、统计实务模拟等),社会实践(含经济社会统计调查、统计工作实习等),科研和论文写作(含毕业论文、学年论文、科研实践等)。专业实验包括计算机基本技能实验、统计分析应用软件实验、经济计量分析软件实验、数据挖掘技术与应用实验。
2.参照其他院校的培养方案和课程设置
它山之石,可以攻玉。我们选择了部分具有代表性的财经院校(如上海财经大学、中央财经大学、东北财经大学、西南财经大学、中南财经政法大学、北京工商大学、上海金融学院、 河南财经大学、浙江财经学院和山东工商学院)和综合类院校(如浙江大学、吉林大学、南京大学和云南大学)以及师范类院校(如北京师范大学、华东师范大学、东北师范大学、南京师范大学)作为参照院校。通过比较分析得出,在统计学经济统计、商务统计、金融统计方向中,财经类院校主要突出经济学课程,招生偏重理科生。综合性院校和师范类院校主要课程为理学类,招生偏重理科生。
综上所述,经济统计学专业应培养适应信息化社会需要,熟练掌握现代统计理论和经济数量分析方法,具有扎实的统计学、经济学和金融学基础,能熟练应用计算机软件处理统计数据的复合型高素质经济管理统计人才。学生毕业后可在政府部门、金融机构、外资企业和大中型公司等从事经济统计分析、管理咨询、市场调研和商务数据分析等管理工作。
3.与学院培养方案形式统一
新制订的培养方案和整个学院的形式保持了统一,以便于教务人员管理工作的开展。
二 经济统计学培养方案专业课的设置
经济统计学的培养目标与基本规格和招收对象为理科生,设置了保险精算、金融统计和商务统计三个方向。学生修满培养方案规定的学分并达到学位授予要求者,授予经济学学士学位。
由于经济统计学对统计学和经济学知识的要求较高,我们提高了课程总学分和总学时,注重主干学科和专业课程的开课顺序和教学周学时分配,强化实训实践课程,实行理论和实践并行。
培养方案确定了5门学科基础课程,分别为宏观经济学、微观经济学、C语言程序设计、概率论与数理统计、管理学。确定了5门专业基础课程,分别为基础会计学、经济统计学、货币金融学、财政学、计量经济学。确定了9门专业核心课程,分别为国民经济统计学、多元统计分析、统计预测与决策、抽样技术与应用、应用时间序列分析、金融统计学、市场调查与分析、投资学、数据挖掘。
分设了三个专业方向,分别为保险精算(开设保险学、保险统计学、利息理论、寿险精算、非寿险精算5门课程)、金融统计(开设商业银行经营管理、金融市场、金融资产评估、金融工具与金融风险管理、投资组合分析 5门课程)和商务统计(开设信息检索与利用、企业经营统计学、投入产出分析、项目管理、质量控制统计方法5门课程)方向。