Matching Items (20)
Filtering by

Clear all filters

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
134360-Thumbnail Image.png
Description
The goal of this research study was to empirically study the effects of a project based learning activity. The effectiveness of this study was benchmarked according to two results: the effectiveness in communicating the scope and impact of engineering, and the effectiveness in increasing interest in computer systems engineering (CSE).

The goal of this research study was to empirically study the effects of a project based learning activity. The effectiveness of this study was benchmarked according to two results: the effectiveness in communicating the scope and impact of engineering, and the effectiveness in increasing interest in computer systems engineering (CSE). This research report presents an analysis of the effects of making engineering education socially relevant, interesting and accessible. High school students participated in a learning experience in which they designed flood evacuation systems that could warn a city of incoming floods. Both pre-assessments and post-assessments were implemented to capture students' awareness of engineering tasks and their interest levels in engineering tasks. Data on students' perceptions of specific engineering tasks were analyzed quantitatively through Wilcoxon signed-rank testing and determined that the program had significant positive effects on developing more accurate conceptions of engineering tasks. The results relating to student interest in CSE indicated that there was an increased level of interest in CSE engineering tasks after the program. There was a 14% increase in number of students who found engineering tasks interesting from 64% to 78%. However, as participants self-selected to participate in this learning experience, many students had positive perceptions of engineering tasks prior to engaging in the learning experience. This study was successful and met both of its primary goals of enhancing awareness and interest in engineering in this particular group of high school students.
ContributorsRidhwaan, Syed (Author) / Ganesh, Tirupalavanam (Thesis director) / Shrake, Scott (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2017-05
135078-Thumbnail Image.png
Description
The Internet of Things has spread Wi-Fi connectivity to household and business devices everywhere. It is important that we understand IoT's risks and capabilities as its popularity continues to grow, and that we recognize new and exciting uses for it. In this project, the ESP8266 Wi-Fi controller, powered by a

The Internet of Things has spread Wi-Fi connectivity to household and business devices everywhere. It is important that we understand IoT's risks and capabilities as its popularity continues to grow, and that we recognize new and exciting uses for it. In this project, the ESP8266 Wi-Fi controller, powered by a lithium battery, is used to transmit messages from a user's browser or mobile phone to an OLED display. The ESP8266 is a system on a chip (SOC) which boasts impressive features such as full TCP/IP stack, 1 MB of flash memory, and a 32-bit CPU. A web server is started on the ESP8266 which listens at a specific port and relays any strings from the client back to the display, acting as a simple notification system for a busy individual such as a professor. The difficulties with this project stemmed from the security protocol of Arizona State University's Wi-Fi network and from the limitations of the Wi-Fi chip itself. Several solutions are suggested, such as utilizing a personal cellular broadband router and polling a database for stored strings through a service such as Data.Sparkfun.com.
ContributorsKovatcheva, Simona Kamenova (Author) / Burger, Kevin (Thesis director) / Meuth, Ryan (Committee member) / Computer Science and Engineering Program (Contributor) / School of International Letters and Cultures (Contributor) / Barrett, The Honors College (Contributor)
Created2016-12
134879-Thumbnail Image.png
Description
The purpose of this project was to implement and analyze a new proposed rootkit that claims a greater level of stealth by hiding in cache. Today, the vast majority of embedded devices are powered by ARM processors. To protect their processors from attacks, ARM introduced a hardware security extension known

The purpose of this project was to implement and analyze a new proposed rootkit that claims a greater level of stealth by hiding in cache. Today, the vast majority of embedded devices are powered by ARM processors. To protect their processors from attacks, ARM introduced a hardware security extension known as TrustZone. It provides an isolated execution environment within the embedded device that enables us to run various memory integrity and malware detection tools to identify possible breaches in security to the normal world. Although TrustZone provides this additional layer of security, it also adds another layer of complexity, and thus comes with its own set of vulnerabilities. This new rootkit identifies and exploits a cache incoherence in the ARM device as a result of TrustZone. The newly proposed rootkit, called CacheKit, takes advantage of this cache incoherence to avoid memory introspection from tools in secure world. We implement CacheKit on the i.MX53 development board, which features a single ARM Cortex A8 processor, to analyze the limitations and vulnerabilities described in the original paper. We set up the Linux environment on the computer to be able to cross-compile for the development board which will be running the FreeScale android 2.3.4 platform with a 2.6.33 Linux kernel. The project is implemented as a kernel module that once installed on the board can manipulate cache as desired to conceal the rootkit. The module exploits the fact that in TrustZone, the secure world does not have access to the normal world cache. First, a technique known as Cache-asRAM is used to ensure that the rootkit is loaded only into cache of the normal world where it can avoid detection from the secure world. Then, we employ the cache maintenance instructions and resisters provided in the cp15 coprocessor to keep the code persistent in cache. Furthermore, the cache lines are mapped to unused I/O address space so that if cache content is flushed to RAM for inspection, the data is simply lost. This ensures that even if the rootkit were to be flushed into memory, any trace of the malicious code would be lost. CacheKit prevents defenders from analyzing the code and destroys any forensic evidence. This provides attackers with a new and powerful tool that is excellent for certain scenarios that were previously thought to be secure. Finally, we determine the limitations of the prototype to determine possible areas for future growth and research into the security of networked embedded devices.
ContributorsGutierrez Barnett, Mauricio Antonio (Author) / Zhao, Ziming (Thesis director) / Doupe, Adam (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2016-12
135605-Thumbnail Image.png
Description
An application called "Productivity Heatmap" was created with this project with the goal of allowing users to track how productive they are over the course of a day and week, input through scheduled prompts separated by 30 minutes to 4 hours, depending on preference. The result is a heat ma

An application called "Productivity Heatmap" was created with this project with the goal of allowing users to track how productive they are over the course of a day and week, input through scheduled prompts separated by 30 minutes to 4 hours, depending on preference. The result is a heat map colored according to a user's productivity at particular times of each day during the week. The aim is to allow a user to have a visualization on when he or she is best able to be productive, given that every individual has different habits and life patterns. This application was made completely in Google's Android Studio environment using Java and XML, with SQLite being used for database management. The application runs on any Android device, and was designed to be a balance of providing useful information to a user while maintaining an attractive and intuitive interface. This thesis explores the creation of a functional mobile application for mass distribution, with a particular set of end users in mind, namely college students. Many challenges in the form of learning a new development environment were encountered and overcome, as explained in the report. The application created is a core functionality proof-of-concept of a much larger personal project in creating a versatile and useful mobile application for student use. The principles covered are the creation of a mobile application, meeting requirements specified by others, and investigating the interest generated by such a concept. Beyond this thesis, testing will be done, and future enhancements will be made for mass-market consumption.
ContributorsWeser, Matthew Paul (Author) / Nelson, Brian (Thesis director) / Balasooriya, Janaka (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2016-05
ContributorsPalmer, Rock (Author) / Osburn, Steven (Thesis director) / Platt, Dane (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2024-05
ContributorsPalmer, Rock (Author) / Osburn, Steven (Thesis director) / Platt, Dane (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2024-05
ContributorsPalmer, Rock (Author) / Osburn, Steven (Thesis director) / Platt, Dane (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2024-05
ContributorsPalmer, Rock (Author) / Osburn, Steven (Thesis director) / Platt, Dane (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2024-05
ContributorsPalmer, Rock (Author) / Osburn, Steven (Thesis director) / Platt, Dane (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2024-05