Matching Items (5)
Filtering by

Clear all filters

136360-Thumbnail Image.png
Description
The modern web presents an opportunity for educators and researchers to create tools that are highly accessible. Because of the near-ubiquity of modern web browsers, developers who hope to create educational and analytical tools can reach a large au- dience by creating web applications. Using JavaScript, HTML, and other modern

The modern web presents an opportunity for educators and researchers to create tools that are highly accessible. Because of the near-ubiquity of modern web browsers, developers who hope to create educational and analytical tools can reach a large au- dience by creating web applications. Using JavaScript, HTML, and other modern web development technologies, Genie was developed as a simulator to help educators in biology, genetics, and evolution classrooms teach their students about population genetics. Because Genie was designed for the modern web, it is highly accessible to both educators and students, who can access the web application using any modern web browser on virtually any device. Genie demonstrates the efficacy of web devel- opment technologies for demonstrating and simulating complex processes, and it will be a unique educational tool for educators who teach population genetics.
ContributorsRoos, Benjamin Hirsch (Author) / Cartwright, Reed (Thesis director) / Wilson Sayres, Melissa (Committee member) / Mayron, Liam (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2015-05
134510-Thumbnail Image.png
Description
The Barrett Poly Writing Colloquium is a dedicated group of students and faculty that come together to provide Freshmen in the Human Event with an impactful tutoring experience that enriches their Human Event papers and reading responses. There were, however, a few major issues with the way in which tutoring

The Barrett Poly Writing Colloquium is a dedicated group of students and faculty that come together to provide Freshmen in the Human Event with an impactful tutoring experience that enriches their Human Event papers and reading responses. There were, however, a few major issues with the way in which tutoring sessions were recorded, archived, and maintained. We set out to clean up the process and provide a more positive experience for all involved. Starting out, we searched to find a way to electronically archive tutoring receipts that students receive at the end of a tutoring session. In the beginning of the project, we were sporting experience with front-end coding languages such as HTML and CSS, with a minuscule amount of experience using JavaScript. By diving in and closing the gaps in our knowledge of JavaScript, we were able to build a web form that would suit the needs of the tutors and administrators, while still offering students the feedback that they needed to improve their writing, in a personal way that preserves the quality of the core service provided by the colloquium. Our primary objective was to build a system that moved the reporting of tutoring sessions online, while maintaining a way to generate a receipt for distribution to the students and tutors. We delivered on that, and then some, by building an automated system using Google's developer tools to automatically write all tutoring session data to a Google Sheet, and send an automated email with all relevant information to both the student and tutor. We then dedicated the time we had remaining to adding additional features. It is here that we began to run into problems that unfortunately proved to be technological constraints of the platforms we were developing on, and the languages we were using. By this point, it was too late for us to pivot, but we were still able to achieve many of our goals. For example, we successfully implemented a feature that automatically archives the entire year's worth of data and creates a new, clean Google Sheet at the beginning of each school year. If we were to continue our project, with more time, we would use different development tools and systems so that we could have more flexibility. However, using the Google API provided us with many benefits that allowed us to jump right in to building our program, without having to struggle with building a whole database with accounts and permissions.
ContributorsLiddle, Lucas (Co-author) / Fix, Nathan (Co-author) / Oberle, Eric (Thesis director) / Martin, Thomas (Committee member) / Kennedy, Chad (Committee member) / W. P. Carey School of Business (Contributor) / Barrett, The Honors College (Contributor)
Created2017-05
186805-Thumbnail Image.png
Description

Computational and systems biology are rapidly growing fields of academic study, but unfamiliar researchers are impeded by a lack of accessible, programming-optional, modelling tools. To address this gap, I developed BioSSA, a web framework built on JavaScript and D3.js which allows users to explore a small library of curated biophysical

Computational and systems biology are rapidly growing fields of academic study, but unfamiliar researchers are impeded by a lack of accessible, programming-optional, modelling tools. To address this gap, I developed BioSSA, a web framework built on JavaScript and D3.js which allows users to explore a small library of curated biophysical models as well as create and simulate their own reaction network. The mathematical foundation of BioSSA is the Stochastic Gillespie Algorithm, which is widely used in mathematical modeling and biology to represent chemical reaction systems. SGA is particularly well-suited as an introductory modelling tool because of its flexibility, broad applicability, and its ability to numerically approximate systems when analytical solutions are not available. BioSSA is freely available to the community and further improvements are planned.

ContributorsRamirez, Daniel (Author) / Ghasemzadeh, Hassan (Thesis director) / Liu, Li (Committee member) / Lu, Mingyang (Committee member) / Barrett, The Honors College (Contributor) / College of Health Solutions (Contributor)
Created2023-05
131631-Thumbnail Image.png
Description
This Barrett thesis seeks to analyze software design patterns’ effects on a software system. To achieve this, the author specified a game environment that lets users write their own artificial intelligence (AI) algorithms for simulation in the environment. Afterwards, the author designed an architecture implementing the game system and designed

This Barrett thesis seeks to analyze software design patterns’ effects on a software system. To achieve this, the author specified a game environment that lets users write their own artificial intelligence (AI) algorithms for simulation in the environment. Afterwards, the author designed an architecture implementing the game system and designed components implementing the architecture. In software design, engineers use design patterns to develop components since software patterns generally apply to object-to-object interactions; architecture patterns apply to component-to-component interactions, and while they greatly influence software design, they are out of this project’s scope. To design the objects comprising this thesis system's event-driven model-view-controller (MVC) architecture, the author used the Adapter pattern to interface with other libraries, the Publisher-Subscriber pattern to pass information between objects, the Singleton pattern to enforce the existence of single state objects, the Dependency Injection pattern to build generic and composable functions, the Observer pattern to directly alert objects of observed objects’ changes, the Factory pattern to abstract object initialization, the Monad pattern to express complex computations without explicit branch control logic, and the Facade pattern to unite the game objects’ disparate interfaces into a single interface for AI developers. The implementation, integration, and synthesis of these pre-existing design patterns is the primary contribution of this project. After designing the software system, the author implemented the design using the TypeScript programming language, the Babel transpiler, the Webpack code bundler, and the Babylon.js graphics library. The author then performed a static evaluation on the implemented game system files by describing the overall dependency hierarchy and measuring each file’s lines of code, maintainability index, cyclomatic complexity, and Halstead difficulty score. Furthermore, the author compared these measurements with those collected from the Babylon, Phaser, and Lodash JavaScript libraries. The goals for reporting these measurements were to help show the game’s design enabling the system’s maintainability, usability, and expandability quality attributes and underscore software development as a creative and artistic discipline grounded in computational science. This thesis highlights the need for further research including developing methods with tools for evaluating behavioral aspects of design patterns relative to their quality attributes.
ContributorsDuke, Thomas Carlin (Author) / Sarjoughian, Hessam (Thesis director) / Kobayashi, Yoshihiro (Committee member) / Computer Science and Engineering Program (Contributor, Contributor) / Barrett, The Honors College (Contributor)
Created2020-05
132577-Thumbnail Image.png
Description
The most important task for a beginning computer science student, in order for them to succeed in their future studies, is to learn to be able to understand code. One of the greatest indicators of student success in beginning programming courses is the ability to read code and predict its

The most important task for a beginning computer science student, in order for them to succeed in their future studies, is to learn to be able to understand code. One of the greatest indicators of student success in beginning programming courses is the ability to read code and predict its output, as this shows that the student truly understands what each line of code is doing. Yet few tools available to students today focus on helping students to improve their ability to read code. The goal of the random Python program generator is to give students a tool to practice this important skill.

The program writes randomly generated, syntactically correct Python 3 code in order to provide students infinite examples from which to study. The end goal of the project is to create an interactive tool where beginning programming students can click a button to generate a random code snippet, check if what they predict the output to be is correct, and get an explanation of the code line by line. The tool currently lacks a front end, but it currently is able to write Python code that includes assignment statements, delete statements, if statements, and print statements. It supports boolean, float, integer, and string variable types.
ContributorsDiLorenzo, Kaitlyn (Author) / Meuth, Ryan (Thesis director) / Miller, Phillip (Committee member) / School of International Letters and Cultures (Contributor) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2019-05