一个好的最终高中AP计算机科学编程项目?

时间:2010-05-13 20:29:47

标签: computer-science

嘿伙计们这个问题可能看起来非常具体,但我需要在我的AP计算机科学课上为我上个月左右的项目做一些想法。我一直在寻找一些大学最终的想法,其中很多看起来很无聊。起初我想过在JAVA写一个IRC客户端,但我真的不会学到任何可以帮助我的“新”。然后我考虑做iPhone /触摸应用程序(我没有adroid手机,我可以很容易地把手放在itouch上),但我需要创意来制作应用程序。

我想做的事情会让人觉得不平凡,需要一些解释,但从长远来看,我也会帮助我学习计算机科学的新概念。如果你们能帮忙,我会非常感激。我真的只有一个月的时间来完成这个项目,所以尽量让项目保持在该范围内。另外,我不介意学习新语言。

谢谢:)

编辑:我的主要编程语言是JAVA,因为我在过去的一年半里一直在使用它。我也知道C ++(很少)和PHP(相当不错)。

10 个答案:

答案 0 :(得分:3)

一个IRC应用程序实际上可能会教你几个新的东西,其中大部分会在以后有用,比如标准,规格,网络,线程等,但这需要花费一个多月的时间。

您现在知道哪种语言?如果您了解Java,并且知道如何进行GUI,那么您可以尝试编写游戏。 Tic-tac-toe会相当简单,你可以在一个月内完成它,而且,为了加强它,对你进行AI游戏,或者有人与人之间的选择,两者之间的选择。

这样,你就可以了解不同的数据结构,强制执行游戏规则,至少进行一些优化,如果做得好,还可以创建自己的API,允许人类通过一组输入(GUI)控制AI通过另一个(决策,没有GUI)

答案 1 :(得分:3)

我认为你可以制作并学到很多东西的最“完整”的软件就是游戏。游戏使用了很多计算机科学领域,如网络,存储,数据库,图形,线程,数学,物理,AI等。即使是一个简单的网络游戏也需要你覆盖很多区域,所以我认为值得尝试。

答案 2 :(得分:3)

这是一个滑稽的,但谁知道:去功能!也许拿Haskell之类的东西来做一个快速的项目,也许是一个简单语言的翻译。

网上有很多教程和书籍。 Write Yourself a Scheme in 48 Hours效率很高。将其与Real World Haskell的一些教训结合起来,我不认为学习一种全新的编程范式,并且在一个月内从中获取有用的程序是不可能的。

这里有什么优势?一,你将学习一种全新的编程方式,即功能风格。许多支持者表示,它会真正打开你对新编程思想的想法,我认为Haskell肯定让我看到了一些新的概念。第二,你会学到很多关于lexing和解析的知识,以及计算机语言如何工作的一般步骤。三,来吧,项目有多酷!你为它编写自己的语言和翻译!

答案 3 :(得分:0)

我们必须做一个允许用户查看短片的应用程序。一旦播放了剪辑,应用程序就会显示一个剪辑列表,观众可以从中选择(通过短信投票)下一个要查看的剪辑。我们用Java完成了整个交易。您可能还希望包含一个存储剪辑甚至用户的数据库,并通过Hibernate管理数据库。我们使用SMS Lib来允许应用程序的SMS功能。

答案 4 :(得分:0)

我们为新生大学编程班做了战斗战。这些好处与Slokun提到的相似,但你可以在战舰中疯狂地使用AI。或者如果你想要去UI路线,你也可以花很多时间在这里。而在核心问题上,跟踪游戏细节并不是一件难事。

答案 5 :(得分:0)

您可以考虑为某个开源项目提供有用的功能,而不是从头开始做一个小项目。这样你就不会花太多时间在建立基础设施上。

答案 6 :(得分:0)

跳棋可能很有趣,你可以添加一个AI元素,因为它足够简单,可以制作一个完整的决策树。

答案 7 :(得分:0)

将类引入有趣的公共API(比如让他们创建一个Twitter客户端或天气应用程序)会在现实世界中为他们提供极大的帮助。

答案 8 :(得分:0)

也许是迷你数据库服务器。键/值存储,带有线程和网络套接字。你可以在这里做很多有趣的转折(缓存,并发,如何在磁盘上存储,如何在崩溃中幸存)。通过保持密钥/值,您可以保持复杂性相对较低。

答案 9 :(得分:0)

虽然没有像一些游戏创意那样兴奋,但是你可以构建一些在当今IT世界中高度相关的东西,会引导你学习有价值的东西,并且可以在不同程度上完成-frame /您建议的语言。

  • 简单邮件代理(例如Xml / B2B采购订单交换
  • 简单消息总线( Ex。发布/订阅,可以用它来发送您的IRC消息
  • 分布式存储( Ex.Cache,Hashtable,Data-Grid等),
  • '持久'点对点队列
  • 简单案例管理系统( Ex.CRM