基于课程的“试探式”教学模式探索
2019-05-24钱雨波王金祥
钱雨波 王金祥
摘要:作为世界权威的编程大赛,ACM竞赛是检验各国计算机尖端人才培养水平的重要赛事。我国有相当人口的计算机相关专业学生,却在ACM竞赛上表现平平。以我国当前高等教育模式对培养ACM人才的局限性为例分析,进而发现目前高等教育模式存在断崖式教育阶段过渡、课程设置涵盖面小、学科拓展度低、滞后的知识更新、课程鸡肋化等诸多问题。此外,这种被动的无差别培养模式忽略了个体的特点,成为阻碍学生个性化发展的枷锁。通过优化当前高等教育模式,结合“教育减压”趋势,提出“试探式”教学模式以培养“精瘦型”人才。
关键词:ACM竞赛;高等教育;试探式教学;“精瘦型”人才
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2019)11-0158-03
我国教育改革处在尴尬期,一方面人力资源市场现状——“很多人找不到工作,但很多职位却空缺”迫使我们进行改革;另一方面专深型同复合型两个方向的人才培养争议和日益激烈的社会竞争同教育减压的矛盾使我们陷入“怎么改革”的困境。培养ACM人才是一个典型例子,既符合专业深度又囊括复合型知识;作为课外内容,掌握ACM竞赛知识能适应日趋激烈的社会竞争,但也是“教育减压”改革路上的障碍物。采用“试探式”教学模式,以“理论实践理论”的循环模式,动态调整自主建立的专业架构。
1 ACM竞赛概况
1.1 ACM竞赛发展现状
国际大学生程序设计竞赛(ICPC,International Collegiate Programming Contest)由国际计算机协会(ACM,Association for Computing Machinery)主办(因此又称ACM程序设计竞赛,简称ACM竞赛),著名IT公司国际商业机器公司(IBM,International Business Machines Corporation)赞助,是计算机领域知名度最高、含金量最足的赛事。
ACM竞赛的影响力逐年上升,2018年第48届国际大学生程序设计竞赛全球总决赛已经囊括全球六个大洲、100多个国家,超过3000所高校的15000多支队伍参与选拔。
ACM试题涵盖范围广,除需要字符串、组合数学、初等图论、几何、运筹学等理工科知识外,还涉及如英语、心理学等人文社科学知识。对选手们的专业水准、逻辑思维、日常积累、团队合作和承受能力等综合素质具有很高要求。
1.2 ACM人才培养
目前ACM人才培养途径主要是设立竞赛课程、自主学习、OJ测评、线上及线下比赛。不同地区、不同高校之间的程序设计竞赛教学发展程度參差不齐。譬如大连理工大学已经采用日常训练、周赛、校赛、暑假集训、省赛、四省赛、区域赛、ACM-ICPC竞赛等方式开展实践教学的模式[1]。由于受限于当前教育教学模式的框架,国内很多高校尚未将ACM竞赛课程纳入教学计划中。
国内仅有为数不多的几所高校设立了独立的程序在线评测系统,如北京大学的POJ(Peking University Online Judge)、哈尔滨工业大学的HOJ、杭州电子科技大学的HDUOJ、浙江大学的ZOJ。即使是用户最多、测试量最大、题目最全的北京大学程序在线评测系统,但其本身的UI(User Interface)设计、容载量大小、功能完善度等诸多方面尚未完善,常常会出现网页崩溃,待测程序排队滞留等诸多问题。
在互联网与软件开发方面,大多是欧美日韩引领创新潮流。中山大学的郭嵩山教授也揭示出归根结底是我国思维方式和教育制度上的落后。[2]我国计算机类在校学生众多,而尖端人才率很低。培养高品质的人才,不仅需要提高专业化程度、扩宽知识面,更重要的是及时更新的教育体制。
2 当前教学模式的缺陷
2.1 断崖式教育阶段过渡
2.2 课程设置涵盖面小
在高等教育中,计算机系很少会教授指数循环结等复杂数学问题。此类多专业知识结合的领域发展缓慢,复合型人才的培养也陷入僵局。
2.3 知识拓展度低
哈夫曼树是最优二叉树,是带权路径长度最短的树,即权值越大的结点越靠近根。在《数据结构》[3]中需要运用结构体数组(Weight, Parent)实现计算机化,其复杂度为O(n2)。若n非常大,运用以上方法很容易产生超时错误或内存溢出,且代码复杂度大,难以理解。在实际比赛中,通常只要求我们求得各个结点的值。如果我们采用C++提供的标准模板库(Standard Template Library,简称STL)中的优先队列(priority_queue)则能优化算法,时间复杂度仅为O(n)。
优先队列是实现贪心算法的非常简便的数据结构。但在实际教学中,多数高校都很少系统地讲解C++的标准模板库,是高等教育拓展度低的表现。
2.4 滞后的知识更新
多数高校的算法教学的编程语言基础是C/C++。作为非常经典的ACM题型,大数运算由于运算项远远超出C/C++中数据类型的最大值,一般需要化为字符串处理运算,但算法非常复杂,对于高精度的大数运算更为困难,能完全解出的学生必须具备很强的算法思想和编程能力。然而这类题型只需运用Java的math包中的高精度整数运算(BigInteger)和高精度小数算法(BigDecimal)的部分运算函数便可轻易求解。
此外,与C/C++相比,新兴开源语言Python不仅没有循环次数和数据类型限制,还具备许多封装好的库,可以直接导入使用。目前Python应用的领域越来越多,是一种相当方便简洁的语言,且不断更新版本、顺应时代。多数高校目前尚未开设Python课程,对于计算机这类更迭迅速的专业,当前教育模式下的知识更新往往跟不上社会发展脚步。
2.5 尴尬的“鸡肋”课程
在当前高校课程设置中,有不少课程因时代变迁或收效甚微或不够重视而逐渐边缘化。以了解企业(KAB)课程为例,教育部在2012年8月印发的《普通本科教育创业教育教学基本要求》中要求各高校把创业教育纳入人才培养、教学评估中。为响应教育部号召,不少高校把KAB课程划入通识必修课中。然而超过77.8%的学生认为自己不会创业;超过40.1%的学生认为KAB课程只是为了毕业需要;将近61%的毕业生认为KAB课程对自己没有帮助。中国青年报记者在调查中一位老师透露,“学校只有两个老师讲授KAB课程,而有上万名学生,不可能讲得过来”。[4]除了师资力量不足之外,学生热情度和积极性也不高,出勤率仅有七成,“抬头率”更是惨不忍睹,使得教育资源严重浪费。除此之外还有许多类似的尴尬的鸡肋课程。
3 试探式教学梗概
以“互联网+”潮流为标志的多专业结合是教育改革的趋势。除此之外,随着时代发展、社会进步,教育改革还需要不断加深专业化程度。在不改变现有学时的基础上,若加深专业化程度,势必会牺牲知识面的广度,反之亦然。如何在它们之间寻找到最优点,将教育资源利用率最大化是教育改革的意义所在。“试探式”教育教学方法就是研究如何统筹兼顾深专型和复合型两个方向,在适应社会竞争的前提下教育减压,培养“精”而“瘦”的综合化人才。
3.1 改变传统育才的观念
“试探式”教学的育才观念是“打破严格的专业壁垒,精简或刨除鸡肋课程,充分利用教育资源”。由学生主导生涯规划,老师以课程为单位研究和教学。将大一视作适应时期,让每个学生尝试着“试探”自己感兴趣、有天赋的专业领域。打破原有以专业为单位的教学观念,进而将课程作为新单位,培养能力、兴趣导向的复合型人才,优化课程设置。打破原先以固定时间作为课时的观念,以完成教学任务为目标,动态调整上课时间,提高时间利用率。不同程度的专业化阶段,动态“试探”最佳课程任务量与课时的关系,在确保教学任务完成的前提下给学生腾出更多的自主学习、休息时间,减少课堂时间浪费,打造高效率的“精瘦型”人才。
3.2 建立科学的课程体系
“试探式”教学是建立在一个科学完整的课程体系之上。需要课程与课程之间的关系数据库,每门课程与其必要先修课之间设定反映关系密切程度的关联系数。学生在选课时可有两种方式:(1)学生的已修课程与目标课程的先修课关联系数总和满足最低选修要求时可以选修。(2)学生通过目标课程的先修课程线上基测考试时可以选修。课程之间的关联系数随实际情况动态的进行调整。
课程设置随时代发展而同步更新,不断增设新兴课程,浓缩、合并、淘汰过气课程,由于“试探式”教学模式以课程为单位,因此课程变动不影响整体框架。大大降低必修课比例,增加学习弹性。压缩兼并相关通识课程,增设阶段规划课程。细化课程属性,课程按属性进行分类;制定课程级别,将一门课划分为不同的难度等级以顺应不同行业的实际情况。
3.3 打破严格的专业壁垒
“试探式”教学打破严格的专业壁垒,由学生自主设计个人知识框架,充分发挥个性化,培养复合型人才,降低知识与职业不对口的风险,减少教育资源流失。原专业分设为第一专业、第二专业、第三专业。大一阶段主要教授必要的通识课程,同时合并原导论课与大学生职业生涯规划课程为弹性导论课程,供学生旁听任何专业的导论,最终以规划书作为考核依据,明确研究发展方向。在自我评估潜在能力及兴趣后挑选适合的课程,学生可依据竞赛获奖、论文发布等多种方式证明自己具备培养潜力,满足最低专业课学分要求并完成基测后可随时转变第一专业,以“试探”的方式塑造个性化复合型尖端人才。毕业时以学生所修课程属性按比例标识其专业方向,明确研究或工作方向。
3.4 拓宽对应的实习渠道
前哈佛大学校长德雷克·博克在《回归大学之道》一书中指出“大学教育的最终目的是给市场输送有用的人才”。[5]增大校企合作,拓宽学生实习途径,贯穿整个大学生涯。学生在“试探性”的实习过程中,不断调整职业生涯规划,总结需要掌握的知识技能,依此选择相应的课程,构成“校企校”的模型。企业也在学生实习过程中,挖掘人才,从而提高企业招聘质量。学校以企业作为实践基地检测培养成效,企业把学校当作后备人才储备基地,并参考多次实习反馈情况挖掘和挑选真正具备相应岗位能力和潜力的“职场型”人才。
3.5 试探式教学模式的优势
3.5.1 基于课程的教学体系
我国当前高等教育教学模式是基于专业的,在刚性的政策导向、统一的设置标准、高校缺乏课程设置自主权[6]的约束下,牵一发而动全身,很难进行动态的课程改革。“试探式”教学模式基于课程,能够与时俱进,动态进行课程改革。基于课程的教学体系,将大一作为适应期,学生可以弹性地了解高等教育并“试探”符合个性化发展的课程进行自主设置,缓解从基础教育到高等教育过度时产生的断崖式障碍。教师不再基于专业或学院进行教授,而是根据课程教学水平及兴趣进行开课。基于课程的教学体系不但提高学生学习热情,并且优化教师配置、增加教师授课积极性。
3.5.2 有效的教育减压
学习压力其实也是学习负担,其中最主要的原因不外乎两点:一、从事自己不喜欢的专业;二、从事自己不擅长的专业。前者造成课程排斥心理,后者造成自我否定心理。在刚性的政策导向下势必出现这两种情况,进而造成过度的学习压力。“试探式”教学拥有灵活的政策,打破固有的时间观念,降低课时浪费,时间上进行教育减压。基于课程的教学体系,教师只需负责几门擅长或者喜爱的课程,不断淬炼授课质量;减少临时备课发生率,为教师减压。
3.5.3 缓解专业低龄化
无论是断崖式教育阶段过渡,还是课程鸡肋化等问题,本质上都是教育资源利用率低。随着时代发展、社会进步,专业细化是必然趋势,而教育资源的低利用率最终结果是专业低龄化加剧。“试探式”教学“校企校”的针对型自主选课模式能大大提高教育资源利用率,有效缓解专业低龄化。
3.5.4 培养“精瘦型”人才
“精瘦型”人才的特征在于“精”与“瘦”。所谓“精”是指在“试探式”教学模式下培养的人才具有很强专业能力,且具备适应市场的综合素质;所谓“瘦”是指“试探式”教学模式降低学习、教学压力,刨除或简化“鸡肋”课程等低效课程,降低学生身上的“膘”含量。
4 结语
采用“试探式”教学模式,进行兴趣试探、能力试探、市场试探等,这种“找准方向再出力”的教学方式优化了课程设置,提高开设课程的利用率,最大程度地激发学生潜能。此外由学生自主选择发展方向打破传统被动学习,满足每个学生的兴趣和需求,大大提高学生學习热情。“试探式”教学方法的本质是与时俱进,培养个性化的复合型“精瘦”人才。但与当前教学模式差异较大,因此教育改革应当从更新教学内容、优化课程设置、提高课时利用率、降低必修课比例、完善课程间关联度、淡化专业界限等多方面进行逐步改革,转以学生为中心的“试探式”教育教学方法,培养顺应社会需要的健康人才。
参考文献:
[1] 梁冰,冯林.面向ACM-ICPC竞赛的计算机人才培养教学与实践方法[J].实验室科学,2017, 20(4):230-231.
[2] 郭嵩山,王磊,张子臻.ACM/ICPC与创新型IT人才的培养[J].实验室研究与探索, 2007, 26(12):184.
[3] 耿国华,张德同,周明全,等.数据结构——用C语言描述(第二版)Data Structures in C(Second Edition)[M].北京:高等教育出版社,2015:188-198.
[4] 陶涛.尴尬的高校必修课[N].中国青年报,2014-4-25(T01).
[5] [美]德雷克·博克.回归大学之道:对美国大学本科教育的反思与展望[M].侯定凯译,上海:华东师范大学出版社,2012.
[6] 别敦荣,李家新.我国高校公共课设置及其改革策略研究[J].中国高教研究,2015(12):22-24.
【通联编辑:代影】