Matching Items (42)

Filtering by

Clear all filters

133804-Thumbnail Image.png

Calculat3d: A 3D Graphing Calculator

Description

Modern curriculum requires students to purchase expensive handheld calculators, which has created a market with little competition or incentive for improvement. The purpose of this project was to create a competitive free alternative to be used outside the classroom for

Modern curriculum requires students to purchase expensive handheld calculators, which has created a market with little competition or incentive for improvement. The purpose of this project was to create a competitive free alternative to be used outside the classroom for those who do not have the economic stability to purchase, for example, a TI-82, which costs approximately $100. Calculat3d is an Android application that matches the general-purpose functionality of the TI-82, including calculations, basic statistical functions, graphing, and creating programs. Additionally, a programming language and interpreter were created so programs can be written inside Calculat3d and be used alongside calculations, thus expanding the functionality of the calculator. Graphing functionality is also included in Calculat3d but expanded to three dimensions as opposed to the two-dimension limited TI calculator.

Contributors

Agent

Created

Date Created
2018-05

132570-Thumbnail Image.png

Why Students in Computer Science Courses Cheat?

Description

The goal of this study is to equip administrators and instructors with a deeper understanding of the apparent cheating problem in Computer Science courses, with proposed solutions to lower academic dishonesty from the students’ perspective.

Contributors

Agent

Created

Date Created
2019-05

132649-Thumbnail Image.png

Privacy-guaranteed Data Collection: The Case for Efficient Resource Management of Nonprofit Organizations

Description

Through the personal experience of volunteering at ASU Project Humanities, an organization that provides resources such as clothing and toiletries to the homeless population in Downtown Phoenix, I noticed efficiently serving the needs of the homeless population is an important

Through the personal experience of volunteering at ASU Project Humanities, an organization that provides resources such as clothing and toiletries to the homeless population in Downtown Phoenix, I noticed efficiently serving the needs of the homeless population is an important endeavor, but the current processes for Phoenix nonprofits to collect data are manual, ad-hoc, and inefficient. This leads to the research question: is it possible to improve this process of collecting statistics on client needs, tracking donations, and managing resources using technology? Background research includes an interview with ASU Project Humanities, articles by analysts, and related work including case studies of current technologies in the nonprofit community. Major findings include i) a lack of centralized communication in nonprofits collecting needs, tracking surplus donations, and sharing resources, ii) privacy assurance is important to homeless individuals, and iii) pre-existing databases and technological solutions have demonstrated that technology has the ability to make an impact in the nonprofit community. To improve the process, standardization, efficiency, and automation need to increase. As a result of my analysis, the thesis proposes a prototype solution which includes two parts: an inventory database and a web application with forms for user input and tables for the user to view. This solution addresses standardization by showing a consistent way of collecting data on need requests and surplus donations while guaranteeing privacy of homeless individuals. This centralized solution also increases efficiency by connecting different agencies that cater to these clients. Lastly, the solution demonstrates the ability for resources to be made available to each organization which can increase automation. In conclusion, this database and web application has the potential to improve nonprofit organizations’ networking capabilities, resource management, and resource distribution. The percentile of homeless individuals connected to these resources is expected to increase substantially with future live testing and large-scale implementation.

Contributors

Agent

Created

Date Created
2019-05

133206-Thumbnail Image.png

SolPatch: Toward Automatic Vulnerability Mitigation For Ethereum Smart Contracts

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,

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.

Contributors

Created

Date Created
2018-12

Explaining Electronic Voting Protocols to Non-Technical Audiences

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

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.

Contributors

Created

Date Created
2018-05

131337-Thumbnail Image.png

Rule-Based Home Automation

Description

Apple’s HomeKit framework centralizes control of smart home devices and allows users to create home automations based on predefined rules. For example, a user can add a rule to turn off all the lights in their house whenever they leave.

Apple’s HomeKit framework centralizes control of smart home devices and allows users to create home automations based on predefined rules. For example, a user can add a rule to turn off all the lights in their house whenever they leave. Currently, these rules must be added through a graphical user interface provided by Apple or a third-party app on iOS. This thesis describes how a text-based language provides users with a more expressive means of creating complex home automations and successfully implements such a language. Rules created using this text-based format are parsed and interpreted into rules that can be added directly into HomeKit. This thesis also explores how security features should be implemented with this text-based approach. Since automations are run by the system without user interaction, it is important to consider how the system itself can provide functionality to address the unintended consequences that may result from running an automation. This is especially important for the text-based approach since its increase in expressiveness makes it easier for a user to make a mistake in programming that leads to a security concern. The proposed method for preventing unintended side effects is using a simulation to run every automation prior to actually running the automation on real-world devices. This approach allows users to code some conditions that must be satisfied in order for the automation to run on devices in the home. This thesis describes the creation of such a program that successfully simulates every device in the home. There were limitations, however, with Apple's HomeKit framework, which made it impractical to match the state of simulated devices to real devices in the home. Without being able to match the current state of the home to the current state of the simulation, this method cannot satisfy the goal of ensuring that certain adverse effects will not occur as a result of automations. Other smart home control platforms that provide more extensibility could be used to create this simulation-based security approach. Perhaps as Apple continues to open up their HomeKit platform to developers, this approach may be feasible within Apple's ecosystem at some point in the future.

Contributors

Agent

Created

Date Created
2020-05

134339-Thumbnail Image.png

Design Patterns for Distributed Systems

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

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.

Contributors

Agent

Created

Date Created
2017-05

133093-Thumbnail Image.png

Efficient Algorithms for the Construction of Low-Density Parity-Check Codes

Description

Error-correcting codes are fundamental in modern digital communication with applications in data storage and data transmission. Interest in a class of error-correcting codes called low-density parity-check (LDPC) codes has been growing since their recent rediscovery because of their low decoding

Error-correcting codes are fundamental in modern digital communication with applications in data storage and data transmission. Interest in a class of error-correcting codes called low-density parity-check (LDPC) codes has been growing since their recent rediscovery because of their low decoding complexity and their high-performance. However, practical applications have been limited due to the difficulty of finding good LDPC codes for practical parameters. This paper proposes an exhaustive and a randomized algorithm for constructing a family of LDPC codes with practical parameters whose matrix representations meet the following requirements: for each row in the LDPC code matrix there exists exactly one common nonzero element, each row has a minimum weight of one and must be odd, and each column has a weight of at least two. These conditions improve performance of the resulting codes and simplify conversion into codes for quantum systems. Both algorithms utilize a maximal clique algorithm to construct LDPC matrices from graphs whose vertices are possible rows within said matrices and are adjacent the first condition is true. While these algorithms were found to be suitable for small parameters, future work which optimizes the resulting codes for their expected applications could also dramatically increase performance of the algorithms themselves.

Contributors

Agent

Created

Date Created
2018-12

133279-Thumbnail Image.png

Facebook Perceived User Privacy

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

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.

Contributors

Created

Date Created
2018-05

136275-Thumbnail Image.png

On the Semantic Equivalence of a Program and Any of its Intermediate Representations

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

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.

Contributors

Created

Date Created
2015-05