阮行止「名师优训营」基础组暑期集训开始报名

回复帖子

@阮行止 管理员 2022-06-18 10:27 回复

讲师简介:

阮行止,洛谷知名讲师,参与了《深入浅出程序设计竞赛》编著。高中毕业于湖南师大附中,现于哈尔滨工业大学攻读计算机硕士学位。 2015~2017 年参与 OI,是那个时代最著名的 OI 选手之一。退役后投身算法教育事业,于 2018 年起执教洛谷网校,参与了每一次普及组集训授课,并为多所高中、教培机构提供培训,对 OI 教育有深刻的认知。以深入浅出的教学模式、对优秀代码风格和架构的追求,培养了数千名 OIer 从算法小白走上 NOIP 道路,深受学员好评。

大家好,我是阮行止老师。如你所见,我准备在今年暑假启动一项全新的短期集训项目,我叫它「名师优训营」。它是为希望在暑假快速学习(或复习)基础算法的同学量身定做的。我们将通过10天知识讲授 + 4天模拟赛的高强度集训,让学员从「零算法基础」或「弱算法基础」,达到「CSP-J / 普及组」的水平。

在讨论为什么组织这样一场集训之前,我想先作为算法教育从业者,谈谈现在一部分机构的集训有什么缺陷。

缺乏品质控制,容易过难或过易

在传统的集训中,常出现讲师讲的东西过难,以至于 80% 的选手听不懂的情形。在一些小机构,又常常出现课程内容过于简单,以至于数小时的课程,学生没有学到什么知识的情形。

这些问题与讲师的个人风格、表达能力有关,但更重要的是讲师对学生整体水平的把控出现失误。如果讲师在课前以为学生平均水平接近提高组,但上课时学生的水平是普及组,必然会出现大部分学生感觉太难的情况;反之同理。

许多集训从头到尾,可能每一节课都是不同的老师。 讲课难度和风格不同,学生难以快速适应,也是一个需要注意的问题。

对学员学习情况的追踪不到位

常规线上集训动辄上百人,学员的身份是「观众」而非「参与者」。老师按照自己的进度推进课程,选手可能觉得快、觉得慢、觉得有些知识没有掌握需要多加练习,但难以反馈到老师那里。

此外,集训常常没有专门的答疑时间,学生如果有些知识没有听懂,在自己做题的过程中产生疑问,无法及时得到解决,给未来学习留下隐患。

不关心代码能力训练

培训机构讲师的任务是「把预定的知识点讲完」,绝大部分的讲师以讲完算法、甚至念完 PPT 为第一要务,而不关心选手能否真的掌握知识、把代码写出来、将学到的知识用于解决综合问题

代码能力与知识能力的脱节,是大量选手面临的问题。很多时候,对于一些题目,明明有思路,但无法用代码实现出来,导致错失分数。

忽视实战技术,选手难以应对竞赛

算法竞赛是有技巧的,一个学过很多算法但从未参加过算法竞赛的选手,在考场上必然手足无措。 现在的集训尽管有训练赛,但一般仅仅止步于「讲题」,没有考场心理复盘和选手代码分析,更不传授对拍、快速 debug 等算法竞赛必需的技术。 选手参加训练赛与自行做题区别不大,很难切实提升自己的竞赛水平。

那么,怎么办?名师优训营来了!

因为传统集训的以上种种缺陷,我开始寻找一种合理的集训组织方式。经过长期研究,慢慢确定了一些基本策略。恰逢今年暑假是我近几年来时间最充裕的一个暑假,所以我决定在 7 月执行我的集训计划,以「为学员提供最优质的集训服务」为目标,全程由我负责备课、讲解知识点、答疑、组织考试、复盘和讲题。

谁适合报名这次集训?

  • 学习了 C++ 编程,希望探索算法的编程爱好者
  • 准备参加 CSP-J 竞赛的选手
  • 学过一点算法,希望在短时间内回顾基础知识的选手

上述的说明比较模糊,怎样界定 C++ 编程能力是否到位、怎样判断算法能力能否通过本次集训得到提升?为了解决这些问题,我为本次集训开发了基础算法能力评估平台。请翻到本文的「其他信息 - 如何判断是否适合报名」章节,用 2 个小时的时间测试一下自己是否适合我们的课程

这次集训的目标是什么?

  • 让学员在短期内深入掌握普及组级别的算法知识,拥有参与竞赛的实力
  • 为学员构建科学的 OI 知识框架,使得学员在结营后能通过自学继续提升竞赛水平

