按惯例,每学期初和学期末都会各推送一篇非技术文章,这是本学期末的。

======================

缺乏有效的过程控制和过程管理的教学,都是耍流氓。

======================

2013年春天,修订人才培养方案时为我校数字媒体技术和服务外包专业增加了“Python程序设计”课程。

2015年春天,万众期待的Python程序设计课终于开讲了。

我曾经讲了10多年C语言,也曾经创造过传奇,把140人的C语言全校公修课讲到了600多人。后来给本专业学生讲C语言,在机房练习的时候会偶尔布置了小作业限时完成,时间到了之后根据学生的完成情况进行打分。当时一般就是拿着名单在机房里转,谁完成了就过去检查一下。然而,不得不面临的问题是,本来说好的15分钟里只有几个同学完成了,结果在检查这几个同学作业的时候又有新的同学完成了。前几次课总是心太软,想着同学既然完成了就过去检查一下吧,结果搞来搞去一节课过去了,浪费了大量的课堂宝贵时间。

几节课后,为了考虑学习好的同学的感受,更为了充分利用上机课时间,只好狠心只检查前几个完成作业的同学的程序,晚几分钟完成的作业就不检查了。但是看着晚几分钟完成作业的同学们那幽怨的眼神,说实话我心里也不好受。

我一直想有个功能,就是机房管理软件能够远程锁屏,用来控制限时完成的小作业。预定的时间到了以后,咔擦一下把所有学生屏幕都锁住,然后我去检查已完成的作业。可惜到目前为止也没看到哪一款机房管理软件有这功能,当然即使有这个功能,在检查作业的时候,学生什么也不能做,只能坐着干等,也是浪费很多宝贵时间。

2015年冬天,烟台的雪和往年一样准时到来。望着教研室窗外大雪纷飞,一个想法诞生了:自己写个小软件,能够瞬间把学生端电脑桌面截图收集到教师机,这样的话可以等下课之后回到教研室再慢慢检查,课堂上一点时间都不会浪费。有了这个想法之后,整个人立刻就精神起来了,花了一天的时间一气呵成实现了这个期待已久的小功能。截图收作业功能就这样诞生了。

当然,系统中很多功能需要学生端配合才行,这个功能也不例外。

软件投入使用之后,果然方便了很多,课堂上可以有时间讲更多东西了。然后紧接着一个又一个想法出现了,陆续增加在线点名、离线点名、随机提问、在线测试、提交文件作业、屏幕广播、远程关机、数据汇总、数据导出等一系列功能(使用董付国老师Python教材的老师可以联系董老师获取系统源代码)。考虑到个别同学可能比较害羞,不好意思当面问问题,我还专门设计了在线答疑模块,不过这个功能几乎没用过,大部分同学会当面问问题,还有些同学喜欢微信问问题。只可惜有不少同学不懂怎么问问题,详见:我这么认真地问问题,你为啥不回答???

软件投入使用之后,上课提问像抽奖活动一样,不用带名单了,并且还不用纠结提问哪个同学,因为是随机的,每个同学都比较紧张,提高了学习的整体积极性。

除了界面上肉眼可见的功能,系统内部实现还隐藏了很多细节。例如,教师端会定时群发自己所在机器的IP地址而学生端会根据特定的信息动态更新自己与服务器的连接,学生端软件启动之后不允许关闭从而让尽可能多的同学保持学习状态,在线点名功能限制了每个IP在90分钟内只能点名一次。

一切都是那么的完美,直到有一天。有个同学说,他用Python写了个小程序,使用一个简单的循环,每次循环修改一次本机IP地址然后自动从名单文件中读取一个同学信息进行点名,瞬间完成了全班同学的签到。

给这位同学加了平时成绩,下课后我立刻修改了系统代码,不仅限制IP地址,还限制每个MAC地址90分钟内只能点名一次,完美解决了这个问题。

很快,又一个新的问题出现了,因为Python课程是直接在机房上课的,也就是传说中的“边讲边练”。我对“边讲边练”的理解,应该是老师讲一会儿,学生练一会儿。然而很多同学们的理解是,老师讲一会儿,学生玩一会儿。

为啥会这样呢?

