Projet final
Le point d'orgue de ce cours est son projet final. Le projet final est votre occasion de mettre à profit vos nouvelles connaissances en programmation et de développer votre propre logiciel. Tant que votre projet s'appuie sur les leçons de ce cours, la nature de votre projet dépend entièrement de vous. Vous pouvez réaliser votre projet dans n'importe quel langage. Vous êtes libre d'utiliser une autre infrastructure que CS50 Codespace. Tout ce que nous vous demandons, c'est de construire quelque chose qui vous intéresse, de résoudre un problème concret, d'avoir un impact sur votre communauté ou de changer le monde. Efforcez-vous de créer quelque chose qui survivra à ce cours.
Dans la mesure où le développement de logiciels est rarement un effort individuel, vous avez la possibilité de collaborer avec un ou deux camarades de classe pour ce projet final. Il va sans dire que l'on attend de chaque étudiant d'un tel groupe qu'il contribue de manière égale à la conception et à la réalisation du projet de ce groupe. De plus, on s'attend à ce que la portée d'un projet de groupe de deux ou trois personnes soit respectivement le double ou le triple de celle d'un projet individuel typique. Un projet individuel, remarquez bien, devrait impliquer plus de temps et d'efforts que ne le requiert chacun des ensembles de problèmes du cours.
Notez que le personnel de CS50 vérifie les soumissions à CS50x, y compris ce projet final. Les étudiants reconnus coupables de violer la politique d'intégrité académique seront retirés du cours et seront jugés inéligibles pour un certificat. Les étudiants qui ont déjà terminé CS50x, s'ils sont reconnus coupables de violation, se verront révoquer leur certificat CS50 (et leur certificat edX, le cas échéant).
Idées
- une application Web utilisant JavaScript, Python et SQL
- une application iOS utilisant Swift
- un jeu utilisant Lua avec LÖVE
- une application Android utilisant Java
- une extension Chrome utilisant JavaScript
- un programme en ligne de commande utilisant C
- une application matérielle pour laquelle vous programmez un appareil
- …
Commencer
Créer un projet entier peut sembler intimidant. Voici quelques questions auxquelles vous devriez réfléchir au début :
- Que fera votre logiciel ? Quelles fonctionnalités aura-t-il ? Comment sera-t-il exécuté ?
- Quelles nouvelles compétences devrez-vous acquérir ? Quels sujets devrez-vous rechercher ?
- Si vous travaillez avec un ou deux camarades de classe, qui fera quoi ?
- Dans le monde des logiciels, presque tout prend plus de temps à mettre en œuvre que prévu. Et donc, il n'est pas rare d'accomplir moins de choses que prévu dans un laps de temps déterminé. Que pourriez-vous considérer comme un bon résultat pour votre projet ? Un meilleur résultat ? Le meilleur résultat ?
Envisagez de vous fixer des jalons pour vous maintenir sur la bonne voie.
Si vous utilisez CS50 Codespace, créez un répertoire appelé project
pour stocker le code source de votre projet et d'autres fichiers. Vous êtes libre de développer votre projet en dehors de CS50 Codespace.
Pour votre projet final (et votre projet final uniquement !), il est raisonnable d'utiliser un logiciel basé sur l'IA autre que celui de CS50 (par exemple, ChatGPT, GitHub Copilot, Bing Chat, et al.), mais l'essence du travail doit toujours être la vôtre. Vous en avez assez appris pour utiliser de tels outils en tant qu'aides. Traitez ces outils comme des amplificateurs, et non comme des substituts, de votre productivité. Mais vous devez toujours citer toute utilisation de ces outils dans les commentaires de votre code.
Comment soumettre
Vous devez compléter les trois étapes!
Étape 1 sur 3
Créez une courte vidéo (qui ne dure pas plus de 3 minutes) dans laquelle vous présentez votre projet au monde. Votre vidéo doit commencer par une section d'ouverture qui affiche :
- le titre de votre projet ;
- votre nom ;
- vos noms d'utilisateur GitHub et edX ;
- votre ville et votre pays ;
- et la date à laquelle vous avez enregistré cette vidéo.
Elle doit ensuite montrer votre projet en action, comme avec des diapositives, des captures d'écran, une voix off et/ou une action en direct. Consultez howtogeek.com/205742/how-to-record-your-windows-mac-linux-android-or-ios-screen pour obtenir des conseils sur la façon de réaliser un « screencast », bien que vous puissiez utiliser une caméra réelle. Téléchargez votre vidéo sur YouTube (ou, si elle est bloquée dans votre pays, un site similaire) et notez son URL ; il est possible de la marquer comme « non répertoriée », mais ne la marquez pas comme « privée ».
Soumettez ce formulaire !
Étape 2 sur 3
Créez un fichier texte README.md
(nommé exactement ainsi !) dans votre dossier project
qui explique votre projet. Ce fichier doit inclure : le titre de votre projet, l'URL de votre vidéo (créée à l'étape 1 ci-dessus) ; et une description de votre projet. Vous pouvez utiliser le modèle ci-dessous.
# VOTRE TITRE DE PROJET
#### Démo vidéo : <URL ICI>
#### Description :
TODO
Si vous n'êtes pas familier avec la syntaxe Markdown, vous trouverez utile la syntaxe d'écriture et de formatage de base de GitHub. Vous pouvez également prévisualiser votre fichier .md
en cliquant sur l'icône « aperçu » comme expliqué ici : Aperçu Markdown dans vscode. Les README
de projet logiciel standard peuvent souvent contenir des milliers ou des dizaines de milliers de mots ; le vôtre n'a pas besoin d'être aussi long, mais doit contenir au moins plusieurs centaines de mots qui décrivent les choses en détail !
Votre fichier README.md
doit comporter au moins plusieurs paragraphes et doit expliquer ce qu'est votre projet, ce que contient et fait chacun des fichiers que vous avez écrits pour le projet, et si vous avez débattu de certains choix de conception, expliquer pourquoi vous les avez faits. Assurez-vous de consacrer suffisamment de temps et d'énergie à la rédaction d'un README.md
qui documente votre projet en détail. Soyez fier de lui ! Un README.md
d'environ 750 mots sera probablement suffisant pour décrire votre projet et tous les aspects de ses fonctionnalités. Si vous ne parvenez pas à atteindre ce seuil, cela signifie probablement que votre projet n'est pas suffisamment complexe.
Exécutez la commande submit50
ci-dessous depuis votre répertoire project
(ou depuis le répertoire qui contient le fichier README.md
et le code de votre projet, qui doit également être soumis), en vous connectant avec votre nom d'utilisateur et votre mot de passe GitHub lorsque vous y êtes invité. Pour des raisons de sécurité, vous verrez des astérisques à la place des caractères réels de votre mot de passe.
submit50 cs50/problems/2024/x/project
Des difficultés à soumettre ?
Si vous rencontrez des problèmes parce que votre projet est trop volumineux, essayez de compresser tout le contenu de ce répertoire (à l'exception du fichier README.md
) et soumettez-le ensuite. S'il est toujours trop volumineux, essayez de supprimer certains fichiers de configuration, de réduire la taille de votre soumission à moins de 100 Mo, ou essayez de télécharger directement en utilisant l'interface Web de GitHub en visitant github.com/me50/USERNAME (où USERNAME
est votre propre nom d'utilisateur GitHub) et en faisant glisser et en déposant manuellement des dossiers, en vous assurant que lorsque vous téléchargez, vous le faites vers votre branche cs50/problems/2024/x/project
, sinon le système ne pourra pas le vérifier !
Étape 3 sur 3
Assurez-vous de visiter votre carnet de notes sur cs50.me/cs50x quelques minutes après l'envoi. Ce n'est qu'en chargeant votre carnet de notes que le système peut vérifier si vous avez terminé le cours, et c'est également ce qui déclenche la génération (instantanée) de votre certificat CS50 gratuit et la génération (dans les 30 jours) du certificat vérifié d'edX, si vous avez terminé toutes les autres missions. Assurez-vous de réclamer votre certificat gratuit (en suivant le lien en haut de votre carnet de notes) avant le 1er janvier 2025.
Ne sautez pas l'étape ci-dessus ! Le cours n'est pas considéré comme terminé tant que vous n'avez pas effectué ce qui précède et vu la bannière verte indiquant que vous avez terminé le cours. Si vous n'effectuez pas les opérations ci-dessus avant le 1er janvier 2025, votre statut dans le cours sera soumis aux règles de report dans la FAQ. Le personnel n'effectuera aucune correction manuelle début 2025 sur la base de ce saut !
C'est tout ! Votre projet devrait être noté dans quelques minutes. Si vous ne voyez aucun résultat dans votre carnet de notes, il est préférable de le soumettre à nouveau (en exécutant la commande submit50
ci-dessus) avec uniquement votre fichier README.md cette fois. Inutile de soumettre à nouveau votre formulaire.
C'était CS50x !