对开源最终学位项目的build议
注意:我不完全确定这个问题是否真的属于StackOverflow,所以如果你不这样认为的话可以投票结束。
在西class牙,我们必须在结束计算机科学学位的时候进行最后的项目。 这个项目不可能是微不足道的,并且可以涉及到从软件工程到计算机体系结构的任何计算机领域,包括代码与否,等等。
问题是我相当擅长解决问题,但是完全糟糕的发现他们,也就是说,如果有人告诉我“解决这个问题”没有问题,但我无法自己想象一个问题。
我使用专有的开发工具来开发专有软件,但几乎没有使用开源组件,所以我认为“好的,开源社区还没有那么有用”,我根本就不知道。
有什么build议么? 任何事情都会受到欢迎。 虽然我更喜欢c#或php,但是我不会不情愿学习新的东西,如果我必须的。
由于评论,大学是: Facultad deInformática。 UniversidadPolitécnicade Madrid。
感谢大家的答案。 尽pipe我还没有完全决定(我不想匆忙进入任何项目),但我真的很喜欢ROBOCODE项目的想法,尽pipe它在传统的方式中并不是很有用,听起来像是一种乐趣。 无论如何,我欣赏所有的build议。
为什么不devise和实现ROBOCODE的人工智能algorithm(search谷歌)。 你可以使用neural network,聚类,粒子群优化…或其他更先进的algorithm。 他们中的大多数都非常简单高效,只有命名的声音才像是从星际迷航中得到的。
其他的build议,现在是时髦的,将使用混搭:采取多个Web服务,并结合他们做一些不错的事情。 像http://globelogger.com/2008/05/timetube-awesom.html ,这就是我所说的
为什么不通过Google Summer of Code网站查看以前没有进行的项目。 这些devise需要花费几个月的时间才能完成,并且与开源项目相关,而其他人认为是有用的。
帮助将Silverlight 3移植到Mono? 我确定你可以find一个特殊的function来作为一个独立的项目来实现。 这对开源社区将是一个非常有用的贡献,并将深入挖掘Silverlight框架的devise。
我build议join一个现有的开源项目。 开始你自己可能很有趣,但是它对于开源社区可能没什么用处。 人们不太可能参加你上学的项目,因为gradle后你很可能会放弃这个项目。 帮助现有的项目将让您在长期的承诺中长期发挥作用。
有很多适合您的PHP技能的开源项目: Drupal , WordPress或任何Sunlight实验室项目。 就我个人而言,我喜欢Sunlight Labs,因为他们的目的不仅仅是创build软件(使政府更加开放和透明),而且组织看起来健康且不断发展。 无论您select哪个项目,都不能因为积极的开源项目而出错。
你可能想要做一些之前已经做过的事情,这样你就可以对范围有所了解。 你不必做一些将被重用/开源的东西,因为这只是一个最终的项目。
- 创build一个像seti在线的分布式处理系统
- 做一个游戏。
- build立一个社交网站。
- 为演示场景创build一个很酷的可视化
我的build议是find一个当地的慈善机构,需要一些帮助跟踪他们的财务/捐助者等。 与他们一起确定他们的需求,并开发一个应用程序来帮助他们解决问题。 有两个好处,我看到了这一点。 首先,您将获得与真实客户及其需求相关的经验。 其次,如果你成功了,你已经帮助了一些可能没有资源去完成他们需要的任何其他方面的人。
重构Python的Tkinter GUI以消除其对TCL的依赖。 这将涉及分叉最新版本的TK, TCL项目的一部分,然后用Python脚本replaceTCL脚本的内部使用。 该项目将用C语言编写
最终的结果将是在Windows,Macintosh和UNIX上运行的Python TK GUI模块。 所有的可移植性的东西已经在TKinter模块中,所以没有工作的地方。 相反,这将像脑外科手术一样,识别TK和TCL之间的所有联系,以便您可以重构成更简单的Python界面,或者用Python一对一replaceTCL。
这需要学习TCL和Python,以及编写一些工具来帮助您列举TCL和TK之间的相互关系。 在项目结束时,即使您只有一个平台作为学位的一部分工作,也可以吸收大量有关跨平台GUI的信息。
其最终目标是使此GUI成为默认的Python GUI,并使GUI的开发人员界面成为其他GUI前端的默认界面。 例如,一个Jython开发者不能使用这个GUI,但是如果你使界面干净和非系统特定,那么有人可以用Java编写一个使用SWING的PythonTK,而另一个组可以在使用Windows Forms的C#中编写一个PythonTK。
虽然大部分工作是重构分支TK代码,但您需要仔细思考和研究暴露给Python程序员的对象模型,以最小化或消除任何系统特定的区域。 这可能需要对传统知识代码进行一些重构工作。
join一些开源项目。 例如,Qooxdoo( http://qooxdoo.org )有一个非常好的社区,需要熟练的程序员。 这是一个很好的Web应用程序框架。 或者你可以贡献一些像Ruby on Rails这样的大型项目。
如果你喜欢低级(就像硬件),你可以在Gnu编译器集合上工作。
如果你真的擅长algorithm,那么你现在可以为许多并行编程问题开发解决scheme。
这是一个很好的问题,如果你告诉我你喜欢什么样的编程,我会很乐意详细说明。
我住在马德里,所以我们可以在酒吧见面讨论一下。
/格列布
仅为表格数据启动一个社区wiki网站:国家名单(名称,货币…),食物列表(名称,维生素,卡路里…),每个国家每年的通货膨胀统计数据,…用户创build。 允许用户创build查询并以他们喜欢的格式(csv,excel,xml,…)下载结果。 之后,创build一个web服务,以允许开源项目在其产品中使用数据。
那么开源分布式移动解决scheme呢? 既然移动设备已经获得了相当的处理能力,那么如果你将这种能力与拜伦的类似SETI的分布式系统理念结合起来,那将是一件好事。 它也可以用于实际目的,例如在大规模的网格中采集GPS数据以发现并能够避免多路口和交叉路口。
如何3D城市build模?
城市三维build模
哈里斯公司3D城市模型在基于Web的实时search地图上的特色
你也可以joinRobocode项目并实现一些非常重要的function;-) 阅读并与我们交谈 。
从我+1。 我认为这是一个很好的问题。
我对你没有一个具体的答案,但是为什么不把你的注意力放在寻找可以用于慈善机构或者发展中国家的东西?
慈善事业越来越依赖于筹集资金,pipe理物stream等方面的技术。另外,在非洲,手机被用来提供简单的金融产品,让没有更多传统金融服务的人可以买卖东西。
如果你有时间和欲望,做一些真正有益于世界的事情,并让你获得很高的学位将是非常令人满意的。
丹尼尔。
获取一些历史语言(如Algol60,Atlas Autocode,Coral 66)的规范,并通过一个翻译器为C实现一个完整的编译器; 尤其是可以随意使用一些GCC扩展,这使得用嵌套过程,dynamic数组声明等翻译这些块结构语言变得更加容易。由于难以将这些语言映射到标准,因此以前的尝试有点半心半意C。
有几个编码比赛/论坛/意见网站,你可以参与:
- Google Code Jam
- Google夏季代码 (我认为已经提到)
- 编码猴子
- JavaFX比赛
- 如果您正在寻求帮助现有的项目,您可以转到SourceForge
- 其他的计算器用户
- 想法交换
你也可以selectjoinLinux内核开发社区。
构build适合Linux的适当graphics编辑器的坚实基础。 然后开放源代码,让它增长。 目前的select是GIMP这是非常糟糕的。 而不是固定它或扩大它开发一个有强大的核心和可扩展的新项目。