Course Overview

This course covers the use of tools from data science (statistics, machine learning, and programming) to model climate hazards such as floods and droughts. Through hands-on programming assignments based on state-of-the-art published research, students will learn to apply methods to real-world problems with a strong emphasis on probabilistic methods and uncertainty quantification.

Course Information


  • MWF
  • 11-11:50am
  • Keck 107

Learning Objectives

At the end of this class, students will:

  1. Write down generative or statistical models for climate hazards;
  2. Use Bayesian and maximum likelihood methods to estimate the parameters of simple statistical models (“inverse modeling”);
  3. Use simulation models (“forward modeling”) to assess the logical implications of statistical models;
  4. Understand and apply extreme value theory to estimate the probability of rare climate hazards;
  5. Critically interpret statistical analyses of environmental data applied in academic journals, government, and industry; and
  6. Understand and communicate subjective modeling choices to technical (e.g., scientist) and non-technical (e.g., policy-maker) audiences.

Prerequisites & Preparation

  • Linear algebra (you should be comfortable with matrix notation and basic operations)
  • A course in applied statistics (e.g., STAT 419/519)
  • Some exposure to Python, Julia, Matlab, R, or another programming language

In addition, a course covering machine learning, Bayesian statistics, or applied statistics is encouraged but not required. If you are unsure whether your background gives you an adequate preparation for this course, please contact the instructor!

What If My Skills Are Rusty?

If your programming, mathematics, or statistics skills are a little rusty, don’t worry! We will review concepts and build skills over the course of the semester.


The course will build core skills in:

  • Statistical inference
  • Machine learning
  • Data exploration and visualization
  • Extreme value statistics
  • Model selection, validation, and comparison

We will apply these methods to a variety of case studies, including three project-based assignments that cover:

  • Precipitation frequency analysis
  • Flood extent estimation
  • Stochastic streamflow generation

For a full list of topics to be covered, see the course schedule.

Required Materials

No textbook is required for this course. All materials will be posted as open source on the course website or as PDFs on Canvas.

A Community of Learning

Rice’s core values are responsibility, integrity, community, and excellence. Our goal is to create a learning community aligned with these core values.

Core Expectations

Course success involves a dual responsibility on the part of the instructor and the student.

As the instructor, my responsibility is to provide you with a structure and opportunity to learn. To this end, I commit to:

  • provide organized and focused lectures, in-class activities, and assignments;
  • encourage students to regularly evaluate and provide feedback on the course;
  • manage the classroom atmosphere to promote learning;
  • schedule sufficient out-of-class contact opportunities, such as office hours;
  • allow adequate time for assignment completion;
  • make lecture materials, class policies, activities, and assignments accessible to students.

Students are responsible for their own learning in the course and should commit to:

  • attending all lectures;
  • doing all required preparatory work before class;
  • actively participating in online and in-class discussions;
  • beginning assignments and other work early; and
  • attending office hours as needed.
What If I’m Sick?

Please stay home if you’re feeling sick! This is beneficial for both for your own recovery and the health and safety of your classmates. We will also make any necessary arrangements for you to stay on top of the class material and if whatever is going on will negatively impact your grade, for example by causing you to be unable to submit an assignment on time.

Canvas Discussions
  • If you wait until the day an assignment is due (or even late the previous night) to ask a question on Canvas, there is a strong chance that I will not see your post prior to the deadline.
  • But if you see unanswered questions and you have some insight, please answer! This class will work best when we all work together as a community.

Diversity, Equity, and Inclusion

Rice is committed to building and maintaining an equitable and inclusive campus community. Diversity can refer to multiple ways that we identify ourselves, including but not limited to race, color, national origin, language, sex, disability, age, sexual orientation, gender identity, religion, creed, ancestry, belief, veteran status, or genetic information. Each of these diverse identities, along with many others not mentioned here, shape the perspectives our students, faculty, and staff bring to our campus. We, at Rice, will work to promote diversity, equity and inclusion not only because diversity fuels excellence and innovation, but because we want to pursue justice. We acknowledge our imperfections while we also fully commit to the work, inside and outside of our classrooms, of building and sustaining a campus community that increasingly embraces these core values.

Each of us is responsible for creating a safer, more inclusive environment.y.

Accommodation for Students with Disabilities

If you have a documented disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with the Disability Resource Center (Allen Center, Room 111 / / x5841) to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs.

Accommodation for Scheduling Conflicts

