×

Grant-Writing Guide

We know that teachers spend hundreds of dollars of their own money on their classrooms every year. And if there's one thing you have less of than money, it's time. We're taking the hassle out of grant writing by finding STEM grants for you and providing some helpful guidelines!

Prepare your responses first

You don't want to lose your work if a website times out mid-application, or your laptop battery dies before you submit. Take the time to type out your responses in a word doc before filling out the online application. Have another person unfamiliar with your project read through it and make sure it's clear to someone with no background knowledge. An added bonus - many of these grants are very similar, so you can just tweak your response and submit it to multiple grants!

The Basics

While every grant application is different, most include the following:

  1. Lead Applicant/Principal Reporter - this is the person responsible for carrying out the grant and in some cases, providing evidence that the funds have been used in the stated manner. This is usually the classroom teacher.
  2. Tax ID number - for US entities only
  3. Budget - Level of detail varies, but you should have a cost breakdown of price for kits, shipping, and any additional accessories. May also request a sustainability statement.  Both CodeX and CodeBots come with an annual license and are $199 each, or a set of 10 with annual licenses for $1490. If your grant includes professional development, Firia Labs provides training for $5000 per day.
  4. Summary - specific to the grant, but often includes:
    • Number of students impacted
    • Number of contact hours
    • Demographics (May include a description of the needs of underrepresented populations served, e.g. females, minorities, students with disabilities, ELL, etc.)
    • Program timeline
    • A description of project and activities - There is alignment between goals, assessment, activities, and budget.

Ex: CodeSpace is a web-based learning platform that teaches Python using physical computing. Python is intuitive and easy to learn, making it the perfect fit for beginners.

Central to the CodeSpace approach is the exclusive use of text-based programming, rather than drag-and-drop icons. Students are guided step-by-step in the process of learning the Python language, with the support of web-based software tools that help catch errors and teach students how to debug their programs independently. This allows a natural process of learning through productive struggle and iteratively fixing them without frustration. At the end of each lesson, students create “remix” projects where they create their own program applying the knowledge they have learned.

The physical computing and project-based learning approach appeals to students otherwise uninterested in learning programming, as they seek relevance, meaning, and real-world value from instruction. In order to get hands-on experience with Python, each student will require their own set. My largest class is 30 students, so I need 30 CodeX.

*************************

CodeBot is unique in that it was created with the intent to teach programming. Every component needed is already built in! But without programming, CodeBot has no functionality. Students program the CodeBot in Python using CodeSpace. CodeSpace is a web-based learning platform that teaches Python using physical computing. Python is intuitive and easy to learn, making it the perfect fit for beginners.

Central to the CodeSpace approach is the exclusive use of text-based programming, rather than drag-and-drop icons. Students are guided step-by-step in the process of learning the Python language, with the support of web-based software tools that help catch errors and teach students how to debug their programs independently. This allows a natural process of learning through productive struggle and iteratively fixing them without frustration.

