Prolog的永恒九月(2017)
Prolog's Eternal September (2017)

原始链接: https://storytotell.org/prologs-eternal-september

作者对Stack Overflow上不断涌现的、来自那些似乎准备不足且对学习Prolog(除了作业之外)不感兴趣的学生提出的基础Prolog问题感到沮丧。他们认为问题的核心在于教授们在不真正理解Prolog的情况下就进行教学,导致学生对Prolog的最初印象很糟糕。 为了解决这个问题,作者提出了一个双管齐下的方法: 1. **一个精心策划的、带注释的解决方案数据库:** 这将为常见问题提供全面的解释,以满足所有水平的理解需求,并鼓励自学。 2. **供教授们直接使用的幻灯片:** 这些幻灯片将使Prolog知识有限的教师也能有效地教授这门语言。 作者建议暂停在Stack Overflow上提供解决方案,而是将用户引导到解决方案数据库。他们正在寻求更多想法和合作,以改进Prolog的教育和认知。

这篇Hacker News的讨论主题是高校教授Prolog(一种逻辑编程语言)的挑战。原文指出许多学生只想及格然后迅速忘记它。 评论者们提出了几种可能的解决方案,例如让学生调试有bug的Prolog程序,强调基础知识,以及在现代类型系统的背景下教授Prolog。一些人指出Prolog的术语和利基地位阻碍了它的普及。有人建议探索Prolog模块系统的现代化,类似于Clojure对Lisp所做的改进,使其更容易上手。一些用户强调了将Prolog与大型语言模型结合以构建更好的推理代理的潜力。 讨论还提到了教授C语言的难度,并以此类比:教授如果对语言本身理解不透彻,就像不懂汇编语言就难以真正理解C语言一样。最后,一位用户认为好的实践练习比教师讲解语言的能力更重要。

原文

I realized recently that the way I have been handling answers to Prolog questions on Stack Overflow contravenes the rules. I don’t mind ignoring rules if it serves a higher purpose, but I have also come to realize that it actually is counterproductive.

There is a constant flow of pre-beginner questions about Prolog on Stack Overflow. The questions I’m referring to typically sound like this: my professor said a few incoherent things about Prolog and here’s my assignment and I don’t know where to start.” The pre-beginners are not at Stack Overflow to look at existing solutions (which is what Stack Overflow wants you to do). They just want someone to do their homework for them.. They don’t come back later or develop a deeper appreciation for Prolog. Some of this is unavoidable, but the flow is very high.

As much as I would like to (and have tried to) take the opportunity to foster an interest in Prolog, their questions are actually a symptom of a totally different problem that simply cannot be addressed within SO. I think the underlying problem is that Prolog is part of a mandatory curriculum, but the professor doesn’t understand it. How do you teach something you don’t understand?

I would like to live in a world where professors consider Prolog worth knowing and put in the effort. That probably isn’t realistic. If I can’t have that, I would at least like to live in a world where students’ first or only exposure to Prolog is something more constructive than Look how weird and confusing this thing is!”

I’m not in higher education, so I don’t know how to approach these problems. I would love to hear some ideas. But my first thought is a two-pronged approach:

  • A smallish (less than 10) solution database, where each solution is somehow annotated so that you can figure out both really low-level things (variables are uppercase) and really high-level things (why an accumulator is used). The idea is that it should be possible to answer any question, no matter how obvious, by mousing over things in the solution database.

  • A set of slides for use by professors to teach Prolog without really knowing it. There would be a few different versions (one class session, three class sessions) and a moratorium on providing solutions on Stack Overflow, instead pointing people who ask to the solution database.

Have other ideas? Please send me an email, let’s talk.


Date
November 21, 2017


联系我们 contact @ memedata.com