2017-2018-1 《程序设计与数据结构》课程总结

2017-2018-1 《程序设计与数据结构》课程总结

有关课程的一些信息参考2016-2017-2 《程序设计与数据结构》课程总结.html

为了这学期的课程,我记录了选教材的过程,参考两个月选一本理想教材,上文提到:java

学习数据结构的概念不难,难点是:git

如何实现从数据结构概念到程序设计实现的跨越(即如何实现一个数据结构)程序员

如何实现从实际应用到数据结构抽象的跨越(即如何利用数据结构解决实际问题)web

《程序设计与数据结构》并非一学期讲Java,一学期讲数据结构这么简单,而是把编程和数据结构有机的结合起来,上学期重点解决“如何实现从实际应用到数据结构抽象的跨越(即如何利用数据结构解决实际问题)”的问题,这学期重点解决“如何实现从数据结构概念到程序设计实现的跨越(即如何实现一个数据结构)”的问题。 这种方法是 C+数据结构很差解决的,我相信使用C++,Java,Python等有类STL库、Collection API的语言讲授数据结构会更好。算法

翻转课堂

翻转课堂采用优秀的SPOC平台蓝墨云班课博客园的班级教育应用,咱们也使用博客园课程管理,兼顾封闭与开放。编程

咱们的课程主页以下小程序

翻转课堂不是老师让学生自学就完了,学生要自学,老师也要作大量的工做,付出巨大的努力。设计模式

首先要安排好每周的学习内容,咱们这学期的教学进程参见:2017-2018-1学期《程序设计与数据结构》教学进程微信

每周都给出明确的学习目标,详细的学习资源和有最后期限的学习任务

虽然有些死板,但同窗们缺的就是这些死板严格的要求,要求不明确,学生根本没法享受「灵活」带来的好处,很多人随便糊弄一下就过去了,这么细致的要求,也仍是有同窗糊弄的。

咱们的主要学习资源有教材,课程内容配套的微课。教材学习指导是同窗们学习的重要指导,至关于传统课堂要讲授的内容,用好了能大大减小学习时间,提升学习效率。教材学习指导初期几乎是一页一页的指导,详细到每段代码如何阅读,取得了良好的指导效果:

这样还不够,学生学习过程当中仍是会有问题的,多年实践证实微信群,QQ群不适合答疑:问答很快被冲掉,一个问题要回答多遍,问答没法积累。后来在博客园创建了课程答疑论坛进行答疑,承诺同窗们有问题24小时内回复。

课程答疑论坛

与以往答疑时间无人提问不一样,从以老师教为主转变为学生学为主后,在每周的学习过程当中同窗们总能提出一些问题,有问题才说明学了。咱们的课程答疑论坛应用效率很高的一个证实是,开课期间在博客园的排名一直是首屈一指的。博客园承诺同窗们的问题24小时内解决。问题数量,质量有了大大的提升。但仍是不够及时,同窗们之间的交流才是最及时的。蓝墨云班课解决了这个问题,老师要作的大可能是给提问和解答的同窗都加分就能够了,不多须要回答问题了,大大激发了同窗们学习的积极性:

我认为以上措施解决了以往同窗们学习中的各类障碍,只要想学习的同窗,就没有什么学习上的障碍了,剩下的是本身的学习态度和努力程度的问题了

过程化考核对每周的教学效果进行检测,老师能够根据成绩和出错多的题目对教学内容,教学重点进行调整。若是没有100分的限制,这学期学得好的同窗能够拿150分,学得差的就只能50-60分。我常常让同窗们体会「学过」和「学会」的差异,咱们老师也要体会「教过」和「教会」的差异。翻转课堂之前我特别不理解,上课强调了那么多遍的重点内容,甚至有些题目和答案都讲了,考试为何还有学生不会。过程化考试让我了解到,因为基础和态度问题,不少同窗根本没听或听不懂,因此学生的结论是老师没教。过程化考试让老师很早就知道学生有那些该掌握的知识没有掌握,能够经过反复讲解和反复考核来解决重点,难点的学习问题。

每周咱们都有考核,检测本周学习的效果,,这是学习中很是重要的反馈,我但愿同窗们能对照答案,找出不足,查漏补缺,一些重点内容和错得多的题目会屡次考核。实践中发现有了答案还有很多人看不懂,后面的课上增长了错题讲解的环节。我仍是认为这必定程度上反映了学生的学习动力不足和学习积极性不高的问题。
使用了蓝墨云班课,效果更好,能够实时反馈,了解学生的学习盲点,让课上的讲解更具针对性:

