基于云课堂计算机程序设计探索性实验研究
2016-11-16曾庆江郭亚军
曾庆江, 姚 娟, 郭亚军
(华中师范大学 计算机学院, 湖北 武汉 430079)
基于云课堂计算机程序设计探索性实验研究
曾庆江, 姚娟, 郭亚军
(华中师范大学 计算机学院, 湖北 武汉430079)
目前,高校计算机相关专业的实验课多以验证性和综合性实验为主。这种教学模式主要注重对计算机相关专业的基础知识和基本技能的训练.缺少实际应用的创新思维和创新意识。而且随着软硬件的更新和新的需求的不断产生,这种方式不能够跟上形势发展。应将实验教学与云课堂相结合进行计算机程序设计探索性实验教学,训练学生综合利用知识和解决实际问题的能力。
探索性实验; 云课堂; 程序设计
计算机程序设计探索性实验,是学生在已经了解和掌握基础知识和基本原理后,结合实际生活和工作中的问题或者当前科研热点,选定感兴趣的题目自行设计一个方案,并独立自主地完成,要求学生在观察思考的基础上,通过提出问题、分析问题、设计方案、写出程序的过程,主动地探索计算机应用中的创新点,用程序设计方法解决实际工作和生活中的问题,培养学生实践能力、创新精神和提高编程能力。一般把计算机程序设计实验分为3个层次:一是基础验证性实验,主要解决学生基本知识点的掌握,以验证知识点为主;二是综合开放性实验,培养学生用基本知识点综合开发出实际应用软件的能力;三是探索性实验,学生利用前边的知识创造性编程解决未曾解决的实际问题[1]。三者为递进关系,前者为后者基础[2]。
1 云课堂
云课堂可以很好地支撑计算机探索性实验,云课堂是计算机程序设计探索性实验的基础[3],见图1。
图1 云课堂和实验分类组织图
1.1云课堂特点
云课堂的特点正是探索性实验所需要的。
(1) 可以更好地发挥现代化电子设备的优势。可以借多媒体技术,丰富多彩立体地深入浅出地展示,24 h在线无时空阻隔地支持,极为灵活方便。
(2) 云课堂是无边界开放式互动式学习。
(3) 是真正的个性化主动式的学习。
(4) 更有利于学生探索知识,更具针对性和互动性。
(5) 可以实现教学资源最大限度地共享。
1.2计算机程序设计实验对云课堂的要求
(1) 基础验证性实验。教师将知识分为细小知识点,然后制作为基础碎片化教学视频,每个视频刚好控制在学生注意力非常集中的时间段内。每个知识点都有一个短小精悍的实例,可以反复看和反复验证。学生学习简便、方便、效果高,要用时可以很快地弄懂弄透,平时也可以作为一个知识存储地。
(2) 综合开放性实验。软件开发前期工作指导要占一定比例,要经历需求分析、设计、编码实现、调试和运行维护以及效率分析。在讲解综合功能前要穿插软件工程理论和方法,在信息组织上采取视频和文本、多媒体,以问答形式,便于学生搜索和查找。综合开发,不仅把程序写出来,还要有软件工程理论和方法。
(3) 探索性实验。云课堂可以提供方向性的指导,对计算机程序设计中的难点、热点以及待开发、待探究的一些方向和问题,提供相关的知识和资源。这是比较大的工程。教师、学院和有关机构要投入大量人力物力去做。
2 计算机程序设计传统实验分析
计算机程序设计传统实验内容由基础验证性实验和综合开发性实验组成。
2.1基础验证性实验
计算机专业程序设计基础课程主要包括高级语言程序设计、数据结构与算法、面向对象程序设计等核心课程,这几门课程是计算机程序设计课程中重要的基础课程。实验教学要十分强调学生的程序设计基本功训练[4]。教师除了把每个知识点讲透外,更要让学生将所学知识上机编程验证。教材和实验指导书上有相关讲解和例题,比如计算机语言的程序结构、语句、函数、数据类型、编程方法与技巧、常用算法等方面的知识。云课堂可以让其举一反三,重难点的分析和体会,还有自选实验、在线交流和互动以及在线作业系统等。
2.2综合开放性实验
软件设计类课程有软件工程多媒体开发、嵌入式设计,Web 程序设计、数据库系统、Java 程序设计、管理信息系统分析与设计等课程,这些课程要求学生能自主开发各类应用软件系统,为各行各业的生产实践服务。注重实用性软件的开发设计是此类课程实验教学的重点,实验教学分为2个层次:一是以个人为主的课堂实验,根据课程的教学进度依次安排,主要是掌握编程语言与软件开发平台的使用;二是以小团队为主的课外实验,是进行应用软件系统的开发设计。这类实验包括对项目的需求分析、概要设计、详细设计、编码实现、软件测试、使用与维护等众多环节,因而在具体实施过程中应按由简到繁、由易到难的渐进原则进行,先安排一些简单的应用软件让学生开发出来,如学生熟悉的小游戏、学籍管理系统、选课系统、某些设备管理系统、校园网站等。
让学生先掌握应用软件的开发流程与开发技术,再安排实用性强、要求高的应用项目,如有关数据库综合应用的各种基于Web 的MIS 系统、基于C/S结构的其他应用软件等,可由学生自由组合成开发小团队,合理分工、共同完成软件系统的开发。教师在此过程中进行适当的技术指导,要求学生严格按照软件开发流程进行工作,每一阶段都要求写出规范的分析报告或设计文档,可以使学生在实践中得到全面的软件开发训练,为进入IT 领域从业打下坚实的基础。
基础验证性实验偏重于对程序设计基本知识点的验证,是打基础的实验阶段,综合开放性实验注重各知识点综合的操作练习,是综合训练。由于2种实验教学方式都有一个共同特点,就是先有假设的题目和问题,教师和教材给出解决方案和参考答案,学生对于计算机程序设计仅限于基本操作的实现。目前的现状是程序设计实验前,均由实验教师根据实验指导书的要求准备好必要的实验系统和环境,先由教师根据实验内容进行演示讲解,之后学生按照指导书的操作程序操作,得出正确结果,按照既定的格式要求完成实验报告。整个实验过程很少有学生主观的成分。
没有最新应用知识,学生无法将所学的知识与计算机新的应用实践相联系。这种教学为了教学方便,更多地为某个知识点服务,和实践脱节,整个教学环节中学生始终处于被动的地位,没有自主的探索,没有分析判断能力、逻辑推理能力的培养[5]。基于以上原因,学校应该开展各种各样的探索性实验。
3 计算机程序设计探索性实验
学生进入高年级后,经过一、二年级的基础学习和训练,已具备较强的学习能力和软件开发能力,此时要抓紧时间积极地参加各种开发工作和创新型软件编写,如参与学校教师的软件开发与研究的科研项目,也可到有关软件开发公司进行专业实践,还可由学生自己组成团队,在专业教师的指导下承接有关单位的软件项目,进行软件编程[6]。
学生创新能力的培养十分重要,学校要想方设法鼓励和组织学生参加到各种专业竞赛中,各种学科比赛和科技竞赛是培养学生编程能力、展示学院建设成果和教育质量、体现学生学习能力和检验知识应用能力的重要手段。以赛促创,许多比赛同时还是培养、展示学生创新意识、创造能力和创业精神的重要平台。组织比赛队伍进行培训、参赛,一方面可以让参赛队员的创新能力得到发展,另一方面还可起到示范作用,让更多的学生受到鼓舞,参与到创新实践中。
3.1兴趣小组
兴趣小组可以为各种大赛提供必要的人才资源[7],是学生提高编程水平的基地。这种组织形式多种多样,可以自愿报名参加,在具有一定理论知识并具有一定实际编程动手能力的前提下,方能被批准。重点是学习C语言编程,努力提高编程技巧,同时学习单片机,提高硬件和软件的能力。
(1) 教师选择课题,给出关键词;
(2) 学生云课堂上学习并查阅资料,设计方案;
(3) 组织学生讲解,教师评论、指出不足;
(4) 上机编程实现;
(5) 发现问题、分析问题,证明自己的观点;
(6) 写总结报告。
3.2科研小组
我国有完善的科研体系,有课题教师,可以尽可能地让学生参与到程序设计部分中。高校教师大多数有纵向和横向项目,这些项目对程序设计部分要求非常高,学生必须全程参与到其中来,只有把整个项目弄懂弄通才有编程实现的可能。
(1) 建立小组并选举组长。组长负责协助导师召集组员及安排组内工作,组织小组的学习和定期的交流活动。
(2) 学生云课堂上学习提高,并搜集资料。
(3) 学生报告例会制度。定期的例会是展示和检查帮助学生具体工作的机制,在例会上学生提报告,大家分析问题和提建议。
(5) 组织编程。切合项目的编程任务对创新和探索要求很高。
(6) 有相应的奖励制度[8]。
3.3竞赛小组
大赛需要水平,也能赛出水平,最能激发学生的能动性和创造力,能展示学院建设成果和培养质量。每年有种类繁多的国际和国内的各种大赛,等级高低各不相同。所以要求建立各种各样的竞赛小组,客观上要求学院进行各种人力和物力的投入和建设,组建相应的训练领导小组并制定相应的训练计划。
(1) 小组成立。指导人员构成、工作职责、学生选拔。
(2) 制定相应训练计划。要求目标明确具体、方案合理和步骤清晰、经费落实且分配合理。
(3) 严格的准备和训练。根据大赛要求准备人员和参赛作品。分解任务,利用云课堂进行组织和准备。云课堂具有很强的优势,可强有力地支撑学生参赛。
(4) 细致的思想工作。关爱、了解和调整学生参赛的心理、适应能力和控制能力[9]。
我校计算机学院通过兴趣小组、计算机云课堂以及翻转式课堂组织形式,开展了大量的探索性实验并取得丰硕成果,在2015年10月,计算机学院学生连续夺得ACM-ICPC国际大学生程序设计竞赛亚洲区域赛、中国“互联网+”大学生创新创业大赛、中国大学生计算机设计大赛等重大赛事的11项奖励[10]。长期以来,我校计算机学院实施“以赛促教、以赛促学、以赛促创”人才培养战略,以大学生专业素质能力竞赛活动为契机,激励广大学生刻苦钻研,勇于创新,提高了学生的科技创新和适应社会的能力,在为学校和学院赢得荣誉的同时,也为学生就业创业奠定了基础。
4 结语
分析了目前高校实验的现状,把实验分为3个类型和层次,重点探讨了探索性实验的重要性以及实现的方法,即通过对探索性实验强有力支撑的云课堂的分析和建立,在做好基础性验证性实验和开放性实验的基础上,大力开展自主课堂和兴趣小组,创造性地开展探索性实验。
References)
[1] 张铭,李文新.北大信息学院计算机专业课程改革建议[J].计算机教育,2007(4):8-14.
[2] 陈国良.计算思维与大学计算机基础教育[C].济南:第六届大学计算机课程报告论坛,2010.
[3] 黄诗笺,谢志雄.武汉大学生物学实验教学中心创新实验教学建设[J].实验技术与管理,2009,26(2):9-11.
[4] 祁鑫,梁鸿,宫法明.计算机专业柔性化课程体系改革的研究与实践[J].实验室研究与探索,2007,26(12):322-324.
[5] 吴先球,刘朝辉,叶穗红,等.网络环境下远程实验的技术探讨[J].实验技术与管理,2008,25(6):12-13.
[6] 陆文蔚,牛萌萌,裴玲.“功能性食品学”探索性实验的设计与实施Ⅱ[J].实验室研究与探索,2011,30(6):281-283.
[7] 李瑞生.Java程序设计课程教学中遇到的问题和对策[J].计算机教育,2010(22):119-122.
[8] 陈杰华.程序设计课程中强化计算思维训练的实践探索[J].计算机教育,2009(20):84-85.
[9] 董荣胜,古天龙.计算思维与计算机方法论[J].计算机科学,2009(1):1-4.
[10] Wing J M. Computational Thinking[J].Communications of the ACM,2006(49):33-35.
Research on exploratory experiments of computer program design based on cloud classroom
Zeng Qingjiang, Yao Juan, Guo Yajun
(Department of Computer Science, Huazhong Normal University, Wuhan 430079, China)
Currently, the experimental class of the computer relative profession is mainly the verification and comprehensive experiment in colleges and universities,This teaching mode pays particular attention to the basic knowledge and basic skills of computer related professional training under lacking innovative thinking and innovative consciousness of practical application . This way can not keep up with the development of the situation with the update of software and hardware and the continuous generation of new requirements. The experimental teaching should be combined with the cloud platform. The exploratory experimental teaching of computer program design can train students to use the knowledge and ability to solve practical problems.
exploratory experiment; cloud classroom; program design
10.16791/j.cnki.sjg.2016.09.050
2016-04-18修改日期:2016-05-03
曾庆江(1966—),男,湖北随州,硕士,工程师,研究方向为计算机应用.
E-mail:zengqj1@mail.ccnu.edu.cn
tp393
B
1002-4956(2016)9-0190-03