Java >> Tutoriel Java >  >> Java

Pourquoi j'exhorte mes étudiants à utiliser DrJava

Si vous êtes avec moi depuis un certain temps, j'ai probablement poussé DrJava sur vous à un moment donné. Finalement, j’ai décidé d’articuler mon raisonnement dans un article.

Qu'est-ce que DrJava ?

Pour ceux d'entre vous qui ne le savent peut-être pas, DrJava est un IDE conçu par l'Université Rice pour les étudiants qui souhaitent apprendre Java. Histoire amusante :j'ai postulé à Rice pour des études supérieures, mais je n'ai pas été admis malgré mon intérêt pour leur logiciel.

Quoi qu'il en soit, DrJava a beaucoup de ce que vous attendez d'un IDE :un éditeur avec coloration syntaxique ainsi qu'une multitude de fonctionnalités telles que les tests JUnit intégrés, la couverture de code et la génération d'API Javadoc.

De plus, il existe une poignée de fonctionnalités que DrJava possède et n'a pas, ce qui le distingue comme un excellent outil pour les éducateurs. Par exemple, DrJava n'a aucune forme de autocomplétion . Mieux encore, DrJava dispose d'une console, le volet des interactions, que vous pouvez utiliser pour exécuter des lignes de code comme si Java était interprété.

Cela dit, il est probable que vous n'en ayez jamais entendu parler, car l'industrie a tendance à se tourner vers Eclipse, IntelliJ et NetBeans. Tous ces outils sont excellents, mais DrJava est mon IDE de prédilection (sans jeu de mots) pour l'enseignement de Java. Naturellement, la question est « pourquoi ? »

Fonctionnalités DrJava

Comme mentionné précédemment, il y a deux caractéristiques majeures de DrJava que j'adore en tant qu'éducateur :le volet des interactions et l'absence de saisie semi-automatique. De plus, il existe une poignée de fonctionnalités pour les étudiants plus avancés. Parlons d'eux.

Le volet Interactions

De loin, la meilleure fonctionnalité absolue de DrJava est le volet des interactions. C'est une fonctionnalité que je n'ai pas encore vue implémentée dans un autre IDE (cependant, j'ai récemment découvert qu'elle est livrée en standard avec le JDK sous jshell), et je pense que c'est génial. Fondamentalement, cela vous permet de traiter Java comme s'il s'agissait d'un langage interprété. En d'autres termes, vous pouvez exécuter des commandes ligne par ligne sans avoir à faire tourner une classe avec une méthode principale. C'est glorieux.

Juste pour mettre les choses en perspective, voici le code que vous auriez à écrire pour HelloWorld dans un IDE normal :

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, World!");
  }
}

Et voici le code dans le volet des interactions :

System.out.println("Hello, World!");

Pour modifier le message avec un éditeur traditionnel, vous devez modifier le code source, recompiler et réexécuter la solution. Dans le volet des interactions, il vous suffit d'appuyer sur la flèche vers le haut, de modifier le message et d'appuyer sur Entrée :

En règle générale, j'aime utiliser le volet des interactions pour enseigner Java sans réellement introduire de classes. En d'autres termes, j'aime parler de variables, de types, de méthodes et de flux de contrôle sans avoir à trop parler de public vs privé, statique vs instance, etc. La nature de pouvoir rapidement prototyper du code est merveilleuse.

Comme avantage supplémentaire, les étudiants sont capables de faire beaucoup d'erreurs sans toute cette frustration de la boucle de compilation/exécution. Essayez une ligne, regardez-la casser, puis essayez une autre ligne. C'est si pratique. De plus, cela permet aux étudiants de s'habituer à utiliser la ligne de commande. Pouvoir appuyer sur la flèche vers le haut et modifier légèrement une ligne de code avant de l'exécuter à nouveau est vraiment incroyable.

Dans l'ensemble, je pense que le volet des interactions est une raison suffisante pour utiliser DrJava sur tout autre IDE volumineux. Les élèves n'ont tout simplement pas besoin de toutes les cloches et de tous les sifflets lorsqu'ils apprennent à coder pour la première fois.

L'absence de saisie semi-automatique

Bien que le volet des interactions soit à lui seul une fonctionnalité intéressante, j'aime le fait que DrJava n'ait pas de saisie semi-automatique. En d'autres termes, tout le code doit être tapé à partir de la mémoire. Normalement, je ne perdrais pas de temps à mémoriser du code, mais il est essentiel que les débutants écrivent leur propre code. Sinon, ils n'apprendront jamais la syntaxe.

En prime, si vous donnez des examens où les étudiants doivent écrire du code à la main (je les déteste au fait), vos étudiants vous remercieront de les avoir forcés à apprendre la syntaxe.

