J'enseigne périodiquement une introduction au cours de programmation utilisant Java . Je veux donner à mes étudiants des devoirs passionnants auxquels ils peuvent se rapporter ou trouver intéressants . À tout le moins, je veux des affectations qui ont du sens et qui ont une cohésion interne (par exemple, certains très mauvais exercices de programmation semblent artificiels juste pour que vous deviez utiliser la construction de programmation la plus récente couverte).
Pour vous donner une idée de la portée, voici ce qui est couvert :
- Les affectations doivent être en Java, l'utilisation d'une bibliothèque externe peut être effectuée, mais il faudrait que ce soit une API simple et non un framework complet
- Variables, primitives et chaînes
- Entrée et sortie de la console
if
,for
,while
- Opérateurs arithmétiques et logiques
- Graphiques simples avec dessin de lignes et de formes
- Méthodes statiques
- Tableaux unidimensionnels
Les étudiants n'entreront pas dans des sujets avancés (par exemple, pas de récursivité, pas d'accent sur l'héritage). Ainsi, je ne recherche pas de projets complexes: "Demandez-leur d'écrire un compilateur C. Je l'ai fait quand j'avais 5 ans et c'était la seule façon d'apprendre!"
Si vous avez des idées qui sont plus avancées que la portée, veuillez les publier sur la question «difficile» liée ci-dessous, et non celle-ci.
Au lieu de cela, ce que je recherche, ce sont des idées intéressantes qui peuvent être accomplies dans un programme court. Par exemple:
Les élèves peuvent écrire une version console du générateur "Star Wars Name" . C'est effectivement lire des cordes et utiliser
substring
, mais je pense que c'est amusant. Une variante similaire serait un programme " Mad Libs ". J'ai utilisé celui-ci il y a cinq ans, et il est peut-être déjà «périmé».À l'aide de certains trigonomètres qui leur sont fournis, les élèves peuvent dessiner des polygones réguliers et créer des formes en spirale intéressantes.
Il n'est pas non plus exclu d'utiliser une classe d'animation simple avec la plupart du code qui leur est fourni. Et si vous connaissez un service Twitter ou Facebook accessible avec une simple API, je serais très intéressé de le savoir.
Veuillez noter que cette question est différente de la question «Questions Java difficiles pour les débutants ». Je ne cherche pas un défi en soi, juste intéressant. Je pense que si les étudiants travaillent sur quelque chose où ils peuvent facilement répondre "pourquoi quelqu'un voudrait-il jamais programmer cela?" alors ils apprendront mieux.
Même des problèmes simples comme le calcul de miles par gallon peuvent être bons. Bien que, s'il existe un moyen de le mettre à jour pour être plus pertinent, tant mieux. Si vous avez un exercice ailleurs (un livre ou un site Web), veuillez citer la source.
Pour vous aider à penser à la première année typique aujourd'hui, consultez la liste Beloit Mindset , pour de nombreux exemples qui vous feront sûrement vous sentir vieux.