Barrett, The Honors College at Arizona State University proudly showcases the work of undergraduate honors students by sharing this collection exclusively with the ASU community.

Barrett accepts high performing, academically engaged undergraduate students and works with them in collaboration with all of the other academic units at Arizona State University. All Barrett students complete a thesis or creative project which is an opportunity to explore an intellectual interest and produce an original piece of scholarly research. The thesis or creative project is supervised and defended in front of a faculty committee. Students are able to engage with professors who are nationally recognized in their fields and committed to working with honors students. Completing a Barrett thesis or creative project is an opportunity for undergraduate honors students to contribute to the ASU academic community in a meaningful way.

Displaying 1 - 10 of 40
136275-Thumbnail Image.png
Description
The central goal of this thesis is to develop a practical approach to validating the correctness of SSA forms. Since achieving this goal is very involved for a general program, we restrict our attention to simple programs. In particular, the programs we consider are loop-free and are comprised of simple

The central goal of this thesis is to develop a practical approach to validating the correctness of SSA forms. Since achieving this goal is very involved for a general program, we restrict our attention to simple programs. In particular, the programs we consider are loop-free and are comprised of simple assignments to scalar variables, as well as input and output statements. Even for such a simple program, a full formal treatment would be very involved, extending beyond the scope of an undergraduate honors thesis.
ContributorsLusi, Dylan Patrick (Author) / Bazzi, Rida (Thesis director) / Fainekos, Georgios (Committee member) / Barrett, The Honors College (Contributor) / School of Mathematical and Statistical Sciences (Contributor) / Computer Science and Engineering Program (Contributor)
Created2015-05
136403-Thumbnail Image.png
Description
Dynamic languages like Java enjoy robust and powerful testing tools like JUnit and Cobertura. On the other hand, while there is no shortage of unit testing frameworks for C, the nature of C makes it difficult to make frameworks as powerful as those for other languages. In this paper, we

