Matching Items (22)
Filtering by

Clear all filters

136728-Thumbnail Image.png
Description
This project was centered around designing a processor model (using the C programming language) based on the Coldfire computer architecture that will run on third party software known as Open Virtual Platforms. The end goal is to have a fully functional processor that can run Coldfire instructions and utilize peripheral

This project was centered around designing a processor model (using the C programming language) based on the Coldfire computer architecture that will run on third party software known as Open Virtual Platforms. The end goal is to have a fully functional processor that can run Coldfire instructions and utilize peripheral devices in the same way as the hardware used in the embedded systems lab at ASU. This project would cut down the substantial amount of time students spend commuting to the lab. Having the processor directly at their disposal would also encourage them to spend more time outside of class learning the hardware and familiarizing themselves with development on an embedded micro-controller. The model will be accurate, fast and reliable. These aspects will be achieved through rigorous unit testing and use of the OVP platform which provides instruction accurate simulations at hundreds of MIPS (million instructions per second) for the specified model. The end product was able to accurately simulate a subset of the Coldfire instructions at very high rates.
ContributorsDunning, David Connor (Author) / Burger, Kevin (Thesis director) / Meuth, Ryan (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2014-12
136364-Thumbnail Image.png
Description
The purpose of this project was to program a Raspberry Pi to be able to play music from both local storage on the Pi and from internet radio stations such as Pandora. The Pi also needs to be able to play various types of file formats, such as mp3 and

The purpose of this project was to program a Raspberry Pi to be able to play music from both local storage on the Pi and from internet radio stations such as Pandora. The Pi also needs to be able to play various types of file formats, such as mp3 and FLAC. Finally, the project is also to be driven by a mobile app running on a smartphone or tablet. To achieve this, a client server design was employed where the Raspberry Pi acts as the server and the mobile app is the client. The server functionality was achieved using a Python script that listens on a socket and calls various executables that handle the different formats of music being played. The client functionality was achieved by programming an Android app in Java that sends encoded commands to the server, which the server decodes and begins playing the music that command dictates. The designs for both the client and server are easily extensible and allow for any future modifications to the project to be easily made.
ContributorsStorto, Michael Olson (Author) / Burger, Kevin (Thesis director) / Meuth, Ryan (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2015-05
135246-Thumbnail Image.png
Description
The areas of cloud computing and web services have grown rapidly in recent years, resulting in software that is more interconnected and and widely used than ever before. As a result of this proliferation, there needs to be a way to assess the quality of these web services in order

The areas of cloud computing and web services have grown rapidly in recent years, resulting in software that is more interconnected and and widely used than ever before. As a result of this proliferation, there needs to be a way to assess the quality of these web services in order to ensure their reliability and accuracy. This project explores different ways in which services can be tested and evaluated through the design of various testing techniques and their implementations in a web application, which can be used by students or developers to test their web services.
ContributorsHilliker, Mark Paul (Author) / Chen, Yinong (Thesis director) / Nakamura, Mutsumi (Committee member) / Computer Science and Engineering Program (Contributor) / School of Mathematical and Statistical Sciences (Contributor) / Barrett, The Honors College (Contributor)
Created2016-05
Description
The Coffee Hutch project is derived from the field of Computer Science and consists of a website, a database, and a mobile application for Android devices. This three-tiered scheme is designed to support a point-of-sale payment system to be integrated with a standalone product dispensing machine. The website contains landing

The Coffee Hutch project is derived from the field of Computer Science and consists of a website, a database, and a mobile application for Android devices. This three-tiered scheme is designed to support a point-of-sale payment system to be integrated with a standalone product dispensing machine. The website contains landing pages which provide navigation and functional capabilities for users. The site also features a variety of PHP web services which communicate with the database using SQL commands. The application, programmed in the Java language, makes use of these services in a simple, utilitarian design aimed at modification of user data stored in the database. This database, developed with MySQL and managed with the phpMyAdmin application, contains limited information in order to maximize speed of read and write accesses from the website and Android app. Together, these three components comprise an effective payment management system model with mobile capabilities. All of the components of this project were built at no cost. The website hosting service is free and the third-party services required (such as Paypal payment services) are simulated. These simulations allowed me to demonstrate the functionality of the three-tiered product without the necessity for monetary supplication. This thesis features every aspect of the development and testing of The Coffee Hutch software components. Requirements for each function of the software are specified in one section, and they are aligned with various pieces of the code in the source documentation. Test cases which address each requirement are outlined in another section of the thesis.
ContributorsHutchison, Caleb Ryan (Author) / Burger, Kevin (Thesis director) / Zhao, Ming (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2016-12
134769-Thumbnail Image.png
Description
In order to adequately introduce students to computer science and robotics in an exciting and engaging manner certain teaching techniques should be used. In recent years some of the most popular paradigms are Visual Programming Languages. Visual Programming Languages are meant to introduce problem solving skills and basic programming constructs

In order to adequately introduce students to computer science and robotics in an exciting and engaging manner certain teaching techniques should be used. In recent years some of the most popular paradigms are Visual Programming Languages. Visual Programming Languages are meant to introduce problem solving skills and basic programming constructs inherent to all modern day languages by allowing users to write programs visually as opposed to textually. By bypassing the need to learn syntax students can focus on the thinking behind developing an algorithm and see immediate results that help generate excitement for the field and reduce disinterest due to startup complexity and burnout. The Introduction to Engineering course at Arizona State University supports this approach by teaching students the basics of autonomous maze traversing algorithms and using ASU VIPLE, a Visual Programming Language developed to connect with and direct real-world robots. However, some startup time is needed to learn how to interface with these robots using ASU VIPLE. That is why the HTML5 Autonomous Robot Web Simulator was created -- by encouraging students to use the simulator the problem solving behind autonomous maze traversing algorithms can be introduced more quickly and with immediate affirmation. Our goal was to improve this simulator and add features so that the simulator could be accessed and used for a more wide variety of introductory Computer Science lessons. Features scattered across past implementations of robotic simulators were aggregated in a cross platform solution. Upon initial development, a classroom test group revealed usability concerns and a demonstration of students' mental models. Mean time for task completion was 8.1min - compared to 2min for the authors. The simulator was updated in response to test group feedback and new instructor requirements. The new implementation reduces programming overhead while maintaining a learning environment with support for even the most complex applications.
ContributorsRodewald, Spencer (Co-author, Co-author) / Patel, Ankit (Co-author) / Chen, Yinong (Thesis director) / Chattin, Linda (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2016-12
132901-Thumbnail Image.png
Description
A common challenge faced by students is that they often have questions about course material that they cannot ask during lecture time. There are many ways for students to have these questions answered, such as office hours and online discussion boards. However, office hours may be at inconvenient times or

A common challenge faced by students is that they often have questions about course material that they cannot ask during lecture time. There are many ways for students to have these questions answered, such as office hours and online discussion boards. However, office hours may be at inconvenient times or locations, and online discussion boards are difficult to navigate and may be inactive. The purpose of this project was to create an Alexa skill that allows users to ask their Alexa-equipped device a question concerning their course material and to receive an answer retrieved from discussion board data. User questions are mapped to discussion board posts by use of the cosine similarity algorithm. In this algorithm, posts from the discussion board and the user’s question are converted into mathematical vectors, with each term in the vector corresponding to a word. The values of these terms are computed based on the word’s frequency within the vector’s corresponding document, the frequency of that word within all the documents, and the length of the document. After the question and candidate posts are converted into vectors, the algorithm determines the post most similar to the user’s question by computing the angle between the vectors. With the most similar discussion board post determined, the user receives the replies to the post, if any, as their answer. Users are able to indicate to their Alexa device whether they were satisfied by the answer, and if they were unsatisfied then they are given the opportunity to either rephrase their question or to have the question sent to a database of unanswered questions. The professor can view and answer the questions in this database on a website hosted by use of Amazon’s Simple Storage Service. The Alexa skill does well at answering questions that have already been asked in the discussion board. However, the skill depends heavily on the user’s word choice. Two questions that are semantically identical but different in phrasing are often given different answers. This is because the cosine algorithm measures similarity on the basis of word overlap, not semantic meaning, and thus the application never truly “understands” what type of answer the user desires. Improving the performance of this Alexa skill will require a more advanced question answering algorithm, but the limitations of Amazon Web Services as a development platform make implementing such an algorithm difficult. Nevertheless, this project has created the basis of a question answering Alexa skill by demonstrating a feasible way that the resources offered by Amazon can be utilized in order to build such an application.
ContributorsBaker, Matthew Elias (Author) / Chen, Yinong (Thesis director) / Balasooriya, Janaka (Committee member) / Historical, Philosophical & Religious Studies (Contributor) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2019-05
135981-Thumbnail Image.png
Description
Education in computer science is a difficult endeavor, with learning a new programing language being a barrier to entry, especially for college freshman and high school students. Learning a first programming language requires understanding the syntax of the language, the algorithms to use, and any additional complexities the language carries.

Education in computer science is a difficult endeavor, with learning a new programing language being a barrier to entry, especially for college freshman and high school students. Learning a first programming language requires understanding the syntax of the language, the algorithms to use, and any additional complexities the language carries. Often times this becomes a deterrent from learning computer science at all. Especially in high school, students may not want to spend a year or more simply learning the syntax of a programming language. In order to overcome these issues, as well as to mitigate the issues caused by Microsoft discontinuing their Visual Programming Language (VPL), we have decided to implement a new VPL, ASU-VPL, based on Microsoft's VPL. ASU-VPL provides an environment where users can focus on algorithms and worry less about syntactic issues. ASU-VPL was built with the concepts of Robot as a Service and workflow based development in mind. As such, ASU-VPL is designed with the intention of allowing web services to be added to the toolbox (e.g. WSDL and REST services). ASU-VPL has strong support for multithreaded operations, including event driven development, and is built with Microsoft VPL users in mind. It provides support for many different robots, including Lego's third generation robots, i.e. EV3, and any open platform robots. To demonstrate the capabilities of ASU-VPL, this paper details the creation of an Intel Edison based robot and the use of ASU-VPL for programming both the Intel based robot and an EV3 robot. This paper will also discuss differences between ASU-VPL and Microsoft VPL as well as differences between developing for the EV3 and for an open platform robot.
ContributorsDe Luca, Gennaro (Author) / Chen, Yinong (Thesis director) / Cheng, Calvin (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2015-12
Description

Among classes in the Computer Science curriculum at Arizona State University, Automata Theory is widely considered to be one of the most difficult. Many Computer Science concepts have strong visual components that make them easier to understand. Binary trees, Dijkstra's algorithm, pointers, and even more basic concepts such as arrays

Among classes in the Computer Science curriculum at Arizona State University, Automata Theory is widely considered to be one of the most difficult. Many Computer Science concepts have strong visual components that make them easier to understand. Binary trees, Dijkstra's algorithm, pointers, and even more basic concepts such as arrays all have very strong visual components. Not only that, but resources for them are abundantly available online. Automata Theory, on the other hand, is the first Computer Science course students encounter that has a significant focus on deep theory. Many of the concepts can be difficult to visualize, or at least take a lot of effort to do so. Furthermore, visualizers for finite state machines are hard to come by. Because I thoroughly enjoyed learning about Automata Theory and parsers, I wanted to create a program that involved the two. Additionally, I thought creating a program for visualizing automata would help students who struggle with Automata Theory develop a stronger understanding of it.

ContributorsSmith, Andrew (Author) / Burger, Kevin (Thesis director) / Meuth, Ryan (Committee member) / Barrett, The Honors College (Contributor) / School of Mathematical and Statistical Sciences (Contributor) / Computer Science and Engineering Program (Contributor)
Created2021-12
187174-Thumbnail Image.png
Description
Alongside the many challenges of Covid-19, the pandemic also disrupted the normal structure of education for students. As classes were being transferred to online formats, computer science students started learning more through constructivism principles rather than the traditionally taught, in-person lectures. This quantitative assessment hopes to determine whether constructivist principles

Alongside the many challenges of Covid-19, the pandemic also disrupted the normal structure of education for students. As classes were being transferred to online formats, computer science students started learning more through constructivism principles rather than the traditionally taught, in-person lectures. This quantitative assessment hopes to determine whether constructivist principles or traditional/visual cognition principles are better for teaching computer science topics. Determinations will be made through a social behavioral experiment teaching pointers to participants. Participants were split into three groups: a control group, a constructivist group, and a visual cognition group. Each group took part in an assessment testing their knowledge retention about pointers after having a lecture based around each teaching method. The assessment evaluated retries per assessment, time per correct answer, time per question, and the average time taken in total. The results of the experiment led to a conclusion that, according to the resulting data, constructivism teaching principles benefited participant scores, and visual cognition teaching principles worsened participant scores. However, a definitive answer of which teaching method is better for computer science could not be made due to insufficient sample size. When reflecting on the first iteration of this experiment, it is clear that future iterations of this experiment would benefit from a higher sample size, an easier assignment for the constructivist group, a feedback survey, and a longer period to experiment.
ContributorsTiruchinapalli, Sai Santosh (Author) / Burger, Kevin (Thesis director) / Hartwell, Leland (Committee member) / Barrett, The Honors College (Contributor)
Created2023-05
Description

The field of quantum computing is an exciting area of research that allows quantum mechanics such as superposition, interference, and entanglement to be utilized in solving complex computing problems. One real world application of quantum computing involves applying it to machine learning problems. In this thesis, I explore the effects

The field of quantum computing is an exciting area of research that allows quantum mechanics such as superposition, interference, and entanglement to be utilized in solving complex computing problems. One real world application of quantum computing involves applying it to machine learning problems. In this thesis, I explore the effects of choosing different circuit ansatz and optimizers on the performance of a variational quantum classifier tasked with binary classification.

ContributorsHsu, Brightan (Author) / De Luca, Gennaro (Thesis director) / Chen, Yinong (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2022-12