Robotics and the project-based learning approach appeals to students otherwise uninterested in learning programming, as they seek relevance, meaning, and real-world value from instruction. In order to get hands-on experience with Python, each student will require their own CodeBot. My largest class is 30 students, so I need 30 CodeBots.


  1. Program Impact/Outcomes/Goals - (also see data below):
  • Needs Statement: Identify the student needs the proposed project will address. Example: Currently, our district offers computer science with block-based programming models. Our students are ready to progress from visual programming, “drag and drop” platforms to real-world authentic text-based programming. Students have given feedback that they want to do “real programming.” CodeSpace, a web-based learning platform, integrates a software development environment with a self-paced step-by-step curriculum that teaches coding in the Python programming language. Students progress through problem-based projects using the CodeX and CodeBot, versatile maker-oriented computing devices designed for teaching coding. Other curriculum models remain “in the screen,” with students learning computational thinking through manipulating characters or objects on a screen. This format is minimally engaging to a large number of our students. In contrast, Firia Labs’ curricula put problem-solving through physical computing front and center. Each project begins with a real-world application problem. Students are guided incrementally through the steps toward the solution. Upon completion, students are prompted to complete “remix projects,” applying the skills they learned toward other applications. In addition, the teacher resources include hands-on labs using the tools created to investigate other questions. 
  • Impact: the long-term changes that the program aims to produce; the desired end result.
    Ex. We aim to increase enrollment in CS Electives in our school district over the next five years. We hope to see increased proficiency on state exams in math for 8th grade students. 10% of 10th grade students will take the AP Computer Science Principles exam.
  • Outcomes: the short or medium-term changes that an initiative or program produces.
    Ex. We will offer the Python with CodeX curriculum in the 2023-2024 school year. We will see increased enrollment in CS Electives next year. We will offer AP Computer Science Principles for the first time.
    Ex. Writing code is similar in many ways to literary writing. There are grammar and syntax rules that must be followed, all while composing a meaningful narrative to satisfy the writer’s objectives. Just as developing writing skills requires individual practice, learning to code requires that students compose and test their work individually. They need to make their own mistakes, and struggle through correcting them. Mistakes in structure, grammar, punctuation, capitalization, etc. are priceless learning opportunities. Students learn an incredible amount from their mistakes! The debugging tools provide a safety-net for them, guiding them to iterate quickly through successive failed attempts to arrive at a working solution.
    Ex. One of the great things about coding in CodeSpace is the expressiveness it affords. Coding is a craft that takes time to master, but with only a few basic tools, students can start crafting some pretty amazing things! Before they even complete the first project, some students will probably be experimenting “off-script” with some ideas of their own. Naturally, students will progress at different speeds. Since the material is set up for independent study, faster students may move ahead to more advanced projects independently. Remixing provides an alternative that can keep groups more synchronized in their progress through the projects. Each project can be modified, extended, and enhanced. Many students will want to experiment with what they’ve learned, and suggestions are provided along the way to spur this creative tinkering.
  • Goals: what do you want you students to accomplish, and how will you assess that they've met that goal?
    Ex. Students will complete the Python with CodeX curriculum, finishing with a capstone project in which they identify a problem and create a solution using the hardware and software provided.
    Ex. The goal of the course is for students to become familiar with text-based programming and computer science careers. Students will complete a problem-based “remix project” at the end of each unit. The purpose of the remix project is to apply skills, both previously mastered and newly learned, to create a new artifact. Students begin by creating a plan and documenting changes to the plan along the way. Before completion, students will engage in the peer feedback/review process. Students will be assessed using a project checklist and rubric during a teacher-student conference. The purpose of the conference is for students to justify their design choices and explain any obstacles they came upon, and how they overcame those problems. Evidence of mastery will be documented through the planning, peer feedback, and project rubric forms.
    Ex. Our goal is to motivate students with tangible, challenging, and practical projects that just happen to require coding to build. We want students to think about how they might code a given project using what they already know. Only then do we teach just enough coding concepts to help them get the job done. This approach gives reason and meaning to each concept, as well as relevant problem context which helps them retain it! 
  • Ex. Student data such as class enrollment, AP Exam results, achievement test scores, etc.
Ex. Firia Labs’ curricula applies standards and student outcomes for Metacognition, Critical Thinking, Creative Thinking, Problem Solving, Communication and Creative Expression, Information Literacy, Social-Emotional Learning, Autonomous Learning, and Executive Skills. Not only will students practice and demonstrate these standards, but the curricula explicitly teaches these skills throughout the course. Students will: 
Metacognition:
  • Ask clarifying and diverging questions;
  • Summarize and justify the knowledge gained through reading and programming activities;
Critical Thinking:
  • Assess the effectiveness of programming solutions;
  • Combine and adapt multiple ideas or concepts;
  • Apply programming principles to different areas;
Creative Thinking:
  • Create original ideas in order to find a solution to a stated problem;
  • Combine concepts in order to create a new understanding;
Problem Solving:
  • Routinely engage in the problem-solving process;
Communication and Creative Expression:
  • Support and defend programming and design decisions orally;
  • Create and present a written plan in order to share ideas;
  • Edit and refine written plans;
Information Literacy:
  • Apply troubleshooting strategies;
  • Use software to complete educational tasks;
  • Identify and use appropriate technological tools;
  • Write basic programs in the Python computer programming language;
  • Understand the principles of good software design;
Social-Emotional Learning
  • Develop a healthy perception of perfectionism versus a “minimally viable product”;
  • Accept failure as a part of growth;
  • Differentiate and practice constructive versus destructive criticism;
  • Question stereotypes;
Autonomous Learning
  • Gather, organize, and apply new knowledge;
  • Exhaust resources prior to asking for help troubleshooting;
  • Utilize time management skills;
  • Reflect on progress as determined by project goals;
  • Self-evaluate progress on completion of final tasks;
  • Explore and pursue areas of personal interests;
  • Demonstrate personal motivation and task commitment;
  • Develop persistence when working on challenging activities;
  • Take academic risks by accepting challenges outside of comfort zones;
  • Identify multiple alternative methods of accomplishing a task;
  • Evaluate alternative methods for effectiveness and efficiency and chose a “best” course of action;
  • Develop a receptive attitude towards feedback;
  • Determine how to improve based upon feedback;
  • Respond to feedback with well-reasoned explanation;
Executive Skills
  • Develop and adhere to a time-schedule;
  • Develop a list of goals and complete the items on the list;
  • Develop, evaluate, and select criteria when given multiple alternatives;
  • Self-monitor verbal and non-verbal responses to others;
  • Prioritize project elements;
  • Execute ideas to completion;
  • Self-evaluate final projects;
  • Identify and articulate multiple solutions;
  • Establish a unified solution from consensus among partners;
  • Develop realistic goals and objectives:
  • Respect perspectives of others;
  • Compromise and negotiate to accomplish tasks.