说说翻转的数据结构课

  自从接受了翻转课堂的思想,再也容不下传统课堂,于是,见一门,翻一门。条件不具备,就自力更生,艰苦奋斗,南泥湾是我心中的圣地。至于学生,知道他们需要适应,但这是一种信息时代该有的学习方式,带他们深度进入这个前沿,苦和累都值得。更何况,我相信,这是让我的学生更快乐的方式,尽管几乎肯定更要累一些。

  一学期就这样下来了。最后一周,布置给学生写个总结。写学习什么,写学习方法上有何改进,多从自己的收获看一看,这是发展中的视角,即使状态不好的同学,我不希望看到一份份检讨书。

  我的总结,也是少不了的。

  关于课程及流程。每一周我投放视频、自测,写出课前自学、课后实践的指导书,公布实践的参考解答,压力很大,给自己定下视频一定要提前两周录出来,以免临时有事,会让学生断粮。有过危机,挺过来了。学生每周一即可以看到下周的视频,大部分的同学能有节奏地完成着自学、自测、课堂活动、课后实践的流程,有了每周两次的上机陪伴,有着云班课中的数据,心中还是有底的。

  翻转课堂的模式需要同学们很强的自主学习能力。这显然是当下大学生中所缺乏的。这种能力如何来?当然是要从自主的学习实践中,发展这种自主的学习的能力。能够按照课程要求做下来的同学,这种能力,多少是有提高的。

  我关注和鼓励同学们个性的学习方式,在这一点上我没有失望。一个模子套住的学习,不该是这么多年轻学生构成的群体所呈现出来的。有些同学可以在视频放出来的当天,几乎解决,有些同学为自己定下的节奏是,一天至少看一个,到周末集中解决完。有众多的同学看视频和读教材是同步的,一边看,一边做着笔记,这是一种极深度的学习,体现着翻转的优越——在传统模式下,哪能有时间这样笔记。有同学会将视频反复看,整个视频反复的,以及局部反复的,用这样的方式,满足着自己个性化的需求。还有同学,我在和他谈为什么么不能在课前将视频看完时,他给我的解释是,在实体课上完之后再看视频,也即沿用传统课堂的流程,对他感觉效率更高。我简单“面试”,知道不假,我安心了。老师放手,并对同学们的个性给出尊重,保证学习效果的这个目标能够达到。

  我更欣赏的自主,是出现在个别数据并不太漂亮的同学身上。其中一位,实践课上总是不做我布置的任务,但我的观察,以及和他的沟通,知道他自主地找看起来更加实用的项目,用数据结构的知识开展实践。这种“不听话”中,透的是自主的能力和创造的能力。可以发现,这位同学在后半个学期,他的课程部分的效率是很高的。他的考试,我不敢说他能超过听话的学霸,但他得到的东西,更加鲜活。还有一位同学,在我每次忍不住要催促他时,他总要安慰我,现在手头有事,他有计划,要我不要担心。我嘴上答应,但心真放不下。他在第8、9周的时候开始发力,并且他的以实践开路的学习程度,是全班最好的。为什么不能接受同学自己的安排呢?

  相对个体,教师更应该首先保证群体。令我高兴的是,用实践的方式开展学习,已经成为同学们的共识和习惯。实践的方式有两个层次,“知原理”是要画出来,会实现,就是要用代码表达。老实说,课程的实践量要求的确大,即使C语言的底子足够好,也需要大量的时间投入。况且有些同学的C语言水平,需要用这门课再提一下。忍心让同学们大投入,这是专业基本功的需求。如果放在传统的课堂模式中,会因为考试不是这样考,而交待同学们,同要懂原理就行了。独立完成的,“抄之有道”做过了体验了。有了过程,即使显性的结果没有体现,那也要知道收获自然在。在今后其他课的学习中,希望同学们有能力在老师要求自外,仿照数据结构课程的模式,为自己设计出实践之路。

  也许别人看来,在“IT学子知心大叔”的身边学习,进步都是大大的。然而并非如此。有近1/4左右的同学,不能保证课前将视频看完。这是翻转课堂的基本要求。这部分同学的学习,实际上就是完全被动的。我时时在反思,我是否恢复以前的主动干涉,我是否改变了“雪中送炭”优先于“锦上添花”的定位?以尊重青年人的选择为前提,我觉得我的老本是在的,同学可以和我说真话,我还是保持关注并耐心等候了。有学生令我惊奇地补了一段时间C语言,然后跟上了数据结构的队伍,也有的,努力一阵,继续苦寻他的路。还有的,令自己不满意的节奏依然。也就在各种各样所谓不在状态中,我发现了翻转课堂的价值,因为这部分同学,也就是传统课堂上完全听不进云的群体,他们在期末是各种抓狂的,在很多时候是不断地选择放弃的。然而,各周视频的观看率,已经逐渐逼近100%。大学生,还是想学的,翻转课堂的资源为他们保留着期末再学模式的支持,也是好处。

  大班教学是当下难点。从书上看的,从前几年在大一的学生中的实践,我已经认准了学习型团队建设,是解决之道。翻转课堂要有运转良好的学习小组,团队也是基本要求。然而,这却是我在这学期没有做到的痛点。学期初为大家勾画出了美好的前景,也搭起了团队的框架,然而,我却再没有精力在这方面投入。老实说,一些环节要有效运行,我甚至还完全没有想法。做学生学习的组织者,而不只是知识的传授者,我还需要再努力。作为总结,也只能寄语同学们,在大学的学习和生活中,主动地加入到各种正式和非正式的团体中,发展自己的合作能力,这种能力,甚至比专业知识重要得多,只能由你在合作的实践中自己发展。有朝一日老师在这方面感觉好了,受益的也只能是后来人。

  另一个遗憾是,没有减轻同学的学习负担。数据结构是这个专业中几乎最重要的课,算是让我能聊以自慰一些。根据同学们的实际情况,课前视频采取了精讲的风格,因此,原先定下的每周100-120分钟课前视频的原则,并没有保证,有两周甚至冲到了150分钟。是否值得这么做,我在期末的问卷中,还要问计于大家,以指导我后面的教学实践。

  较重的负担还可以从两方面理解。一方面,这些负担为为保证学习效果而加的,在数据结构这样的重量级课程中,想将专业学好的同学不会亏本。另一方面,这学期我为课题组中其他教师应急顶过课,当然用的是传统课堂,课堂时间没有控制好,只能是“没时间讲了,同学们自己看看”,而我们的翻转课堂,不存在这样的情况。甚至,真的没有时间实施的内容,我已经全录了视频,需要的同学,抽自己的时间再看视频即可。我们接受的是完整的数据结构课程的学习。

  想说的,差不多说完了。课结束了,同学们的挑战更大了,课程设计和考试,除了数据结构,还有其他课程,都得重视。

  希望在今后的学习中,从翻转的数据结构课中学得的更扎实的基础,能够助同学们的学习工作顺利。更希望的,是从中获得的学习方法上的提高,让同学们的学习更有效,有效率,有效果!