本次集训的定价为每人 3899 元。首先放上课程表:

与往年的基础组集训相比,我们做了一些改动,使得课程体系更加科学。每节课要介绍的知识点如下:

下面,我将描述本次集训的特性。

如同线下集训的互动

我们珍视每一位选手对课程的参与。在集训中,学员将可以在课堂上随时提问、在答疑频道和教师语音交谈。我的助教同学将会跟进每一位同学的训练状况,并及时反馈给家长。

在集训开营之前,我们会举行开幕式,让每位学员介绍自己、彼此了解。在集训结束后,我们将举行闭幕式,表彰取得优秀成绩的同学。

根据学生掌握程度动态调整的课程

在工业控制系统中,有「开环控制」和「闭环控制」两种控制方式。所谓开环控制,即系统的输出不会影响到输入;所谓闭环控制,即是通过负反馈的方法,测量输出值与期望值的偏差,去调节输入端,以保证系统达到预期的目的。

OI 教学与之异曲同工。算法竞赛教育应当是一个闭环控制系统,算法教学的速度、深度,都应当根据学生的接受程度而进行调整。集训的任务绝不该限于「向学生讲授知识」,而应该是「让学生掌握知识」。

常规网校模式下,仅限于「听懂了扣 1」这样的简单反馈,达到一定阈值了讲师就继续后续内容,没达到就重新讲一遍,不会全面调整课程难度。各节课程的讲师不同,如果学员对前一次课程的整体把握不到位,后一位讲师也无法修正,因为讲师各有各的授课任务。

在本次集训中,我们关注学员的学习状态,不仅在课堂上和学员高强度互动、以确保多数学员掌握知识,还会结合课程中学员的表现,为后期课程添加更具挑战性的内容、或删减太难的内容。如果今天发现选手的 debug 能力有欠缺,那么我们可以在后续课程中加强 debug 训练。我们也没有授课时间的压力,如果今天有很重要的知识没有讲完,我们可以明天接着把它讲明白……这些都是传统网校集训所不具备的。

知识答疑 + 帮调代码服务

我们始终认为,答疑是算法集训中最宝贵的机会。选手的许多问题得到老师开导之后可以茅塞顿开,如果仅仅是被动听课而不解决困惑的话,早期积累的问题会对后期产生很大的影响。

往年,由于时间和精力有限,我几乎从未提供过答疑。而今年的集训中,我将会在每个授课日的下午坐在答疑频道里提供答疑服务。选手可以随时加入频道向我语音提问,答疑范围涵盖课上所讲的知识、作业题目,甚至可以请助教同学帮忙调试代码。没事干的同学也可以在频道中听其他人的提问,加深对所学知识的认知。

关于帮调代码。需要指出,助教帮选手调对代码,对选手的代码能力没有任何提升。 我们不打算让选手在没有付出足够 debug 努力的情况下向助教寻求帮助。具体而言,选手请求帮忙调试代码时,助教同学会首先指出学生的代码的错误点,引导学生自己找到 bug、完成调试;当学生在尝试之后无法完成 debug 时,助教会开着屏幕共享把代码调对,并分析代码为什么出错,以达成「既授人以鱼又授人以渔」的目的。

每天上午,在讲授知识点之前,我们会先对前一天答疑过程中收集到的的共性问题进行指导,再分析前一天的选手作业代码,指出代码中需要注意的问题

重视代码能力培养

在教算法的这几年里,我观察到 NOIP 级别选手最容易出现的问题,并非知识点没有掌握,而是代码能力不够:明明有思路的题目,却写不出代码 AC 掉。我早年参与 OI 时深受代码能力欠缺的拖累,因此在从事 OI 教育时,一直非常注重学员的代码能力培养。上过我的直播课的同学都知道,我平均每次课会现场打 10 份左右的代码。

代码能力诚然可以靠刷题来自己提升,但老师的指点可以让这个过程事半功倍。很多同学甚至不知道如何阅读编译器给出的报错、不知道 Segmentation Fault 和 Floating Point Exception 分别对应着代码中的哪类错误,这样如何能快速写代码、快速调对呢?

优秀的设计模式、良好的代码风格,以及快速有效的测试,这些都能让选手快速定位到代码中的问题,并完成 debug。我们将在授课中特别关注选手代码能力的培养,力求让每一位同学都能流畅地将所学算法变成代码、用于解题。

