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.

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.

Como Enviar

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 READMEs 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!

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.

É 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!