最初的问题

我目前正在教我弟弟编程。他完全是个初学者,但很聪明。(他真的很想学)。我注意到我们的一些会议陷入了一些小细节,我觉得我不是很有条理。(但这篇文章的答案有很大帮助。)

我怎样才能更好地有效地教他?是否有一个逻辑顺序,我可以用一个概念一个概念地运行?是否有什么复杂的问题我应该在以后再讨论?

我们正在使用的语言是Python,但任何语言的建议都是受欢迎的。


如何提供帮助

如果你有好的答案,请在你的答案中添加以下内容:

初级练习和项目想法 初学者教学资源 屏幕视频/博客文章/免费电子书 印刷适合初学者的书籍

请用链接描述资源,以便我可以看一看。我想让每个人都知道,我确实在使用其中的一些想法。你提交的内容将在这篇文章中汇总。


初学者在线教学资源:

A Gentle Introduction to Programming Using Python How to Think Like a Computer Scientist Alice: a 3d program for beginners Scratch (A system to develop programming skills) How To Design Programs Structure and Interpretation of Computer Programs Learn To Program Robert Read's How To Be a Programmer Microsoft XNA Spawning the Next Generation of Hackers COMP1917 Higher Computing lectures by Richard Buckland (requires iTunes) Dive into Python Python Wikibook Project Euler - sample problems (mostly mathematical) pygame - an easy python library for creating games Invent Your Own Computer Games With Python Foundations of Programming for a next step beyond basics. Squeak by Example Snake Wrangling For Kids (It's not just for kids!)


推荐印刷书籍的教学初学者

加速c++ Python编程绝对初学者 Charles Petzold编写的代码 Python编程:计算机科学介绍第二版


当前回答

我同意上面的superjoe30,但我还没有足够的声誉来留下评论。

我做了四年的计算机科学教授。语言是Basic,然后是Pascal,但语言是什么并不重要。

作为一名新教授,我学到的最大的一课是,无论我认为一个概念有多简单,它对新手来说都不简单。不要比你的学生快。我怎么强调都不为过。非常非常慢。

我会从非常简单的东西开始,阅读和打印,也许是一个简单的计算,只是为了让学生习惯输入和输出一些东西。然后是IF语句。然后是非常简单的FOR循环,总是根据学生可以编写的内容,并从中获得乐趣。

然后我会花3个星期的时间教授一种非常简单的机器语言,用于一台叫做SIMPL的伪十进制机器,你可以一步完成。这样做的原因是为了让学生看到“橡胶遇见道路”的地方,计算机一步一步地做事情,事情发生的顺序是不同的。如果没有这一点,学生们倾向于认为计算机可以读懂他们的思想,并一次性完成所有事情。

然后回到基本。几周的阵列,因为那是一个很大的减速带。然后是顺序文件,这是另一个减速带。我所说的“减速带”是指学生可以很自信地前进,然后你给他们一个像数组这样的概念,他们又完全迷失了,直到你让他们放松下来。

然后,有了这些技能,我会让他们选择一个学期项目,因为这让编程变得有趣。没有用处,真的很无聊。我会建议各种各样的项目,比如游戏、会计课程、科学课程等等。看到它们被打开真是太好了。他们经常会向我寻求帮助,这很好,因为你知道他们在学习。

当他们在做他们的项目时,我们将继续介绍更高级的编程技术——搜索、排序、合并,以及如何创建一个简单的数据库等等。

祝你好运。教书是一项艰苦的工作,但当你看到学生的成长时,你会感到满足。

其他回答

Microsoft Small Basic是一个免费的基于。net的编程环境,旨在为初学者提供一个“有趣”的学习环境。该语言是VB的一个子集。NET,甚至包含一个Logo语言中熟悉的“Turtle”对象。该网站包含一个循序渐进的教程。

我推荐Think Python。

首先问他这个问题:“你想用你的电脑做什么事情?”

然后选择一组符合他的答案的活动,并选择一种允许这些事情完成的语言。如果它是一个简单的(或可简化的)脚本环境(例如Applescript, Ruby,任何shell (Ksh, Bash,甚至.bat文件),那就更好了。

原因如下:

如果他对结果感兴趣,他可能会比你让他数斐波那契兔子更有动力。 如果他得到了他喜欢的结果,他可能会想出你创造的活动的变化。 如果你在教他,他(目前)还没有追求一份正经的职业;以后总是有时间切换到“行业实力”语言的。

如果他感兴趣,那些小细节不就是好地方吗?使用python时,您已经切断了GUI,这样就不会有困惑了。为什么不选择一个项目,一款游戏或其他东西,然后执行它呢?经典的高低数字猜谜游戏可以简单地从命令行中用20-30行代码(当然取决于语言)实现,并为您提供变量、条件、循环和用户输入。

在浏览了几本免费电子书之后,我发现最适合学习编程的书是O'Reily出版社出版的《Head First Programming》。它使用Python作为语言,并从一开始就为您提供程序。它们都比“Hello World”更有趣。 我花在这本书上的钱是非常值得的,因为它已经发布了一段时间,你可能会在Ebay或亚马逊上找到更便宜的二手书。