SA: Solving problems Artistically

less than 1 minute read

Published:

下学期就大四了,留在SUSTech的时间不算太多了,最后还有两个学期可以担任计算机系学生助理。有感而发,写一篇这个文章,权当是我对计算机系SA工作的一份理解与总结。

要写的有点多,因此就采用自问自答的方式来写这篇感想。在此抛砖引玉,希望这篇文章能够给予后续做学生助理的同学以参考,也欢迎其他同学与我交流。

Q1: 当时你为什么想要申请SA工作?

A1: 我是大一下学期六月份就与Mrs.Yao Zhao和Prof.James Yu申请了SA工作。我申请这个主要是有好几方面的原因:

一是我对教师工作有非常高的敬意。从小到大,我遇到了很多对我很好的老师,让我深刻感受到了教书育人的责任感和使命感。我想,如果我也有机会做一名SA,去帮助其他学这门课的同学,那应该是一个让我完成这个使命非常好的机会。

二是我也想锻炼一下自己的能力,为同学们的学习保驾护航。大一下学期有幸被致新书院的王院长他们录进大学长团。但是当时只有我一个CS专业的学生,因此我就申请了SA岗位,希望能够为20级同学们的学习保驾护航。

三是我不想让同学们重蹈我当时的覆辙。我当时零基础学习Java1的时候非常困难,非常痛苦,很多题目不会写,花了很多时间。而当时给我做SA的学长答疑不是很用心,使得我经常要自己去学,收集资料。但我觉得编程学习不应该如此,因此我就希望能够给同学们提供我的微薄之力,让他们学习轻松些,并且感受到编程学习的优雅魅力。

四是希望自己能够认识更多优秀的同学。能够录入SA团队的同学,一定是先前在这门课有取得好成绩,或者是对这门课具有一定理解的。我通过SA工作,认识到了许多大佬,如维护OJ的坤哥和淞哥、可爱的女装大佬Gogo等等。他们很多实力都远在我之上,我还具有很多学习上升的空间。

Q2: 做SA期间,有没有遇到什么困难?

A2: 我觉得比较有挑战性的地方主要有两点。

一是对于作业的答疑。Java1有4-6次作业,会分布到不同的教学团队去完成出题工作。而有一些SA同学对于题目质量的把控不是那么到位,题目的质量和风格参差不齐,有可能有一些作业过于晦涩难懂或者难度过大。这不仅对于同学们是一种挑战,更对于SA是一种挑战。SA除了要了解作业题目意思以外,还要对每一次作业同学们可能存在的问题了如指掌,这样才能面对同学们的提问无懈可击。

在此,我建议SA都下手完成每一次作业,自己体会一下作业的难度,这会对答疑大有裨益。不仅如此,有一些同学对于难度过大或者体面不合理的作业会爆发负面情绪,这时候也很需要考验SA的语言艺术和解决问题的能力

现在写到这里,我想起了22春季学期和41同学一起做sa的时候,她说我有时候语言就过于强硬效果不好,现在想想确实存在这个问题,以后我也会积极改进。

二是对于作业的设计。刚才提到作业难度设计不合理会引发同学们的不满,以及会引起SA答疑工作量暴增。我个人认为,作业设计必须要符合以下原则:

  1. 题面简洁明了,不能有读题障碍;

  2. 题目要对知识点的考察要兼具深度和广度

我个人认为,我们作业是编程练习,而不是阅读理解练习。因此作业应该要练习课堂上讲过的那些知识点,而不是搞一些偏题怪题难题,或者在题面上搞山路十八弯来故意恶心同学们。我个人的出题风格是严格围绕课堂知识点练习,同时也要考验同学们的题面信息搜索能力(我个人认为不应该给那些不好好读题,遗漏关键信息的同学任何一分,一分都不应该有!),还要增加测试数据的强度,避免有人混水摸鱼。

我个人认为,我在22春季学期协助出的第四次作业就很好地符合了这一特征:YeeTone/A4-CS102A-2022Spring: CS102A-22Spring Assignment 4