Cela dit, tout le monde sait à quel point Java est verbeux, donc taper du code à la main peut être un processus long et pénible dans DrJava. Par conséquent, je ne recommande pas l'outil à quiconque sait ce qu'il fait. En d'autres termes, n'utilisez DrJava que si vous essayez simplement d'apprendre la syntaxe.

Pas de compilation en temps réel

Lorsque vous utilisez des éditeurs comme Eclipse, vous remarquerez que votre code se compilera tout seul. Après tout, des erreurs apparaîtront au hasard dans votre code avec un soulignement rouge ondulé. Passez la souris sur cette erreur et vous verrez exactement ce qui ne va pas.

Avec DrJava, vous ne bénéficiez pas d'un soulignement rouge. Au lieu de cela, vous devez réellement lire les messages d'erreur lorsque vous compilez votre code. Personnellement, je ne suis pas vraiment masochiste moi-même, mais je pense qu'il est essentiel que les étudiants comprennent les choses par eux-mêmes. Sinon, ils poursuivront simplement les lignes rouges autour de l'écran jusqu'à ce que tout "fonctionne".

Autres fonctionnalités

En plus de tout ce qui a déjà été mentionné, DrJava a quelques fonctionnalités plus intéressantes. Par exemple, JUnit est intégré à l'outil, afin que les étudiants puissent rédiger des tests sans avoir à gérer les problèmes de dépendance. En fait, j'aime profiter de cette occasion pour enseigner les tests dès que j'enseigne les méthodes.

En plus des tests JUnit, DrJava a une couverture de code intégrée. Si vous écrivez des tests JUnit, vous pouvez vérifier la quantité de code couverte par vos tests en un clic. Ensemble, ces trois fonctionnalités permettent aux étudiants de se familiariser rapidement avec une poignée de bonnes pratiques logicielles.

De même, DrJava est construit avec JavaDoc à l'esprit. Si vous écrivez des commentaires JavaDoc, DrJava vous permettra de rendre facilement votre propre documentation en un clic. Je peux personnellement dire que c'est un grand moment "wow" pour les étudiants. Il n'y a rien de tel que de voir vos commentaires prendre vie sous forme de page Web.

Enfin, DrJava a une petite fonctionnalité de lisibilité qui indente automatiquement le code à la ligne actuelle lorsque la tabulation est pressée. Alors que les éditeurs comme Eclipse ont généralement des formateurs intégrés qui s'activent lorsque le code est enregistré, ces fonctionnalités peuvent être difficiles à configurer. Pendant ce temps, l'indentation automatique dans DrJava peut être activée en sélectionnant tout le code et en appuyant sur l'onglet. Boum, bonne indentation.

Le point de vue d'un enseignant

Personnellement, j'exhorte mes étudiants à utiliser DrJava depuis que j'ai commencé à enseigner. Naturellement, j'ai été exposé à l'outil lorsque j'ai commencé à coder, et je pense que beaucoup de débutants pourraient également en bénéficier. Malheureusement, la plupart des cours d'aujourd'hui déstabilisent les étudiants avec Eclipse, mais que pouvez-vous faire ?

En tant qu'éducateur, si je ne peux pas convertir mes élèves à DrJava, je les y expose au moins en classe. Je suis pratiquement connu pour répondre aux questions sur l'air de "Eh bien, essayons-le" avant de déposer rapidement du code dans le volet des interactions de DrJava. C'est vraiment un outil formidable pour tous ceux qui enseignent Java.

Pour tous ceux qui travaillent avec Eclipse, il existe en fait un plugin DrJava pour Eclipse. Pour autant que je sache, cela fonctionne toujours, du moins depuis Eclipse 2019-03. Il ajoute le volet des interactions directement dans Eclipse, afin que les étudiants puissent au moins commencer à tester des extraits de code.

En tout cas, j'espère vous avoir ouvert les yeux sur un nouvel outil aujourd'hui. Sinon, faites-moi savoir s'il y a quelque chose que vous préférez utiliser en classe. Si vous êtes étudiant, comment avez-vous appris Java ? Je suis toujours intéressé à trouver de nouvelles façons d'enseigner le même matériel.

Pendant que je vous ai ici, consultez certains de ces autres articles liés à l'enseignement :

  • Réflexion sur mon premier semestre d'enseignement
  • Comment j'ai automatisé mes responsabilités de notation
  • Comment enseigner les tableaux en informatique

Comme toujours, si vous appréciez ce contenu, envisagez de devenir membre. Ou, à tout le moins, abonnez-vous à ma newsletter hebdomadaire ! De cette façon, vous ne manquerez plus jamais un autre article. Jusqu'à la prochaine fois !


Balise Java