最终成绩状况:本学期30名同窗,4个100分,90分以上的3人,80-89分的7人,70-79分 的5人,60-69分的10人,不及格2人。平均分78分,基本符合正态分布。

每周的排行榜对同窗们的学习促进做用仍是很明显的,排在前面有奖励,排在后面的有督促。

这学期继续游戏化,每周奖励一下总分排第一的同窗,本学期奖励有图书和程序员茶杯:

一年的课程仍是引入了 《构建之法》的作法:结对学习、团队项目,30个同窗分为五个小组,设计一个Android游戏:

蓝墨云班课

有了蓝墨云班课这个SPOC平台,翻转课堂的控制更加方便了,解决了多年的平台问题。不到一年经验值就超过全国98.53%的老师。

这里有人体会:学习一项技能,作一些事情,想超过90%的人,稍微努力一下就能够鹤立鸡群了,可是想超过99%的人,那是要付出巨大努力的。那些考100分的同窗太了不得了!!

就本门课程而言,发布博客教程,视频,做业等资源91个,开展课堂提问,课堂考核,实验检查,课堂实践等学习活动73次,设计包含300多道试题的题库(一年总计上千道题目了)。

教学周报能够清晰地看到每周在教学上作的工做,包括为学生提供线上学习的资源,为学生在云班课上设计的课堂活动。

教学资源分析

翻转课堂要给学生提供合适的线上学习资源,实现必要的课前预习,保证课前学习效果。

之前使用微信群,QQ群发送资源时,老师不知道学生看了没有,如今有了详细的数据,老师提供的学习资源仍是有30%左右的学生没好好看,其实上课遇到的不少问题在学习资源里都有了解答。

老师提供的微课资源就是等价于传统课堂的上课讲解。微课的内容含量是传统课堂的三倍左右,同窗们能够根据本身的状况跳着听,完整听,屡次听直到掌握,从而作到了因材施教。微课的一个要义是基础好的能够少听或不听,基础差的要屡次听,惋惜的是事实是基本上是基础差的没有好好看视频学习,反而抱怨上课老师不讲教材内容。固然也存在打开视频不看的钻空子现象。

教学活动分析

课堂上的教学活动是我在教学中最为关注的部分,也是要课堂效果的关键点,在每节课前我都会经过蓝墨云班课进行活动设计,云班课的各类活动组件都能很好地知足个人活动设计要求,并且很是方便简易,用手机开展活动的课堂效果也很好。

头脑风暴活动让全班同窗都参与到开放性问题的思考回答,随堂测试能立刻获得学生知识点学习状况的数据反馈,点名签到节省了传统点名的时间,讨论答疑突破了时间空间的限制让我和学生随时随地交流学习问题,摇一摇选人增长了课堂的趣味性......

头脑风暴活动是我用的最多的活动,我用它来向全班同窗提问,设置实验的检查点,提交课上实践的截图..., 这些头脑风暴活动大大提升了学生的教学参与度。

教学活动的参与度都很高:

学情分析

在过程性考核中,经验值的得到方式,也能够从下图中看出来,其中参与课堂活动是最为关键的,课堂上是没有逃课现象的,学生也基本没有时间去玩手机了,由于手机被用来参与个人课堂活动了。

从下图能够分析出,大部分同窗很是努力,入门的3位有两位是助教。学习感受任务重的是成绩好的同窗,大约1/4的同窗下的功夫还不到。

对学习资源进行分类,分红必学,选学是很是有必要的,这样会提升学习效率。

学习过程当中能够随时查看学生的学习状态,好比这名同窗比较不适应翻转课堂,老师提供的学习资源资源一半没有学习,视频才看了3个,了解了这些状况,老师和班主任对其严格要求,在本人的努力下,最后也及格了。

同窗们的反馈

蓝墨云班课上的答疑讨论比较实用,对个人学习有促进,能够随时提出或者解决你们的问题,有时候参考你们的问题去学习也是一种不错的方式,同时也方便了老师管理学生和教学,能够及时地上传一些视频或文件供你们下载。固然,蓝墨云班课也是有缺陷的,好比说我要时时刻刻关注老师是否发布了新的学习任务,由于只有打开了蓝墨云班课才知道,因此在一段时间里,我看手机的频率很高,然而有时只是频繁地翻来翻去,感受有些不适应。

这个APP是很是好很是实用的,尤为是对咱们样的课程来讲,由于全部的做业或是什么都是在网上完成的,对于群体信息的沟通来讲这是很是方便的,老师每周下听任务,指定时间而后咱们按时完成,既保证了速度也保证了效率,能够继续实行!