附:课程主页链接

时间: 2024-08-03 14:43:57

说说翻转的数据结构课的相关文章

数据结构课作业系列

数据结构课作业-----顺序表 1 /**************************** 2 3 程序名称:简单电话号码查询系统 V.0.1 4 主要功能:简单联系人录入,查找,排序..... 5 主要结构:静态数组类链表 6 7 **************************/ 8 9 #include <cstdio> 10 #include <cstring> 11 #include <iostream> 12 #include <algorit

dfs+线段树 zhrt的数据结构课

zhrt的数据结构课 这个题目我觉得是一个有一点点思维的dfs+线段树 虽然说看起来可以用树链剖分写,但是这个题目时间卡了树剖 因为之前用树剖一直在写这个,所以一直想的是区间更新,想dfs+线段树,有点点没想明白 后来才知道可以把这个区间更新转化成单点更新,就是查一个结点的子树,如果子树有可以到根节点的,那么这个结点肯定也可以到根节点. #include <cstdio> #include <cstring> #include <algorithm> #include

2017.8.11 数据结构课小结

今天讲了并查集.堆和Hash表,并讲了几道比较难的题. 例1. 分析:其实这道题我们用一颗很普通的线段树,维护区间最大值就好了,因为最大值开方后还是最大值嘛. 但是开方有一个比较重要的性质:一个10^7的数大概7,8次开方就是1了,以后不管怎么开方都是1,我们能不能不考虑这部分1呢?也就是说,我们能不能用一个数据结构跳过1呢?可以想到用双向链表,但是这样能不能做到线性呢?回想一下链表的操作,我们的第一步是要"找到"链表,也就是说我们要找到当前区间的第一个不是1的表头,这样其实很容易卡掉

