有关CS中心在线计划的组织者和助教

11月14日,CS中心第三次启动在线程序“算法和高效计算”,“开发人员数学”以及C ++,Java和Haskell Development。 创建它们的目的是帮助您将自己沉浸在新的领域中,并为在IT方面进行培训和工作奠定基础。

要进入,您需要沉浸在培训氛围中并通过入学考试。 在code.stepik.org上了解有关计划,考试和费用的更多信息

同时,助教和上次课程的策展人将告诉您培训的组织方式,学习对象,助手在学习期间进行代码审查的方式和原因,以及从参与计划中学到的知识。

图片

程序如何安排?


CS中心有三个基于Stepik平台的在线程序: “算法和高效计算”“开发人员数学”“ C ++,Java和Haskell开发” 。 每个程序包括两个部分。 这些是由经验丰富的老师和科学家准备的课程:

  • 作为算法程序一部分的算法和理论信息学。
  • 面向开发人员的数学程序中的Matanalysis,离散数学,线性代数和概率论。
  • 在线编程语言程序中的C ++,Java和Haskell课程。

以及其他活动,例如代码审查,解决理论上的证据问题,与助手和老师进行磋商。 它们很难扩展,因此培训是在小组中进行的。 活动有助于更深入地了解该主题并获得高质量的反馈。

教学助理Artemy Pestretsov:“在我看来,代码审查是语言和算法在线程序的主要区别特征。 要找到您问题的答案,您可以使用google。 这是艰难而漫长的,但可能。 但是Google不会进行代码审查,因此非常有价值。”

该计划中的每个课程大约持续两个月。 最后,学生必须通过所有课程的考试或接受测试。

图片

我们的学生是谁?


在线课程的学生:

  • 他们想填补数学或编程方面的空白。 例如,有经验的开发人员想要加强数学基础。
  • 他们开始熟悉编程,并将中心程序包括在他们的自学计划中。
  • 准备进入裁判法院或CS中心。
  • 受过其他专业教育的学生决定从根本上改变方向。 例如,化学家或教育家。

Artemy Pestretsov:“我们有一个学生,一个人在他的鼎盛时期,他在一家石油和天然气公司工作,由于他去油井进行商务旅行,所以在截止日期前得到了喘息。 拥有完全不同经验的人们看到IT技术和数学获得发展势头,这很酷。 这些都是有成就的人,他们可以生活得如此美好,但是他们试图学习新的东西,他们希望在其他领域发展。”

Mikhail Veselov, vmatm :“每个人都有不同的水平:有人不能完全理解该语言的基本知识,但是有人是Java或Python程序员来的,您可以保持诸如“如何做得更好”这样的对话。 最主要的不是把重点放在最好的东西上,而是集中在一个中等水平上,以便该课程对所有人都有用。”

培训如何组织?


有几种工具可以帮助组织者和教育者构建该过程。

邮件中的信件。 有关重要和正式的公告。
与老师和组织者聊天。 在老师或助手看到问题之前,孩子们经常在聊天中互相帮助。
YouTrack。 对于老师和助手的问题和作业。 在这里,您可以提出私人问题,并讨论一对一的解决方案:当然,学生不能彼此共享解决方案。

组织者与学生沟通,并试图迅速解决问题。 克里斯蒂娜·斯莫尔尼科娃(Kristina Smolnikova):“如果几个学生问同一件事,那么这是一个普遍的问题,我们需要告诉所有人。”

助手如何提供帮助


代码审查

学习程序的学生可以通过功课,而助手则可以检查代码是否干净和最佳。 这是伙计们上次组织评论的方式。

Artemy Pestretsov试图在12小时内回答问题,因为学生在不同的时间通过了任务。 我阅读了代码,从标准,通用编程实践的角度出发发现问题,深入细节,要求进行优化,并建议应固定哪些变量名。

“每个人编写代码的方式都不同,人们有不同的经验。 有些学生第一次参加写作。 我喜欢所有东西,它效果很好,测试需要25秒,因为一切都完美。 碰巧您坐了一个小时,试图理解一个人为什么写这样的代码。 这是绝对适当的教育过程。 当您进行代码审查时,会发生类似的事情。”

Mikhail尝试为每个学生独立建立一个流程,这样就不会出现“我已经向某人解释过了,问他”。 他首先对问题进行了详细的评论,然后学生要求澄清问题并更新了解决方案。 通过逐次逼近,他们获得了既适合导师又适合学生的质量。

“在最初的一两个星期的培训中,人们编写的代码不太准确。 他们需要仔细提醒Python和Java中都存在的标准,谈论自动代码分析器是否存在明显的错误和缺点,以免日后分心,从而使整个学期都不会因为一个人的断字是错误的事实而陷入困境。或逗号不存在。”

给那些想进行培训代码审查的人的提示

1.如果学生已经编写了问题代码,请不要重做。 他了解此特定代码的问题很重要。

2.不要对学生说谎。 如果没有办法解决问题,最好诚实地说“我不知道”。 Artemy:“我有一个学生比程序更深入地挖掘,下降到铁水平,然后又上升,他和我一直骑着这种抽象电梯。 我不得不记住一些事情,但是要立即制定很难。”

3.不必关注学生是一个初学者的事实:当一个人第一次做某事时,他会更认真地对待批评,根本不知道它通常是如何做的,他做什么和不做什么。 最好只讲代码,而不要讲学生的缺点。

4.学习如何以“教育性”的方式回答问题真是太好了。 任务不是直接回答,而是让学生真正理解并亲自回答。 Artemy:“在99%的情况下,我可以立即回答学生的问题,但是我经常不能立即拿出答案并写答案,因为我不得不权衡很多。 他写了五十行,删掉了,又写了。 我对课程的声誉和学生的知识负责,这不是一件容易的事。 当学生说:“哦,我有见识!”时,会产生一种非常酷的感觉。 我也这样:“他有见识!”。

5.重要的是要小心,不要强烈批评。 启发但不要太大,以使学生不会认为自己所做的一切都很时髦。 在这里,您必须学习如何有效地控制自己的情绪水平。

6.收集相同类型的一般注释和错误很有用,以节省时间。 您可以记录第一条这样的消息,然后简单地复制并添加详细信息,以回答同一问题上的其他问题。

7.由于知识和经验的差异,有些事情似乎很明显,因此起初助手不对学生的评论中的内容进行解码。 它有助于简单地重新阅读书面内容并添加似乎很普通的内容。 迈克尔:“在我看来,我对决策验证的时间越长,从一开始就对新生就越清楚。 现在,我将阅读有关代码的第一条评论,并说:“它应该更准确,更详细。”

教学和协助很棒


我们要求孩子们告诉我们他们在进行代码审查和与学生交谈时获得了哪些有益的经验。

Artemy:“我学到的主要内容是耐心,教导。 这是一项全新的技能;我正在为自己掌握全新的非技术领域。 我认为当我在会议上发言,与同事交谈或在集会上介绍项目时,教学将大有帮助。 我建议大家尝试一下!”

迈克尔:“这种经历使人们宽容了有人以与我不同的方式编写了代码。 尤其是当您刚刚开始寻找解决方案时。 我自己上过Python和Java课程,并以不同的方式解决了类似的问题。 他对变量和函数的称呼不同。 这些家伙的决定都有些不同,因为在编程中没有标准的解决方案。 在这里,您需要一些耐心,而不是说:“只需要这样做!” 它有助于后来在工作中讨论特定解决方案的利弊,而不是讨论不是我做这件事的利弊。”

阅读有关在线计划和校友评论的更多信息

Source: https://habr.com/ru/post/zh-CN472054/


All Articles