• Java语言程序设计课程学期总结


    2016-2017 第2学期

    课程介绍

    编程类课程,76学时(44理论+32实验),学期末还有1周的课程设计。

    问题与现状

    1. 4个班共120人,教师无法逐一检查每个学生的编程实验。
    2. 纸质作业质量不高。 好的作业无法得到激励,差的作业无法得到相应的提醒。
    3. 对不想学的学生,没有一个有效的辅助措施。对想学的学生,没有一个较好的提升平台或者项目。
    4. 期末一张卷考核。虽然也有平时成绩,但主要还是看期末成绩。有的学生平时不学习,而寄希望于期末一次考试。然而期末考卷这种形式,主要考查的是知识点,难以反应出学生真正的编程能力。
    5. 实验有的同学能完成,还有很多同学无法完成,甚至有的学生完全放弃。
    6. 课堂虽然注重互动,但手段还是提问,叫起某个学生回答。难以掌握学生对问题的掌握程度。

    教学思路与方法

    1. 思路:

      • 过程监控:让学生将精力放在平常的作业与实验上。
      • 增加师生互动:课堂上+课后。
      • 自动评测:自动化批改学生的编程实验。
    2. 方法:

      • 助教制度:主要对每周作业进行评分。开始助教还会写每周总结,后期为了降低助教工作量,由老师统一写总结。
      • 博客作业:在博客园-班级博客上布置每周必须完成的作业,有明确的截止日期。每周助教和老师对作业进行批改,共15次作业。10分制,抄袭、不交每次-10分。课堂上会对前一次作业进行讲解。
      • 增加课堂互动:使用雨课堂实现课前发放预习课件、课堂上学生手机端浏览、答题)
      • 自动评测:使用PTA线上评测系统进行代码自动批改。将大部分语法类实验题做成PTA的题库。
      • 代码管理:Git。让同学一开始就使用业界流行技术管理代码。
      • 资源发布:QQ群发布教学资源(视频、PPT)

    满意度调查与分析

    1.博客作业与助教制度:

    从作业形式上来讲,方式比较新颖。助教与老师每周给分这种即时反馈对学生有很强的督促作用。积极的反馈:“从来没有这么认真的完成作业。”、"为了拿到高分花费了很多时间"。消极的反馈:“感觉整周都在做Java作业”、“作业量太大、格式要求苛刻”、“评分标准不一致”。详细的博客作业问卷调查链接
    问卷调查中基本情况如下:

    1. 博客作业这种作业形式:有将近49%的人觉得博客作业这种形式更好,只有7.61%的学生觉得不好,不好的原因主要是“花的时间太多、要花更多时间完成博客、评分标准不太统一”。
    2. 相比较纸质作业:54%的同学认为博客作业“需要付出更多的精力,但对知识掌握、能力培养确实有提升”。
    3. 作业量:有超过54%的同学认为量多,但是努力一下还是能完成。分析:这实际上就是我们所要的效果,设定一些标准让学生踮起脚尖能够得着,这样的作业能更好的提升学生。
    4. 存在的问题**:有66位同学,认为“又要做PTA、又要做博客作业,精力分散”。其他有30人左右认为“存在作弊现象、题目质量不够高、作业参考资料不够多、评分不够客观”
    5. 可以改进的地方:排名前3依次是“多在实验课辅导博客作业的内容”、“作业的参考资料应该多一些”、“增设讨论区供大家讨论”
    6. 更期待的Java作业形式:47.8%博客作业+PTA,只有13%的同学喜欢传统的"纯粹的纸质作业+纸质实验报告+自己上机练习"。
    7. 主要槽点:对评分标准、对作业格式、对作业量、作业讲解。

    分析与结论:

    1. 总的来说学生还是接受PTA+博客作业这种形式,只有13%的同学喜欢传统的“纸质作业+纸质实验报告+自己上机联系”。但是在“评分标准、对作业格式、对作业量、作业讲解”这块还是有不少槽点。
    2. 还有一个突出的问题是,有66名同学认为“又要做PTA、又要做博客作业,精力分散“,如果能将博客作业与PTA有机融合起来,相信会有更好的效果。
    3. 可以改进的地方主要集中作业辅导与作业质量这块,即如何帮助学生完成作业这个环节。传统的教学模式中,教师课堂讲、学生课后学然后做作业,碰到困难的地方自己解决或者与同学交流,缺乏帮助学生的梯子。在国外慕课实践当中,分布在各地的学生则是通过论坛来进行交流。我们是否应在课后给予学生完成作业以适当的帮助呢?我认为,答案是肯定的(好像以前有一些论文有这方面的结论)。如果是一周两次课这样的安排,首先上课并布置作业,然后在实验课上主要针对布置得作业进行辅导,相信会给予学生更多的帮助。让学习能力一般的学生不会处于完全无助的状态。课后讨论区这种形式,也尝试过,但似乎新世代的同学不怎么玩论坛,也没有在论坛上进行讨论的习惯。娄老师曾使用蓝墨云班课实现课后的讨论,似乎效果还不错。这点还有待摸索,和新任助教商讨好还是希望能以论坛的形式(博客园群组,虽然上学期效果并不好,没有学生在上面讨论)给大家以更多的课后帮助。至于博客作业的参考资料,应该做到详细与明确。
    4. 其他反思:作业内容应大幅减少语法类题目,让同学在编程中去掌握语法,而不是以书面作业的形式来掌握语法。作业内容应紧密结合PTA实验内容,不要让学生双线作战。
    5. 助教制度:每周一次助教与老师给学生作业评分,给学生带来即时反馈,让学生时刻把握本章知识掌握程度,从理论上来说是好的。通过学生线下的反馈,学生明显更重视作业。为了得到高分,会很细致的完成作业。这就对我们的作业提出了更高的要求。不能让学生的精力浪费在低质的作业上。总的来说,助教制度能提高一门课程的活力(学生的参与度),为未来的以学生为主的教学理念提供了一个基本的保证。
    6. 教师、助教保证下的博客作业制度可以将传统的以考试为导向的课程学习转变为以平常作业为导向的课程学习。这实际上也符合过程监控、形成性评价等理念。而作业的好坏就非常重要。如何成就一份好的作业?邹欣老师在不断地实践当中,也提出了作业要不断迭代、作业的优胜略汰是有助于形成一份好作业的。而博客作业的开放性、数字化特性,也有利于基于作业的交流、迭代、持续改进。张敏老师的软件工程课程作业则是通过石墨这个文档协作工具,在老师、助教和企业界人士的不断迭代中逐渐形成。为未来其他学校的软件工程课程提供一个重要的参考,这也是博客开发性的一个好处。

    2.自动评测(PTA):

    PTA问卷调查链接
    问卷调查中基本情况如下:

    1. 通过PTA掌握Java基础语法相较传统方法(自己做实验、无验证、无检查):认为PTA更好的只有28%,差不多的却有 69%,不好的有3%。
    2. 觉得不好的原因:(60/90)出错没有足够提示、(52/90)自己花费在编程上时间不够,其他原因:本机能过的程序PTA上过不了、不理解题意、题目不明有歧义。
    3. PTA题目:46% 题量太多、太难、47%题量适中,难度适中。
    4. 对于考试形式:66% “传统的期末考试,做一张卷子”。只有21%的同学,支持使用PTA机考代替期末考试。还有不少同学留言:不要考试,根据平时作业成绩决定考试成绩。
    5. 对PTA的建议:
      53,每个人可以随时查看自己的实验完成度,比如50%,80%。50,增设题目讨论区,大家在上面探讨题目解决方法。
      35,增加设计更好的题目。34,不要每周公布PTA排名,让大家可以按照自己的节奏完成实验。33,减少习题量。
    6. 其他建议:提升用户界面、借鉴lintcode,找不到bug,错误提示不明确、题目要说清楚。

    分析与结论:

    1. 虽然觉得PTA更好的有28%,但是大部分觉得不够好的原因主要在于a)PTA出错提示不太直观。有的同学认为本机通过的程序,PTA上过不了,那就应该是题目出问题了。但根据以往经验,往往是学生自己编程的时候没有考虑到所有情况,或者有时候题意理解错误。一般来说PTA上的编程题目,要求更严格一点,但是出错提示却不够详细。这就造成了学生对PTA的不满。b)自己花费在编程上时间不够。很多人清醒地认识到这点,然而却无法投入大量时间去攻克题目。这点需要在以后的课程,由老师提出明确的要求与措施,确保他们PTA的基础题目一定要完成。
    2. 46%的同学觉得体量太多。其实从题目数量上来看,与传统实验课的题目差不多。但是传统的语法练习题目,检查少、做错了也没有反馈,学生觉得大概做对也就不深究。而PTA的判题系统要保证每题答案完全正确,这就造成了占用时间较多却依然通过不了。
    3. 只有21%的同学支持使用PTA机考代替期末考试、还有不少同学希望只根据平时作业成绩(博客作业)来决定考试成绩,说明大家对真正能考核编程能力的考试还是比较害怕的,也反映传统考试与博客作业的局限性。
    4. 对PTA的建议,是我们今后努力改进的方向。如果学生能实时的知道自己的试验完成度,这就相对能比较量化的把我自己的学习进度。而关于题目讨论区辅助完成PTA,我也是赞同的。语法练习的目的不是为了让同学都做不出来,而是通过练习让同学掌握语法,而讨论区可以让他们在完成练习的过程中交流、在交流中学习。下学期准备联合助教设立专门的讨论区,每周在讨论区上对当周的PTA题目进行解答。

    3.增加师生互动(雨课堂):

    雨课堂问卷调查链接
    预习课件说明:将课堂讲授内容的重点浓缩到少于12页PPT(手机竖版PPT,内容少)。
    问卷调查中基本情况如下:

    1. 课前推送预习课件:72%有帮助。
    2. 对预习PPT的态度:79%, 好、花费的时间可以接受。
    3. 预习PPT中出现的知识点:77%,不论难易与否,最好课堂上再讲一遍。有的人认为,“难的可以详细讲,易的可以简单概括讲”。
    4. 雨课堂什么功能好:
      (53/86)人,课前预习课件、课堂课件浏览。
      (46/86)人,课后浏览课件。
      (38/86)人,课前或课中的习题。
      还有人认为签到笔点名快、对页面点击收藏、对不懂的页面点击不懂、反馈留言、弹幕、其他。
    5. 其他建议:开弹幕增强与学生交流,很多人觉得预习ppt早一点点发布,感觉每页ppt留一个做笔记的地方会好一点,习题最好能够在做完后显示答案和解析。

    分析与结论:

    1. 总的来说雨课堂工具的使用反响非常好。在课前预习、课堂课件浏览方面效果不错。在课堂教学效果方面有一定提升。下学期要联和助教,将剩下的预习课件做完,培养起学生预习的习惯。
    2. 有53人左右习惯课堂上的课件浏览(课件实时推送到手机)。这是我没想到的。在我在讲台上妙语如珠、卖力讲解的时候,很多同学却喜欢自己看课件。不过也算意料之中,每个人的理解能力、学习习惯都是个性化的,教师统一进度的课堂讲解肯定不能满足每个人的教学需求。如果能以学生的学为主,让学生按照自己的节奏来学习那是很好的。翻转课堂、mooc给了我们这样的可能,但在切换到这些之前雨课堂或多或少能让学生按照自己的进度来学习。
    3. 在我的理念中,在未来的教学中,课堂教学更多的应该是学生老师讨论、交流、重难点讲解的地方。据研究,学生通过传统的课堂讲授方式获取知识只能得获取到约20%,而在传统教学中课堂讲授却占据教师、学生较大比例的时间,可以说传统的课堂教授在知识传授这块效率低下、投入产出比不高。传统的课堂讲授法必将被扬弃,教师的精力应该更多的放在教学数据分析、课后作业设计、实验设计、考核等。但是在未来到来之前,如果能用雨课堂之类的手段为传统的课堂讲授发增加一些互动的可能,能将传统课堂讲授的最后一班岗站好,也是很有意义的。同时雨课堂的互动性(课前、课中习题,弹幕讨论)也应该会为我们未来的教学提供更多的可能。

    4.教学资源发布、翻转:

    自己录制了异常集合两个章节的mooc视频,还有一些实验课的操作视频。因为无平台发布,只好通过QQ群的方式发布资源。以前尝试过使用这些视频资源做翻转课堂,详见翻转课堂调查链接。总的来说将每个知识点做成小段的教学视频,并辅以课前问题,对学生在知识理解上是有帮助的。
    这里主要说一下问题:没有教学平台发布,不知道学生完成情况如何。只是主观上感觉,对学生应该是有帮助的。但是无法跟踪学生学习进度。并且,课堂上好的教学效果能否切实的内化为学生的能力,这里要打一个问号。因为那个学期实践下来,并未觉得学生编程能力有一个突破性的提高。只能通过实验课上个别优秀同学完成加分题叫我检查的这种方式,让我知道这几个同学编程能力还不错。但个人感觉,是个人能力最终决定了其编程表现而不是翻转课堂起的作用。

    5. 平时成绩与期末卷面成绩相关性

    还未完成

    6. 学习行为与博客分数的相关型分析

    请参考博客作业教学数据分析系统。结论是:篇幅大(字数多)、图片多的博客作业更容易得高分。

    问题

    1. 系统能力培养不够
    2. 现有体系只能让想学的学生学得更好,无法带动每个学生学起来。
    3. 120人每周批改作业工作量巨大。然而助教似乎不太可持续。
    4. 虽然课堂讲授效果还不错。但传统的、良好的课堂讲授,在多大程度上能帮助学生真正的培养起编程与系统的能力。还不清楚。

    改进

    1.博客作业:

    1. 内容上:进一步减少语法题,转而重视系统能力的培养,比如增加面向对象大作业设计题目。
    2. 合并PTA与博客作业,避免分散学生精力。
    3. 作业评分由10分制,变成等级制:-2(抄袭、未交),0(虽提交、质量不合格), 1(及格), 2(优秀)。主要是为了降低助教的工作量,减少评分标准不一带来的评分不一致的现象。

    2. 课堂改进:

    1. 雨课堂预习课件补全:Java基础、Java基本语法、Java面向对象三部分的预习课件。
    2. 雨课堂弹幕功能:能否将弹幕功能引入课堂讨论。
    3. 课堂上应该讲些什么?只讲重难点、系统分析?更重视师生互动?

    3. PTA

    1. 增加:PTA语法考试题目,整个学期应该有两次上机小考(基本语法、面向对象基础)或者再多加一次(综合考试,包含集合、异常、多线程等内容)。考试时间任意。是否将平常考试纳入平时成绩?
    2. 进一步改进题目PTA题目。确定每次作业中的必做题目(每周3-4题)
    3. 怎么把PTA的教学数据(实验完成率)用起来?通过数据驱动每个学生。
    4. 增设讨论区,每周答疑。
    5. 怎么把实验课充分利用起来,辅助学生完成看起来较多的作业。

    4. 利用Git管理源代码

    • 利用命令行Git管理Eclipse项目?可行吗?
    • 让学生统计每周自己完成的代码行数?

    5. 系统能力培养

    将学期作业如何与课程设计更好的联系起来?

    6.Java学习的三个阶段

    [基本语法->面向对象设计能力->应用(做真正能用的软件) ]

    st=>start: Start
    e=>end: End
    op1=>operation: 基本语法
    op2=>operation: 面向对象设计
    op3=>operation: 应用
    st->op1->op2->op3->e
    
  • 相关阅读:
    line-height:150%和line-height:1.5的区别
    javascript: with 表单验证
    CSS实现背景透明,文字不透明,兼容所有浏览器
    关于伪类元素:before和:after
    图片预览实例分享
    微信浏览器取消缓存的方法
    学习笔记(四):jQuery之动画效果
    学习笔记(三):jQuery之DOM
    Git 常用命令
    开发规范(三)数据库 By 阿里
  • 原文地址:https://www.cnblogs.com/zhrb/p/7417539.html
Copyright © 2020-2023  润新知