"Introduction to Agricultural Informatics Course" by Ankita Raturi, Purdue University is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Living open courseware: a perennial work in progress: Through this public repository, I share my works-in-progress as I create a variety of learning materials, some of which are used in my teaching at Purdue University. Collectively, these materials are developed for use across a range of courses and institutions. Some modules are refined, others are new, yet others are now out of date. Hence, this is my repository of open-access reconfigurable course materials that adhere to a common pedagogical frame and course design.
For Purdue ASM532 Students:
- All official course materials, communications, and assignments for Purdue ASM 532 are linked via Brightspace.
- Brightspace may also include links to specific materials from this open-courseware repository. Let me know if you have any trouble accessing materials when linked.
- This is NOT your syllabus: the official syllabus for ASM 532 is available via the associated Purdue websites only.
These learning materials introduce students to current and emerging digital technologies with applications in agriculture, environment, and food systems. Through a modular hands-on course design, students will incrementally learn user-centered technology design skills, computational thinking skills to evaluate, design, conceptualize, and implement informatics solutions to data-driven challenges. Students will gain programming skills in current software development technology stacks (Python, HTML, CSS, SQL, Django), with an emphasis on web applications. Students will design an informatics solution to problem in their own area of interest. This course supports professional development for students in pursuit of careers in digital product design or data-driven research.
For students new to computing: These materials provide digital-novices with a gentle on-ramp to learn digital agriculture skills so that they can better understand how technology works and is built. While you may have a deeper understanding of the unique challenges of your domain, you will learn how to engage in domain-driven software development. Through these materials, students will gain the vocabulary and experience to be able to identify advanced courses for more in-depth learning.
For students with a more significant computing background: These materials are designed to provide domain-novices with a breadth-first exploration of digital agriculture, so that they can apply their skills to develop technology for agricultural, environmental, and food systems applications. While you may be comfortable with computational work, you will learn how to engage in domain-driven software development. Through these materials, students will be able to identify and develop appropriate software solutions to address agriculture, environment, and food systems research and practice.
These materials support the following types of learning objectives:
- Demonstrate core skills in user-centered technology design, exploratory data analysis, and programming for the web.
- Formulate a data science problem and implement a data science solution through collecting, integrating, analyzing, and synthesizing publicly available data
- Critique and experiment with informatics approaches to solving data-driven challenges in disciplines related agriculture, environment, and food systems.
- Design and develop a web application through application of new knowledge on data modeling, user interface design, and programming.
- Design and conceptualize a novel informatics solution, applying design thinking and computational skills, to solve an open problem related to agriculture, environment, and food systems.
You can jump between publicly released modules available in Fall 2026 below. If you are a Purdue student, please remember: Brightspace holds the correct dates and cadence for you!
--- Fall 2026 - Released Modules:
- Module 1: Web Fundamentals
- Module 2: Data Exploration
- Module 3: Concept Modeling
- Module 4: Web Applications
- Module 5: User Interfaces
--- Coming Soon
- Module 6: Software Engineering
- Module 7: Future of Ag Tech
There are four types of graded assessments used across these modules (only labs and lectures are available in this repository):
- Lectures and in-class activities assess day-to-day engagement with learning materials.
- Quizzes provide students quick feedback on their learning of fundamental concepts. Quizzes will be conducted in-class, on-paper, approx every 2 weeks.
- Lab assignments assess students' ability to apply lessons learned. Labs are due every approx. 2 weeks, with longer periods for more intensive programming labs.
- A project, completed in parts, assesses your cumulative learning across course materials, including the ability to conceptualize informatics solutions to domain-driven challenges.
While this is the fifth iteration of many of these materials, they are actively under refinement.
-
Found a bug in the code, slides, syllabus, or other materials? Submit an "issue"
-
Have an open suggestion for how to improve this course? I would love to hear about your experience, get feedback on what's working or what's not, and generally learn more about where and how this course fails/succeeds to help you learn. Submit a discussion "idea".
For Purdue ASM532 students: please submit student course evaluations at the end of the semester! I review the reponses to improve the course.
Alternatively, send me an message or come chat.
I'm giving this edition of Intro to Ag Informatics the tagline: "from pseudocode to vibecode" because of the following notion:
The purpose of this course is to teach you how to read and write code. I will support you in thinking critically about technology and prepare you to debate what constitutes good digital design practices. But, this course is also designed to teach you about emerging technologies, and that includes, the use of contemporary AI technologies, such as LLMs. Thus, we must thread the needle of responsible AI use carefully.
In writing, ideating, and critical thinking: do your own work, don't let anyone or anything reason on your behalf. But you are welcome to ask questions, discuss, consult. Write your own thoughts, build out your ideas, and credit the foundations you build upon: whether AI, your peer's advice, or a reference material.
For writing code, a little different recommendation:
- In modules 1, 2, 3 (web development, data exploration, data models):
- Do not use any AI tools to generate code. It defeats the purpose of learning HTML, CSS, Python, and SQL.
- Hand-crafting code will build up your fundamental coding skills.
- In modules 3, 4, and 5 (data models, web application, user interfaces):
- Only use AI tools to explore and debug your code - to learn how to improve.
- First, write your pseudocode, your logic by hand.
- Second, in your code editor (e.g., VScode): outline your code as comments, write "function designs". These are your coding prompts for YOU.
- Third, use VScode and language "cheatsheets" (one-page language summaries) to translate your thinking to code. That's programming!
- Finally, when you're stuck and receive error messages, use a search tool, check Stack Overflow, or use an LLM to ask thoughtful questions to improve your own learning. Debugging Django can be tough - use these tools especially to learn how to sift through your code and find bugs in code snippets.
- In module 6 (software engineering):
- We'll use AI tools to vibecode, while learning how to write and use good software specifications.
In all cases, disclose if and how you used AI tools in your work. When in doubt, ask. But also: save and/or include transcripts or sample prompts and responses as evidence.
Pedagogical design — content, structure, learning objectives, lecture and assignments — was developed by Ankita Raturi between 2021 and 2024, across four offerings of this course. No AI tools are used to make pedagogical design decisions. The process of creating learning materials, whether lectures or assessments, begins with me. This includes 2025+ content.
In my digitally-mediated course production work, the pedagogical design decisions remain mine.
Per this course's own AI Use Policy, here's my disclosure: Starting with the Fall 2026 revision: I use Anthropic's Claude family of tools for planning as an AI collaborator. These tasks include: auditing content for bugs, broken links, staleness, and accessibility; applying accessibility fixes; porting my content into updated templates; and drafting scheduling/structural logistics. Everything AI-touched was reviewed and approved by me before publishing.
In this context, there are many digital tools that I use in course design and development. Here's a summary of how and why I use each tool:
- Reveal.js — the slide framework every lecture deck runs on (git submodule,
hakimel/reveal.js). - VS Code — primary editor for course production; also what students are taught to use starting in Lab 1.
- GitHub — hosts and version-controls all course materials; also where students submit their own labs, and where GitHub Pages serves the live slide decks.
- Airtable — course planning database: weekly schedule, module content inventory, assessment weights, .
- Claude Code & Cowork — I use the CLI-based coding agent for direct file edits, building small scripts, git issue and repo management, content audits, accessibility fixes, and building templates (like this). Cowork is used for the course structure reviews and schedule planning work.
- Miro — collaborative whiteboarding for course design sketching; also what student use for prototyping activities.
- Firefox — primary browser for testing rendered slides and labs.
- Obsidian — personal notes / knowledge management for course planning.
- Brightspace — Purdue's LMS; canonical for syllabus, grades, and all official dissemination. All FERPA / student materials in Purdue's systems only.
- ... and much more!
This course relies on an ecosystem of Free and Open Source Software. Some fundamental computing languages and digital tools that we rely on include:
- HTML/CSS — markup and styling fundamentals, taught starting in Module 1 and underlying every lecture deck itself.
- Python — the course's primary programming language, introduced in Module 2 and used throughout.
- SQL — relational database query language, introduced alongside data modeling in Module 3.
- Django — Python web framework, the backbone of Modules 4+ web-application build.
- ... and much more!
Ankita Raturi is an asst. professor in Agricultural and Biological Engineering, and is the primary instructor of this course. She has designed this course, will deliver lectures, and is available for technical and general support for any aspect of the course.
Additional contributions from teaching assistants, collaborators, students, and co-instructors are reflected by the list of contributors on this repository and referenced within the learning materials themselves. These materials also synthesize publicly available content. Where applicable, the original authors are cited.
When I was in graduate school I came across the computer science education book, Nand to Tetris. It teaches people how to "build a modern computer from first principles", and readers traverse: boolean logic, micro-electronics, computer architecture, and move up the stack of languages and abstractions learning how we go from electronic circuits (NAND) to video games (Tetris).
The Nand to Tetris book taught me that it is possible to teach people how systems work from first principles, but it also demonstrated the breadth of content and subdisciplines that learners must traverse, while demonstrating how to weave around a laundry-list of pre-requisites.
Lesson #1: Computing from first principles is a vast journey, but begins with gaining comfort with technical vocabulary, knowing where to find support, practicing computational and critical thinking, and learning how to design SYSTEMS iteratively. It's less about learning EVERYTHING and more about learning how to learn.
I taught a LOT during my time in grad school across the School of Information and Computer Sciences at the University of California, Irvine. These experiences ranged from TAing software design and video game development courses for informatics undergrads and grads alike, to teaching an introduction to programming course for non-computer science majors. Prior to that, I co-instructed a type of digital literacy course while living in Fiji and studying at the University of South Pacific, which began with naming computer peripherals (monitor, mouse, keyboard) to using spreadsheets.
Lesson# 2: The digital divide persists across continents and within disciplines. Each student comes with a different level of literacy, including digital literacy and has varied experiences with technology, including digital technologies. If each learners' topography of experiences is unique, then it's less about teaching everyone everything, and more about learning how to identify and fill your knowledge and skills gaps.
Maybe one day these materials will become a book or something else.
But in the meantime, I needed to curate materials that (1) help a variety of learners to identify and fill knowledge and skills gaps, while navigating the dynamic and vast expanse of interdisciplinary concepts.
Consequence for this course: I reference a broad range of supplementary materials to allow learners to fill gaps when you need to, without forcing everyone down the same fundamentals. If you find a useful learning material, please share: https://github.com/ag-informatics/ag-informatics-course/discussions
This gives me space to focus my energy on creating useful and domain-driven content that I cannot find easily in existing educational materials -- hence this repository.
- Fall 2021: AgINF v1.0
- Ankita Raturi created the first version of all modules with funding and collaborators from a National Institute for Food & Agriculture Higher Education Challenge Grant.
- Learning materials first used in my "ASM 591" Special Topics: Intro to Ag Informatics.
- Learning materials used also in courses at University of Kentucky via grant support.
- Fall 2022: "ASM 591" Special Topics, AgINF v2.0
- Learning materials used in my "ASM 591" Special Topics: Intro to Ag Informatics.
- Learning materials used also in courses at University of Kentucky & Tuskeegee University via grant support.
- Fall 2023: "ASM 591" Special Topics, AgINF v3.0
- Learning materials used in my "ASM 591" Special Topics: Intro to Ag Informatics.
- Fall 2024: AgINF v4.0
- Revised for use in my "ASM 532" Intro to Ag Informatics
- Fall 2026: AGINF v5.0
- Revised for accessibility (WCAG 2.2 AA) and updated module structure/AI policy.
- Production process used AI-assisted tooling (see AI & Technology Use Disclosure above).
- Also includes: Ankita's content updates-as-usual.
