CS中心在线课程的组织者和助教

14月XNUMX日,CS中心第三次推出在线课程“算法与高效计算”、“开发者数学”和“C++、Java和Haskell开发”。 它们旨在帮助您进入新领域,并为 IT 领域的学习和工作奠定基础。

要注册,您需要沉浸在学习环境中并通过入学考试。 了解有关该计划、考​​试和费用的更多信息,请访问 code.stepik.org.

与此同时,助教和之前发布的项目负责人将告诉您培训是如何组织的、谁来学习、助教在学习期间如何以及为何进行代码审查,以及参与项目教会了他们什么。

CS中心在线课程的组织者和助教

计划是如何组织的

CS中心在Stepik平台上有三个在线项目: 《算法与高效计算》, 《开发者数学》 и “C++、Java 和 Haskell 开发”。 每个程序由两部分组成。 这些课程是由经验丰富的教师和科学家准备的:

  • 算法和理论计算机科学作为算法课程的一部分。
  • 面向开发人员的数学程序中的数学分析、离散数学、线性代数和概率论。
  • 在线编程语言项目中的 C++、Java 和 Haskell 课程。

以及其他活动,例如代码审查、通过证明解决理论问题、向助理和老师咨询。 它们很难扩展,因此培训以小组形式进行。 活动可以帮助您更深入地了解该主题并获得高质量的反馈。

Artemy Pestretsov,助教:“在我看来,代码审查是语言和算法在线程序的主要区别特征。 要找到问题的答案,您只需谷歌即可。 这既艰难又漫长,但却是可能的。 但谷歌不会进行代码审查,所以这非常有价值。”

该计划中的每门课程持续大约两个月。 在期末考试中,学生必须通过考试或获得所有课程的学分。

CS中心在线课程的组织者和助教

谁是我们的学生

在线课程学生:

  • 他们想填补数学或编程方面的空白。 例如,想要提高数学知识的经验丰富的开发人员。
  • 他们开始熟悉编程,并将中心的课程纳入他们的自学计划中。
  • 他们正准备进入硕士课程或计算机科学中心。
  • 接受过不同专业教育的学生决定从根本上改变方向。 例如,化学家或教师。

Artemy Pestretsov:“我们有一个学生,他正值青春年华,在一家石油和天然气公司工作,由于去井里出差,由于截止日期而延期。 具有完全不同背景的人们看到 IT 技术和数学已经获得了发展势头,这真是太酷了。 这些人都是有成就的人,他们已经过上了美好的生活,但正在尝试学习新的东西,并希望在其他领域发展。”

米哈伊尔·维谢洛夫, 虚拟机:“每个人的水平都不一样:有人不完全理解语言的基本东西,而有人是Java或Python程序员,你可以本着“如何做得更好”的精神与他进行对话。 ” 最重要的是不要关注最好的,而是关注平均水平,这样课程对每个人都有用。”

培训是如何组织的?

有多种工具可帮助组织者和教育者构建流程。

通过邮件通信。 用于重要且正式的公告。
与老师和组织者聊天。 人们经常在老师或助理看到问题之前就开始在聊天中互相帮助。
你跟踪。 向教师和助理提出问题和提交任务。 在这里你可以提出私人问题并一对一讨论解决方案:学生当然不能互相分享解决方案。

组织者与学生沟通并试图快速解决问题。 Kristina Smolnikova:“如果有几个学生问同样的问题,这意味着这是一个常见问题,我们需要告诉每个人。”

助理如何提供帮助

代码审查

该项目的学生提交家庭作业,助理检查他们的代码是否干净和优化。 上次大家就是这样组织审核的。

Artemy Pestretsov 试图在 12 小时内回答问题,因为学生提交问题的时间不同。 我阅读代码,从标准、通用编程实践的角度发现问题,深入细节,要求优化,建议哪些变量名需要更正。

