计算机程序设计课程实践和考试方法的改革 —经验、支持工具

Slides:



Advertisements
Similar presentations
1 计算机软件考试命题模式 计算机软件考试命题模式 张 淑 平 张 淑 平. 2  命题模式内容  组织管理模式 − 命题机构和人员组成 − 命题程序  试卷组成模式.
Advertisements

数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
学生程序自动评测与抄袭检测系统 赵长海 北京航空航天大学 计算机学院
联系方式 课程学习平台网址: 用户名:学号 ; 密码:身份证后 6 位.
项目十二 Internet 网络应用  项目情景引入  项目成果展示  项目任务分析  完成任务  项目总结  项目实战练习.
《程序设计实践》 孙辉 理工配楼104A
计算机网络教程 任课教师:孙颖楷.
ASP .NET 程序设计(C#版) 第二版 机械工业出版社同名教材 配套电子教案
——Windows98与Office2000(第二版) 林卓然编著 中山大学出版社
山东英才学院 SHANDONG YINGCAI UNIVERSITY
C++面试笔试精要 张立伦 讲师的CSDN博客地址
网页设计师的职业成长规律 主讲:刘万辉 淮安信息职业技术学院.
程序设计类课程教学辅助平台 CourseGrading 赵长海
赵长海 北京航空航天大学 软件所 高级程序设计语言教学辅助系统 赵长海 北京航空航天大学 软件所
关于本门课程.
C语言实验 第一课 标题:学号+姓名.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
《数据结构》课程简介 李武军 南京大学计算机科学与技术系 2016年秋季.
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
《数据库原理及应用》课程介绍 信息工程学院 孙俊国
授课对象:微电子、电子、计算机专业本科生、研究生 先修课:数字逻辑电路、Verilog
嵌入式系统课程简介 宋健建 南京大学软件学院 2004/02/10.
第二讲 搭建Java Web开发环境 主讲人:孙娜
R in Enterprise Environment 企业环境中的R
SOA – Experiment 3: Web Services Composition Challenge
SVN服务器的搭建(Windows) 柳峰
管理信息结构SMI.
走进编程 程序的顺序结构(二).
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
利用Arduino制作定向装置 核科学与技术系 崔伟毅 梁嘉祺
第二章 Java语言基础.
数据挖掘工具性能比较.
分布式程序设计 姚斌 计算机科学与工程系 上海交通大学.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
编程作业3:网页正文抽取 (10分).
实用网络营销基础 冯英健 2006年8月6日 首页.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
并行程序设计教学辅助平台 赵长海 结题.
2019/4/20 关注NE官方微信,获取更多服务.
2019/4/16 关注NE官方微信,获取更多服务.
网页设计与制作 —— 学习情境二:网页模板设计
中文题名 介绍/亮点 研究方法 结果/讨论 结论 作者1 1*,作者2 1,2,作者3 2
2019/4/ /4/25 学习科研好助手 NoteExpress文献管理与检索系统 北京爱琴海乐之技术有限公司.
2019/4/26 关注NE官方微信,获取更多服务.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
Introduction——welcome to data structures 2014
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
<编程达人入门课程> 本节内容 计算机编程语言 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
第二章 Java基本语法 讲师:复凡.
计算机绘图 AutoCAD2016.
<编程达人入门课程> 本节内容 学习路线 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
第二节 C语言的特点.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
PPCA2014.
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
任课教师:戴开宇 TA:时均帅、谭肖、王安华 程序设计B班 :20-16:50(90分钟)
入侵检测技术 大连理工大学软件学院 毕玲.
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
Presentation transcript:

计算机程序设计课程实践和考试方法的改革 —经验、支持工具 赵长海 博士 zch@buaa.edu.cn 北京航空航天大学 计算机学院 课程网站:http://programming.buaa.edu.cn 2010年4月18日

问题 ? 教学目标是否达到 教学方法是否有效

从研究生复试看效果 上机考试形式 2个小时内,完成3道编程题 题目来自大一学生的期中或者期末试题

从研究生复试看效果 上机考试形式 3道编程题,2个小时内完成 题目来自大一学生的期中或者期末试题

从研究生复试看效果 题目示例

从研究生复试看效果

从研究生复试看效果

从研究生复试看效果 观察到的现象: 大部分要讲程序先写到纸上,然后再录入IDE内 念博士时,我接触过一个来自中国大陆的学生,他叫沈为民,他有几件时间真的让我惊叹不已,印象最深的是,当我们大家都在计算机上写程序的时候,只有沈为民不急于上机,他把一行行的程序写到纸上,反复地看。我们非常惊讶,问他“天啊,你怎么不在计算机上写?”他说,“在中国,我们都是这样的,我们没有那么多计算机啊。所以我们都是写在纸上,然后老师给我们修改程序。”我当时非常震惊,因为把程序写在纸上的做法,我闻所未闻,更不敢想象。 《世界因你不同—李开复自传》第四章P99

改革前的问题 改革前(6年前)存在的问题 在与非计算机专业(数学、电子、自动化、机械等)的学生的竞争中,计算机专业的学生并未表现出明显的专业优势 很难监督学生是否完成作业 抄袭现象严重 试卷评阅工作量太大

问题分析 教学内容偏窄偏浅 教学方法不适当 实验考核手段落后 教学内容主要是语言的语法、语义等基本内容的介绍以及简单的应用举例,缺少较深入讨论程序设计的内容,缺少对语言运用能力培养和训练的内容 教学方法不适当 把这门课混同于一般的理论课,重视知识的讲授而忽视对能力的培养 实验考核手段落后 缺少必要的技术手段,因此多采用书面方式,教师在评判学生的练习和考试答卷时面临巨大的工作量和难度

改革 2003年,启动 计算机程序设计课程实践和考试方法的改革

改革的目标 对于一般问题,能够在已知算法的前提下,具备分析问题、解决问题的能力,在 40~60分钟内编写并调试通过、能正确运行、一般在40~50行有效代码以内的程序;

改革的核心 实践! 依赖计算机督促学生认真学习 依靠计算机评测学生程序,给出及时反馈 开发学生程序实时自动评测与抄袭检测系统 上机练习 上机考试 开卷 抄袭检测—督促学生独立完成作业

系统主要功能 网上答疑 在线作业 在线考试 程序自动评判 程序相似性比较 成绩统计分析 文档相似性比较 实时网络监测工具;代码抄袭检测。同时,在考试配置时,教师还可以在一场考试中使用具有相同难度的多份试卷 程序自动评判 程序相似性比较 成绩统计分析 文档相似性比较 支持提交文档之间的相似性检测,也能够从互联网上搜索相似的文档。

系统特色 支持C、C++、Java、Fortran、Pascal等高级程序语言的自动评分 支持程序的相似检测,优于当前国外最好的相似性检测工具 JPlag。 系统稳定可靠 性能优异 基于语意特征的文档相似性检测技术,支持互联网相似性文档搜索

程序自动评判

程序自动评判 编译信息 性能度量

程序自动评判

抄袭检测

系统抄袭检测能力 根据抄袭所付出的努力,从易到难依次为: 完整拷贝 修改注释 重新排版 标识符重命名 代码块重排序 代码块内语句重排序 常量替换 改变表达式中的操作符或者操作数顺序 改变数据类型 增加冗余的语句或者变量 表达式拆分 控制结构等价替换 Jones[1]总结了学生常用的10种抄袭手段,在此基础上,我又增加了常量替换和表达式拆分两种手段 [1] Jones, E. L. Metrics based plagiarism monitoring[R]. Paper presented at the 6th Annual CSSC Northeastern Conference, Middlebury, VT.2001

系统支持的题目类型 系统支持的题目类型 填空题 选择题 简答题 编程题 接口编程题 程序片段编程题 文件上传题

根据题目描述编写一个完整可编译执行的程序 系统支持的题目类型 编程题 根据题目描述编写一个完整可编译执行的程序 对比程序输出与期望输出判断程序的正确性

系统支持的题目类型 程序片段编程题 补充源程序中缺失的代码段 代码段:表达式、语句、函数实现。 系统根据代码段前后的调试打印语句或程序最终的输出结果评判程序的正确性。

系统支持的题目类型 接口编程题 主要用途: 灵感来自软件开发过程中的单元测试 接口:函数(C等),接口或者抽象类(Java或者C++) 一方面可以训练学生对函数或者类有更深入的了解,此外 数据结构课程可以利用这种约束作用,限定学生用某种类型的数据结构编写代码。

北航的应用情况 研究生复试上机考试 数据结构与算法课程练习 高级语言程序设计练习与考核 作业 考试 每届学生需要完成8次作业,每次作业有12道选择题和3道编程题; 考试 期中考试要求学生两个小时内完成10道选择题和2道编程题; 期末考试要求学生在三个小时内完成20道选择题,3道编程题

应用效果

系统的发展 仅支持学生程序自动评分:动态测试、性能分析、静态分析、代码度量 学生程序抄袭检测 自动评判:数据结构、编译技术、汇编、英文作文 学生程序自动评分与抄袭检测系统 仅支持学生程序自动评分:动态测试、性能分析、静态分析、代码度量 学生程序抄袭检测 课程自动评分与抄袭检测平台 自动评判:数据结构、编译技术、汇编、英文作文 抄袭检测:文档抄袭检测、互联网相似文档检索

在研项目 数据结构与算法可视化自动评测 演示 并行程序自动评分 并行程序设计、多核程序设计 作文自动评分 拟利用互联网的大量语料