Proyecto final
El clímax de este curso es su proyecto final. El proyecto final es tu oportunidad para sacar a pasear tu recién adquirida habilidad con la programación y desarrollar tu propio software. Siempre y cuando tu proyecto se base en las lecciones de este curso, la naturaleza de tu proyecto depende totalmente de ti. Puedes implementar tu proyecto en cualquier lenguaje. Eres bienvenido a utilizar infraestructura distinta de CS50 Codespace. Todo lo que pedimos es que construyas algo que te interese, que resuelvas un problema real, que impactes a tu comunidad o que cambies el mundo. Esfuérzate por crear algo que sobreviva a este curso.
En la medida en que el desarrollo de software rara vez es un esfuerzo individual, se te permite la oportunidad de colaborar con uno o dos compañeros de clase para este proyecto final. No hace falta decir que se espera que cada estudiante en dicho grupo contribuya por igual al diseño y la implementación del proyecto de ese grupo. Además, se espera que el alcance del proyecto de un grupo de dos o tres personas sea, respectivamente, el doble o el triple que el de un proyecto típico de una sola persona. Un proyecto de una sola persona, debes tener en cuenta, debería implicar más tiempo y esfuerzo del que requieren cada uno de los conjuntos de problemas del curso.
Ten en cuenta que el personal de CS50 audita las entregas de CS50x, incluido este proyecto final. Los estudiantes que se descubra que violan la política de honestidad académica serán eliminados del curso y considerados no elegibles para un certificado. A los estudiantes que ya hayan completado CS50x, si se descubre que violan la política, se les revocará su certificado CS50 (y el certificado edX, si corresponde).
Ideas
- Una aplicación basada en la web con JavaScript, Python y SQL
- Una aplicación iOS con Swift
- Un juego con Lua con LÖVE
- Una aplicación Android con Java
- Una extensión de Chrome con JavaScript
- Un programa de línea de comandos con C
- Una aplicación basada en hardware para la que programas algún dispositivo
- …
Comenzar
Crear un proyecto completo puede parecer desalentador. Aquí tienes algunas preguntas en las que deberías pensar al empezar:
- ¿Qué hará tu software? ¿Qué funciones tendrá? ¿Cómo se ejecutará?
- ¿Qué nuevas habilidades deberás adquirir? ¿Qué temas deberás investigar?
- Si trabajas con uno o dos compañeros de clase, ¿quién hará qué?
- En el mundo del software, la mayoría de las cosas llevan más tiempo en implementarse de lo que esperas. Por lo que no es raro lograr menos en un tiempo determinado de lo que esperas. ¿Qué podrías considerar un buen resultado para tu proyecto? ¿Un mejor resultado? ¿El mejor resultado?
Considera establecer hitos de objetivos para mantenerte encaminado.
Si usas CS50 Codespace, crea un directorio llamado project
para almacenar el código fuente de tu proyecto y otros archivos. Eres bienvenido a desarrollar tu proyecto fuera de CS50 Codespace.
Para tu proyecto final (¡y solo para tu proyecto final!) es razonable utilizar software baseado en IA distinto del propio de CS50 (por ejemplo, ChatGPT, GitHub Copilot, Bing Chat, etc.), pero la esencia del trabajo debe seguir siendo tuya. Has aprendido lo suficiente para utilizar dichas herramientas como ayudantes. Trata dichas herramientas como amplificadoras, no sustitutivas, de tu productividad. Pero aun así debes citar cualquier uso de dichas herramientas en los comentarios de tu código.
Cómo enviar
Debes completar los tres pasos
Paso 1 de 3
Crea un video corto (que no dure más de 3 minutos) en el que presentes tu proyecto al mundo. Tu video debe comenzar con una sección de apertura que muestre:
- el título de tu proyecto;
- tu nombre;
- tu nombre de usuario en GitHub y edX;
- tu ciudad y país;
- y la fecha en que has grabado este vídeo.
A continuación, deber mostrar tu proyecto en acción, como con diapositivas, capturas de pantalla, voz en off y/o acción en vivo. Consulta howtogeek.com/205742/how-to-record-your-windows-mac-linux-android-or-ios-screen para obtener consejos sobre cómo hacer una "captura de pantalla", aunque puedes utilizar una cámara real. Sube tu video a YouTube (o, si está bloqueado en tu país, a un sitio similar) y toma nota de su URL; está bien marcarlo como "no listado", pero no lo marques como "privado".
Envía este formulario!
Paso 2 de 3
Crea un archivo de texto README.md
(¡con ese nombre exacto!) en tu carpeta project
que explique tu proyecto. Este archivo debe incluir el título de tu proyecto, la URL de tu vídeo (creado en el paso 1 anterior) y una descripción de tu proyecto. Puedes utilizar lo siguiente como plantilla.
# TÍTULO DE TU PROYECTO
#### Demostración en vídeo: <URL AQUÍ>
#### Descripción:
TODO
Si no estás familiarizado con la sintaxis de Markdown, puedes encontrar útil la sintaxis básica de escritura y formato de GitHub. También puedes obtener una vista previa de tu archivo .md
haciendo clic en el icono "vista previa", como se explica aquí: vista previa de Markdown en vscode. Los archivos README
estándar de los proyectos de software a menudo pueden tener miles o decenas de miles de palabras; el tuyo no tiene por qué ser tan largo, pero debe tener al menos varios cientos de palabras que describan las cosas en detalle.
Tu archivo README.md
debe tener una longitud mínima de varios párrafos y debe explicar en qué consiste tu proyecto, qué contiene y hace cada uno de los archivos que has escrito para el proyecto, y si has debatido determinadas opciones de diseño, explicar por qué las has tomado. Asegúrate de dedicar suficiente tiempo y energía a escribir un README.md
que documente tu proyecto a fondo. ¡Siéntete orgulloso de ello! Un README.md
de unas 750 palabras será probablemente suficiente para describir tu proyecto y todos los aspectos de su funcionalidad. Si no puedes alcanzar ese umbral, probablemente signifique que tu proyecto no es lo suficientemente complejo.
Ejecuta el siguiente comando submit50
desde tu directorio project
(o desde el directorio que contiene el archivo README.md
y el código de tu proyecto, que también debe enviarse), iniciando sesión con tu nombre de usuario y contraseña de GitHub cuando se te solicite. Por seguridad, verás asteriscos en lugar de los caracteres reales de tu contraseña.
submit50 cs50/problems/2024/x/project
¿Problemas para enviar?
Si tienes problemas porque tu proyecto es demasiado grande, intenta comprimir todos los contenidos de ese directorio (excepto el README.md
) y envíalo en su lugar. Si sigue siendo demasiado grande, intenta eliminar ciertos archivos de configuración, reducir el tamaño de tu envío a menos de 100 MB o intenta subirlo directamente utilizando la interfaz web de GitHub visitando github.com/me50/NOMBRE DE USUARIO (donde NOMBRE DE USUARIO
es tu propio nombre de usuario de GitHub) y arrastrando y soltando manualmente las carpetas, asegurando que al subirlo lo haces a tu rama cs50/problems/2024/x/project
, de lo contrario el sistema no podrá comprobarlo
Paso 3 de 3
Asegúrate de visitar tu libro de calificaciones en cs50.me/cs50x unos minutos después de enviarlo. Sólo cargando tu libro de calificaciones el sistema puede comprobar si has completado el curso, y eso es también lo que desencadena la generación (instantánea) de tu certificado gratuito de CS50 y la generación (en un plazo de 30 días) del certificado verificado de edX, si has completado todas las demás tareas. Asegúrate de reclamar tu certificado gratuito (siguiendo el enlace en la parte superior de tu libro de calificaciones) antes del 1 de enero de 2025.
¡No te saltes el paso anterior! El curso no se considera completo hasta que hagas lo anterior y veas el banner verde que dice que has completado el curso. Si no haces lo anterior antes del 1 de enero de 2025, tu situación en el curso estará sujeta a las reglas de prórroga en la sección de preguntas frecuentes. ¡El personal no hará ninguna corrección manual a principios de 2025 basándose en que esto se haya omitido!
¡Eso es todo! Tu proyecto debería ser calificado en unos minutos. Si no ves ningún resultado en tu libro de calificaciones, lo mejor es reenviarlo (ejecutando el comando submit50
anterior) con solo tu archivo README.md esta vez. No es necesario que vuelvas a enviar tu formulario.
¡Esto ha sido CS50x!