面向完整初学者的奖励代码项目

时间:2020-03-05 18:42:59  来源:igfitidea点击:

为编程入门人员准备的课程通常包括一个代码项目,我认为这是一种很好的学习方法。但是,这样的项目通常感觉太虚构,因此进行工作并不十分有意义。

我们奖励代码项目的想法是什么? (最好容易上手,并且对于更高级的用户可以随意扩展!)。

编辑:

@Mark:感谢我们提供的链接,尽管我对面向编程新手的项目更感兴趣(该链接似乎更多地是指已经精通至少一种语言并试图学习一种新语言的人。 -我会说的典型的SO听众:)-)。

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

解决方案

回答

这实际上取决于我们要教给初学者的内容。如果我们想教语法,那么简单的" Hello World"程序和吐出介于1到100之间的每个奇数的程序就可以开始使用。如果我们正在尝试讲授数据结构,那么可能会遇到类似20个问题的游戏或者一些简单的排序程序。如果我们想教递归,那么也许是广度优先的搜索程序。如果我们想教数据库操作,那么像订单跟踪系统之类的东西将是合适的。

回答

如果我们要在公司中培训新员工,那么将他们作为实习资源添加到实际项目中会非常有益。

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

回答

就我们可以学到的东西以及就复杂性而言可扩展性而言,一些有益的奖励项目包括:

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

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

该项目应该具有足够的难度,以便其功能似乎超出了初学者的能力范围,从而激发了他不断学习新知识的能力。

回答

如前所述,我们想教给初学者的东西对该项目非常重要。

对于规划这样的事情,我的建议是:

1)避免制作电脑游戏

电脑游戏虽然很有趣,但并不能在早期就给程序员带来回报(这很复杂)。我们想专注于小型但有用的应用程序,例如Port Scanner。这个例子有点复杂,但这是我在网上看到的最好的学习项目之一。

2)尽早教图形

尽早看到劳动成果很有意义,而且它激励我们走得更远。无论我们使用的是WinForms,MFC还是Win32 API,OpenGL或者DirectX,请尽早教它。

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

上面链接的Port Scanner项目遵循此原理,并且效果很好。彻底地讲授每个部分,并给初学者留出时间来吸取教训。我认为ZophusX具有提供信息的良好格式。太可惜他几乎放弃了自己的网站。

4)需要时间

不要着急。几周内没有人成为杰出的程序员。尝试使课程简单但又引人入胜,并继续从以前的课程中学习。

5)尽早获得反馈

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

6)有趣的教学

玩得开心。热情具有感染力,如果学生看到我们对主题有多喜欢,这种热情也会在他们身上消失。

希望对我们有所帮助!

回答

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

此步骤可用于显示简单的数据结构或者数组如何表示游戏板,用于获取用户命令/动作的简单输入,用于显示游戏板和提示的简单输出。然后,我们可以开始显示算法如何用于允许播放器与计算机模式。我喜欢用于井字游戏的简单魔方数学算法,因为它基于非常简单的数学。在此之后,UI得以改进,使用文件I / O加载和保存游戏,使用更高级的算法使计算机发挥更好的性能,等等。仍然可以使用文本模式或者简单的图形来制作更复杂,更令人满意的游戏。

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

我使用过的最简单的游戏是数字列表反向游戏。这涉及1-9之间的数字混合列表。玩家可以在列表左侧指定要反转的数字。目的是对列表进行排序。这对于绝对的初学者来说很棒。游戏的每个小部分都可以单独编写和测试。

回答

看看《 Python绝对入门》一书中的代码示例。

回答

文字冒险。

  • 这是一个控制台应用程序
  • 我们需要做一些有用的事情,保存库存,地图和房间状态并解析输入
  • 这很有趣,我们可以将它赠送给其他人玩! :D