对学习有很大促进,拉近了师生的距离,可以很方便的获得一些资源

在这个平台上学习资料更加集中,便于咱们查找,并且学习经验排名也能提升咱们的学习积极性。建议在这个平台上上传更多的学习资料和参考文献,这样也有助于咱们学习。

蓝墨云班课对个人学习颇有帮助,但愿老师可以多加利用,而且加入更多的学习资料

蓝墨云班课有它独特的教学管理系统,操做方便,相比较于博客园,蓝墨云班课可以上传的资源类型更多,因此对个人学习有很大获得促进做用。但愿之后的课程也可以用蓝墨云班课做为教学的辅助软件。

助教机制

计算机系很是重视课程改革,为咱们这们课程配了助教王志强老师,我备课,设计安排教学进程和教学内容,设计试题,设计实验,做业点评,答疑等工做,王志强老师负责了改卷,答疑,平常辅导等大量工做,为教学效果的提高付出了不少。

王志强老师点评学生的博客以及交流了300屡次:

王志强老师对学生每周的做业都进行了总结,写了很多教学博客:

感谢王老师!!

全面走向开放

这几年,从封闭的有道云协做 全面开放走向博客园,老师和同窗们都经历了不适应到习惯的过程,如今也都尝到了开放的好处。

实验楼课堂提供了学习环境,对学生的学习时间有统计,是个好工具。

学生实践的代码都在码云git@OSC托管。实践状况也都是公开的。

即便使用了蓝墨云班课这个SPOC平台,做业的布置,学习指导,学习进程也都是在博客园公开后再引用。

公开也就意味着更公正!

Git与代码托管

课程实践性强,动手实践就很是重要,虽然有「代码驱动的程序设计学习」的这么详细的学习指导。学生踏踏实实使用GDB进行反馈,加点代码,改点代码的仍是很少,排名前三分之一的同窗问题不大,后面的仍是要增强控制,若是老师一个一个的检查,花费时间会很是多,经过git log --pretty=format:"%h - %an, %ar : %s截图的结果,和`wc -l 'find src -name *.c``代码量统计截图,能够自动化检查学生的实践状况,而后重点抽查。

经过git log --pretty=format:"%h - %an, %ar : %s的截图,谁在何时提交了代码清清楚楚。

