Skip to content

Commit 60cfed8

Browse files
committed
AI integration:
- refactor using Kiro/Claude to bring in AI agent ideas
1 parent 6e13493 commit 60cfed8

17 files changed

Lines changed: 6906 additions & 20 deletions

AGENDA.md

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
Monday
55
- 900-930: Introductions and getting started (Mike)
66
- 930-1000: Python overview and Quick orientation to jupyter, environments, and mamba/conda (Andy)
7-
- 1000-1130: 00 Python basics review and AI overlords: Q&A and discussion https://cscircles.cemc.uwaterloo.ca/ (A: word counting ) (Mike)
7+
- 1000-1130: 00 Python basics review and AI overlords: Q&A and discussion https://cscircles.cemc.uwaterloo.ca/ (A: word counting ) (Mike) *includes AI Foundations Notebook (00b_ai_assisted_programming.ipynb): overview of AI coding assistants, strengths/limitations, worked failure examples, prompt patterns, and responsible AI use*
88
- 1130-1230: lunch
9-
- 1230-1330: 01 Functions and Scripts (A: build a function) (Kalle)
9+
- 1230-1330: 01 Functions and Scripts (A: build a function) (Kalle) *includes AI Sidebar*
1010
- 1330-1345: break
1111
- 1345-1545: 02 Namespace, Modules, Packages, Objects (A: import and use own functions, etc) (Josh)
1212
- 1545-1600: break
@@ -16,33 +16,33 @@ Monday
1616

1717
## Tuesday
1818
- 900-930: 04 Working with files, string formatting (Nick) (continued)
19-
- 930-1130: 05 Numpy (where, slicing, indexing)(A: Mt. St. Helens) (Mike)
19+
- 930-1130: 05 Numpy (where, slicing, indexing)(A: Mt. St. Helens) (Mike)*includes AI Sidebar*
2020
- 1130-1230: lunch
21-
- 1230-1430: 06 Matplotlib (A: make a semi-complex plot, animation, PdfPages, USGS Style) (Kalle)
21+
- 1230-1430: 06 Matplotlib (A: make a semi-complex plot, animation, PdfPages, USGS Style) (Kalle)*includes AI Sidebar*
2222
- 1430-1445: break
23-
- 1445-1615: 07 Theis exercise + VSCode IDE debugging, liveshare (Andy)
23+
- 1445-1615: 07 Theis exercise + VSCode IDE debugging, liveshare (Andy) *includes AI Sidebar*
2424
- 1615-1630: break
25-
- 1630-1730: 08 Pandas (interesting data, viz, excel, apply correction to data, indexing, grouping, retrieving data from NWIS (dataretrieval) (Josh)
25+
- 1630-1730: 08 Pandas (interesting data, viz, excel, apply correction to data, indexing, grouping, retrieving data from NWIS (dataretrieval) (Josh) *includes AI Sidebar*
2626
- 1730: Class Adjourn
2727

2828
## Wednesday
2929
- 900-1000: 08 Pandas (interesting data, viz, excel, apply correction to data, indexing, grouping, retrieving data from NWIS (dataretrieval) (Josh) (continued)
30-
- 1000-1130: 09 GeoPandas for open-source GIS and viz (Mike)
30+
- 1000-1130: 09 GeoPandas for open-source GIS and viz (Mike)*includes AI Sidebar*
3131
- 1130-1230: lunch
3232
- 1230-1300: 09 GeoPandas for open-source GIS and viz (Mike) (A: working with open-source city data) (continued)
3333
- 1300-1430: 10 Rasterio (Nick)
3434
- 1430-1445: break
3535
- 1445-1615: 11 Xarray/rioxarray (Andy)
3636
- 1615-1630: break
37-
- 1630-1730: Code style/quality, testing, version control (Andy and all)
37+
- 1630-1730: Code style/quality, testing, version control (Andy and all)*includes Verification Notebook (12_verifying_ai_code.ipynb): verifying AI-generated code using analytical solutions, unit testing, and dimensional analysis*
3838
- 1730: class adjourn
3939

4040
# Part 1: Application of Python and Flopy to Groundwater Modeling
4141
## Thursday
42-
- 900-1000: 01 Introductions and IT sorting (Mike)
43-
- 1000-1100: 02 Build your first model with FloPy (Nick)
42+
- 900-1000: 01 Introductions and IT sorting (Mike)*includes AI Sidebar*
43+
- 1000-1100: 02 Build your first model with FloPy (Nick)*includes AI Sidebar*
4444
- 1100-1115: break
45-
- 1115-1245: 03 Loading and visualizing models with FloPy (Andy)
45+
- 1115-1245: 03 Loading and visualizing models with FloPy (Andy) *includes AI Sidebar*
4646
- 1245-1345: lunch
4747
- 1345-1615: 04 Intersection Capabilities, modelgrid, time wrangling (Josh)
4848
- 1615-1630: break
@@ -60,3 +60,12 @@ Monday
6060
- 1600-1630: 09 Run and process MF6T (Kalle)
6161
- 1630-1700: 10 Run and process MODPATH/MF6-PRT models (Andy)
6262
- 1700: Wrap up
63+
64+
---
65+
66+
## Optional Self-Study Materials
67+
68+
The following AI-integrated notebooks are available for self-study during breaks or after hours:
69+
70+
- **Prompt Engineering Notebook** (00c_prompt_engineering.ipynb): Five prompt patterns for scientific computing, comparative exercises, iterative refinement demos, and physical constraints exercises
71+
- **AI Capstone Exercise** (13_ai_capstone.ipynb): Multi-step hydrology data analysis combining manual coding and AI assistance (download NWIS data → process with Pandas → create publication-quality plot)

admin/mike_ai_notes.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# 00b
2+
- the baseflow example is a little precious - there must be something better
3+
4+
# 00c
5+
- The "verification" for Pattern A is bad - by concluding the calculation of the mean is 5.0 from a series of all the value 5.0 misses potential errors like basically any other function of the data (min, unique, max, median, etc.)
6+
- Pattern B is a little better
7+
- Pattern C - makes a good point about specificity, but maybe assumes _too much_ prior knowledge of the functionality
8+
- Pattern D - so, this works, but pretty gross and compact
9+
- The Part 2 Vague prompt/structured prompt example makes a good point but stupid way to provide the data. Can do better than that!
10+
- Physical constraints answer - still doesn't use T in the final answer - junkus! Doesn't actually need it, but doesn't say so. Junkus.
11+
12+
# 06 matplotlib
13+
- first example is silly with synthetic data - better to rewrite using real data but then offloading the formatting syntax stuff to AI
14+
- we should refactor this entire sidebar to consider just the formatting question. The AI fails here are trivial and not very interesting
15+
16+
# 12 verification
17+
- first example is kinda comical because it's suggesting we should verify AI with an analytical solution. Which is a generally good idea, but if it's an analytical solution to start with, this is circular
18+
-

0 commit comments

Comments
 (0)