“每个人编写代码的方式都不同,人们有不同的经历。 有同学第一次就拿来写了。 我喜欢一切,它工作得很好,测试只需要 25 秒,因为一切都很完美。 碰巧你坐下来花了一个小时试图理解为什么一个人会写这样的代码。 这是一个绝对充分的学习过程。 当你在生活中进行代码审查时,就会发生这种情况。”

米哈伊尔试图为每个学生独立构建流程,这样就不会出现这样的情况:“我已经向某人解释过这一点,你问他吧。” 他首先对问题进行了详细的评论,然后学生提出了澄清问题并更新了解决方案。 经过不断的接触,他们取得了质量上令导师和学生都满意的结果。

“在培训的前一两周,人们编写的代码不是很整洁。 需要仔细提醒他们Python和Java中都存在的标准,告诉他们自动代码分析器是否有明显的错误和缺点,这样以后他们就不会因此而分心,这样就不会为整个事情而烦恼。一个学期的事实是他的转学操作不正确或者逗号放错了地方。”

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

1. 如果学生写了有问题的代码,不需要让他们重做一遍。 重要的是他要了解这段特定代码的问题所在。

2.不要对学生撒谎。 如果无法理解问题,最好诚实地说“我不知道”。 Artemy:“我有一个学生对程序进行了更深入的研究,深入到硬件层面,然后再次上升,他和我不断地乘坐这个抽象的电梯。 我必须记住一些事情,但很难立即表述出来。”

3. 不必关注学生是初学者这一事实:当一个人第一次做某事时,他会更认真地对待批评,根本不知道通常是如何做的,以及他取得了什么成功以及他不做的事情。 最好只仔细讲代码,不要讲学生的缺点。

4. 学习如何以“教育”方式回答问题真是太棒了。 任务不是直接回答,而是确保学生真正理解并自己得出答案。 Artemy:“在 99% 的情况下,我可以立即回答学生的问题,但通常我不能立即写出答案,因为我必须权衡很多。 我写了五十行,擦掉,又写了一遍。 我对课程的声誉和学生的知识负责,这不是一件容易的事。 当学生说:“哦,我顿悟了!”时,一种非常酷的感觉就会出现。 我也想,“他顿悟了!”

5. 一定要细心,不要过多批评。 激励,但不要太多,这样学生就不会认为自己每件事都做得很好。 在这里你必须学会​​有效地管理你的情绪水平。

6. 收集相同类型的一般评论和错误很有用,可以节省时间。 您可以记录第一条此类消息,然后只需复制并添加详细信息以回复其他人对同一问题的回答。

7. 由于知识和经验的差异,有些事情看起来很明显,所以一开始助教不会在给学生的评论中解读它们。 重新阅读你所写的内容并添加一些看似平庸的内容会很有帮助。 米哈伊尔:“在我看来,我帮助检查解决方案的时间越长,新课程的学生从一开始就更容易理解我的意思。 现在,我会阅读代码的第一条注释并说:“我应该更加小心、更加详细。”

教学和协助都很棒

我们请这些人告诉我们他们在进行代码审查和与学生交流时有哪些有用的经验。

Artemy:“我学到的最重要的东西就是作为一名老师的耐心。 这是一项全新的技能,我正在掌握全新的非技术领域。 我认为当我在会议上发言、与同事交谈或在集会上展示项目时,教学会非常有帮助。 我建议大家都去尝试一下!”

Mikhail:“这段经历让我对别人编写代码的方式与我不同这一事实更加宽容。 尤其是当您刚刚开始寻找解决方案时。 我自己学习了 Python 和 Java 课程,并以不同的方式解决了类似的问题。 变量和函数的命名不同。 这些人的解决方案都有点不同,因为在编程中没有标准的解决方案。 在这里你需要一些耐心,以免说:“这是唯一的方法!” 这有助于后来在工作中讨论具体决策的利弊,而不是讨论不是我做出的事实的利弊。”

了解有关在线课程和校友评论的更多信息

来源: habr.com

添加评论