这真的取决于他们知道多少编程,但是我已经看到R成功地介绍给那些完全不了解编程的人。我想他们对编程没有太多的了解。
这听起来可能很明显,但只教他们解决问题所需的语言,不要太深入地使用“合适的”和高效的编码风格,一旦你的学生有了一些理解,例如对风格的评论,但不要太严格,你就可以慢慢地开始这项工作。
要解决一个问题,你必须至少理解语言的一些基本部分。我假设您所做的一切都可能包含在一行中,而名称间距、模块、性能等并不是首要任务。
首先让他们在开发环境中进行设置,然后创建一个简单的程序让他们运行。确保他们有一个拥有他们所需要的一切的环境(如果他们需要numpy,引导他们完成安装),引导他们从命令行启动程序,当然还有一个易于使用的编辑器(例如eclipse+pydev,可能太复杂)。最让人沮丧的是当你找不到工作环境的时候。祈祷你不需要支持Windows或者没有很多库来应对。
一旦你掌握了这些,就把他们介绍给通用语言。封面类型和可能遇到的微妙问题,例如:
>>> 1/2
0
>>> 1./2
0.5
我甚至会养成让一切漂浮的习惯。引入输出字符串,以及如果希望输出在同一行上,如何转换该输出。包括运算和逻辑,然后介绍“函数”,确保在数学等价物之间建立区别。我认为命令流结构应该相当简单,包括简单的结构(if,else,elif,可能while)。
此时,他们应该能够创建一个简单的程序来解决一个简单的问题。在此基础上开始构建,引入更复杂的命令流、更复杂的数据类型(列表、集合、dict)、可能的迭代器和生成器(注意这些,它们可能很麻烦,您可能不需要它们)。
编辑:
我忘了触摸输入和输出。我将提供一个简单的框架,如果你愿意的话,你的学生可以使用它。命令行应该足够了,除非您想跟踪正在发生的事情,在这种情况下,文件输出更加合理。或者,管道输出到文件也可以。
我认为集合在数学上更相关(也更有用!)然后是听写,并将首先介绍它们。