经过仔细观察、单独询问和深入分析后发现,一个原因是学生自制力不够,另一个原因是很多学生不知道该干啥!!!于是系统迅速增加了两个新功能:监视学生电脑桌面和自我测试。

在第一个新功能中,每隔10分钟自动对学生电脑桌面截屏并检查与上一次截屏之间是否有较大变化,同时检查桌面上是否有足够多的代码。如果两个条件都满足就自动加1分,否则自动减1分。详见:技术要点|Python监控学生端电脑屏幕自动识别学习状态

当然,这个功能并不会记录学生桌面上的任何信息,不会涉及到任何隐私。如果想不学习还能加分,其实也是有办法的。例如有个同学就采取了下面这个视频中的办法,频繁单击鼠标来展开和收起“开始”菜单,只要速度把握的合适,总是会有好运气获得加分机会的。

对于第二个新功能,系统数据库中自带800道题,上课时学生练习完课堂内容之后,可以练习这些题目来巩固自己所学。最后考试也使用我开发的课堂管理系统进行在线考试,每个同学从800道题库中随机抽题100道,每次抽1道,不允许跳过,在任何时刻不会有两个同学做一样的题。这本来是一件多么美好的事情啊,但是却有同学利用课堂上的宝贵时间笨笨地一条一条复制题库里的题目和答案。

有一天,课间我发现有个学生美滋滋地打开一个Word文件,居然满满是我的Python题库。问他从哪来的,他说是自己写的代码,把我数据库里的所有题目都导出了。。。。

同学们之间的友谊是深厚的,一个同学有了题库,那么全班同学也就都有了。于是,一个严峻的问题产生了,在线考试时居然有不少同学打开Word版题库默默地抄(我的Python课是考查课,开卷考试,允许带任何复习资料,允许场外求助)。没什么比这更让老师生气的了,于是,在同学们考完之后的欢呼声中,我宣布“这次期中考试的分数,在最终成绩中只占很小很小比例,期待大家期末考试有更好的表现”,然后潇洒离开机房。

留下同学们在风中凌乱。

晚上回家我是一夜无眠啊,清晨隔壁楼顶上不知道谁家养的大公鸡第一声啼叫响起的时候,我突然有了想法,于是又是一气呵成对代码进行了修改,进入考试模式之后,封杀学生端电脑上的所有浏览器和文本编辑器,禁用系统剪贴板,只能老老实实做题。期末考试时,我觉得分数应该是反应了学生的真实水平了。

后来的几个学期,在线考试功能基本就稳定了,每个学期只需要往系统里导入一些新题目就可以了。结果第6届学生使用这个系统进行期末考试时,有个同学不到1分钟就考完了,并且是满分。一问,居然是自己编写了一个小程序进行无人值守自动考试。

考试结束之后,我迅速对系统进行了升级,考试时要求相邻两道题之间的答题时间差必须超过一定的时间,毕竟看题和打字答题是需要时间的。如果还要使用无人值守自动考试的话,就必须要阅读和分析客户端源码然后根据服务器反馈的信息猜测这个时间差的大小。这在考试期间基本上是无法完成的。

办法总比困难多,既然路都被封住了,要么认真学,要么使劲背题,要么到时候用手机查,第8届同学们表示已经找到了应对的方法。结果考前两周被告知,期末会在考完100道选择、填空、判断题之后,增加5道限时编程题,考试形式类似于大学英语四六级考试,一小时时间做客观题,然后发编程题并限时40分钟完成。详见:Python课程期末考试编程题自动批卷原理与实现模板。

8个学期以来,也正是师生“斗智斗勇”的过程中,实现了真正的教学相长,真正想学习的孩子们在这个过程中也能提高很多。需要阅读学生端源代码然后分析和教师端之间的通信协议以及系统的数据库结构,还是有很多乐趣的。虽然少部分同学对系统的攻击给我造成了一定的麻烦,但我内心是喜悦的,毕竟学生是热爱学习的。我也一直鼓励学生发现教材、PPT或者课堂管理系统中的bug,并且对发现问题或者攻击系统成功的同学一定的分数奖励,同时也不断地完善这个课堂管理系统。

