Une liste de projets pratiques de renforcement des connaissances. Comme les projets visent à augmenter votre base de connaissances, ils sont quelque peu difficiles. Cependant, il y en a aussi quelques-uns faciles. Beaucoup d'entre eux sont même assez dignes pour présenter votre portefeuille.
Les projets sont divisés en plusieurs catégories et tagués avec certaines langues et cadres / outils suggérés (je travaille toujours sur cette partie) pour vous aider à démarrer.
Pour commencer avec les idées du projet:
Projets Web généraux, de la construction d'un site Web simple à la création d'outils pour des tâches de réseautage complexes et difficiles comme le reniflement des paquets.
Construire des bots automatisés est quelque chose que vous voulez vraiment essayer à un moment donné de votre carrière / vie.
Des suggestions de logiciels ou d'applications appropriés que vous pouvez même finir par utiliser dans votre vie quotidienne, comme un simple éditeur de texte ou un lecteur de musique personnalisé.
Des projets qui traitent principalement de l'intelligence artificielle ou de l'apprentissage automatique. Idéal pour présenter votre portefeuille si vous envisagez de postuler pour des emplois ou des programmes liés à l'IA.
Des projets qui fournissent un aperçu plus approfondi du fonctionnement interne de nombreuses choses liées au CS que vous utilisez peut-être sciemment ou inconsciemment dans votre vie quotidienne.
Des projets qui impliquent de traiter le chiffrement / décryptage ou en sécurité informatique générale.
Tout le travail et aucun jeu font de Jack un garçon terne! Les jeux sont indispensables pour profiter et apprendre de nombreux concepts de programmation, y compris des oops.
Celles-ci étaient seules dans leurs propres catégories et je ne voulais pas qu'ils se sentent seuls, alors je les ai regroupés ensemble.
Certains canaux recommandés pour travailler sur plus de problèmes et affiner vos compétences de codage.
Un client de transfert de fichiers simple qui utilise le FTP (protocole de transfert de fichiers). Comme défi bonus, ajoutez la prise en charge du transfert de fichiers sécurisé. Il peut s'agir d'une application Web, bureau ou CLI.
Vous pouvez essayer d'abord d'implémenter TFTP (Protocole de transfert de fichiers trivial) car c'est plus facile.
Langue suggérée : C / C ++
Cadres / outils suggérés : Utilisez Wireshark pour observer les paquets et déboguez-les
Exemple d'implémentation : Filezilla est extrêmement complet, voici une implémentation simple GO
Pour mieux comprendre HTTP, vous devez créer un serveur HTTP. Ce n'est pas très difficile maintenant quelques jours (avec la richesse des informations qui nous entourent).
Langue suggérée : Python (ou toute autre langue que vous souhaitez maîtriser)
Frameworks / outils suggérés : Socket (bibliothèque Python)
Exemple d'implémentation : article de blog par Ruslan
Créez un grattoir Web qui prend une entrée URL / clé en tant qu'entrée et renvoie les résultats correspondants du Web liés à l'entrée. Vous pouvez également créer un chercheur de produit ou quelque chose comme ça.
Langue suggérée : Python (ou toute autre langue que vous souhaitez maîtriser)
Cadres / outils suggérés : BeautifulSoup (Python Library)
Exemple d'implémentation :
Créez une application de scanner de port qui peut sonder un serveur ou un hôte pour les ports ouverts. Vous aurez besoin de connaissances techniques sur le fonctionnement des réseaux et comment vous pouvez analyser les ports ou les classer.
Langue suggérée : Java, C ++, Python
Cadres / outils suggérés : Bibliothèque Socket Python
Exemple d'implémentation : Piescan est une implémentation Python
Un renifleur de paquets est utilisé pour surveiller le trafic réseau en examinant les flux de paquets de données qui circulent entre les ordinateurs sur un réseau. Pour commencer par le projet, étudiez correctement les protocoles de réseau. Plongez ensuite dans la mise en œuvre d'une application qui retrace les paquets de réseau et analyse son contenu sous une forme lisible par humaine.
Langue suggérée : Java, C ++
Cadres / outils suggérés :
Exemple d'implémentation : Wireshark est un renifleur de paquets extrêmement complet, Herbivore est une implémentation plus simple.
Créez une application qui permettra le partage de fichiers entre pairs en toute sécurité sur Internet. Cela vous aidera à transférer des fichiers en toute sécurité d'un endroit à un autre ou à envoyer quelque chose à votre ami.
Langue suggérée : Java, C ++
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un moteur de recherche Web comme Google ou Bing. Ne les copiez pas cependant
Langue suggérée : langues Web. Le vrai travail se produira du côté backend avec des langues comme Python, PHP, SQL, Node ... Utilisez tout ce que vous voulez pour le frontend: HTML, CSS, JavaScript ...
Frameworks / outils suggérés : Django Si vous utilisez Python, MySQL pour les bases de données si vous en avez besoin
Exemple d'implémentation : Searx est un moteur de recherche open source codé principalement dans Python et JavaScript
Créez un outil pour suivre les données que vous avez téléchargées ou téléchargées sur Internet. Faites-le envoyer un e-mail des rapports hebdomadaires sur votre utilisation (ou vous en informez lorsque vous dépassez une limite d'utilisation spécifiée). En tant que défi bonus, prédire les temps d'utilisation de pointe.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez la page de destination du produit idéal selon vous. Choisissez un produit, créez une page et présentez-le sur votre portefeuille.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Un blog est un must pour tout le monde (selon moi). Combinez ce fait avec le fait que vous apprenez beaucoup de choses tout en construisant votre propre blog à partir de zéro et le tour est joué!
Langue suggérée : javascript, python, rubis
Cadres / outils suggérés : Jekyll (pour Ruby), Django / Flask (Python)
Exemple d'implémentation :
Si vous êtes jamais intéressé à présenter les choses que vous avez construites, créez un site Web de portfolio! La construction d'un site Web pour afficher toutes les choses vous apprendra beaucoup sur la conception du site Web en général (si vous n'avez jamais construit de site Web auparavant).
Langue suggérée : JavaScript, HTML, CSS
Cadres / outils suggérés : GATSBYJS
Exemple d'implémentation :
Bien que cela puisse sembler une petite tâche, la construction d'une bascule de navigation animée vous apprendra beaucoup sur le développement Web. Explorez toutes les idées avec lesquelles vous pouvez jouer et voyez si vous pouvez construire quelque chose de vraiment fascinant!
Langue suggérée : JavaScript, CSS
Cadres / outils suggérés : -
Exemple d'implémentation :
Pouvez-vous trouver le pays à partir d'une adresse IP fournie? Écrivez un script qui peut vous aider avec cela. Pour les points bonus, essayez de trouver un emplacement plus local à partir de l'adresse IP.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez un chatbot à qui vous pouvez parler lorsque vous ennuyez. Pour les points bonus, utilisez l'apprentissage automatique / l'IA pour le rendre intelligent. Je vous suggère de l'implémenter en tant qu'application CLI simple.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Description
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construire un bot qui sera soit
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez un bot pour messager qui peut trop faire des tâches subalternes comme retourner une pièce, rouler un dés, présenter les nouvelles et discuter avec vous lorsque vous ennuyez.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez un bot pour WhatsApp qui peut gratter les informations sur Internet comme les nouvelles, les entrées Wikipedia et d'autres choses. Faites-le capable de garder une trace de certains événements comme l'anniversaire de votre / quelqu'un d'autre et d'envoyer un message automatique vous souhaitant / l'autre.
Langue suggérée : cadres / outils suggérés : Exemple de mise en œuvre :
L'utilisateur choisit une catégorie et obtient un ensemble aléatoire de questions de la catégorie donnée. Implémentez une application de quiz à choix multiple pour éviter plus de complications.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un logiciel de pare-feu qui peut réguler les connexions réseau pour l'utilisateur et également bloquer / informer toute action suspecte à partir de tout site Web / logiciel interne / agent externe.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application pour faire qui peut suivre les différentes étapes d'un travail donné (todo, continu, terminé). Pour les points bonus, faites-le fonctionner avec des tâches récurrentes et incorporez la planification des tâches (quand faire quoi / une date limite pour les tâches).
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un éditeur de texte simple qui peut vous aider à ouvrir, lire et écrire dans des fichiers texte. Pour les points bonus, incorporez des fonctionnalités telles que l'outil de recherche et la recherche regex et remplacent.
Langue suggérée : JavaScript, Java
Cadres / outils suggérés : électron (framework JavaScript)
Exemple d'implémentation : éditeur d'ATOM, note de notes ++
C'est probablement le plus difficile de la liste et le plus vague aussi. Concevoir un système qui prend l'entrée de texte et génère des applications (ou au moins des interfaces d'application) en fonction de la description du texte. Vous pouvez également utiliser une fonctionnalité de glisser-déposer pour permettre aux utilisateurs de créer l'application.
Langue suggérée : -
Cadres / outils suggérés : -
Exemple d'implémentation : Appgyver est un bon exemple de Builder d'application sans code
Créez une application qui permet à l'utilisateur de dessiner n'importe quoi et de l'enregistrer en tant qu'image. Pour des points supplémentaires, ajoutez la coloration et d'autres choses sympas comme les animations.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application App / Web qui permettra à quiconque de créer des questions d'enquête et de les circuler par e-mail pour enregistrer les réponses, puis analyser les données collectées.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un logiciel qui vous aidera à parcourir n'importe quelle page HTML. Pour les points bonus, ajoutez des fonctionnalités supplémentaires comme celles de Chrome et Firefox.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez une application qui obtient la météo à votre emplacement à l'heure actuelle. Vous pouvez soit utiliser un grattoir Web en arrière-plan pour collecter les données ou utiliser une API météo.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application qui formara correctement les équations qu'un utilisateur entrera. Personnellement, je trouve vraiment gênant de travailler avec un logiciel spécial pour simplement écrire et afficher correctement les équations comme le latex, donc, si vous construisez quelque chose qui peut convertir le texte anglais simple en équations correctement formatées, en me cinglant!
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application de lecteur de musique qui peut jouer de la musique à partir de fichiers MP3 et également avoir des fonctionnalités pour l'avant, le rembobinage, la pause et la lecture.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application / application Web de chronomètre. Il devrait également pouvoir être en mesure de parcourir.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application Web qui peut raccourcir toute URL fournie par l'utilisateur. Vous pouvez coder un algorithme qui raccourcit et stocke l'utilisateur fournit URL ou utilise une API.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une interface de paiement qui peut traiter avec un faux espèce (mieux si vous pouvez gérer la monnaie réelle, bien que je ne sache pas si vous devez prendre des mesures supplémentaires pour cela). Les utilisateurs doivent pouvoir recevoir et envoyer de l'argent, et également vérifier leur solde actuel.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application App / Web qui superposera du texte sur une image, afin que les utilisateurs puissent créer des mèmes.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez une minuterie de pomodoro qui vous aidera à faire des pauses à des moments appropriés tout en faisant une tâche. Pour les points bonus, il y a différents formats de minuterie Pomodoro.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application qui vous permet de pratiquer la saisie. Faites-le générer des phrases aléatoires et voyez à quelle vitesse vous pouvez taper les phrases. La dactylographie est quelque chose que de nombreux développeurs ignorent complètement, mais c'est l'une des compétences les plus importantes que quelqu'un travaillant avec des ordinateurs devrait avoir.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un logiciel qui vérifiera et vérifiera les erreurs grammaticales simples dans tout texte que vous écrivez. Pour des points / complexité supplémentaires, essayez de deviner l'ambiance (texte heureux, lettre formelle, etc.) du texte et suggérez des changements appropriés.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application qui vous présentera des nouvelles quotidiennes à partir de sources crédibles. Assurez-vous de mettre en commun des informations uniques sur un titre d'actualités donné de différents sites pour supprimer tout biais qui peut être présent dans une source donnée.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application qui suivra la quantité de calories que vous mangez tous les jours. Essayez également d'incorporer des informations sur d'autres macro et micro-nutriments pour fournir une image plus complète.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application (l'application téléphonique sera meilleure) qui trouve à quel point une route congestionnée est et vous suggère ensuite une meilleure route à emprunter vers votre destination.
Langue suggérée : Java, Kotlin, Swift
Cadres / outils suggérés : Android Studio
Exemple d'implémentation :
Construisez un assistant virtuel qui vous aidera à effectuer des tâches comme appeler des gens, planifier des tâches, créer des listes de tâches, prendre des notes, .. vous obtenez le point.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez un logiciel antivirus qui vous protégera des virus et d'autres vers d'ordinateur et des trucs. Assurez-vous de le mettre à jour fréquemment pour gérer les nouveaux virus.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application qui peut vous permettre d'appeler n'importe qui n'importe qui sur Internet.
Langue suggérée : Python, Java, C ++ pour une application de bureau
Cadres / outils suggérés :
Exemple d'implémentation : NextCloud Talk et Jitsi sont un logiciel d'appel vidéo open source
Créez une application pour une bibliothèque hypothétique (ou mieux, réelle près de chez vous) qui aidera à la gestion. Vous devez garder une trace des livres que vous avez, des livres à commander, des personnes ayant accès à la bibliothèque, des livres empruntés, retournés et d'autres tâches connexes.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez votre propre système de gestion de base de données comme MySQL ou PostgreSQL. Il ne doit pas être compatible avec eux, mais il faut aider les utilisateurs à gérer efficacement leurs données et à créer des tables relationnelles.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez un logiciel qui analysera les images (ou mieux, les flux de came en direct) et les faces de balise dans les images comme un visage ou avec une boîte.
Langue suggérée : Python (ou toute autre langue que vous souhaitez apprendre)
Cadres / outils suggérés : OpenCV
Exemple d'implémentation :
Construisez un classificateur de spam qui filtre les publicités et autres e-mails non réquisitionnés de personnes que vous ne voulez pas vraiment regarder.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une extension de navigateur qui bloque les spoilers de films sur les sites Web. Je l'ai mis dans l'IA car vous devez penser à un algorithme changeant qui devrait être assez intelligent pour identifier les spoilers à partir d'un texte.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Vous ennuyé des mêmes chansons mais vous ne savez pas quoi essayer ensuite? Construisez une IA pour vous suggérer de la musique en fonction de votre goût que vous êtes plus susceptible de aimer.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application pour traduire le texte d'une langue à une autre. Pour les points bonus, incluez un traducteur d'image qui peut obtenir du texte de l'image et le traduire.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un logiciel qui peut reconnaître les gestes d'une vidéo de caméra, puis effectuer certaines tâches en fonction du geste.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Entrez une vidéo et obtenez un sous-titre! Créez un logiciel qui crée automatiquement des sous-titres à partir d'une vidéo fournie. Cela peut sembler difficile au début, mais recherchez le traitement du langage naturel pour voir à quel point les machines sont déjà en ce qui concerne la compréhension du langage humain.
Langue suggérée : Python (car il serait vraiment facile de mettre en œuvre avec les bibliothèques disponibles)
Cadres / outils suggérés : Autosub
Exemple d'implémentation : vous pouvez référer la documentation ici ou vérifier les étapes fournies ici.
Créez un logiciel qui prend le nom d'une entreprise et certains mots clés connexes pour générer un tout nouveau logo pour l'utilisateur. Rendre le logo modifiable afin que l'utilisateur puisse apporter des modifications s'ils n'aiment pas la sortie générée.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un système de recommandation qui vous permet de choisir le prochain film que vous souhaitez regarder. Au lieu de copier un recommandateur de film existant avec un algorithme bien étudié, essayez de trouver votre propre algorithme et de le tester.
Langue suggérée : Python (ou toute autre langue avec laquelle vous êtes à l'aise)
Cadres / outils suggérés : -
Exemple d'implémentation : il existe de nombreux systèmes de recommandation Netflix, objectif de film, etc.
Semblable au traducteur vidéo, mais vous devez maintenant traduire un audio en langue des signes. La partie de la langue des signes peut prendre la forme d'une série d'images ou d'une vidéo.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Ce projet sera techniquement difficile et approfondra votre compréhension du fonctionnement des ordinateurs et des systèmes d'exploitation. Construire un système d'exploitation à partir de zéro est une tâche vraiment intimidante, mais vous trouverez sûrement un moyen de le faire.
Langue suggérée : des langues de bas niveau comme C / C ++.
Cadres / outils suggérés : -
Exemple d'implémentation : LFS est un projet qui explique chaque étape pour créer un système d'exploitation Linux
Créez une application Web pour visualiser les différents algorithmes de mélange qui peuvent être utilisés pour mélanger un jeu de cartes standard.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une page Web / vidéo qui visualisera les différents algorithmes de tri. Vous pouvez utiliser différents types de visualisations: points, barres, barres de couleur, points dispersés circulaire, etc.
Langue suggérée : traitement, javascript
Cadres / outils suggérés : P5.JS (JavaScript)
Exemple d'implémentation :
Faites un logiciel qui passera par votre code (sans l'exécuter) et vérifiez les incohérences ou les erreurs (erreurs de syntaxe, indentation, etc.) qui peuvent causer des problèmes pendant l'exécution.
Langue suggérée : Toute langue avec laquelle vous vous sentez à l'aise avec des cadres / outils suggérés :
Exemple d'implémentation :
Si vous construisez le système d'exploitation, vous aurez sûrement besoin d'un terminal de ligne de commande. Essayez de cloner la coquille de bash ou le PowerShell Windows en tant que projet indépendant pour vous faciliter la création de votre propre système d'exploitation.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Écrivez un script qui passe par votre code OOPS et crée un diagramme UML bien formé pour votre code.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Faites un visualiseur pour les différents algorithmes de finition de chemin. Ajoutez cela à un labyrinthe et vous avez un programme qui peut générer et résoudre des labyrinthes.
Langue suggérée : traitement, javascript
Cadres / outils suggérés : P5.JS (JavaScript)
Exemple d'implémentation :
Faites un système de contrôle de version approprié comme Git qui peut suivre les modifications que vous apportez à votre projet.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Codez un langage de programmation à partir de zéro. Ce projet vous donnera de grands aperçus sur les raisons pour lesquelles les langues sont structurées comme elles sont et quelles langues correspondent aux tâches les mieux. Il y a pas mal de langages de programmation, donc, incorporez des fonctionnalités vraiment étranges (ou utiles) pour faire ressortir votre langue (par exemple, consultez BrainFuck).
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un logiciel qui cryptera et décryptera le texte pour vous. Incorporez pas mal d'algorithmes pour fournir de la flexibilité à l'utilisateur.
Langue suggérée : C, C ++, Java, Python
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un logiciel qui peut gérer les différents mots de passe que vous utilisez sur différents sites Web. Pour les points bonus, incorporez un générateur de mots de passe aléatoire.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un logiciel qui peut crypter et verrouiller un dossier sélectionné. Le contenu du dossier ne doit pas être accessible / copié / déplacé sans le mot de passe correct.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un site Web / application qui vérifiera la force d'un mot de passe donné. Pour le rendre plus sophistiqué, incorporez une bonne mesure de la force d'un mot de passe (consultez l'exemple).
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation : à quel point mon mot de passe est-il sécurisé?
Codez le jeu de Pong. Faites-le multijoueur et attrayant visuellement.
Langue suggérée : Python (ou toute autre langue de choix)
Cadres / outils suggérés : Pygame (Python)
Exemple d'implémentation :
Ajoutez au programme Pong que vous avez créé ci-dessus. Créez un adversaire AI contre lequel jouer en mode solo.
Langue suggérée : Python (ou toute autre langue de choix)
Cadres / outils suggérés : Tensorflow, Pytorch, Openai / Gym
Exemple d'implémentation :
Essayez de coder le jeu de risques classique. Assurez-vous de connaître toutes les règles et de comprendre correctement le jeu avant de le coder.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Codez le jeu des échecs à partir de zéro. Construisez une planche, les pièces (vous pouvez utiliser des images pour cette partie). Code dans les règles et assurez-vous de ne permettre aucun mouvement non valide.
Langue suggérée : javascript, python, toute autre langue que vous souhaitez maîtriser
Cadres / outils suggérés :
Exemple d'implémentation : échecboard.js
C'est l'un des éléments les plus simples de la liste. Pour un défi supplémentaire, essayez de générer différentes cartes pour jouer.
Langue suggérée : toute langue avec laquelle vous vous sentez à l'aise
Cadres / outils suggérés :
Exemple d'implémentation :
Codez le jeu de Tetris à partir des Tetrominoes à l'interface de jeu. Une application Web est meilleure car elle vous permettra de jouer de n'importe où. Pour un défi supplémentaire, essayez d'implémenter une version HTML et JavaScript simple sans aucun cadre ou bibliothèque supplémentaire pour vous aider.
Langue suggérée : JavaScript, HTML
Cadres / outils suggérés :
Exemple d'implémentation :
Maintenant que vous avez probablement construit le jeu d'échecs, construisez une IA contre laquelle vous pouvez jouer. Pour l'inspiration, consultez les exemples fournis. Le défi ici est de faire une IA suffisamment rapide pour jouer. La plupart des IA simples pour les échecs sont vraiment lents (prenez environ une minute ou plus pour un mouvement). Faites votre interface d'échecs en matière de moteur avec d'autres programmes tels que via l'interface d'échecs universelle. Ensuite, vous pouvez le tester contre d'autres robots / joueurs en ligne.
Langue suggérée : Python, javascript
Cadres / outils suggérés : Exemple d'échec
Construisez une simple AI de serpent qui joue un serpent. Pour un défi supplémentaire, générez des cartes aléatoires, puis entraînez votre IA à jouer sur n'importe quelle carte aléatoire que vous générez.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez un programme simple qui générera des cartes de terrain aléatoires grâce à la production procédurale avec une graine fournie par l'utilisateur.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez le jeu classique du cuirassé. Vous pouvez créer une application CLI ou une bien meilleure application avec des graphiques à l'aide de n'importe quel module graphique 2D.
Langue suggérée : Python (ou toute langue que vous souhaitez apprendre)
Cadres / outils suggérés : Pygame (Python)
Exemple d'implémentation :
C'est l'un des jeux les plus simples que vous pouvez construire. Vous pouvez utiliser des images pour les tuyaux et l'oiseau ou générer votre propre oiseau et tuyaux personnalisés pour le projet.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une application CLI pour tic-tac-toe ou une interface graphique. L'une des idées intéressantes est de laisser l'utilisateur dessiner XS et OS, puis de laisser la machine s'identifier automatiquement si vous dessiniez un X ou un O.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Implémentez un puzzle de mémoire classique où l'utilisateur doit cliquer sur deux cartes similaires pour les éliminer. Tanger les cartes au hasard au début et donnez à l'utilisateur un nombre fixe de chances ou un temps fixe pour effacer la carte.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Les jeux vidéo fonctionnent sur les moteurs de physique. Construire le vôtre. Vous pouvez ensuite utiliser ce moteur pour construire des jeux ou effectuer des simulations. Essayez de construire un moteur de physique 2D ou 3D qui peut gérer la collision, le mouvement, l'accélération, la gravité et d'autres forces du système. Vous devrez peut-être d'abord comprendre un peu de physique pour pouvoir construire quelque chose, alors prenez votre temps pour celui-ci.
Langue suggérée : traitement (toute autre langue avec laquelle vous vous sentez à l'aise aussi)
Cadres / outils suggérés :
Exemple d'implémentation :
Concevez une IA pour le jeu Flappy Bird. Essayez quelques algorithmes d'apprentissage pour former votre réseau - Q-Learning, soigné, etc. Construisez l'IA parfaite qui jouera à Flappy Bird que vous (ou toute autre personne).
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez une IA qui est imbattable (gagne toujours ou du moins dessine) dans tic-tac-toe. Au lieu de simplement coder dur ce qui va jouer quand, construisez une IA qui apprend à jouer, puis conçoit des stratégies pour gagner.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez une simulation pour un ascenseur. Cela peut sembler une simulation aléatoire, mais vous devez beaucoup réfléchir avant d'implémenter quelque chose à ce sujet, à quel plancher à laquelle aller lorsque deux boutons sont pressés? Y a-t-il un changement si vous ajoutez une préférence pour monter ou descendre? et ainsi de suite.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez une simulation du monde entier. Essayez d'être aussi détaillé que possible. Gardez les choses simples lorsque vous vous sentez coincé et l'améliorez lentement. Traitez-le comme un jeu autonome si cela facilite les choses. Pour les points bonus, ajoutez une IA au système pour le laisser fonctionner seul.
Langue suggérée : C ++ (ou C - Vous aurez besoin d'un langage rapide pour la simulation)
Cadres / outils suggérés : Unity (bon pour les visualisations)
Exemple de mise en œuvre : les bibites, simulant l'écosystème par Sebastian Lague
Construisez un outil qui générera des personnages aléatoires pour les jeux que vous jouez / construisez comme Pathfinder ou Divinity: Original Sin. Implémentez d'abord un générateur de caractères aléatoire, puis ajustez-le pour créer des caractères que vous aimerez (ajoutez une IA).
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Le Game of Life de Conway simule la vie de cellules simples qui obéissent aux lois algorithmiques. Vous pouvez lire les règles algorithmiques de la page Wikipedia et les implémenter. Rendre le programme capable de rendu graphique pour afficher le produit final.
Langue suggérée : traitement, javascript
Cadres / outils suggérés : P5.JS (JavaScript)
Exemple d'implémentation :
Créez une application Web simple pour vous informer lorsqu'un article que vous convoitez en vente à un bon prix. Vous pouvez utiliser un grattoir Web pour extraire la page du produit de l'élément et vous informer de tout changement de prix.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Créez une interface simple (application Web / application téléphonique) que vous pouvez utiliser pour ajouter et catégoriser vos dépenses. Générez des rapports mensuels en fonction des entrées et écrivez des alertes personnalisées pour des choses comme "dépenser trop pour le café ... comme toujours".
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
L'application (ou le service) doit générer de nouvelles recettes / gratter des recettes du Web. Donc, lorsque vous cuisinez par sa recette, vous l'évoyez pour lui dire à quel point la recette était bonne.
Langue suggérée :
Cadres / outils suggérés :
Exemple d'implémentation :
Construisez une extension du navigateur qui traduira toute phrase fournie en une combinaison d'emojis. Vous pouvez utiliser l'extension pour modifier automatiquement les textes qu'un utilisateur envoie par messagerie ou e-mail ou même l'utiliser pour aider à écrire des articles de blog.
Langue suggérée : JavaScript
Cadres / outils suggérés :
Exemple d'implémentation :
Créez un outil de recherche qui met en œuvre des expressions régulières. With it you can easily search for text matching a pattern in websites or documents that you may be writing or browsing.
Suggested Language : JavaScript
Suggested Frameworks/Tools :
Example Implementation :
Code a script that scrapes the currency conversion rate and then converts from a given currency to another suing the current market rate.
Suggested Language : Python, JavaScript
Suggested Frameworks/Tools :
Example Implementation :
Code a script that takes in a picture and then creates the Pixel Art from the image. You can achieve this by downsizing the image. You should also be able to generate random art using this script.
Suggested Language :
Suggested Frameworks/Tools :
Example Implementation :
Generate a tree like structure using the directories present in a given path by the user. This allows you to see the positioning of files and directories. We are visual animals and thus, visual depictions of directories are more understandable.
Suggested Language :
Suggested Frameworks/Tools :
Example Implementation :
Write a script to generate random usernames that you can use in games or various other places.
Suggested Language : Python or any other language
Suggested Frameworks/Tools : Random (Python Library)
Example Implementation :
Write a script that converts decimal numbers to roman numerals and vice versa. This may seem like an easy task but I assure you its not that easy. Essayez-le.
Suggested Language : Python or any other language
Suggested Frameworks/Tools :
Example Implementation :
Project Euler contains mathematical challenges that require programming tools to be solved. There are over 700 problems that you can solve, I urge you to document each solution in a properly organized way (probably build a repo for the solutions) so that you can showcase them online.
Suggested Language : Any language you want to practice
Advent of Code challenges occur every year in the days leading up to Christmas. They include lots of fun programming challenges that can help you develop your chops in a programming language that you want to master.
Suggested Language : Any language you want to master
Kaggle offers fascinating challenges to introduce you to the basics of machine learning with Python or R: Use a real dataset from the Titanic passenger log to predict which passengers were most likely to survive the disaster.
Suggested Language : Python or R