If any of our class meetings conflict with your religious events, student athletics, or other non-negotiable scheduling conflict, please let me know ASAP so that we can make arrangements for you.

Mask Policies

Masks are welcome but not required in the classroom. However, I strongly encourage compliance with requests to mask from students, faculty, and staff who are concerned about the risk of infection. Please be respectful of these concerns and requests and do not ask someone making such a request to disclose their underlying medical condition. If for some reason you need your instructor or classmates to wear a mask, please let me know and I will communicate this to the class without disclosing your identity.

These policies may change over the course of the semester as the situation evolves.

Policy on Web Posting of Course Materials

Uploading course materials to web sites is not an authorized use of the course material. Both the poster and the user are in violation of the university policy, which is actionable.

Academic Integrity

This class is designed to encourage collaboration, and students are encouraged to discuss their work with other students. Engineering as a profession relies upon the honesty and integrity of its practitioners (see e.g. the American Society for Civil Engineers’ Code of Ethics). All work submitted must represent the students’ own work and understanding, whether individually or as a group (depending on the particulars of the assignment). This includes analyses, code, software runs, and reports.

More specifically, all students will be held to the standards of the Rice Honor Code, a code that you pledged to honor when you matriculated at this institution. If you are unfamiliar with the details of this code and how it is administered, you should consult the Honor System Handbook at This handbook outlines the University’s expectations for the integrity of your academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process.

If you are ever unclear about academic integrity, please ask! Additionally, always err on the side of providing more information.)

AI/ML Resource Policy

AI/ML tools, like ChatGPT, can be incredibly powerful aids in learning, and can help beginner programmers with syntax and code structure. However, the use of these tools poses risks including the potential for plagiarism and the potential for students to rely on these tools without developing their own understanding.

As noted, all work submitted for a grade in this course must reflect your own understanding. You are welcome to use AI/ML tools to help you learn, but you must describe how you used the tool when you turn in your assignment. Moreover, you should not submit code that you do not understand as you be held responsible for explaining any code you submit. For more, see our page on LLMs.


Labs: 10%

On most Fridays we will use class time for hands-on programming exercises (“labs”) to give you guided practice applying the concepts and methods from class. These labs will be announced on the course website ahead of time so anyone who is able can bring a laptop to class. These labs can be done in groups; if you cannot bring a laptop to class for whatever reason, you will be able to (and are encouraged to) work with other students, though you must turn in your own assignment for grading.

Some details on lab logistics:

  • Labs will be designed to be completed in class, but you may occasionally require additional time to complete them.
  • Labs will be graded on a 3-point scale: strong (3/3), acceptable (2/3), lacking (1/3), or missing (0/3).
  • Detailed solutions will be provided and you will be responsible for reviewing them on your own. Material covered on labs may be covered in tests.

Tests: 40%

In-class written exams will be given for each of the four modules of the course, on the dates listed on the schedule. Tests will cover material from lectures and labs, and we will dedicate a class to review before each exam.

Based on past experience, students enter the class with a wide range of backgrounds and experience. The tests are designed so that students who meet the pre-requisites, but do not have extensive additional experience, can do well. Students with backgrounds that exceed the minimum pre-requisites may find the tests relatively straightforward.

Projects: 40%

Modules 2-4 will culminate with a project designed to apply the tools we learn in class to a real-world problem. These projects will be introduced at the start of each module, will motivate the material we cover in class, and give you an opportunity to apply the methods we learn to a problem of your choosing. Projects also offer an opportunity for students with more experience to dig deeper.

Specific instructions and rubrics will be provided for each project. You will submit your projects as a Quarto notebook (.qmd file) on Canvas using the provided GitHub classroom link.

Participation: 10%

Participating fully in the class allows you to gain more from the class and contribute more to the learning of your classmates. Some ways to participate include:

  • Attending every class
  • Asking questions in class
  • Answering questions on Canvas
  • Coming to office hours

You will be asked to evaluate your own participation over the course of the semester, and I will provide feedback on your participation as well

Late Work Policy

  • Late projects will be subjected to a 10% penalty per day, which can accumulate to 100% of the total grade.
  • Late labs will not be accepted, because we will discuss solutions in class.
  • Sometimes things come up in life. Please reach out ahead of time if you have extenuating circumstances (including University-approved absences or illnesses) which would make it difficult for you to submit your work on time. Work which would be late for appropriate reasons will be given extensions and the late penalty will be waived.