Q3: 答疑应当有什么原则?

A3: 我个人认为,答疑的原则应该是“授人以渔”,要让同学们尝试自己解决问题,学会解决问题的方法。

同学们的问题由浅到深大概分为以下三类:

一是不好好读题就问题面意思的。这种处理方法最简单,直接让他/她重新回去读题。这个应该没有什么好说的,因为SA不应该做题面翻译的工作,让同学们自己学会读题是很重要的。

二是读懂了题目但是不会写的。这种就是属于可能对于基础的语法,或者题目的思路不太清楚。这种就需要SA来耐心点拨一下,告诉他们做题的思路,让他们有一个努力学习的方向。

三是自己写了很多代码但是就是过不去OJ,让SA帮忙debug的。有些SA可能人比较好,直接就帮他们指出哪一行代码出错了,然后让他们通过。我之前也是这样,但是后来发现效果不是很好,会导致朱老师说的一种现象:同学们就依赖SA写作业了,如果SA不帮就写不了。这其实就是“授人以鱼”和“授人以渔”哪个更好的辩证问题。帮助他们debug一次,他们学不会解决问题的方式方法,下一次还会找SA来debug;一次性直接拒绝,他们会迫于分数的压力激发自己解决问题的潜力,以后他们的能力会有长足的进步,SA答疑的工作量也大大减少。因此哪一个更好,能实现双赢,我想大家心里都有数。

Q4: 你做SA期间,有没有遇到什么比较难忘的回忆?

A4: 要说最难忘的回忆,那还是第一次做SA的时候。第一次上手SA工作的时候,赵老师就把我安排去了OJ维护团队。但是当时自己的专业技能都不会,很多专业课没有学过(如数据库原理,计算机网络,分布式系统等等),使得我在OJ维护团队里帮不上什么忙,仅仅帮忙编写了一个使用说明(还被打回来了好几版,捂脸)。这里我很感谢三位17级的学长当时对我的照顾与包容。OJ维护工作是很不容易的,强度远大于普通的随堂SA。我在凌晨两点钟的时候,经常看到三位学长还在集中讨论问题。不仅如此,当时学长们评价这个OJ是*山(没有否定学长们工作的意思)。众所周知,在*山中维护还不让*山倒塌把自己淹死,是一个非常困难的事情。 通过这一段经历,我才知道OJ维护有多么困难,以及自己的专业技能有多么欠缺,实在是“人外有人,天外有天”。

Q5: 你为什么要推荐其他同学来做学助?

A5: 这个原因其实很简单,分为两个维度。

第一个就是说先前咱说过学生助理工作可以有效锻炼一个人的能力,而学生助理工作又要发挥“传帮带”的功能。我本身特别重视大学期间的朋辈教育工作,因此我自21春季学期以来前前后后推荐了8名同学来参与我们计算机系的SA工作,助力计系优质教学。当然,我推荐人肯定不是随便的,一定是基于我对他/她有一定的理解,对他/她担任SA工作比较放心,才会帮忙改简历和推荐。

第二个是因为SA工作可以加深对推荐人的了解。22春季学期我推荐了3名同学来Yida老师(我师母,人真的超级nice!)团队,和我一起完成题面部署和测试的工作。在这个工作中,我一开始还担心有可能他们没有经验,不太熟悉出题的流程。但后来我发现这个担心实属多余,他们将出题的工作完成得很好!我对3名同学有了更新的认识,对他们实属刮目相看,原来他们身上还有如此的闪光点!因此推荐SA工作对发掘其他人的另一面也是很有好处!

Q6: 请你对以后的学生助理同学说一句建议的话吧。

A6: 希望SA同学有三“心”:耐心、仁心、同理心

另外此处打一个小广告。22秋季学期,我将会担任两门课程的SA:

CS205: C/C++程序设计,实验课周四56,地点三教509,实验课老师于仕琪老师

CS309: OOAD(面向对象分析与设计),实验课周五56,地点三教511,实验课老师朱悦铭老师

欢迎同学们选课!