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

Computer science 一个好的高中AP计算机科学编程项目?,computer-science,Computer Science,这个问题可能看起来很具体,但我需要一些想法,为我上个月的AP计算机科学课做一个项目。我一直在看一些大学期末考试的想法,其中很多看起来都很无聊。起初,我想用JAVA编写一个IRC客户机,但我并没有真正学到任何“新的”东西来帮助我。然后我想做IPhone/touch应用程序(我没有adroid手机,我可以很容易地得到itouch),但我需要一些想法来制作应用程序 我想做一些不平凡的事情,需要一些解释,但从长远来看,这也会帮助我学习计算机科学的新概念。如果你们能帮忙,我将非常感激。我真的只有一个月的时

这个问题可能看起来很具体,但我需要一些想法,为我上个月的AP计算机科学课做一个项目。我一直在看一些大学期末考试的想法,其中很多看起来都很无聊。起初,我想用JAVA编写一个IRC客户机,但我并没有真正学到任何“新的”东西来帮助我。然后我想做IPhone/touch应用程序(我没有adroid手机,我可以很容易地得到itouch),但我需要一些想法来制作应用程序

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

谢谢:)


编辑:我的主要编程语言是JAVA,因为我已经使用它一年半了。我也知道C++(非常小)和PHP(相当好)。

< p>一个IRC应用程序可能会教你一些新的东西,大多数都会在以后有帮助,比如标准、规范、网络、线程等。但是它要花费一个多月。

你现在懂什么语言?如果您了解Java,并且知道如何使用GUI,那么您可以尝试编写一个游戏。Tic-tac-toe相当简单,你可以在一个月内完成,为了增加趣味性,可以和你玩AI游戏,或者让人类对人类,在两者之间进行选择


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

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

我们为大学一年级的编程课做了《战舰》游戏。其好处与斯洛肯所提到的相似,但在战舰上使用人工智能确实会让你发疯。或者如果你想走UI路线,你也可以在这里花很多时间。在一个核心上,跟踪游戏细节的问题并不难。

而不是从头开始做一个小项目,你可以考虑为一些开源项目贡献一个有用的特性。这样你就不会花那么多时间在构建基础设施上。

跳棋可能很有趣,你可以在其中添加AI元素,因为它非常简单,可以生成一个完整的决策树。

向类介绍有趣的公共API(比如让他们创建twitter客户端或天气应用程序)在现实世界中会对他们有很大帮助。

也许是一个迷你数据库服务器。键/值存储,带有线程和网络套接字。您可以在这里做很多有趣的事情(缓存、并发、如何在磁盘上存储、如何在崩溃中生存)。通过保持它的关键性/价值性,您可以将复杂性保持在相对较低的水平。

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

这里有一个有点滑稽的游戏,但谁知道呢:去功能化!也许像Haskell那样做一个快速的项目,也许是一个简单语言的翻译

网上有很多教程和书籍。它的效率相当高。结合这些经验教训,我不认为学习一种全新的编程范式并在一个月内从中获得一个有用的程序是不可能的


这里的优势?首先,你会学到一种全新的编程方式,函数式。很多拥护者都说它会让你对新的编程思想敞开心扉,我想Haskell肯定会让我看到一些新的概念。第二,你将学到很多关于词法分析和语法分析的知识,以及了解计算机语言工作原理的基本步骤。第三,来吧,这是一个多么酷的项目啊!您可以编写自己的语言并为其翻译

虽然没有一些游戏创意那么激动人心,但您可以构建一些与当今IT世界高度相关的东西,引导您学习有价值的东西,并且可以在您建议的时间框架/语言中不同程度地完成

  • 简单消息代理(例如Xml/B2B采购订单交换)
  • 简单消息总线(例如发布/订阅,可以使用它发送IRC消息)
  • 分布式存储(如缓存、哈希表、数据网格等)
  • “持久”点对点队列
  • 简单案例管理系统(例如CRM)

您已经熟悉哪些语言和平台?你有什么样的兴趣,比如图形、算法、人工智能等等?很多的问题包括维基,因为没有正确的答案。我过去一年半以来一直主要使用java,但是我有C++的经验。我对PHP也相当了解。我会为这个项目开发IRC客户端或Tic Tac Toe。谢谢你的帮助:)回头看看我以前的问题,看到了这个。我想让你知道我最终做了一个IRC客户端…我在一个月内完成了它(为了完成它而自杀!)。@zamN很高兴听到这个消息!恭喜你在一个月内完成了!令人印象深刻的是,在HS中编写IRC客户端