star twitter facebook envelope linkedin instagram youtube alert-red alert home left-quote chevron hamburger minus plus search triangle x

Course Catalog

Back

Learning Generative AI in Software Development

95-711

Units: 3

Description

Dates: This micro course will meet from 9:00 AM until 1:00 PM on
   Friday, October 24, Saturday, October 25, and Sunday, October 26.

Place: Hamburg Hall room 1002 

Description: Generative AI has the potential to significantly
   enhance developer productivity. This micro-mini course delves
   into how Microsoft Copilot can be used for various tasks,
   including code generation, chat assistance, refactoring,
   unit testing, data file manipulation, and documentation.
   Examples will span multiple programming languages, such
   as Java, Python, and Javascript. The course will be
   hands-on and involve teamwork. Everyone will need a
   laptop to run code. There will be pre-work to set
   up your environment and post-work to include a
   short (1-to-3 page) paper.

Learning Outcomes

Learning Objectives:
   1. Learn how to use Copilot to create prompts to generate code.

   2. Evaluate the code generated by Copilot for correctness and style.

   3. Understand issues related to Copilot's effect on software 
       development productivity.

   4. Utilize Copilot to assist with problem-solving using 
       pseudocode.
   5. Investigate Copilot's ability to create correct documentation
       from an existing code base.

   6. Learn how Copilot can be used to generate tests.

   7. Experiment with using Copilot to create code to process
       various message formats (XML, JSON, CSS).
   8. Understand Copilot's ability to assist with graphical
       display languages (HTML, MathML, etc.).

   9. Learn how Copilot can be used to translate existing 
       code into other languages.

  10. Investigate various prompt patterns that may be used 
        to enhance Copilot prompts.

Prerequisites Description

Prerequisites: While there is no formal prerequisite, it is
   assumed that students have some programming background.
   Specifically, each student should be familiar with
   concepts such as variables, data type, iteration, and
   functions in at least one programming language (not
   necessarily limited to Python or Java).