本学期的课程愉快地结束了,下学期听我Python课的数字16(课程名称:网络程序设计)和网络16级(课程名称:网络应用开发实践)同学们,你们准备好了吗?

扫码关注微信公众号“Python小屋”,免费阅读超过700篇原创Python技术文章,偶尔还有鸡汤喝,极偶尔有送书活动。

温馨提示

进入公众号,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的文章列表,通过“最新资源”==>“微课专区”可以观看Python微课,通过“最新资源”==>“培训动态”可以查看近期Python培训安排,通过“最新资源”==>“教学资源”可以查看Python教学资源。

--------董付国老师Python系列图书--------

1)《Python程序设计(第2版)》清华大学出版社(2018年8月第9次印刷)https://item.jd.com/11949168.html

2)《Python可以这样学》清华大学出版社(2018年7月第6次印刷)(本书已在台湾发行繁体版)https://item.jd.com/12040511.html

3)《Python程序设计基础(第2版)》清华大学出版社(2018年9月第6次印刷)https://item.jd.com/12319738.html

4)《中学生可以这样学Python》清华大学出版社(2018年9月第3次印刷)https://item.jd.com/12258900.html

5)《Python程序设计开发宝典》清华大学出版社(2018年2月第3次印刷)https://item.jd.com/12143483.html

6)《玩转Python轻松过二级》清华大学出版社(2018年7月第3次印刷)https://item.jd.com/12361144.html

7)《Python程序设计基础与应用》机械工业出版社(2018年9月第1次印刷)https://item.jd.com/12433472.html?dist=jd

8)《Python程序设计实验指导书》清华大学出版社(预计2019年1月出版)

9)《Python编程基础与案例集锦(中学版)》电子工业出版社(预计2019年2月出版)

董老师127课免费视频地址: https://pan.baidu.com/s/1jJeAs8Q 密码: px59

非计算机专业《Python程序设计基础》教学参考大纲

计算机相关专业“Python程序设计”教学大纲(参考)

《Python程序设计》实验指导书(30个实验)

《Python程序设计基础与应用》课后习题答案

《Python程序设计基础(第2版)》习题答案

Python课程期末考试编程题自动批卷原理与实现模板

“Python小屋”免费资源汇总(截至2018年11月28日)

系列教学PPT:

