Introduction to AI Coding IDE Tools


  • Artificial intelligence is not as a single capability or system, but as a broad collection of techniques and approaches for solving different kinds of problems.
  • AI can be grouped into 3 broad categories: Rule-Based and Decision Systems, Predictive and Analytical Systems, and Generate Systems
  • GPT (Generative Pre-trained Transformer) is a type of large language model built on transformer neural networks, which use attention to process entire sequences and capture context, enabling coherent, context-aware text or code generation.
  • GPT generates content one token at a time, predicting each new token based on all previous tokens to produce fluent, contextually relevant, and novel outputs.
  • GPT models are trained in stages: collecting large text datasets, designing the neural network, pre-training on broad data, fine-tuning on task-specific datasets, and iteratively evaluating and improving performance.
  • ChatGPT is a user-friendly application built on GPT models, while GPT itself is also integrated into other tools like Microsoft Copilot, search engines, and coding environments.
  • Technical debt accumulates when skipping design phases for quick AI-generated solutions, requiring future maintenance effort to simplify and clarify code.
  • AI coding assistants are relatively new as a technology and subject to rapid change and advancement.
  • The Copilot free tier currently includes access to three AI models each with a different balance of speed and purpose.
  • The Copilot free tier currently allows 2000 completions and 50 premium requests per month.

Introduction to Microsoft Visual Studio Code


  • Integrated Development Environments (IDEs) are all-in-one tools for writing, editing, testing, and debugging code, improving developer efficiency by reducing the need to switch between different applications
  • Virtual environments are used to contain dependencies specific to a particular code project
  • Key VSCode features are accessible via the left navigation bar and the menu
  • VSCode’s capabilities can be increased by installing extensions
  • A VSCode “workspace” is a project that consists of a collection of folder and files
  • Git source code repositories on GitHub can be cloned locally and opened from within VSCode
  • Syntax highlighting gives you immediate feedback of potential issues as you write code
  • Code completion helps to automatically finish incomplete code statements and names
  • Run a script by selecting the “Play” icon in VSCode
  • Output from running a Python script is displayed in the interactive “console” or “terminal”

Getting Started with using Copilot within VSCode


  • Copilot’s capabilities are added to VSCode by installing two plugins, GitHub Copilot and GitHub Copilot chat.
  • Consider and configure the level of privacy for Copilot by configuring it within your account at GitHub’s website.
  • Generally, it’s recommended to disable Suggestions matching public code at a minimum to avoid it making use of public code sources in a way that isn’t properly licensed.
  • Copilot has three modes of operation: Ask, Edit and Agent, each delegating a higher degree of autonomy to Copilot.
  • Due to the way LLMs process requests, responses based on the same question will likely show differences.
  • To write a good chat response, be specific and add as much context as possible.
  • Add context to a prompt by including # followed by the context, e.g. #inflammation-plot.py or #codebase'.
  • Personalise Copilot’s context by creating an .github/.copilot-instructions.md file.
  • Explicitly deny (or allow) Copilot to use specific file types by editing or adding github.copilot.enable in settings.json.
  • Due to the way LLMs work, there is no “rationale” behind Copilot’s responses.
  • Check Copilot’s usage for inline suggestions and chat messages within your current tier by selecting it’s icon in the status bar.

How to use Copilot to Improve an Existing Codebase


  • Inline suggestions are made by Copilot as “ghosted text” in the editor which you autocomplete with the Tab key.
  • Copilot can suggest small-scale modifications for your approval based on a segment of code by selecting the code and using Edit mode in the chat window (or pressing Ctrl + I or Cmd/Windows Key + I) and entering a request.
  • Always review and never blindly accept AI-generated code suggestions.
  • Copilot can write summary Git commit messages for us in VSCode by selecting the sparkle icon next to the commit message text box in the Source control navigation tab.
  • Agent mode can suggest larger-scale modifications to our code across multiple files by using Agent mode in the chat window, and entering a more comprehensive and complex request.
  • Select Retry to have Copilot re-generated a response.
  • It’s important to consider how to include AI-based coding assistants in your day-to-day development process to ensure accountability, quality, and sustainability are maintained within a codebase.
  • Reusable prompts in VSCode Copilot are predefined instructions or templates that you can quickly insert and use to guide Copilot’s code generation or assistance.

Investigate a New Codebase


  • Build an array of useful reusable prompts to accomplish specific tasks related to software development.
  • Review their usefulness and improve them over time.