This course emphasizes hands-on, AI-augmented development. We use modern tools that climate professionals can leverage today — without needing years of programming experience.


Development Environment

VS Code is our primary editor — lightweight, extensible, and works seamlessly with AI assistants. We'll also use Google Antigravity IDE, a VS Code-based environment with integrated agentic AI capabilities.


AI Coding Assistants

Kilo Code is our primary AI coding agent — an open-source VS Code extension that reads and edits files in your project, runs commands, and works through multi-step tasks rather than just completing the line you are typing.

The model itself comes from somewhere else — a brokering API like OpenRouter, a university cluster, or a model running on your own laptop. That separation is deliberate and worth internalizing: the model is a setting you can change, not a property of your editor. We will change it more than once this semester. The instructional team supplies whatever key and endpoint we are using at the time, so there is nothing for you to buy.

GitHub Copilot stays available as a secondary assistant, and it is free for students through the GitHub Education pack. It is good at inline autocomplete, which is a genuinely different tool from an agent working across your whole repository. Using both is useful for seeing where each approach helps.

In Module 3, we go deeper — calling LLM APIs directly, running local models, and building tool-using agents of our own.


Python & Cloud-Native Data

Python is our primary language. We emphasize cloud-native workflows that scale beyond your laptop's memory:

  • Databases: Query large datasets without loading them into RAM
  • Cloud-optimized formats: Parquet, GeoParquet, and cloud-native geospatial data
  • Web apps: Build and deploy interactive dashboards

Geospatial & Environmental Data

Module 2 focuses on spatial analysis and environmental justice mapping. We work with:

  • Vector data: Points, polygons, census boundaries
  • Raster data: Satellite imagery, species richness layers
  • Interactive maps: Web-based visualization with MapLibre

LLMs & Agentic AI

Module 3 covers programmatic LLM use — moving beyond the chat interface:

  • LLM APIs: OpenRouter, open-source models, structured outputs
  • Document intelligence: Extract structured data from PDFs and reports
  • Tool use: Build agents that can query databases and call functions

Collaboration & Version Control

GitHub is where all coursework lives. You'll use GitHub Classroom for assignments, learn version control basics, and build a portfolio of climate tech projects.


What You'll Need

  • Laptop with a modern web browser
  • Power cable — sessions run 2 hours
  • Internet connection — for cloud-based tools

No prior programming experience required. We'll set up everything together in Session 1.


Initial Setup

We set up your GitHub account, apply for the Student Developer Pack, then install VS Code and get Kilo Code talking to a model. Start the GitHub steps early — approval takes about 72 hours, and it gates the optional Copilot step at the end.


1. Create a GitHub Account

If you don't already have one, sign up at github.com/signup.


2. Enable Two-Factor Authentication

Required before applying for the Student Developer Pack.

  1. Go to github.com/settings/security
  2. Enable two-factor authentication
  3. Use an authenticator app (like Google Authenticator) or SMS

3. Add Your Name & Address to Billing

This helps verify your identity — no payment info required.

  1. Go to github.com/settings/billing/payment_information
  2. Add your name as it appears on your student ID
  3. For address, you can use the university address:
    Wellman Hall, Berkeley, CA 94720

4. Apply for GitHub Student Developer Pack

The Student Developer Pack gives you free access to GitHub Copilot and other tools.

Apply at: education.github.com/pack

