Senior Software Project
I developed Hypothesis as part of the Student Originated Software program at Evergreen, the academic program I completed my senior year. My goal was to build a significant piece of software over the course of the year,
from research, requirements analysis, software architecture, and design, to coding, documentation, testing, and release.
The Problem:
A growing number of research scientists, particularly those in the academic community, believe that transparency and community involvement during the scientific process, lead to better, stronger and more productive science. This movement has been deemed open-access science and shares many ideals with the open source software movement.
Large organizations with ample resources are building feature-rich web applications to provide access to their raw data. Smaller organizations, like the SciDB Lab at Evergreen, have limited resources and so they simply post databases on the Web for download. My goal was to build a feature-rich application that could be used by the SciDB as well as other smaller organizations to give the community access to their data. The SciDB, their collaborators, and the larger community, need such an application and, instead of simply building a solution for the SciDB, I wanted to build a solution for all.
The Solution: I designed and developed a Java desktop application called Hypothesis that allows researchers to explore databases that reside all over the Web. Scientists simply create an account with Hypothesis and register a database they wish to share. They can set a desired access level for the database, giving only themselves, specified collaborators, or the whole world access to the data. Authorized users can then employ Hypothesis to connect to the database from their own computer, explore the data through a friendly user interface, and export data for manipulation in data analysis programs. The application utilizes the Java JDBC library to interface with multiple types of databases, so scientists don't have to convert their data from one format to another to make it compatible with Hypothesis. Hypothesis is an open source, cross-platform tool that researchers, scientists, professors and students can use to easily explore data and collaborate on scientific research on the Web.
Artifacts
Academic Writing
Software Development Processes:
A Comparison of The Capability Maturity Model & Agile/Scrum
Abstract:
The software industry has a history riddled with failed software projects.
Most experts agree, while the reasons for software failures are
complex, they revolve around some combination of poor requirements
analysis, an inability to manage changing requirements, poor architecture and system-wide
design, and a lack of any software process. Quite tellingly, most experts also agree that
these failures are avoidable. Two popular and very different software
development processes, The Capability Maturity Model (CMM) and Agile/Scrum Development, are compared.
Software Development Processes: A Comparison of The Capability Maturity Model & Agile/Scrum »
Gender Disparities in Science & Engineering
Abstract: In January 2005 Lawrence Summers, then president of Harvard University, gave a speech on the under representation of women in the sciences and on science faculties of top
universities. He essentially argued that the cause of this phenomenon is due to differences in
men and women’s inherent nature, biology, and tastes. Studies in gender disparities debunk Summers' claims and ultimately show that bias, not biology, is to blame.
Gender Disparities in Science & Engineering »
The Hypothesis Project Report: Design & Functionality
Abstract:
Hypothesis is an application that I developed as my senior thesis project at
The Evergreen State College. It allows researchers to connect to and browse a variety
of databases, share their own databases with others,
and export data for manipulation in data analysis programs such as Microsoft Excel,
R, S and scripts written in Python. The application is an open source, cross-platform
tool that researchers, scientists, professors and students can use to easily explore data
and collaborate on research.
The Hypothesis Project Report: Design & Functionality »
Academic Evaluations
Jennifer had an outstanding year in SOS [Student Originated Software]. She was an excellent student and threw herself into all the areas we studied. She has an excellent work ethic and sets high standards for herself. She pushed herself to see the value in all the parts of the program and produced a significant corpus of work...
Jennifer's work in Data Structures was excellent. She turned in all programming assignments. Her midterm was excellent. She shows a very good understanding of how data structures are designed, how to use them, and how to modify them. In the winter her midterm and final were both among the best in the class...
[In Analysis of Algorithms] her midterm and final were excellent: she demonstrated a very good grasp of how to approach a problem, how to analyze its characteristics, and the math skills required to complete the analysis. Again, Jennifer had personal goals for her understanding that exceeded my own expectations. Her work in analysis complemented her work in data structures very well: she now has a very good understanding of data structures and algorithms, as well as an understanding of how to evaluate their properties and appropriate uses...
[In Concurrency Jennifer] ...demonstrated a very good understanding of the software architectures for a number of classic concurrent patterns. Her reports were excellent and detailed both her design and implementation notes, as well as reflections on how she would improve her implementations.
”
—Sheryl Shulman, Ph.D., Student Originated Software
In Java Programming, Jennifer did excellent work both on the homework and the exams. Her midterm exam was perfect. She worked with one other student on a database project that was well-designed, documented and coded. Of all of the projects in the class, I selected hers to make available to other students in the spring so that they could develop a graphical interface for it. Her development as a programmer has been wonderful.”
—Richard Weiss, Ph.D., Java Programming
In the winter quarter Evolution of Computing Technology... All three of [Jennifer's] papers were excellent. They were well composed, clearly organized around a central thesis, and well supported. Each paper directly addressed the question posed by the assignment, moreover, her papers showed a progression in the depth of her ideas and the maturity of her voice. Jennifer was deeply insightful and expressed herself carefully and clearly.”
—Neal Nelson, Ph.D., Evolution of Computing Technology Seminar
Jennifer is a bright, motivated student who is well organized, highly disciplined and very articulate about her work. It was a delight to work with her, and she produced a highly successful project. Jennifer demonstrated the ability to work independently to learn new technology and to integrate the new technology into an existing web site. Her web sites are among the best I have seen - very clear layout, aesthetically pleasing, and reliable. Her code is more clearly written and modularized than much of the code I have seen from students who have had many quarters of programming, and she demonstrated a clear sense of security issues, and the resulting complexity that assuring web site security places onto a development project. Her database design was excellent and showed good nascent ability in information technology.
”
—Judith B. Cushing, Ph.D., Designing & Implementing Real-World Systems
[In Discrete Mathematics Jennifer’s] … work showed good assimilation of the subject and was indicative of her careful effort to fill in the gaps in her understanding. She also had near-perfect attendance in this subject, attending all but one class meeting. Jennifer’s work in Discrete Mathematics II was even better, with perfect attendance and an excellent performance on every assignment, showing a thorough understanding of the material each time. Jennifer's work on all six exams was very good. On each exam, she correctly solved a wide range of types of problems, showing her assimilation of the material and her ability to apply it. Jennifer grew nicely as a student of mathematics in these two quarters; her careful, assiduous work resulted in significantly developed abilities to solve problems and clearly present her solutions. Her efforts in these two quarters have left her well-prepared for future studies in mathematics and related disciplines.
”
—Brian L. Walter Ph.D., Discrete Mathematics
In Computer Organization and Architecture, Jennifer was one of the most conscientious students. She completed all of the homework, which was very good as were her exams... her final exam was perfect. Her assembly code was elegant and well-documented. There was a remarkable progress in structure, documentation, and confidence over the two quarters.”
—Richard Weiss, Ph.D., Computer Organization and Architecture
In the spring quarter Ethics and Technology seminar... [Jennifer] was a stimulating seminar participant with a strong ability to focus on important ethical considerations. She listened closely to the contributions of other seminar participants and she responded by applying her knowledge from the readings and giving carefully reasoned ethical arguments.”
—Neal Nelson, Ph.D., Ethics and Technology Seminar
Jen's work in Python was excellent - outstanding if one considers that this was her first programming course.
She worked exceptionally hard and her programs were among the clearest and easiest to read of any in the program. They were also among the most reliable, and her user interface designs were probably the best in the class.
”
—Judith B. Cushing, Ph.D., Data and Information: Quantitative Ecology
Jennifer’s performance in this independent learning contract was excellent. She conscientiously completed her weekly reading and programming assignments and submitted excellent portfolios of her work with weekly reports summarizing what she had learned. Her reports were thorough and indicated an excellent understanding of the concepts as well as the insights gained from her programming experiences. ”
—Neal Nelson, Ph.D., Object-Oriented Design & Java Programming
[Jennifer's] written reflections on the lectures were among the three best of the twenty that I read. They were exceptionally clear and demonstrated a very good understanding of the issues involved in developing information technology for government agencies, and in general. ”
—Judith B. Cushing, Ph.D., Digital Government