1900页Python系列PPT分享一:基础知识(106页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享七:文件操作(132页)

1900页Python系列PPT分享八:异常处理结构与程序调试、测试(70页)

报告PPT(163页):基于Python语言的课程群建设探讨与实践

报告PPT(123页):Python编程基础精要

2000页Python系列PPT分享九:(GUI编程)(122页)

Python实验项目1例:使用进程池统计指定范围内素数的个数

(PPT)Python程序设计课程教学内容组织与教学方法实践

Python课堂上我与学生斗智斗勇已8个学期相关推荐

  1. Python+matplotlib绘制多门课程学生成绩分布饼状图

    封面图片:<Python程序设计实验指导书>,董付国,清华大学出版社 ================= 饼状图比较适合展示一个总体中各个类别所占的比例,例如商场年度营业额中各类商品.不同 ...

  2. python线上课堂_线上线下相结合的Python编程教学

    线上线下相结合的 Python编程教学 朱军强 广东省韶关市乳源瑶族自治县桂头中学 ,广东 韶关 512736 摘要:Python编程教学是初中信息课堂教学的重要组成模块,高质量的Python编程教学 ...

  3. 网易5天python编程课_网易云课堂上自学编程?

    (一) 不是大佬.题主问的是有没有必要按照网易云课堂上的大一到大四的全部课程学习一遍? 强答一波:没有必要. 题主这么提问,无非就是想减少自己的试错成本,在这里分享一些我这段时间以来的学习经历.每个人 ...

  4. python for maya_Python for Maya:“对象的名称不唯一。”当从课堂上调用对象来构建用户界面时...

    问题: 我没有得到任何语法错误,直到我尝试构建UI时运行脚本.一切似乎都很好,直到我运行最后2行代码.Python for Maya:"对象的名称不唯一."当从课堂上调用对象来构建 ...

  5. 化学人学python有前途吗-课堂上老师不讲的有趣物理知识,才是孩子最感兴趣的!...

    "现在的孩子上学学的东西比我们那时候难多了,上小学时我和孩子爸辅导功课就已经很吃力了,孩子下半年就要上初(高)中了,尤其物理.化学更是难上加难,可怎么办啊--" >>& ...

  6. python课堂教学_初中生初学python课堂教学感悟

    作者:实验初中 望玉红 21世纪以来,信息技术迅猛发展,深刻地改变着人们的学习.生产.生活和社会交往方式,人类社会已快速进入信息化社会.信息素养是当代社会公民所必备的基本素养,强化信息技术课程教育教学 ...

  7. python初中教学_初中生初学python课堂教学感悟

    作者:实验初中 望玉红 21世纪以来,信息技术迅猛发展,深刻地改变着人们的学习.生产.生活和社会交往方式,人类社会已快速进入信息化社会.信息素养是当代社会公民所必备的基本素养,强化信息技术课程教育教学 ...

  8. 上计算机课学生玩游戏该怎么处理,初中信息技术课学生玩游戏的原因与解决对策...

    莫章 摘 要:我国社会信息科技的飞速发展带动了信息技术教育的改革,社会对于信息技术人才的需求越来越旺盛,初中教育学科中对信息技术的教学质量也加大了重视力度.初中生处于青春期阶段,很容易被电子产品所吸引 ...

  9. 手里的呼小九和课堂上的吵闹才是你最不舍的毕业季

    毕业之后,我来到新西兰工作.距离我住处几公里的地方,隐藏着当地的一所大学,没有大门没有警卫,只有一群稍稍密集的建筑,还有停满了马路旁的车.当地人常揶揄这学校哪里能和奥克兰的那些大学比,校园没有一点气质 ...

最新文章

  1. sql的使用详解(针对oeacle)之select(上)
  2. 让您的电脑在任意目录可以支持图片的粘贴,试试看呗(第二篇)~
  3. Expression Blend实例中文教程(4) - 布局控件快速入门Canvas
  4. 2020蓝桥杯省赛---java---B---3(蛇形填数)
  5. javascript基本函数
  6. python小工具自动审单录凭证_跟着老板工作了二十年,最近来了个新员工然后我被开除了...
  7. 8s pod 查看 的yaml_k8s之深入解剖Pod(三)
  8. 在recovery模式下命令控制手机_安卓手机开机密码忘记,解锁教程
  9. linux让新生成的文件自动加锁,Linux_实用技巧一则 Linux系统对文件进行加锁,当有多个工作线程要同时对一 - phpStudy...
  10. AngularJS入门(用ng-repeat指令实现循环输出)
  11. 【Python-3.3】函数中的可变参数和关键字参数
  12. J2EE技术-Spring轻量级框架
  13. 在Mac OS X中配置Apache + PHP + MySQL 很详细
  14. 我的世界java骷髅马_我的世界:稀有坐骑“骷髅马”的10种获取途径,真的只能靠运气?...
  15. 汉宁窗+matlab,m汉宁窗hanning汉明窗hamming矩形窗-read.ppt
  16. 数据库事务隔离级别与锁
  17. 文本挖掘带你分析苏轼的一生
  18. chrome 您的浏览器禁用了Javascript
  19. 电脑进入安全模式的两种方法
  20. 武夫提笔——席卷世界Nodejs之初步对比:与opa各占几分春色?

热门文章

  1. Linux防火墙设置IP端口白名单
  2. c4d计算机丢失api-ms,SVsSccManager Interface
  3. java hook 和反射_Java反射与hook混用反射某支付的方法
  4. python3.7.3 离线安装paramiko_python3和paramiko安装
  5. java非负数校验_JavaScript正则表达式校验非负整数实例
  6. 计算机应用科学计算文献,计算机应用参考文献
  7. 现代化蔬菜大棚采用什么和计算机自动控制,温室大棚自动控制系统存在的意义以及未来的发展...
  8. mysql显示表格前五行,深入浅出MySQL勘误表
  9. mysql用大白话解释_大白话解释给小白如何看别人的源码(一)数据库部分
  10. 常见笔顺错误的字_最全汉字笔顺正确写法,建议家长为孩子收藏