Skip to content

Commit

Permalink
Merge pull request UW-GDA#62 from UW-GDA/dshean-patch-1
Browse files Browse the repository at this point in the history
Update intro.md, syllabus, and add student preparation notes
  • Loading branch information
dshean authored Oct 25, 2022
2 parents 6b9db71 + 3a6d2ec commit 1bcd514
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 8 deletions.
1 change: 1 addition & 0 deletions book/_toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ parts:
- file: resources/syllabus.md
- file: resources/students/README
sections:
- file: resources/students/student_preparation.md
- file: resources/students/student_initial_setup.md
- file: resources/students/student_weekly_workflow.md
- file: resources/instructors/README
Expand Down
20 changes: 13 additions & 7 deletions book/intro.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Geospatial Data Analysis with Python

Course material from the Winter 2022 offering of CEE498/CEWA599 at the University of Washington
Course material from the Winter 2023 offering of CEE467/CEWA567 (formerly CEE498/CEWA599) at the University of Washington

David Shean
Civil and Environmental Engineering
Expand Down Expand Up @@ -61,10 +61,17 @@ Clicking this badge will launch the GDA image and Jupyterlab environment on [myb

## Course details

### Syllabus (UW netid required)
https://docs.google.com/document/d/1fS43OpTLcobo982Ip4TWsD-m5mefPemque7uNT-wZG0/edit?usp=sharing
### Syllabus (UW netid required)
* https://docs.google.com/document/d/1qB1XiV088vjq-xQ_h05FMRW027MOmiB-nrohpB_rJ50/edit?usp=sharing

### Weekly workflow:
### [Student Preparation](resources/students/student_preparation.md)
Follow the above link for answers to FAQ:
* No formal prerequisites!?
* Do I need to know Python?
* What if I'm really comfortable with R/Matlab?
* I've never used GIS before, is that a problem?

### Weekly workflow
* Students independently complete online reading assignments or work through tutorials prior to lab
* Synchronous 1.5-hour lecture/demo/discussion on Wednesday afternoon
* Will be recorded for students who cannot attend synchronously
Expand All @@ -74,10 +81,9 @@ https://docs.google.com/document/d/1fS43OpTLcobo982Ip4TWsD-m5mefPemque7uNT-wZG0/
* Next 30-60 minutes: lab introduction and demo for new material
* Will be recorded for students who cannot attend synchronously
* Remainder of lab for groups of students to work through lab materials, discuss, write code, troubleshoot, and try to complete exercises together
* Students finish exercises (and "extra credit" challenge problems) for homework (due the following week)
* Students finish exercises (and "extra credit" challenge problems) for homework (due the following week). Students report ~6-12 hours outside of the 3-hour lab required to complete reading and homework

* Students report ~6-12 hours outside of the 3-hour lab required to complete reading and homework
* See weekly workflow documents in Resources section for additional information
See [weekly workflow document](resources/students/student_weekly_workflow.md) in Resources section for additional information

### [Final Project](resources/project/README.md)
* Students propose, refine, perform and present independent or group projects
Expand Down
3 changes: 3 additions & 0 deletions book/resources/students/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Resources for Students

## [Student Preparation](student_preparation.md)
Notes on background preparation and expectations, including "Do I need to know Python?"

## [Initial Setup](student_initial_setup.md)
Notes and instructions on how to sign up for various platforms we will use for this course

Expand Down
51 changes: 51 additions & 0 deletions book/resources/students/student_preparation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Student Preparation
### (e.g., "Do I need to know Python?")

You may have noticed that there are no formal prerequisites for this course. This was a conscious decision, as I wanted to keep the door open to as many excited students with different backgrounds as possible. But I want to make sure that interested students understand expectations and are prepared to put in the time to fill any potential gaps via self study, ideally before the quarter begins.

I'll start by asking interested students to please read the following, and reach out to me via email with questions and/or clarification. Most students tend to underestimate their abilities and overestimate their time availability, so I can do my best to offer honest advice and help set realistic expectations. My advice may also be "why don't you try it for the first few weeks, and see how it goes." :)

This course is not intended to be an introduction to programming, though it is a great way to improve your programming skills. Ideally, students should have some previous exposure to and a basic understanding of programming (and/or scientific computing), GIS fundamentals, and statistics. You can make up for one of these, but if you're missing all three, you will likely struggle throughout the quarter.

We will use Python for this course, as it is a great language for geospatial data analysis, with large developer and user communities. We will review basic Python, interactive Jupyter notebooks and core analysis/visualization modules early in the quarter, then quickly move on to more advanced topics. I will prepare background reading assignments and some limited review examples each week, but you are expected to fill gaps on your own as necessary, including any necessary self-study before and during the quarter.

**If you are relatively new to Python, you can still take this course!** But you need to start learning now, don't wait until the first week of the quarter. I will prepare some lists of good online Python resources, but generally, you can just search for “Python tutorial” or “how to learn Python”, open the top 5 results and pick one (or two) that works for your learning style. Go through the tutorials, but the critical step is to *apply* what you’ve just covered.

Select an appropriately sized task that you currently do manually or using another method (e.g., MATLAB, ArcGIS, MS Excel), and force yourself to work through the problem using Python. It will be frustrating, slow, and messy. You will feel uncomfortable, especially if you're used to being good at stuff, but it’s really the only way you’re actually going to learn. You will quickly forget most material from skimming online tutorials if you don't try it out yourself, especially if they were prepared so that you didn’t have to do anything beyond click and/or scroll.

If you learn better in a more formal workshop or classroom environment rather than self study, consider registering for one of the intro Python Software Carpentry workshops before winter quarter. The eScience Institute regularly hosts these workshops in early January, which is perfect timing for this course, so check the eScience event calendar for latest announcements. https://escience.washington.edu/education/tutorials-and-bootcamps/

This is not a computer science class, though we will touch on some fundamentals. While CSE students are more than welcome to participate (several have in the past years, and there are plenty of “extra credit” challenges to explore), the content and level was developed for upper-level undergrad and grad students in engineering and applied science disciplines.

### Recommended preparation (or permission from instructor)
* Introductory scientific computing, programming course (or equivalent experience)
* e.g., CEE505, 100-200 level CSE courses, AMATH scientific computing
* Understand basic programming constructs (variables, data types, loops, conditionals, functions, file I/O)
* Guide on intro programming options at UW: https://courses.cs.washington.edu/courses/cse140/13wi/which-programming-class.html
* Introductory GIS course (or equivalent experience)
* e.g, CEE424, ESS420, or equivalent
* Basic working knowledge of Python
* Matlab, R, or other programming experience is OK, but please review online materials about migrating to Python, and gain Python experience before the start of the quarter - you’ll get much more out of the class if you take the time to do this

### Optional (but useful) preparation
* Intermediate/Advanced GIS
* ESS521: Advanced Geospatial Analysis with Python for the Earth Sciences (spring)
* Remote Sensing
* CEE 432/CEWA532 (joint ESRM432/SEFS 532): Advanced Remote Sensing and Earth Observation (spring)
* ESRM430: Remote Sensing of Environment (winter)
* Surveying and Geomatics
* CEE317: GeoSurveying (autumn)
* CEE437/CEWA537: Advanced Surveying (spring)
* ESS422 Field Remote Sensing (spring)
* Statistics and/or Data analysis
* CEE465/565 Data Analysis in Water Science (autumn)
* STAT108: Intro to Data Science (winter)

## Audit policy
See the notes on auditing from the registrar's office: https://registrar.washington.edu/registration/policies-procedures/

While I've had a few students audit the class each year, I typically discourage auditing, as the learning in this class happens while working with others on the lab exercises each week. This process can take a lot of time, often requiring you to work through frustrating Python syntax issues (“learning the hard way” or "bashing my head against the keyboard"). Just sitting in on lectures or demos is not going to be nearly as useful. Furthermore, without some incentive to turn in assignments each week, it’s easy to let things slip, and you won’t get nearly as much out of the class. But if you can commit the ~10-15 hr/week, then you will learn a lot, and you can learn a lot working with others.

If you are still interested in auditing (rather than registering), reach out to me via email and provide a little background on your situation. I will make a final decision depending on enrollment, TA load, classroom capacity, etc.

With that said, you are more than welcome to pursue this as an independent study. All of the course materials are posted on this site. You can work through select modules on your own schedule, or synchronously during winter quarter with the class schedule. I can provide access to the solutions so you can self-evaluate and learn.
2 changes: 1 addition & 1 deletion book/resources/syllabus.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Syllabus

[2022 Syllabus (UW netid required)](https://docs.google.com/document/d/1fS43OpTLcobo982Ip4TWsD-m5mefPemque7uNT-wZG0/edit?usp=sharing)
[2023 Syllabus (UW netid required)](https://docs.google.com/document/d/1qB1XiV088vjq-xQ_h05FMRW027MOmiB-nrohpB_rJ50/edit?usp=sharing)

0 comments on commit 1bcd514

Please sign in to comment.