2008-08-25 26 views
8

针对编程人员的课程经常包含一个代码项目,我认为这是一个很好的学习方式。然而,这样的项目往往会让人觉得太过虚假,因此不值得进行研究。为*完整*初学者提供的奖励代码项目

您对奖励代码项目有什么想法? (最好容易开始,并且可以随意扩展到更高级的!)。

编辑:

@马克:感谢您的链接,虽然我的人谁是完全新的节目更感兴趣的项目(该链接似乎是指更多的人谁已经精通至少一种语言,并试图学习一种新的 - 我会说的典型SO观众:) - )。我在想通过一种语言学习编程的人,所以在课程开始时,有些人对控制结构一无所知(甚至对任何一种语法都不了解) 。但是,我在考虑一个相当大的项目(通常在1k-10k代码范围内,可能是2到3名学生)。这就是我的学校为完全初学者所做的事情,而且它确实对他们有效......除了他们中的大多数人发现他们的项目非常无聊的工作!

回答

4

正如已经说过几次,你试图教给初学者的东西对于这个项目来说非常重要。

我给你的建议的规划是这样的:

1)避免对电脑游戏

电脑游戏,而有趣的建立,不奖励与结果早在程序员(这是非常复杂)。你想专注于小而有用的应用程序,如Port Scanner。这个例子有点复杂,但它是我在网上看到的最好的学习项目之一。

2)教显卡早

这是有益的,看看早在你的劳动成果,它促使你更进一步。无论您是使用WinForms,MFC还是Win32 API,OpenGL或DirectX,都可以尽早教授它。

3)有许多小教训,深入的信息

这一原则随后上面链接端口扫描器的项目,它工作得很好。彻底教授每个部分,给初学者吸取教训的时间。我认为ZophusX提供了一个很好的信息格式。这太糟糕了,他大部分都放弃了他的网站。

4),这需要时间

不要操之过急。没有人会在几周内成为一名优秀的程序员。试着让课程变得简单,但要吸引你,并且继续从之前的课程中学习。

5)早期得到反馈,并经常

你可能会认为一个项目是非常有趣的,或特殊课程或如此,但你不是一个学习。当你问他们事情进展如何,以及他们想知道更多关于什么时,你的学生会非常感激。要有足够的灵活性,以适应这些要求。

6)玩得开心教学

玩得开心。激情是具有感染力的,如果你的学生看到你喜欢这个主题,那么他们中的一些热情也会消失。

我希望有帮助!

+0

端口扫描程序代码的链接似乎在该网站上被打破。你有什么机会还有副本?我联系了该网站,但他们没有回复。 – Steve 2009-08-16 18:22:46

0

这真的取决于你想教的初学者。如果你正在教语法,那么简单的“Hello World”程序和每个奇数在1到100之间吐出的程序都可以让他们开始。如果你想教数据结构,那么可能就像20个问题游戏或一些简单的排序程序。如果你想教授递归,那么也许是一个广度上的第一个搜索程序。如果你想教数据库操作,那么像订单跟踪系统就是合适的。

1

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

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

2

一些好的回报的项目,在你可以学习,这是非常可扩展的复杂性方面,特点是:

  • 游戏
  • 一个旅行和运输预约/预订系统
  • 百科全书或术语的词典,文章
  • 转换计算器(货币,单位等)

关键是要选择一个足够简单的项目,以便在查看项目标题时可以立即看到其中的一些功能。当真正给出一个想法时,会揭示更多可以添加到其中的功能。

该项目应该有足够的难度,以便其功能看起来刚刚超出初学者的范围,从而激励他始终学习新东西。

1

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

这一步可以用来显示一个简单的数据结构或数组如何表示游戏板,简单输入以获取用户命令/动作,简单输出以显示游戏板和提示等。然后,您可以开始显示如何可以使用算法来允许玩家对计算机模式。我喜欢简单的魔术方格数学算法井字棋,因为它基于简单的数学。在这之后,天空的限制,用户界面的改进,使用文件I/O来加载和保存游戏,更先进的算法让计算机玩得更好等。更复杂和满意的游戏仍然可以使用文本模式或简单的图形来制作。

我用推箱子游戏作为显示多年来许多技术手段。

我用过的最简单的游戏是一个数字列表倒车游戏。这涉及1-9的数字混合列表。玩家可以指定一些数字在列表左侧反转。目的是让列表排序。对绝对初学者来说这非常棒。游戏的每个小部分都可以单独编写和测试。

0

文字冒险看看代码示例。

  • 这是一个控制台应用程序
  • 你需要做一些有益的事情,持有库存,地图和房态和分析输入
  • 很有趣,你可以给别人打! :D