Programming is about automation in a wide variety of domains. Developing itself is one of those. As a side-effect, progress in automated coding may make people less willing to learn computer programming. This could become an issue, if the skill of computational problem solving is not only for the immediate economic benefit, but an important part of our knowledge about the world. We suggest that weakened incentives can be countered by lowering the entry barrier. We plan to shorten learning time by reducing the accidental complexity of the programming language and its runtime system. We describe a session plan that introduces programming and computing fundamentals for novices, assuming only basic mathematical background. This requires a non-mainstream, functional and concatenative language. This language, CON-CAT, is a by-product of research in category theory. It provides direct access to fundamental ideas like recursion and advanced ones like Gödel-encoding in an entertaining puzzle-like manner.
翻译:编程本质上是跨领域的自动化过程,而编程本身的发展也是自动化进程的一部分。其副作用在于,自动编码技术的进步可能降低人们学习计算机编程的意愿。当计算问题解决能力不仅关乎直接经济收益,更是人类认知世界的重要构成时,这种趋势可能引发问题。我们提出,降低准入门槛可有效抵消激励弱化的影响。计划通过减少编程语言及其运行时系统的偶然复杂度来缩短学习时间。本文描述了一套面向零基础学习者的课程方案,仅需基本数学背景便能引导入门编程与计算基础。该方案采用非主流的函数式串联语言CON-CAT(此语言是范畴论研究的副产品),以寓教于乐的谜题形式,直观呈现递归等基础概念乃至哥德尔编码等高级思想。