IS4010: AI-Enhanced Application Development
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.
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.