Dynamic languages like Java enjoy robust and powerful testing tools like JUnit and Cobertura. On the other hand, while there is no shortage of unit testing frameworks for C, the nature of C makes it difficult to make frameworks as powerful as those for other languages. In this paper, we describe ZTest, a testing framework that addresses some of these shortcomings in the C unit testing landscape. We also discuss results of its application to a medium-sized C project.
ContributorsIadicicco, Alexander (Author) / Bazzi, Rida (Thesis director) / Shrivastava, Aviral (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2015-05
135230-Thumbnail Image.png
Description
Agent Based modeling has been used in computer science to simulate complex phenomena. The introduction of Agent Based Models into the field of economics (Agent Based Computational Economics ACE) is not new, however work on making model environments simpler to design for individuals without a background in computer science or

Agent Based modeling has been used in computer science to simulate complex phenomena. The introduction of Agent Based Models into the field of economics (Agent Based Computational Economics ACE) is not new, however work on making model environments simpler to design for individuals without a background in computer science or computer engineering is a constantly evolving topic. The issue is a trade off of how much is handled by the framework and how much control the modeler has, as well as what tools exist to allow the user to develop insights from the behavior of the model. The solutions looked at in this thesis are the construction of a simplified grammar for model construction, the design of an economic based library to assist in ACE modeling, and examples of how to construct interactive models.
ContributorsAnderson, Brandon David (Author) / Bazzi, Rida (Thesis director) / Kuminoff, Nicolai (Committee member) / Roberts, Nancy (Committee member) / Computer Science and Engineering Program (Contributor) / Economics Program in CLAS (Contributor) / Barrett, The Honors College (Contributor)
Created2016-05
133279-Thumbnail Image.png
Description
There are potential risks when individuals choose to share information on social media platforms such as Facebook. With over 2.20 billion active monthly users, Facebook has the largest collection of user information compared to other social media sites. Due to their large collection of data, Facebook has constantly received criticism

There are potential risks when individuals choose to share information on social media platforms such as Facebook. With over 2.20 billion active monthly users, Facebook has the largest collection of user information compared to other social media sites. Due to their large collection of data, Facebook has constantly received criticism for their data privacy policies. Facebook has constantly changed its privacy policies in the effort to protect itself and end users. However, the changes in privacy policy may not translate into users changing their privacy controls. The goal of Facebook privacy controls is to allow Facebook users to be in charge of their data privacy. The goal of this study was to determine if a gap between user perceived privacy and reality existed. If this gap existed we investigated to see if certain information about the user would have a relationship to their ability to implement their settings successfully. We gathered information of ASU college students such as: gender, field of study, political affiliations, leadership involvement, privacy settings and online behaviors. After collecting the data, we reviewed each participants' Facebook profiles to examine the existence of the gap between their privacy settings and information available as a stranger. We found that there existed a difference between their settings and reality and it was not related to any of the users' background information.
ContributorsPascua, Raphael Matthew Bustos (Author) / Bazzi, Rida (Thesis director) / Dasgupta, Partha (Committee member) / Computer Science and Engineering Program (Contributor) / W.P. Carey School of Business (Contributor) / Barrett, The Honors College (Contributor)
Created2018-05
Description
As computers become a more embedded aspect of daily life, the importance of communicating ideas in computing and technology to the general public has become increasingly apparent. One such growing technology is electronic voting. The feasibility of explaining electronic voting protocols was directly investigated through the generation of a presentation

As computers become a more embedded aspect of daily life, the importance of communicating ideas in computing and technology to the general public has become increasingly apparent. One such growing technology is electronic voting. The feasibility of explaining electronic voting protocols was directly investigated through the generation of a presentation based on journal articles and papers identified by the investigator. Extensive use of analogy and visual aids were used to explain various cryptographic concepts. The presentation was then given to a classroom of ASU freshmen, followed by a feedback survey. A self-evaluation on the presentation methods is conducted, and a procedure for explaining subjects in computer science is proposed based on the researcher's personal process.
ContributorsReniewicki, Peter Josef (Author) / Bazzi, Rida (Thesis director) / Childress, Nancy (Committee member) / School of Mathematical and Statistical Sciences (Contributor) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2018-05
134339-Thumbnail Image.png
Description
Implementing a distributed algorithm is more complicated than implementing a non-distributed algorithm. This is because distributed systems involve coordination of different processes each of which has a partial view of the global system state. The only way to share information in a distributed system is by message passing. Task that

Implementing a distributed algorithm is more complicated than implementing a non-distributed algorithm. This is because distributed systems involve coordination of different processes each of which has a partial view of the global system state. The only way to share information in a distributed system is by message passing. Task that are straightforward in a non-distributed system, like deciding on the value of a global system state, can be quite complicated to achieve in a distributed system [1]. On top of the difficulties caused by the distributed nature of the computations, distributed systems typically need to be able to operate normally even if some of the nodes in the system are faulty which further adds to the uncertainty that processes have about the global state. Many factors make the implementation of a distributed algorithms difficult. Design patterns [2] are useful in simplifying the development of general algorithms. A design pattern describes a high level solution to a common, abstract problem that many systems may face. Common structural, creational, and behavioral problems are identified and elegantly solved by design patterns. By identifying features that an algorithm uses, and framing each feature as one of the common problems that a specific design pattern solves, designing a robust implementation of an algorithm becomes more manageable. In this way, design patterns can aid the implementation of algorithms. Unfortunately, design patterns are typically not discussed when developing distributed algorithms. Because correctly developing a distributed algorithm is difficult, many papers (eg. [1], [3], [4]) focus on verifying the correctness of the developed algorithm. Papers that are more practical ([5], [6]) establish the correctness of their algorithm and that their algorithm is efficient enough to be practical. However, papers on distributed algorithms usually make little mention of design patterns. The goal of this work was to gain experience implementing distributed systems including learning the application of design patterns and the application of related technical topics. This was achieved by implementing a currently unpublished algorithm that is tentatively called Bakery Consensus. Bakery Consensus is a replicated state-machine protocol that can tolerate servers with Byzantine faults, but assumes non-faulty clients. The algorithm also establishes non-skipping timestamps for each operation completed by the replicated state-machine. The design of the structure, communication, and creation of the different system parts depended heavily upon the book Design Patterns [2]. After implementing the system, the success of the in implementing its various parts was based upon their ability to satisfy the SOLID [7] principles as well as their ability to establish low coupling and high cohesion [8]. The rest of this paper is organized as follows. We begin by providing background information about distributed algorithms, including replicated state-machine protocols and the Bakery Consensus algorithm. Section 3 gives a background on several design patterns and software engineering principles that were used in the development process. Section 4 discusses the well designed parts of the system that used design patterns, and how these design patterns were chosen. Section 5 discusses well designed system parts that relied upon other technical topics. Section 6 discusses system parts that need redesign. The conclusion summarizes what was accomplished by the implementation process and the lessons learned about design patterns for distributed algorithms.
ContributorsStoutenburg, Tristan Kaleb (Author) / Bazzi, Rida (Thesis director) / Richa, Andrea (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2017-05
133206-Thumbnail Image.png
Description
Ethereum smart contracts are susceptible not only to those vulnerabilities common to all software development domains, but also to those arising from the peculiar execution model of the Ethereum Virtual Machine. One of these vulnerabilities, a susceptibility to re-entrancy attacks, has been at the center of several high-profile contract exploits.

Ethereum smart contracts are susceptible not only to those vulnerabilities common to all software development domains, but also to those arising from the peculiar execution model of the Ethereum Virtual Machine. One of these vulnerabilities, a susceptibility to re-entrancy attacks, has been at the center of several high-profile contract exploits. Currently, there exist many tools to detect these vulnerabilties, as well as languages which preempt the creation of contracts exhibiting these issues, but no mechanism to address them in an automated fashion. One possible approach to filling this gap is direct patching of source files. The process of applying these patches to contracts written in Solidity, the primary Ethereum contract language, is discussed. Toward this end, a survey of deployed contracts is conducted, focusing on prevalence of language features and compiler versions. A heuristic approach to mitigating a particular class of re-entrancy vulnerability is developed, implemented as the SolPatch tool, and examined with respect to its limitations. As a proof of concept and illustrative example, a simplified version of the contract featured in a high-profile exploit is patched in this manner.
ContributorsLehman, Maxfield Chance Christian (Author) / Bazzi, Rida (Thesis director) / Doupe, Adam (Committee member) / School of Mathematical and Statistical Sciences (Contributor) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2018-12
147891-Thumbnail Image.png
Description

Cryptojacking is a process in which a program utilizes a user’s CPU to mine cryptocurrencies unknown to the user. Since cryptojacking is a relatively new problem and its impact is still limited, very little has been done to combat it. Multiple studies have been conducted where a cryptojacking detection system

Cryptojacking is a process in which a program utilizes a user’s CPU to mine cryptocurrencies unknown to the user. Since cryptojacking is a relatively new problem and its impact is still limited, very little has been done to combat it. Multiple studies have been conducted where a cryptojacking detection system is implemented, but none of these systems have truly solved the problem. This thesis surveys existing studies and provides a classification and evaluation of each detection system with the aim of determining their pros and cons. The result of the evaluation indicates that it might be possible to bypass detection of existing systems by modifying the cryptojacking code. In addition to this classification, I developed an automatic code instrumentation program that replaces specific instructions with functionally similar sequences as a way to show how easy it is to implement simple obfuscation to bypass detection by existing systems.

ContributorsLarson, Kent Merle (Author) / Bazzi, Rida (Thesis director) / Shoshitaishvili, Yan (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2021-05
147599-Thumbnail Image.png
Description

The scope of this project is a combination of material science engineering and mechanical engineering. Overall, the main goal of this project is to develop a lightweight concrete that maintains its original strength profile. Initial research has shown that a plastic-concrete composite could create a more lightweight concrete than that

The scope of this project is a combination of material science engineering and mechanical engineering. Overall, the main goal of this project is to develop a lightweight concrete that maintains its original strength profile. Initial research has shown that a plastic-concrete composite could create a more lightweight concrete than that made using the typical gravel aggregate for concrete, while still maintaining the physical strength that concrete is known for. This will be accomplished by varying the amount of plastic in the aggregate. If successful, this project would allow concrete to be used in applications it would typically not be suitable for.<br/>After testing the strength of the concrete specimens with varying fills of plastic aggregate it was determined that the control group experienced an average peak stress of 2089 psi, the 16.67% plastic group experienced an average peak stress of 2649 psi, the 33.3% plastic group experienced an average peak stress of 1852 psi, and the 50% plastic group experienced an average stress of 924.5 psi. The average time to reach the peak stress was found to be 12 minutes and 24 seconds in the control group, 15 minutes and 34 seconds in the 16.7% plastic group, 9 minutes and 45 seconds in the 33.3% plastic group, and 10 minutes and 58 seconds in the 50% plastic group. Taking the average of the normalized weights of the cylindrical samples it was determined that the control group weighed 14.773 oz/in, the 16.7% plastic group weighed 15 oz/in, the 33.3% plastic group weighed 14.573 oz/in, and the 50% plastic group weighed 12.959 oz/in. Based on these results it can be concluded that a small addition of plastic aggregate can be beneficial in creating a lighter, stronger concrete. The results show that a 16.7% fill ratio of plastic to rock aggregate can increase the failure time and the peak strength of a composite concrete. Overall, the experiment was successful in analyzing the effects of recycled plastic aggregate in composite concrete. <br/>Some possible future studies related to this subject material are adding aluminum to the concrete, having better molds, looking for the right consistency in each mixture, mixing for each mold individually, and performing other tests on the samples.

ContributorsClegg, Lauren Taylor (Co-author) / Benning, Taylor (Co-author) / Nian, Qiong (Thesis director) / Jiao, Yang (Committee member) / Mechanical and Aerospace Engineering Program (Contributor) / Dean, W.P. Carey School of Business (Contributor) / Barrett, The Honors College (Contributor)
Created2021-05
147600-Thumbnail Image.png
Description

The scope of this project is a combination of material science engineering and<br/>mechanical engineering. Overall, the main goal of this project is to develop a lightweight<br/>concrete that maintains its original strength profile. Initial research has shown that a<br/>plastic-concrete composite could create a more lightweight concrete than that made using the<br/>typical

The scope of this project is a combination of material science engineering and<br/>mechanical engineering. Overall, the main goal of this project is to develop a lightweight<br/>concrete that maintains its original strength profile. Initial research has shown that a<br/>plastic-concrete composite could create a more lightweight concrete than that made using the<br/>typical gravel aggregate for concrete, while still maintaining the physical strength that concrete is<br/>known for. This will be accomplished by varying the amount of plastic in the aggregate. If<br/>successful, this project would allow concrete to be used in applications it would typically not be<br/>suitable for.<br/>After testing the strength of the concrete specimens with varying fills of plastic aggregate<br/>it was determined that the control group experienced an average peak stress of 2089 psi, the<br/>16.67% plastic group experienced an average peak stress of 2649 psi, the 33.3% plastic group<br/>experienced an average peak stress of 1852 psi, and the 50% plastic group experienced an<br/>average stress of 924.5 psi. The average time to reach the peak stress was found to be 12 minutes<br/>and 24 seconds in the control group, 15 minutes and 34 seconds in the 16.7% plastic group, 9<br/>minutes and 45 seconds in the 33.3% plastic group, and 10 minutes and 58 seconds in the 50%<br/>plastic group. Taking the average of the normalized weights of the cylindrical samples it was<br/>determined that the control group weighed 14.773 oz/in, the 16.7% plastic group weighed 15<br/>oz/in, the 33.3% plastic group weighed 14.573 oz/in, and the 50% plastic group weighed 12.959<br/>oz/in. Based on these results it can be concluded that a small addition of plastic aggregate can be<br/>beneficial in creating a lighter, stronger concrete. The results show that a 16.7% fill ratio of<br/>plastic to rock aggregate can increase the failure time and the peak strength of a composite<br/>concrete. Overall, the experiment was successful in analyzing the effects of recycled plastic<br/>aggregate in composite concrete.<br/>Some possible future studies related to this subject material are adding aluminum to the<br/>concrete, having better molds, looking for the right consistency in each mixture, mixing for each<br/>mold individually, and performing other tests on the samples.

ContributorsBenning, Taylor Ann (Co-author) / Clegg, Lauren (Co-author) / Nian, Qiong (Thesis director) / Jiao, Yang (Committee member) / Mechanical and Aerospace Engineering Program (Contributor) / Materials Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2021-05