9

经常接触编程的人的课程通常包括一个代码项目,我认为这是一种很好的学习方式。然而,这样的项目常常让人觉得太做作了,因此工作起来并不是很有回报。

你对奖励代码项目有什么想法?(最好容易上手,并且可以随意扩展以供更高级的人使用!)。

编辑:

@Mark:感谢您的链接,尽管我对完全不熟悉编程的人的项目更感兴趣(该链接似乎更多地指的是已经精通至少一种语言并尝试学习新语言的人- 我会说的典型的 SO 观众:) -)。

@Kevin,Vaibhav,gary:我想到的是通过一种语言学习编程的人,所以在课程开始时,有些人对控制结构一无所知(更不用说任何语法)。但是,我正在考虑一个相当大的项目(通常在 1k-10k 行代码范围内,可能是 2 或 3 名学生一组)。这是在我的学校为完整的初学者所做的,它似乎确实对他们有用……除了他们中的大多数人觉得他们的项目工作很无聊!

4

7 回答 7

4

正如多次说过的,您试图教给初学者的内容对项目非常重要。

我对你计划这样的事情的建议:

1)避免制作电脑游戏

计算机游戏虽然构建起来很有趣,但不会在早期以结果奖励程序员(它非常复杂)。您希望专注于小型但有用的应用程序,例如端口扫描器。那里的例子有点复杂,但它是我在网上看到的最好的学习项目之一。

2) 早教图形

尽早看到自己的劳动成果是值得的,它会激励你走得更远。无论您使用的是 WinForms、MFC 还是 Win32 API、OpenGL 或 DirectX,都应尽早教授。

3) 许多小课程,有深入的信息

上面链接的Port Scanner项目就是遵循这个原则的,效果很好。彻底教授每个部分,并给初学者时间来吸收课程。我认为ZophusX有一个很好的格式来提供信息。太糟糕了,他大部分时间都放弃了他的网站。

4)需要时间

不要急于求成。没有人会在几周内成为出色的程序员。尝试使课程变得简单,但引人入胜,并从以前的课程中继续学习。

5) 尽早并经常获得反馈

你可能认为一个项目非常有趣,或者一个特定的课程等等,但你不是学习的人。当您及早询问他们事情的进展情况以及他们想了解的更多信息时,您的学生会非常感激。要足够灵活,以便您可以满足其中一些请求。

6) 愉快的教学

玩得开心。激情是会传染的,如果你的学生看到你对这门学科有多么喜欢,那其中的一些热情也会感染他们。

我希望这会有所帮助!

于 2008-08-25T20:47:34.450 回答
2

一些回报丰厚的项目,就您可以学习的内容而言,并且在复杂性方面具有相当大的可扩展性,其特点是:

  • 游戏
  • 旅行和交​​通预订/预订系统
  • 百科全书或术语、文章词典
  • 换算计算器(货币、单位等)

关键是要选择一个足够简单的项目,这样当您查看项目名称时,它的一些功能就会立即显现出来。并且当真正考虑时,将揭示您可以添加的更多功能。

该项目应该有足够的难度,以使其功能似乎超出初学者的能力范围,从而激励他一直学习新事物。

于 2008-08-25T20:42:56.677 回答
1

如果您正在公司中培训新人,那么将他们作为实习生资源附加到实时项目中是非常有益的。

这稍微增加了主要开发人员的工作量(因为他们必须审查实习生所做的所有工作),但在人员的培训和发展方面还有很长的路要走。

于 2008-08-25T20:32:53.767 回答
1

我确实认为游戏和谜题是一个很好的起点,因为它们可以为开发更复杂的版本提供很大的空间。例如,tic-tac-toe程序最初可以构建为一个简单的命令行程序,让两个玩家玩游戏。

这一步可以用来展示一个简单的数据结构或数组如何代表游戏板,简单的输入来获取用户命令/移动,简单的输出来显示游戏板和提示等。然后你可以开始展示一个算法是如何实现的用于允许玩家与电脑模式。我喜欢井字游戏的简单幻方数学算法,因为它基于非常简单的数学。在此之后,天空是极限,UI 改进,使用文件 I/O 加载和保存游戏,更高级的算法让计算机玩得更好等等。仍然可以使用文本模式或简单的图形制作更复杂和令人满意的游戏。

多年来,我一直使用推箱子游戏来展示许多技巧。

我用过的最简单的游戏是数字列表反转游戏。这涉及从 1 到 9 的数字列表。播放器可以在列表左侧指定要反转的数字数。目的是使列表排序。这对于绝对初学者来说非常棒。游戏的每个小部分都可以单独编写和测试。

于 2008-08-29T23:01:53.347 回答
0

这真的取决于你想教初学者什么。如果您正在尝试教授语法,那么简单的“Hello World”程序和吐出 1 到 100 之间的每个奇数的程序都可以让它们入门。如果您正在尝试教授数据结构,那么可能是 20 题游戏或一些简单的排序程序。如果您正在尝试教授递归,那么可能是广度优先搜索程序。如果您正在尝试教授数据库操作,那么像订单跟踪系统之类的东西将是合适的。

于 2008-08-25T20:26:44.500 回答
0

查看Python Programming for the Absolute Beginner一书中的代码示例

于 2009-01-07T13:08:08.103 回答
0

文字冒险。

  • 这是一个控制台应用程序
  • 你需要做一些有用的事情,持有库存、地图和房间状态并解析输入
  • 这很有趣,你可以把它给别人玩!:D
于 2009-01-07T13:27:30.590 回答