RadGrad

Summer 2021 

Why RadGrad

Why RadGrad

  • Rethink the representation of the undergraduate degree experience
  • Create an educational environment for newcomers to a STEM discipline in which they can learn about the field, local opportunities, and local mentors and peers
  • Create a more favorable environment for women and underrepresented groups to engage with STEM.

Why this summer project

  • Funded by the National Science Foundation (NSF) Research Experience for Undergraduates (REU) program
  • Goal: Provide a "research experience" for undergrads

What do we want to have happen this summer? (Student Perspective)

  • Learn about "software-based" research
  • Improve software engineering skills
  • Improve understanding of one's own professional passions and future career goals.

What do we want to have happen this summer? (Research Perspective)

  • Implement/refine system sufficiently for pilot studies of Students, Faculty, and Advisor roles
  • Achieve system functionality and stability sufficient for Fall, 2021 release to both ICS and Comp Eng programs.
  • Reduce "technical debt", create framework that enables rapid evolution, extension, and experimentation with advanced features.

What is Technical Debt? How does it happen?

  • Shortcuts: Cut and paste code to perform a function
  • Ignorance: A poor implementation due to lack of knowledge about better alternatives
  • Infrastructure evolution:  Introduction of new libraries or evolution of existing ones means original code is no longer best

The RadGrad codebase contains technical debt from all of these situations.

What is technical debt? Why is it bad?

  • Harder to create uniform look and feel
  • Harder to remove bugs
  • Harder to evolve system
  • Harder to learn optimal design/coding practices from code base.

Tech Debt Example

Where is the "technical debt" in these 17 lines of code?

Tech Debt Example

No Tech Debt

Moral of the story:

You (probably) won't recognize technical debt when you see it!

You (probably) won't know how to remove it!

Your software engineering mission

  • Learn how to develop high quality code in RadGrad so that we can accomplish the research goals of the summer.
  • Despite the fact that not all of the code in RadGrad is high quality!
  • This means you must not only learn to develop new high quality code, but learn to recognize existing low quality code and fix it as well!

Your research mission

  • Help us determine how to provide a representation of the undergraduate student experience that helps:
    • Students learn more about their discipline and engage with each other, their faculty, and their advisor
    • Faculty to provide curated, useful resources to students
    • Advisors to more efficiently and effectively help students complete their degree program
    • Improve engagement and retention of women and underrepresented groups

How we're going to do it

How we're going to do it

  • Two "All Hands" meetings (Mon, Thu)
  • One "One-on-One" meeting with Cam
  • One "One-on-One" meeting with Philip

All Hands Meetings

  • Mondays: Share status, planning
  • Thursdays: Code Review

One on One Meetings

  • No Agenda, very informal
  • Purpose is to simply code together for a few minutes
  • Share knowledge about tools (IntelliJ, GitHub, Discord)
  • Share knowledge about code base
  • Learn how to search, discover, fix things

Let's create a culture of conversation

  • COVID means we won't meet physically.
  • New projects and tasks are intimidating. 
  • We must all fight "imposter syndrome"
  • We must all fight isolated working

The Cure:
Talk (voice, video) with at least one teammate every day M-Th

It will definitely make the summer more fun!

Recording Hours

What's Next?

Let's look at onboarding tasks

RadGrad Summer 2021 Project Overview

By Philip Johnson

RadGrad Summer 2021 Project Overview

Introduction to the RadGrad Project for Summer 2021

  • 89