ATM取款机模拟——数据结构课设

今天帮人写的第二篇课设 , ;-) 机智的窝 要求:大概说一下吧,就是要创建一个用户(初始化一账户),模拟ATM的业务(取款,100的整数倍,改密               码,查余额,等等,各种简单繁琐的操作 ;-) ) 直接贴代码吧: #include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include <string> using name

排序算法及其比较--数据结构课设

 排序算法及其比较 课程设计报告 一. 设计内容 编程实现希尔.快速.堆排序.归并排序算法,并利用程序统计每种算法的执行时间.要求随机产生10000(或50000. 100000. 200000,由用户选择)个数据存入数据文件,然后读数据文件,分别采用不同排序方法进行排序,将结果存入另一个文件中. 二. 设计思想描述 1.  总思想 本程序采用模块化设计思想,分为产生随机数模块,计时模块,写入磁盘模块,读出磁盘模块,希尔排序模块,快速排序模块,堆排序模块,归并排序模块,计时模块.对常见的4 种经

刁肥宅数据结构课设:布隆过滤器的实践与应用(V1.0)

课程编号:                     课程性质:          数据结构课程设计报告         学院:         合肥工业大学            班级:         物联网工程17-2班        姓名:         刁肥宅               学号:         201721800X           教师:         周波                           2018年 8月 10日   至  2018年 8

数据结构课设

p127 kmp字符串匹配算法 查找串a在串b中出现了多少次 时间复杂度o(n) http://paste.ubuntu.com/13771972/ 测试数据 5HAHAHAHAWQNWQNADAADADADABABABBBABABABABABABABABBDADADDAADAADDAAADAAD P199堆排序 输入A代表将元素加入堆,T代表输出并取走堆中的最大元素 时间复杂度nlgn代码http://paste.ubuntu.com/13773221/ 测试数据 5A 77751A 1329

数据结构课学到的常用知识总结概括

l  快速排序 对于一个待排序序列,通过一趟排序将它分成两个子序列,其中一个序列内所有元素均小于另外一个序列中的任意一个元素.然后对两个子序列均进行上述的排序.知道最后各个子序列均完成排序. l  深度优先搜索 是对树和图的一种遍历和搜索算法.每次都扩展新产生的状态. 以树为例,选定初始结点,按深度递增的方向遍历该树的某一分支,直至搜索到叶子结点,然后回溯至最近的一个仍其它未被遍历分支的父节点,则按之前的方法搜索该分支.递归完成整个搜索过程. l  广度优先搜索 以层次递增的顺序进行,当前层所有

刁肥宅数据结构课设“布隆过滤器的实践与应用”源代码(v1.0,永不上交)

代码很简单,写了一些注释:加上注释看就很清楚了. 文件bloomfilter.cpp: 1 #include "bloomfilter.h" 2 3 // return a hash range from 0 to 79999 4 int hash(const char* str, int index) 5 { 6 int hash = 1; 7 int seed = 12345; 8 int curr; 9 switch(index) 10 { 11 case 0:{ 12 whil