Berkeley-Specific Tips

  • School: Select "UC Berkeley" from the list
  • Email: Use your @berkeley.edu address
  • Location: You must enable location sharing when prompted. Without it, the form may ask for a @cs.berkeley.edu email (which most students don't have).
  • Browser: Use Firefox or Chrome — Safari blocks location by default and is tricky to configure.
  • Student ID photo: The form mentions "dated ID" but Berkeley IDs don't have dates. That's fine — as long as your billing info name matches your ID, you'll be approved.
⏱ Approval takes ~72 hours. Submit your application today!

5. Accept GitHub Classroom Invitation

When you accept the classroom invitation, a private repository is created just for you in our course organization. This is where you'll push all your work.

The invitation link will be provided by your instructor during class.


6. Install VS Code

Download from code.visualstudio.com and install for your operating system.

This step does not depend on your Student Developer Pack approval, so you can do it right away.


7. Install Kilo Code

Kilo Code is our primary AI coding agent.

  1. Open VS Code
  2. Press Ctrl+Shift+X (Windows/Linux) or Cmd+Shift+X (Mac) to open Extensions
  3. Search for Kilo Code — the one you want is published by Kilo Code, listed as "Kilo Code: AI Coding Agent, Copilot, and Autocomplete" (identifier kilocode.Kilo-Code)
  4. Click Install
  5. Click the Kilo Code icon in the VS Code sidebar to open it

On first launch Kilo Code asks you to sign in to a free Kilo account. You can use your GitHub or Google login. This account is just for the extension — the models we use come from whatever endpoint we are using, which you set up in the next step.


8. Connect Kilo Code to a Model

Kilo Code is just the interface. The model lives somewhere else, and you point the extension at it with three pieces of information: where the endpoint is, a key, and which model to ask for. All three are settings. None of them are permanent.

We give you the current three. Before the first session the instructional team sends you a key along with the endpoint and starting model to use with it. You will not need your own account anywhere, and you will not be asked for a credit card.

Expect all three to change during the semester. New models ship constantly, and the sensible choice in September is often not the sensible choice in October. We will move between providers as that happens — sometimes a hosted commercial API, sometimes an academic cluster, sometimes a model running on your own laptop. Learning to swap the backend without rebuilding your workflow is part of the point, so treat the current settings as disposable and get comfortable changing them.

If we give you an OpenRouter key

  1. In the Kilo Code panel, click the gear icon to open Settings
  2. Go to the Providers tab
  3. Set the provider to OpenRouter
  4. Paste your key into the API key field
  5. Pick the model we named out of the model list
  6. Save, then try a small task to confirm it responds

If we give you an endpoint and a key

Anything that speaks the OpenAI API — a university cluster, a lab server, a model running locally — is set up the same way.

  1. Settings → Providers tab → Custom provider
  2. Give it a Provider ID and Display name (anything recognizable)
  3. Set Provider API to OpenAI Compatible
  4. Paste the Base URL and API key we sent you
  5. Under Models, pick the model we named — Kilo Code can often auto-detect the list from the endpoint
  6. Save, then try a small task to confirm it responds

Switching model is one dropdown once a provider is configured. If a model is struggling with a task, trying a stronger one is a reasonable move — and noticing when you needed to reach for it is worth paying attention to.

Treat your key like a password. It is tied to a course budget, so anyone who has it can spend that budget. Keep it in the Kilo Code settings panel only. Never paste it into a file in your repository, a notebook, a chat message, or an issue — anything committed to GitHub is very hard to truly erase. If you think your key has leaked, tell us and we will revoke it and issue a new one; that is a routine fix, not a problem you will be in trouble for.
Keys may carry a spending cap. Requests cost real money — a fraction of a cent to a few cents each, depending on the model and how much context it reads. Where we set a cap it is a safety net against a runaway agent loop, not a quota you are graded against; if you hit it, tell us and we will raise it. Watching what your requests actually cost is part of what we want you to learn, and the financial and environmental costs of inference are a topic we return to later in the course.

9. Install GitHub Copilot optional

Copilot is our secondary assistant, useful for inline autocomplete as you type. It is free for students, so it is worth setting up, but Kilo Code is what we use in class. Do this once your Student Developer Pack is approved.

  1. Open the Extensions panel again
  2. Search for "GitHub Copilot"
  3. Click Install
  4. Sign in with your GitHub account when prompted
Important: Activate your Copilot Coupon

After your academic benefits are verified, you must explicitly accept the Copilot coupon:

  1. Go to github.com/settings/education/benefits
  2. Click the link to redeem your coupon (usually github.com/github-copilot/free_signup)
  3. Restart VS Code. "Premium models" should now appear in the Copilot Chat model list.

10. Python Setup (Optional Pre-Work)

We'll do this together in class, but if you'd like a head start:

  1. Download Miniforge from github.com/conda-forge/miniforge
  2. Follow the installation instructions for your OS

Don't worry if you run into issues — we'll troubleshoot together.


Before You Leave

  • ☑️ GitHub account created
  • ☑️ Two-factor authentication enabled
  • ☑️ Name and address added to billing
  • ☑️ Student Developer Pack application submitted
  • ☑️ GitHub Classroom invitation accepted
  • ☑️ VS Code installed
  • ☑️ Kilo Code extension installed and signed in
  • ☑️ Course key and endpoint configured in Kilo Code, and a first task answered

Next session: We'll start working with real climate data, driving Kilo Code against a real repository. Come with the checklist above working — if anything is stuck, bring it to office hours or the start of class rather than fighting it alone.