经过`wc -l 'find src -name *.java``的截图,一学期的代码量明明白白。

这学期同窗们有了3000至10000行的代码训练,大多数同窗超过了5000行的目标,使用git的好处显现。

但是这样有的同窗仍是没有达到掌握Java基本编程技巧,用来解决简单问题的目标,缘由同窗们的总结说的好:

经过这一学期的学习真的不难看出代码行数与编程水平真的有必定关系,但也存在bug,所谓学而不思与思而不学,我班马平川同窗的代码行数是最少的,但他的编程能力是最强的,同理,代码行数最多的同窗编程能力也不是最好的,敲代码当然重要,但编程过程当中的学习和思考也是十分重要的,没有总结反思,再多的代码也是别人的,本身学不到什么。

刻意练习,积极思考作的还不够!!

这学期在动手上增强了很多,但促进同窗们深度学习的效果还不理想,这方面的努力永远在路上!

微信公众号

本学期更多的使用了教学微信公众号「rocedu」,发布教学,读书学习的相关信息,与同行,同窗们有了更多的交流。

也欢迎你们关注交流(手机上能够长按下面的二维码关注):

rocedu

课程总结

学生课程总结说明同窗们的收获仍是很大的:

  • 20162330 2017-2018-1《程序设计与数据结构》课程总结是最认真的一篇总结了,有前言,目录,老师的要求都有了,学习态度值得你们学习,注意刻意训练,我想他往后能够学得更好,这学期他的写做已经超我很多了,我就担忧他之后不继续写了,和他沟通一下,发现担忧不是多余的,送了一本书,他也想继续努力写下去:

转眼间一年过去了,在这一年间《程序设计与数据结构》这门课带给咱们的有痛苦,也有欢乐,有疲惫,也有收获。不论咱们收获了多少,咱们都是在不断尝试,老师在不断尝试新的教学方法,咱们也在尝试着不断接受。这个学期咱们主要针对数据结构的内容进行学习。在结对互助的基础上,还开设了团队项目,虽然整体效果不太理想,可是不论怎样咱们尝试了一次团队合做,留下了较为深入的印象。总之,做为信管专业的学生,可以有幸接触了解到一些软件工程的相关内容,也算是一笔额外的财富吧

首先谈谈课程收获,学到了数据结构的知识,也了解了一些数据结构在各个领域的运用。数据结构的代码实现是个体力活,更是个脑力活,不论怎样我也掌握了一部分。对于本学期讲到的各类算法,二分查找和线性查找和一些基础的排序算法算是比较熟悉了,团队的合做项目让我了解到一个软件的发布流程原来这么麻烦,却又这么充实。

其次说说其余方面的收获,由于团队博客有涉及到一些工具软件的使用,我在使用一些工具时也收获了一些经验和使用技巧,在和团队协做的过程当中也有从团队的其余成员那里学到一些优秀的品质。他们的那种作任何事都一气呵成的氛围感染了我,也偶尔带动着整个团队,不论咱们的项目作得怎么样,咱们都尽力了。而且我能够保证咱们团队是累积贡献量和收获量最多的团队。

除此以外,我体验了一年的“作中学”,在代码上的感触以前有说起, 泛型类-Bag 练习 这篇博客足以说明“作中学”的价值。在不断查找资料的过程当中,个人“搜商”也有提升。除了将一些 作的时间 运用在代码上以外,我还将较多的时间运用在了博客上,为了使博客尽量地呈现出精美的效果而且要与选择的模板相映托,每次有时间逛博客园时,我都会去额外地了解其余的一些语言(比较基础),并作出各类尝试,每次看别人的博客时,老是不忘看看排版格式。如今,我能够本身设计markdown三级标题的效果了。有的博客侧边栏也很丰富,个人侧边栏原来也挺丰富,如今以为写博客有时不该该太分心,因此只留下了一个,其余的都去掉了。

  • 20162308马平川同窗方法得当,是学得至关明白的同窗,基本可以触类旁通了,代码量并很少,有效代码量应该是首屈一指的了:

这个课程比较大的收获是老师提供了不少方向,可以让我去接触不少技术,这个是很是大的收获。另一个是对设计模式和OOP原则的讲解,可以初步地体会和理解大型软件工程项目中的设计方法。

他的学习建议是很是有效的,你们应该多读读:

积极主动敲代码。程序设计课若是连代码都懒得敲,那这么课程就是纸上谈兵,什么都学不会。积极主动的更进一步就是自我驱动地学习知识,由于程序设计课程的覆盖面太广,不少知识都是浅尝辄止,能够选取课上感兴趣的、没听明白的地方去深刻。
遇到问题,先本身想办法解决。能够去百度、查书等等,推荐看stackoverflow上其余优秀程序员的解决思路,或者用英文在这个平台上提问,找同窗解决当然是一种方法,可是看看其余业界程序员的解决方案可能会给你提供更多思路。
充分利用Git工具。利用Git不止能够用于本身的项目的版本控制,也能够去看其余的优秀开源项目的代码,去学习别人的编程思路。
最后一点,知易行难。不少人听了不少道理,依然过很差这一辈子,上面三点建议,关键在于作的过程。

在上学期的课程总结中,我提到了本身比较遗憾学习中没有作到积极主动敲代码。这一学期,在本身比较主动的逼迫下,我以为这个问题有所改善。第一学期以为敲代码是一件比较痛苦的事情,这学期慢慢感觉到了其中的乐趣,特别是本身解决了一个问题之后,那种成就感很强烈。咱们所用的教材上,每一章节的代码比较详细,例如不少排序算法都是已经有的,咱们只要会用就能够了。虽然对咱们学习的时候以为很方便很轻松,但我以为少了一部分思考的过程。到了后面图的那一部分,代码再也不是完整的给出来,而是给了一部分思路让本身写,这个时候感受很痛苦。因此教训就是,书上的代码不能一味的抄过来,而是要尝试本身还原,这样效果更好,能学习到的东西也更多

  • 20162320刘先润 2017-2018-1《程序设计与数据结构》课程总结中说:
  • 说实话,这学期收获蛮大的,我可以本身独立编写一些小程序,还自学了Android开发的基础知识(做为团队开发的副代码手)。这学期在Java方面的投入是巨大的,收获能够说是满意的,效率相比上学期仍是有很大提高,但整体仍是不高。不过在大量的投入下效果仍是不错的,能够说是真正地是在认真搞学习。

但愿结对学习这种方式继续延续下去而不是结对编程,由于对于新人来讲结对学习比直接进入结对编程要好得多,至少我是这么认为。结对编程太须要考虑结对对象的时间等各方面的需求,而且在提交代码上有诸多不便。而结对学习则是两人在学习方面的困惑共同解决共同提问,比较方便又有效率。

课程前几周我和刘先润的结对学习却是很认真。在项目冲刺中,咱们小组其实冲刺了十天,天天晚上咱们四我的都很认真在一堆讨论游戏代码,游戏界面,BUG等。感受仍是很不错的。

关于结对的建议:我以为能够讲一次课堂实践用做结对编程,在课堂上结对的两人用一台电脑编写程序,一样抽调部分同窗的代码作示例来作分析和讲解。(这个想一想如何作)

  • 20162329 2017-2018-1《程序设计与数据结构》课程总结 《程序设计与数据结构》课程总结

    课程结束了你们都叹了口气说“噩梦终于结束了”,然而我并无这种感受,并非由于噩梦没有结束,而是感受噩梦并无到来过,虽然每周的博客写得很难受,每次的实践感受很难,可是每次完成了它们所带来的惊喜感是无可替代的,在这门课程中好像一切都很天然, 何时学什么,何时作什么,不知道接下来没有了课程的约束咱们还会不会这么有规律。

在这一学年的程序设计课程中我从一个对编程一无所知的小白,成长为如今能够独立解决必定编程问题的编程菜鸟,虽然水平并不很高,但成长是巨大的,不只提升了个人编程能力,也提升了个人逻辑思惟能力和独立思考的能力。

对改进教学提出的建议

同窗们提出很多好建议,这些建议我在后面的课程中落实:

  1. 增强课堂时间
  2. 课后PP的讲解
  3. 内容拓展,内容深化上能够多作工做
  4. 进行小组项目的实践
  5. 与更多人的交流(学得好的提这个,实际是很多同窗不肯交流,我只能轮询改中断)
  6. 待及格定在70分,好多及格的同窗其实作的并很差而只是刚刚及格,并不见得好好学了
  7. 每周选5篇同窗博客要求全部人点评,促进学习交流,对交流多的同窗奖励
  8. 督促学生作课堂笔记,结合有道云笔记电子化,并做为一个考核点
  9. 学习博客中加入每周考试错题更正状况
  10. 实践考核这块要求代码加注

教学过程当中的好措施

老师教学方法中获得大多同窗承认的作法有:

  1. 蓝墨云班课的引入,应用
  2. 结对学习
  3. 经过博客,git交做业
  4. 内容串讲,错题讲解
  5. 课堂实践
  6. 写学习指导,督促同窗们多理解、运行代码
  7. 各类学习资料的提供
  8. 作中学
  9. 过程化考核

教学反思

同窗们提出来的问题有:

  1. 增强课堂控制,利用好课堂时间:后面要充分安排好每一节的内容
  2. 博客互评的参与度不高: 采纳前面学生的建议,试验了并很差,后面只让结对互评
  3. 英语出题: 工具安装错误,编译器错误即便很简单,很多同窗还不看,后面增强英语的学习指导和应用
  4. 代码量与有效代码量:继续刻意练习的指导

我本身感到要增强的地方有:

  • 进度条的做用没发挥好: 时间管理,效率提高,学习过程效率提升的过程参考《构建之法》监控
  • 项目,应用上多下功夫,引入大课建设内容:吸取其余学校项目管理经验
  • 指导学生掌握学习方法,提升学习效率,引入PSP的作法
  • 增强英语的应用:基础试题,解答使用英语
  • 刻意练习
  • 鼓励多思考
  • 教学视频的学习指导
  • 致谢

特别感谢邹欣老师(博客,微博,豆瓣).

感谢北京航空航天大学 的罗杰老师(博客),福州大学的张栋老师(博客),东北师范大学的杨贵福老师(博客),教学中跟大家学了很多方法,有大家这些负责的老师作榜样,我教学更有积极性了,看到大家的教学效果,也给我了很多压力。但愿后面能愈来愈好!

在此,对博客园表示衷心的感谢,特别感谢园主杜勇和工程师阿春,有什么问题基本都是当天解决。

感谢贺利坚老师(博客园博客,CSDN博客,新浪博客)。贺老师向我推荐了蓝墨云班课让个人教学有如虎添翼的感受!

感谢同窗们的大力配合,与大家一块儿体会教学相长是一件幸福的事情!


欢迎关注“rocedu”微信公众号(手机上长按二维码)

作中教,作中学,实践中共同进步!

rocedu



若是你以为本文对你有帮助,请点一下左下角的“好文要顶”和“收藏该文

相关文章
相关标签/搜索