algorithm - una - Sugerencias para un proyecto final de grado abierto
conclusiones y recomendaciones en una investigacion (17)
¿Ayuda con el esfuerzo de transferir Silverlight 3 a Mono? Estoy seguro de que podría encontrar una característica particular para implementar como un proyecto independiente. Sería una contribución muy útil para la comunidad de fuente abierta e implicaría profundizar en la forma en que se diseña el marco de Silverlight.
Nota: no estoy del todo seguro de si esta pregunta realmente pertenece a StackOverflow, así que siéntase libre de votar por el cierre si no cree.
En España tenemos que emprender un proyecto final cuando terminemos el grado de informática. El proyecto no debe ser trivial y puede relacionarse con cualquier campo de la informática desde Ingeniería de Software hasta Arquitectura de Computadora, incluya código o no, o lo que sea.
La cuestión es que soy bastante bueno en la resolución de problemas, pero que los encuentro completamente pésimos, es decir, si alguien me dice "resuelve esto" no hay problema, pero no puedo imaginar un problema por mi cuenta.
Trabajo en software propietario usando herramientas de desarrollo patentadas con poco uso de componentes de código abierto, así que pensé "está bien, lo que sería útil para la comunidad de código abierto que todavía no está allí" ... y simplemente no tengo ni idea.
¿Alguna sugerencia? Cualquier cosa sería bienvenida. Aunque prefiero c # o php, no me mostraré reacio a aprender algo nuevo si debo hacerlo.
Debido al comentario, la universidad es: Facultad de Informática. Universidad Politécnica de Madrid.
Gracias a todos por las respuestas. Aunque no estoy completamente decidido (no quiero precipitarme en ningún proyecto), realmente me gustó la idea del proyecto ROBOCODE, aunque no sería realmente útil de la manera tradicional, suena como UN POCO de diversión. Aprecio todas las sugerencias de todos modos.
+1 de mi parte Creo que esta es una gran pregunta.
No tengo una respuesta específica para usted, pero ¿por qué no dirigir su atención hacia la búsqueda de algo que podría ser útil para organizaciones benéficas o países en desarrollo?
Las organizaciones benéficas dependen cada vez más de la tecnología para recaudar fondos, gestionar la logística, etc. Además, en África, los teléfonos móviles se utilizan mucho para proporcionar productos financieros simples que permiten a las personas sin acceso a servicios financieros más tradicionales comprar y vender cosas.
Si tienes el tiempo y el deseo, hacer algo que realmente beneficie al mundo y te consiga un buen título sería muy satisfactorio.
Daniel.
Probablemente desee hacer algo que ya se haya hecho antes para que pueda tener una idea del alcance. No tiene que hacer algo que se volverá a utilizar / código abierto, ya que este es solo un proyecto final.
- Crear un sistema de procesamiento distribuido como seti en línea
- Haz un juego.
- Hacer un sitio de redes sociales.
- Crea una visualización genial para la escena de demostración
¿Qué pasa con una solución móvil distribuida de código abierto? Ahora que los dispositivos móviles han ganado bastante poder de procesamiento, sería bueno si enlazas esta potencia con la idea del sistema distribuido SETI de Byron. También podría usarse con fines prácticos, como recolectar datos de GPS en una grilla masiva para detectar y evitar carreteras e intersecciones.
¿Por qué no echar un vistazo a través del sitio web de Google Summer of Code para proyectos anteriores que no se realizaron? Estos están diseñados para demorar un par de meses, y están en proyectos de Código Abierto, y son cosas que alguien más ha decidido que serían útiles.
Recomiendo unirse a un proyecto de código abierto existente. Comenzar el suyo puede ser divertido, pero es probable que tenga poca utilidad para la comunidad de código abierto. Es poco probable que las personas se unan a un proyecto que comienzas para la escuela porque es probable que lo abandones una vez que te gradúes. Ayudar con un proyecto existente le permitirá hacer una diferencia a largo plazo sin un compromiso a largo plazo.
Existen muchos proyectos de código abierto que se adaptarán a sus habilidades PHP: Drupal , Wordpress o cualquiera de los proyectos de Sunlight Labs . Personalmente, me gustan los Sunlight Labs porque tienen un propósito más allá de solo crear software (para hacer que los gobiernos sean más abiertos y transparentes), y la organización parece estar saludable y en crecimiento. No importa qué proyecto elijas, no puedes equivocarte si contribuyes a un proyecto de código abierto activo.
Únete a un proyecto de código abierto. Por ejemplo, Qooxdoo ( http://qooxdoo.org ) tiene una comunidad realmente buena y necesita expertos en programación. Es un buen marco de aplicaciones web. O puedes contribuir a un proyecto realmente grande como Ruby on Rails.
Si le gusta el nivel bajo (como cerca del hardware), podría trabajar en la Colección Gnu Compilers.
Si eres realmente bueno en algoritmos, podrías desarrollar soluciones para muchos problemas de programación paralelos que existen hoy en día.
Esta es una gran pregunta, y si me dices qué tipo de programación prefieres, con mucho gusto daré más detalles.
Qué diablos, yo vivo en Madrid, así que podríamos encontrarnos en algún bar y discutirlo.
/ Gleb
Obtenga una especificación para algún lenguaje histórico (ej. Algol60, Atlas Autocode, Coral 66) e implemente un compilador completo para ello mediante un traductor a C; en particular, siéntase libre de usar algunas de las extensiones de GCC que hacen que sea mucho más fácil traducir esos lenguajes estructurados en bloque con procedimientos anidados, declaraciones de matriz dinámica, etc. Los intentos anteriores han sido poco entusiastas debido a la dificultad de mapear estos lenguajes a estándares DO.
¿Qué hay de 3D Urban Modeling?
Mi sugerencia sería encontrar una organización benéfica local que necesite ayuda para rastrear sus finanzas / donantes / etc. Trabaje con ellos para identificar sus necesidades y desarrollar una aplicación que los ayude a resolver su problema. Hay dos ventajas que veo en esto. Primero, obtienes experiencia trabajando con clientes reales y sus necesidades. En segundo lugar, si tiene éxito, ha ayudado a algunas personas que probablemente no tienen los recursos para hacer lo que necesitan de otra manera.
¿por qué no diseñar e implementar un algoritmo de inteligencia artificial para ROBOCODE (búsqueda de google). Podría usar redes neuronales, clustering, optimización de enjambre de partículas ... u otros algoritmos más avanzados. la mayoría de ellos son realmente fáciles y eficientes, solo los nombres parecen sacados de Star Trek.
Otra sugerencia, que está de moda en este momento, sería usar mashups: tomar múltiples servicios web y combinarlos haciendo algo agradable. como http://globelogger.com/2008/05/timetube-awesom.html , esto es de lo que estoy hablando
Comience un sitio web wiki comunitario solo para datos tabulares: lista de países (nombre, moneda ...), lista de alimentos (nombre, vitaminas, calorías ...), estadísticas de inflación por país por año, ... lo que sea que los usuarios crear. Permita a los usuarios crear consultas y descargar el resultado en el formato que prefieran (csv, excel, xml, ...). Después de eso, cree un servicio web para permitir que los proyectos de código abierto utilicen los datos en sus productos.
Refactorizar la GUI de Tkinter de Python para eliminar su dependencia de TCL. Esto implicaría forzar la última versión de TK, parte del proyecto TCL , y luego reemplazar el uso interno de scripts TCL con scripts de Python. El proyecto se escribirá en C.
El resultado final será un módulo Python TK GUI que funciona en Windows, Macintosh y UNIX. Todo el material de portabilidad ya está en el módulo TKinter, por lo que no estará donde estará el trabajo. En cambio, esto será como una cirugía cerebral, identificando todos los vínculos entre TK y TCL para que pueda refactorizar en una interfaz más simple a Python o hacer un reemplazo uno a uno de TCL con Python.
Esto requeriría aprender TCL y Python, así como probablemente escribir algunas herramientas para ayudarlo a enumerar las interconexiones entre TCL y TK. Al final del proyecto, también habrá absorbido mucha información sobre GUI multiplataforma, incluso si solo obtiene una de las plataformas como parte de su título.
El objetivo final de esto es que esta GUI se convierta en la GUI de Python predeterminada, y que la interfaz de desarrollador en la GUI se convierta en la interfaz predeterminada para otras interfaces de la GUI. Por ejemplo, un desarrollador de Jython no podría usar esta GUI pero si hace que la interfaz sea limpia y no específica del sistema, alguien podría escribir un PythonTK en Java que use SWING, y otro grupo podría escribir un PythonTK en C # que use Windows Forms.
Aunque la mayor parte del trabajo consiste en refactorizar el código TK bifurcado, se necesita una reflexión cuidadosa y un estudio del modelo de objetos expuestos al programador de Python para minimizar o eliminar cualquier área específica del sistema. Esto también puede requerir algún trabajo de refactorización en el código TK.
También tiene la opción de involucrarse en la Comunidad de Desarrollo de Kernel de Linux.
Cree una base sólida para un editor de gráficos adecuado para Linux. Luego abre el código fuente y permite que crezca. La opción actual es Gimp, que es bastante mala. En lugar de arreglarlo o extenderlo, desarrolle un nuevo proyecto que tenga un núcleo fuerte y sea extensible.
también podría unirse al proyecto Robocode e implementar alguna característica no trivial ;-) Lea esto y hable con nosotros .
Hay varios sitios de competencia / foros / ideas de codificación en los que podría participar:
- Google Code Jam
- Google Summer of Code (que creo que ya fue mencionado)
- Codificando Monos
- Concurso JavaFX
- Si está buscando ayudar en un proyecto existente, puede dirigirse a SourceForge
- Otros usuarios de
- Intercambio de ideas