18. What is an IDE?#

Work through the following on your own or in groups in class.

If in class, make sure to stop at 1:35 to leave extra time for the experience report, because it is a little longer than the regular in class experience badges.

18.1. Review your notes#

Important

Do this before proceeding to the next section. The x.y are sections and the x.y.z are subsections.

Either discuss with peers in class or on the GitHub (asynch) discuss commonalities in your IDE notes.

Note

Spend 15-20 minutes on this

18.1.1. In person#

  1. What different tasks did all of you use an IDE for?

  2. What features of an IDE did you all use?

  3. Which features were used but not very much?

  4. Share the most helpful IDE feature you use?

Update your individual IDE notes with 1-2 things you learned from your peers. Include this updated file in your experience report.

18.1.2. On GitHub#

There are questions on the GitHub Discussion. Update your individual IDE notes in your KWL repo with links to your post and replies.

18.2. Learn more#

Note

This should take the majority of class time. Spend 30-40 minutes on this.

18.2.1. In person#

In class with your peers you can divide these up and read one and then share key points with others.

With your group, build a large list of IDE attributes or features that would be important, and make a table of how would you evaluate attribute? Which ones would you evaluate by just if it exists or not? Which ones would you evaluate in different degrees, what attributes of them would you evaluate?

Discuss with your group how you would rank them. You do not all have to agree on a final ranking, but notice the differences.

vs code is open source

Have one member of the group summarize what your group discussed on GitHub for your classmates. Note the ranking, with any disagreements. Include your group members by @ mentioning them.

18.2.2. Asynchronous#

After reading the above, also read at least 3 different articles or blog posts about the “best IDE” for your favorite language or for multiple languages.

Notice what IDE attributes or features the authors think is important, and how they evaluate each criterion. Which ones are evaluted as present/missing? Which ones are evaluated in more detail.

Join the discussion on on GitHub summarizing what you found the most important criteria to be and if you personally agree or not. Link your sources.

18.3. Features and Extensions#

Note

Skip this if the above runs over time, otherwise spend a few minutes preparing and then only 2-3 minutes per student demo-ing your feature or extension.

If in class, share your favorite IDE features or extensions to get a head start on your practice badge.

Think about how I modeled the multi-cursor feature in class.

Optional: Try using the Air media to demo it.

18.4. Experience Reports#

For today, whether you are in class or asynchronous use the experience report (makeup) action. Use ISO date format: YYYY-MM-DD for the workflow input.

18.5. Prepare for Next Class#

Review the prep from 2023-11-07 or do it if you have not.

18.6. Review today’s class#

  1. Try a new IDE and make some notes about how it was to learn in newide.md What is easy? hard? What could you apply from the ones you already use? Were there features you had trouble finding?

  2. Add at least one comment on others’ posts on the GitHub discussions about IDEs.

18.7. More Practice#

The first three tasks are the practice task, Option A and Option B are pre-approved explore badges. Hover over one of them on your issue to create an independent issue to track it. Title the new issue Explore: IDE-X where X is A or B based on your choice. On the explore badge, when it is ready for submission, request a review from Dr. Brown.

  1. Examine the IDE you use most and add frequentide.md to your kwl with notes about which features it does/not have based on what you learned in the in-class activity.

  2. Try a new IDE and make some notes about how it was to learn in newide.md What is easy? hard? What could you apply from the ones you already use? Were there features you had trouble finding?

  3. Add at least one comment on others’ posts on the GitHub discussions about IDEs.

  4. (option A) Compare at least 3 IDEs for working in a single language. Your comparison should be based on first hand experience using each of the IDEs. Complete the same task in each tool. Create favoriteide.md to define and justify your preferred IDE. Describe the procedure you did to compare the IDEs. Include a ranked list of your criteria(which attributes and features) with justification/explanation of your ranking of these criteria. Then describe how each of the three IDEs meets/does not meet those criteria, and a conclusion of which IDE is the best based on your criteria.

  5. (option B) Create a small repo owned by introcompsys named ide-USERNAME where USERNAME is your gh username with some example code, a vscode/codespace devcontainer file that installs CodeTour and your favorite extension(s). Write a CodeTour that walks someone through using your favorite extension to do something with the code. The example code can be any language, can be very simple, can even have a bug in it if that helps your example. You can use an LLM to generate some code for this purpose if you do not have some available to you already, but you cannot share solutions to a course assignment without that instructor’s permission. Link to your repo in your

18.8. Questions After Today’s Class#

Will be gathered from your experience reports.