我定期教授使用Java编程课程的简介。我想给我的学生一些激动人心的作业,他们可以与之联系或找寻有趣的事物。至少,我希望分配的指令有意义并具有内部凝聚力(例如,某些非常糟糕的编程练习似乎是人为设计的,因此您必须使用所介绍的最新编程构造)。
为了让您对范围有所了解,这里介绍了以下内容:
- 分配必须使用Java,可以使用一些外部库来完成,但是它必须是简单的API而不是完整的框架
- 变量,基元和字符串
- 控制台输入和输出
if
,for
,while
- 算术和逻辑运算符
- 带有线条和形状图的简单图形
- 静态方法
- 一维数组
学生不会进入高级主题(例如,不递归,不强调继承)。因此,我不是在寻找复杂的项目:“让他们编写C编译器。我5岁时就做了,这是我学习的唯一方法!”
如果您有比范围更高级的想法,请将其发布在下面链接的“具有挑战性”的问题上,而不是此问题上。
相反,我正在寻找的有趣的想法可以在一个简短的程序中完成。例如:
学生可以编写控制台版本的“星球大战名称”生成器。这实际上是读取Strings并使用
substring
,但我认为这很有趣。类似的变化是“ Mad Libs ”程序。我在五年前使用了此功能,也许它已经“过时”了。使用提供给他们的一些三角架,学生可以绘制规则的多边形,并创建有趣的螺旋形状。
使用一些简单的动画类以及提供给他们的大多数代码也不是没有问题。而且,如果您知道可以通过简单的API访问的Twitter或Facebook服务,我将非常感兴趣。
请注意,该问题不同于“ 向初学者挑战Java问题 ”的问题。我并不是要挑战本身,只是很有趣。我认为,如果学生从事的工作很容易回答“为什么有人要编程呢?” 他们就会学得更好。
甚至计算每加仑英里数之类的简单问题也可能很好。虽然,如果有一种方法可以使其更相关,那就更好了。如果您从其他地方(书籍或网站)进行练习,请引用资料来源。
为了帮助您思考当今典型的新生,请查看Beloit Mindset列表,其中有许多示例肯定会让您感到老去。