Projeto Final
O ponto alto deste curso é o projeto final. O projeto final é a sua oportunidade de colocar seu conhecimento de programação recém-adquirido em prática e desenvolver sua própria peça de software. Contanto que seu projeto recorra às lições deste curso, a natureza do seu projeto depende inteiramente de você. Você pode implementar seu projeto em qualquer idioma. Você pode utilizar infraestrutura diferente do CS50 Codespace. Tudo o que pedimos é que você construa algo de seu interesse, resolva um problema real, cause impacto na sua comunidade ou mude o mundo. Esforce-se para criar algo que sobreviva a este curso.
Como o desenvolvimento de software raramente é um esforço de uma pessoa só, você tem a oportunidade de colaborar com um ou dois colegas de classe neste projeto final. É desnecessário dizer que espera-se que cada aluno em tal grupo contribua igualmente para o design e implementação do projeto do grupo. Além disso, espera-se que o escopo de um projeto de grupo de duas ou três pessoas seja, respectivamente, duas ou três vezes maior que o de um projeto típico de uma pessoa. Um projeto de uma pessoa, lembre-se, deve exigir mais tempo e esforço do que o exigido por cada um dos conjuntos de problemas do curso.
Observe que a equipe do CS50 audita as inscrições para o CS50x, incluindo este projeto final. Alunos que violem a política de honestidade acadêmica serão removidos do curso e considerados inelegíveis para um certificado. Os alunos que já concluíram o CS50x, se forem considerados violadores, terão seu Certificado CS50 (e Certificado edX, se aplicável) revogado.
Ideias
- um aplicativo baseado na web usando JavaScript, Python e SQL
- um aplicativo iOS usando Swift
- um jogo usando Lua com LÖVE
- um aplicativo Android usando Java
- uma extensão do Chrome usando JavaScript
- um programa de linha de comando usando C
- um aplicativo baseado em hardware para o qual você programa algum dispositivo
- …
Introdução
Criar um projeto inteiro pode parecer assustador. Aqui estão algumas perguntas que você deve pensar ao começar:
- O que seu software fará? Quais recursos ele terá? Como será executado?
- Quais novas habilidades você precisará adquirir? Quais tópicos você precisará pesquisar?
- Se estiver trabalhando com um ou dois colegas de classe, quem fará o quê?
- No mundo do software, quase tudo leva mais tempo para implementar do que você espera. E por isso não é incomum realizar menos em um determinado período do que você esperava. O que você pode considerar um bom resultado para o seu projeto? Um resultado melhor? O melhor resultado?
Considere definir metas para mantê-lo no caminho certo.
Se estiver usando o CS50 Codespace, crie um diretório chamado project
para armazenar o código-fonte do seu projeto e outros arquivos. Você pode desenvolver seu projeto fora do CS50 Codespace.
Para o seu projeto final (e somente para o seu projeto final!), é razoável usar software baseado em IA diferente do próprio CS50 (por exemplo, ChatGPT, GitHub Copilot, Bing Chat, et al.), mas a essência do trabalho ainda deve ser sua. Você aprendeu bastante para usar tais ferramentas como ajudantes. Trate essas ferramentas como ampliadoras, não substituindo, sua produtividade. Mas você ainda deve citar qualquer uso de tais ferramentas nos comentários do seu código.
Como Enviar
Você deve completar todas as três etapas!
Etapa 1 de 3
Crie um pequeno vídeo (com no máximo 3 minutos) no qual você apresenta seu projeto ao mundo. Seu vídeo deve começar com uma seção de abertura que mostra:
- o título do seu projeto;
- seu nome;
- seus nomes de usuário do GitHub e do edX;
- sua cidade e país;
- e a data em que você gravou esse vídeo.
Ele deve então prosseguir demonstrando seu projeto em ação, com slides, capturas de tela, narração e/ou ação ao vivo. Consulte howtogeek.com/205742/how-to-record-your-windows-mac-linux-android-or-ios-screen para obter dicas sobre como fazer uma "captura de tela", embora você possa usar uma câmera verdadeira. Envie seu vídeo para o YouTube (ou, se bloqueado em seu país, um site semelhante) e anote sua URL; não há problema em sinalizá-lo como "não listado", mas não o sinalize como "privado".
Envie este formulário!
Etapa 2 de 3
Crie um arquivo de texto README.md
(com esse nome exato!) em sua pasta project
que explique seu projeto. Este arquivo deve incluir o Título do Projeto, a URL do seu vídeo (criado na etapa 1 acima) e uma descrição do seu projeto. Você pode usar o modelo abaixo.
# TÍTULO DO SEU PROJETO
#### Demonstração de vídeo: <URL AQUI>
#### Descrição:
TODO
Se não estiver familiarizado com a sintaxe Markdown, você pode encontrar a Sintaxe Básica de Escrita e Formatação do GitHub útil. Você também pode visualizar seu arquivo .md
clicando no ícone "visualizar" conforme explicado aqui: Visualização de Markdown no vscode. Os README
s de projetos de software padrão geralmente têm milhares ou dezenas de milhares de palavras; o seu não precisa ser tão longo, mas deve ter pelo menos algumas centenas de palavras descrevendo as coisas em detalhes!
O seu arquivo README.md
deve ter pelo menos vários parágrafos e deve explicar o que é o seu projeto, o que cada um dos arquivos que você escreveu para o projeto contém e faz, e se você debateu certas opções de design, explicando por que as fez. Certifique-se de alocar tempo e energia suficientes para escrever um README.md
que documente seu projeto completamente. Tenha orgulho disso! Um README.md
em torno de 750 palavras provavelmente será suficiente para descrever seu projeto e todos os aspectos de sua funcionalidade. Se não conseguir atingir esse limite, isso provavelmente significa que seu projeto não é suficientemente complexo.
Execute o comando submit50
abaixo dentro do seu diretório project
(ou de qualquer diretório que contenha o arquivo README.md
e o código do seu projeto, que também deve ser enviado), fazendo login com seu nome de usuário e senha do GitHub quando solicitado. Por segurança, você verá asteriscos em vez dos caracteres reais em sua senha.
submit50 cs50/problems/2024/x/project
Problemas ao Enviar?
Se você encontrar problemas porque seu projeto for muito grande, tente compactar todo o conteúdo desse diretório (exceto README.md
) e envie isso. Se ainda assim for muito grande, tente remover certos arquivos de configuração, reduzindo o tamanho do seu envio para menos de 100 MB, ou tente enviar diretamente usando a interface da web do GitHub visitando github.com/me50/USERNAME (onde USERNAME
é o seu próprio nome de usuário do GitHub) e arrastando e soltando manualmente as pastas, garantindo que, ao enviar, você esteja fazendo isso para o seu branch cs50/problems/2024/x/project
, caso contrário, o sistema não poderá verificá-lo!
Etapa 3 de 3
Certifique-se de visitar sua carteirinha em cs50.me/cs50x alguns minutos depois de enviar. É somente carregando sua Carteirinha que o sistema pode verificar se você concluiu o curso, e é isso também que aciona a (instantânea) geração do seu Certificado CS50 gratuito e a (dentro de 30 dias) geração do Certificado Verificado da edX, se você tiver concluído todas as outras atribuições. Certifique-se de reivindicar seu certificado gratuito (seguindo o link no topo de sua carteirinha) antes de 1º de janeiro de 2025.
Não pule a etapa acima! O curso não é considerado concluído até que você faça o acima e veja o banner verde dizendo que você concluiu o curso. Se você não fizer o acima antes de 1º de janeiro de 2025, seu status no curso estará sujeito às regras de transferência no FAQ. A equipe não fará nenhuma correção manual no início de 2025 com base na omissão disso!
É isso! Seu projeto deve ser avaliado dentro de alguns minutos. Se você não vir nenhum resultado em sua carteirinha, é melhor reenviar (executando o comando submit50
acima) com apenas seu arquivo README.md desta vez. Não há necessidade de reenviar seu formulário.
Este foi o CS50x!