算法与数据结构的课程设计与学生调查

说起来,算法与数据结构的课程,是非常值得设计的。这段时间的教学经验让我再次意识到,绝大多数试图学习计算机或者数据分析的学生,都无法彻底绕过这门课程。因此,针对这门课程的教学设计就显得非常有必要了。

首先分析教学内容,这门课中几乎大部分人都绕不过去的内容基本如下:

  1. 算法基础
  2. 排序算法
  3. 数据结构
  4. 高级设计和分析技术
  5. 高级数据结构
  6. 图算法

在这些内容之外,更多的就是专有领域才需要用到的算法、数据结构了;而这些内容,则基本上在大多数领域中都有所需要。因此,只要把这些内容都学会、玩熟,也就有了面对任何具体领域的算法基础、数据结构基础、思路基础、实现能力基础。

确定了内容,其教学课程设计就呼之欲出了:

  1. 教授基本的算法思路,作为后面学习的基本思维工具
  2. 掌握一门合适的语言,会基本语法够用即可
  3. 依次学习每个部分,具体内容根据学生情况有所取舍,以达到合适的学习进度
  4. 学习过程中保持充分的练习,以及鼓励学生参与相关比赛练手,从而对学习情况有个客观评价

这样一来,以《算法导论》为教材,简单数数知识点,基本需要12次课及引导下的课后自学。按照教学经验平均来看,每节课2小时,每次课后自学3~6天,每天4~8小时。也就是说,对于时间充裕的学生来说,最多两个月就可以搞定。

但接触下来,许多学生在大学课程或者自学中,远远达不到这种学习速度。分析下来,基本有如下问题:

  1. 开始没有学会基本的学习思路、思维工具,从而在后续学习中无法做到透彻理解
  2. 陷入语言实现细节、数学证明细节、算法细枝末节,这些时间其实没什么意义
  3. 学习过程中取舍不当,从而浪费大量时间在一些不太有现实意义的偏门算法上
  4. 练习不充分、不会调试等,使得该有的直观理解没有,大致学不懂、写不对

值得一提的是,上述内容中并不都是不好的,比如对很多细节、偏门算法的深究,其实往往是走入算法研究领域的开始,对于有志于算法研究的学生,绝对是应该大大鼓励并提供相关深入探究资料的。但对于兴趣不在此的学生来说,往往是想要绕过却又不知道该绕过那些,这时候还是在指导下绕过无用的内容为好。

综上所述,便是算法与数据结构课程的设计大纲,下面讨论一下价格和适用学生情况。

我目前的教学基本有三个原则:

  1. 高强度的教学、咨询时间,统一定价为500¥/小时
  2. 在保证学生理解透彻的基础上尽可能加快教学进度
  3. 尽力培养学生自学能力,鼓励学生多预习、多自学

同时,前文所说的12节课的计划是边界情况,而如果学生时间充裕,多多看书和练习,教学进度是可以压缩至一节课一部分内容的,如此其实只上6节课也是可以学完的。 因此,这门课程如果是一对一,需要6000¥~12000¥的价格;而如果是三人小班,则是每人2000¥~4000¥的价格。

而接触下来,适用于这门课程的学生大致有以下几种:

  1. 临近找工作,时间不足,需要快速补足算法与数据结构的短板
  2. 转系或留学,由于基础不足或者语言障碍,需要帮助
  3. 已经毕业,转行中发现自己没有基础,需要补上这门课
  4. 读研期间,专业并非计算机类,但需要编程基础,因此需要补这门课

以上,完毕。

Page created on 2020-12-06