我们将会介绍如何利用 VS Code 和终端来手动编译、运行程序(这也是赛场上推荐使用的方式),让选手脱离 Dev-C++ 等集成开发环境,更高效地调试代码。在集训开始前,助教会帮助每一位同学完成环境配置。

四年磨一剑的先进课程体系

我从 2018 年开始从事算法竞赛教育,专注于入门、普及、提高组的教学。在大量的教学实践中,我感受到一般普及组培训课时安排的不合理性。举个例子,应用非常广泛的线段树,在很多普及组集训里直接不讲。这对选手是非常不利的。

本次集训的知识点选取,相对于传统的普及组集训,大幅度调整了各个板块的课时,且加入了大量以往普及组培训不涉及(但竞赛可能会用到)的知识,如 two-pointers、莫队算法等。

过去四年间,我的课件和讲义也在不断更新迭代,已经打磨到很精细的程度。例如 DP 课程的迭代过程:

易于学生理解的讲授方式

我始终致力于找到一条最容易让学生理解的道路,去传授算法和数据结构。举个例子,很多教材和课程以背包问题来引入 DP,一上来就是一大堆的定义和概念,学生学得云里雾里,靠悟性去悟。这是明显不合科学教育理念的。因此我在讲授 DP 时,会从浅入深地举大量的例子,和学生一起,从零构建出 DP 的理论基础——先是「从小问题的解推断大问题的解」的思想,再到「状态」的概念,到「递推」和「记忆化搜索」这两种实现 DP 的途径,到「无后效性」「最优子结构」这样抽象的概念。最后才把背包问题作为一个普通的 DP 问题交付给选手,而此时选手已经可以仅靠自己所学,就推断出背包问题的做法了。

关于教学方法,这里给出我在知乎上写的两篇算法教学文本作为参考:

(动态规划入门)https://www.zhihu.com/question/23995189/answer/613096905

(KMP算法)https://www.zhihu.com/question/21923021/answer/1032665486

免费领取试听课!

如果想要进一步了解我的授课风格,您可以找我免费领取我于 2022 年春季在洛谷网校讲授的的「动态规划」课程视频。我的企业微信联系方式在文章的最下方。

面向实战的考试 + 复盘 + 讲题 + 补题训练

在传统的集训中,仅仅是「一场考试、一场讲评」的模式。学生参加一场训练赛,如同做了三道习题、听了一次习题课,对自己竞赛实战水平的提升很有限。而知名强校对训练赛的利用则充分得多,不仅有讲题环节,选手还会对自己在考场上的行为进行复盘,总结出经验教训,最后补题(将考场上未完成的题目做出来)。

算法竞赛中有许多赛场技巧,绝大部分的集训都不会覆盖到。这些技巧包括对拍、做题顺序规划、打表等各种方面,我们会在集训中为学生一一传授。

在本次集训中,我们将有 4 次训练赛。考试在上午进行,实行与联赛一致的「pdf 题面、文件输入输出、收代码后在 Linux 下本地评测」的模式,以最大限度地模拟真实赛场。下午我们将会邀请各位选手发言复盘,还原考场上的时间分配、解题思路、编写代码、对拍和 debug 的情况。然后我们会讲解题目,并组织学员把考场上未解出的题目 AC 掉。

助教将会跟进每一位同学的补题状态,并解决学员在补题时遇到的问题。

开拓视野的第二课堂

绝大部分集训、网课除了讲算法之外不讲别的内容,然而我们在教学实践中发现,计算机科学中的其他领域,对开拓学生的视野很有帮助;一些计算机的工程经验,也能对学生编写代码有所启发。除此之外,洛谷网校很多学生是单打独斗,学校内没有竞赛的环境,没有教练,对竞赛体系欠缺了解。

因此,我决定在集训中附送「第二课堂」。在授课日的晚上,我将会邀请往届的 OIer 来和学员聊天,包括 OI 竞赛的基本知识、前辈的竞赛和求学经历、计算机的一些底层原理和精彩思想,等等。我希望这些内容不仅对算法学习有帮助,还能对每一位选手的人生发展有所助益。

目前规划中的第二课堂如下。请注意第二课堂是赠送的内容,有可能发生变动或取消若干节。无论如何,我会尽量协调各位嘉宾的时间,力求完成预定的第二课堂内容。

专为本次课程开发的平台

为了方便学员的学习、更好地完成培训目标,我们为本次集训开发了相应的平台。

