IS4010: AI-Enhanced Application Development

Brandon M. Greenwell

Who am i and why are we here?

  • A little about me and my background.
  • More importantly, why this course exists in this new format.
  • This isn’t just a coding class; it’s a course on how to build modern software in the age of AI.
  • We’re going to learn how to partner with AI to become faster, more creative, and more effective developers.

The software world has changed

  • AI code assistants (like github copilot) are no longer a novelty; they are rapidly becoming a standard part of the professional developer’s toolkit.
  • Knowing how to use these tools effectively is becoming a required skill for new graduates.
  • Our goal is to make you proficient not just in a language, but in this new AI-augmented workflow.

Our course philosophy

  • This course directly addresses the valid concerns of using AI in education.
  • We will use AI to handle boilerplate and accelerate development, not to do our thinking for us.
  • You are the pilot: you are responsible for every line of code, and you must understand, test, and be able to explain the code you submit.
  • We will critically examine where AI excels and where it fails, addressing issues like provenance and repeatability.

What we will learn to do

  • Write clean, professional python and rust code.
  • Use git and github for version control and collaboration.
  • Leverage AI code assistants to write, debug, and refactor code.
  • Build data-driven applications that interact with real-world apis.
  • Create a unique portfolio project that showcases your skills to future employers.

How we will get there: our roadmap

  • Module 1: foundations & modern tooling (git, github, ai assistants).
  • Module 2: python fundamentals with an ai partner (from basics to oop).
  • Module 3: building a python application (apis and the midterm project).
  • Module 4: new frontiers: rust (performance, safety, and a new ecosystem).
  • Module 5: synthesis & the final project (your portfolio piece).

Key course components

  • Our grading is designed to reflect hands-on, applied skill.
  • Homework and labs: 70%
  • Midterm exam/project: 15%
  • Final exam/project: 15%
  • Our primary communication channel will be our associated class channel in microsoft teams.

The final project: your portfolio piece

  • The culmination of this course is a student-choice final project.
  • You get to propose and build an application you are passionate about.
  • The only major requirement is that it must meaningfully use python, rust, and our ai-driven workflow.
  • This is your chance to create something unique that you can proudly showcase.

Let’s get to work: setup fest

  • Time to get our hands dirty.
  • We will now spend the rest of the session setting up our development environment.
  • Checklist:
    • Install visual studio code
    • Install python 3.10+
    • Install git
    • Install the rust toolchain
    • Sign up for the github student developer pack to get github copilot

Verification: how to know it is working

  • Open your terminal or command prompt and run the following commands.
  • git --version
  • python --version (or python3 --version)
  • cargo --version
  • In vs code, check for the github copilot icon in the bottom status bar.
  • We will walk through this together.

For next time

  • Please ensure you have finished the complete setup before our next class.
  • Create your github account if you haven’t already.
  • Next session: we will dive deep into git and github, the foundation of collaborative software development.

Session 2

Version control with git & github

What is version control?

  • Think of it as a time machine for your code.
  • It tracks every single change you make to a project over time.
  • It lets you rewind to a previous version if you make a mistake or need to see an older state of the code.
  • It is the absolute foundation for collaborating with other developers on a shared project.

Git vs. github

  • This is a common point of confusion.
  • Git: is the software tool that runs on your computer. It does the actual work of tracking changes. (think of it like microsoft word).
  • GitHub: is a website that stores your git projects in the cloud. It’s where you share your code and collaborate. (think of it like onedrive or google docs).

The core workflow

  • Remote (github): a project lives on github.
  • git clone: you download a perfect copy to your local machine.
  • Local (your computer): you edit files, write code, and fix bugs.
  • git add & git commit: you save a snapshot (a commit) of your changes to your local history.
  • git push: you upload your new commits from your computer back to github.

Key terminology

  • Repository (repo): a folder that contains your project and its entire history.
  • Commit: a snapshot of your files at a specific point in time; a saved checkpoint.
  • Staging area: a temporary holding place where you gather the changes you want to include in your next commit.
  • Push: the command to send your committed changes from your local computer to github.

Time for lab 01

  • Your first hands-on lab: git and github fundamentals.
  • Objective: complete your first full development cycle from clone to push.
  • Please navigate to labs/lab01/README.md in the course repository for step-by-step instructions.