C语言辅助教学系统的开发
2016-12-19张亚萍
张亚萍
(淮北师范大学 物理与电子信息学院,安徽 淮北 235000)
C语言辅助教学系统的开发
张亚萍
(淮北师范大学 物理与电子信息学院,安徽 淮北 235000)
为了解决“C程序设计”课程教学中存在的知识点庞杂、教学方式单一、理论算法抽象等问题,采用B/S三层体系结构、以JSP为开发工具、以Sqlserver2008为后台数据库,开发C语言辅助教学系统.通过对课堂案例、经典算法、在线练习等模块的学习,培养了学生自主学习的能力,训练了学生编程思维的能力,使学生收获自信,体会到C语言学习的乐趣.
课堂案例;辅助教学;经典算法;在线练习
1 引言
“C程序设计”是计算机专业、电子专业、光电专业等的一门重要的专业基础课,它还是数据结构、微机原理、单片机原理等课程的前导课程,所以说如果同学们不能对“C程序设计”的学习打下坚实的基础,将对后续课程的学习带来很大的麻烦.由于“C程序设计”的理论抽象,语法、知识点结构庞杂等特点,使得大部分老师都是采用课件与板书结合进行满堂灌的教学方式,这种传统的“重语法、轻算法”的教学方式[1],难以调动学生学习的积极性和主动性.针对“C程序设计”教学现状及存在的问题[2],本文设计完成的C语言辅助教学系统,可以将教学中抽象的、不易理解的知识点以动画的形式展现;同时通过对典型案例的学习,可以加强知识点之间的联系;通过由简到难习题的练习,可以培养学生自主学习的能力和提高学生编程思维能力.
2 系统功能结构
C语言辅助教学系统基于B/S三层体系结构、以JSP为开发工具、以Sqlserver2008为后台数据库进行开发.该系统主要实现了登录模块、管理员模块、课件模块、课堂案例模块、经典算法模块、习题模块和答疑讨论模块等.由于篇幅的问题,本文紧对学生模块中的子模块进行详细的阐述.主要功能模块结构如图1.
图1 系统结构图
3 数据库设计
由于SQLServer很高的安全性,较好的易用性和高效性,良好的通用性和兼容性[2],本系统选择了SQL Server 2008作为后台数据库平台.数据库由多个数据表组成,主要包括以下几个方面:
(1)账号列表:该表存储所有注册人员的账户号、账户名、密码、权限和个人资料.
(2)试题库表:包括试题的编号、试题的题型、试题的选项和试题的答案等.
(3)提问留言表:该表包括问题编号、问题标题、反馈内容、提问人和发表时间等.
(4)问题回复表:该表包括回复编号、问题编号、回复内容、回复时间等.
(5)课堂案例表:该表包括例题的编号、例题的题目、例题所在的章节等.
4 主要功能模块的设计与实现
4.1 登录模块设计
首次进入该系统需要注册个人信息,系统自动给注册用户分配一个账号,账号又分学生账号和管理员账号.以管理员账号登录可以对教学课件,经典习题等信息进行管理;以学生账号登录可以浏览课件、学习经典算法、在线练习和答疑讨论等.
4.2 管理员模块设计
以管理员身份登录该系统,该人员有以下权限:
(1)课件管理:每带过一届学生,老师对该门课程都有新的认识和新的教学改进,如果老师需要对课件重新修改或者换教材的话,教师以管理员的身份登录就可以完成对课件的增加、删除和更新等操作.
(2)更新课堂案例:课堂案例都是选取有代表性和接近现实的实例,针对每届学生的专业特点选取不同的案例.
(3)更新试题:根据每年全国计算机等级考试的试题及时更新试题库.
(4)更新答疑:以管理员身份登录后可以对于一些答非所问或灌水的帖子进行整改,删除等操作.
(5)用户管理:对于一些长期没登录的用户,管理员可以对其进行提醒或删除操作;如果有用户密码遗忘,管理员可以对其密码进行查看、修改或删除等操作.
4.3 学生模块设计
4.3.1 课件子模块设计
课件是以教材为基础,以适应电子信息科学与技术专业的特点为目标,制作的多媒体课件.如果课堂上老师讲解的内容学生有不明白的地方,学生登录该系统后可以在线浏览或下载课件.
4.3.2 课堂案例子模块设计
由于该课程的知识点零散庞杂加上语法结构的条条框框比较多,每章都设计几个有代表性的案例供同学们学习.课堂案例尽量采用简单而又能涵盖本章较多知识点的例子,也就是采用实例化的教学模式,这样弄够将抽象的概念具体化.第一次打开该页面显示本章第一个例题,每个案例的页面中设计四个区域,下面以第八章为例介绍该模块的结构.
(1)题目、算法区.第八章善于利用指针的一个例题是“对输入的两个整数按大小顺序输出”[3].算法分四步完成:定义、输入、比较和输出.
(2)代码区、知识点区.代码区除了完成四步的代码外还有关键语句的注释,比如指针变量的定义,指针指向变量等,这些注释都有超级链接,如果对结构不熟悉,这时点击该链接在知识点区就会显示该知识点的详细内容.这样,同学们在看程序时可以对所学知识点进行很好的回顾.
(3)控制区.为了让同学们能使所学的知识系统化和多样化,尽量做到一题多解.比如上一个例题,第一种方法采用普通变量比较对换实现两个整数由大到小输出;第二种方法采用普通变量作为函数参数实现两个整数由大到小输出;第三种方法采用指针变量作为函数参数,被调用函数中借助整形变量作为中间变量实现形参指针值的对换,实现两个整数由大到小输出;第四种方法采用指针变量作为函数参数,被调用函数中借助指针变量作为中间变量实现形参指针指向的对换,不能实现两个整数由大到小输出.本实例的四种方法由控制按钮选择,每选中一种方法通过结果按钮的点击都可以看到对应的输出结果与结果分析页面.
(4)交互区.比较难理解的程序会有交互区,比如上例中的方法三和四就有交互区,为了加深对指针变量的理解.由控制按钮选择后,用户输入变量的值,点击播放按钮就可以查看程序运行期间指针所指向变量值的变换情况.这样学生在学习的过程中会从被动的观察者变为主动参与者,可以大大提高学习的积极性.
4.3.3 经典算法子模块设计
每届学生都反映,C语言程序设计逻辑性强,算法理解困难,编程更是难上加难.针对该问题,本系统每个经典算法页面都设置三个区域:算法区、代码区和动画演示区.将枯燥难懂的算法用动画的形式展现给大家,使学生能真正领会算法的内涵,进而顺利完成算法到程序的过度,达到提高学生编程能力的目的.
4.3.4 在线练习子模块设计
根据每章的知识点创设由简到难的习题,题型分别为选择题和程序阅读题.学生学习完本章的内容后,为了检验自己对本章知识点的掌握情况,可以进入在线练习模块.完成本章的习题后可以提交自己的答案,这时就会弹出参考答案页面,该页面对一些难点还有相应的解释说明部分.使学生在没有老师的情况下也可以解决遇到的难题.
4.3.5 讨论答疑子模块设计
学生在学习的过程中如果有什么问题,可以在线提问,老师或其他的同学可以在线答疑.该模块还设置了讨论区域,该区域可以设置多个讨论组,用户可以浏览所有的讨论主题,并且可以在恢复栏中回复留言等.该模块给老师和学生提供了交流平台,可以很好地促进师生之间的交流,达到共同进步的目的.
5 总结
针对“C程序设计”课堂教学中存在的问题,本文开发的C语言辅助教学系统,培养了学生自主学习的能力;提高了学生编程思维的能力;使学生提高了自信,体会到C语言学习的乐趣.
〔1〕顾思思,杨杰.提高C语言课程学习兴趣的方法探索与实践[J].湖南科技学院学报,2014,35(5):135-136.
〔2〕王瑞綺.基于B/S架构的高校教务管理系统的设计与实现[D].电子科技大学,2014.14-16.
〔3〕胡春安,王俊岭.以能力培养为导向的C程序设计教学研究[J].江西理工大学学报,2014,35(2):74-77.
〔4〕谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2010.
TP311.52
A
1673-260X(2016)11-0031-02
2016-06-14
淮北师范大学教研项目(jy15127)