除了「算法能力评估平台」之外,我还开发了「代码分享墙」,我们将用这个服务来在线编辑、传递代码,避免在 QQ 群里张贴代码或截图甚至拍摄屏幕的行为。选手需要助教调试代码时,将代码生成链接发送给助教,助教修改后,选手可以清晰地看出自己代码与正确代码之间的差异

友好的退款策略

我们共有 10 次知识点课程和 4 次训练赛+复盘。如果学员在上完第一天的课程之后认为不满意,可全额退款;第二天课程后不满意可以退 13 天……以此类推。甚至如果在最后一节课后认为不满意,也可以获得退还最后一节课的款项。这是我们至今为止给出的最友好的退款策略

因此,您可以放心地报名我们的集训,并在集训中根据自己的接受程度,考虑是否继续参与学习。

全程可回放,不怕错过课程 & 随时复习

我们的课程录像将会可回放,维持半年时间。没时间上课的同学可以回放当天的视频来学习,想要复习的同学也可以随时重新观看视频。


其他信息

如何判断是否适合报名?请参与「基础算法能力评估」!

最适合报名本次集训的同学,是会 C++ 编程、对基础算法没有掌握或掌握不牢的同学。

至于如何具体判断编程能力和基础算法能力,我为这个问题开发了一套测试框架。测试需要大约 2h 的时间,包含编程题和算法问答。您可以点击下面的链接,测试一下,然后找我详聊:

基础算法能力评估 https://algoeva.trainoi.com/

学员名额有限,欲报从速

为了保证我和助教能一对一跟进每一位同学的学习状况,本次集训名额有上限(50人)。达到上限后将不会接受新的报名。欲报从速,随时欢迎咨询。

本次集训 10 人开班。若报名人数不足,我们将退还款项。(06/26 更新:目前已达到10人,确认会开班,欲报从速)

以后还会不会有这样的班?

大概没有。今年能办这个集训营,一是因为洛谷今年取消了官方基础组短期夏令营,但仍有同学希望能有短期集训,我来填补上这个空缺;二是我今年暑期时间比较充裕,能在教课的同时提供答疑服务。以后工作比较忙,很难再有这么多的时间与同学们相处。

往期学员评价

以下节选自往年的洛谷网校短期集训中,学员给出的评价。

我觉得听阮行止的课程让我比较有收获,因为他能够将我从没有接触过的问题讲得十分清楚而透彻,我立马就能明白。 ——2022 春令营学员,来自湖南

令我印象最为深刻的是 SF 和 阮行止 两位讲师,他们用 LaTeX 制作的课件非常的精美,而且讲课很流畅,能够非常清晰的的表达自己想说的意思,以及 阮行止 会在上课的时候现场写代码,告诉我们一些不应该使用的写法,如滥用宏定义,以及要养成好的代码习惯。 ——2022 春令营学员,来自安徽

rxz老师给我的印象最深。rxz老师是位非常有责任心、非常优秀、非常有实力的老师。在讲课的过程中虽然没有笑声,但是却能让课堂很欢乐然而不偏题。不在课上搞乱七八糟。我和我的家长都非常欣赏他,希望他能够继续教课。最后祝洛谷越办越好! ——2020 夏令营学员,来自北京

我超级喜欢阮行止老师!讲得太太太太好了上课的节奏、难度的推进、知识点讲解和题目讲解的时间分配都非常非常的好!最重要的是老师上课一边直播打代码一边讲解还给注释实在好贴心! ——2020 春令营学员,来自上海

Kagura_Hikari 老师和阮行止老师他们对于编程的理解异于常人不同于学校老师般的死板而是充满了青春活力。阮行止有着超高超的理论知识和手速(被惊艳到了)然后绘画技能和描述技能max数据结构在他手里就和玩具一样,以至于我一次性学会了并查集这个数据结构以至于为所欲为。 ——2019 春令营学员,来自福建

我觉得使我最感兴趣的课程是《动态规划入门》,本来在这一块我根本一点不会,感谢rxz老师精彩又仔细的讲解,我渐渐的懂得了动态规划,使我受益匪浅,也让我在期中的0分,变成了期末的160分。 ——2018 夏令营学员,来自北京

咨询

随时欢迎您来和我讨论!如果要咨询的问题比较多,可以约个时间电话咨询。

课程链接:https://class.luogu.com.cn/course/rxz2022

@阮行止 管理员 2022-06-18 10:36 回复 举报

可以找我领取试听课(2022年春的基础组DP教学视频)! 加我企业微信,领取课程兑换码 :)

反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。