Matching Items (26)
Filtering by

Clear all filters

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
168541-Thumbnail Image.png
Description
The purpose of the overall project is to create a simulated environment similar to Google map and traffic but simplified for education purposes. Students can choose different traffic patterns and program a car to navigate through the traffic dynamically based on the changing traffic. The environment used in the project

The purpose of the overall project is to create a simulated environment similar to Google map and traffic but simplified for education purposes. Students can choose different traffic patterns and program a car to navigate through the traffic dynamically based on the changing traffic. The environment used in the project is ASU VIPLE (Visual IoT/Robotics Programming Language Environment). It is a visual programming environment for Computer Science education. VIPLE supports a number of devices and platforms, including a traffic simulator developed using Unity game engine. This thesis focuses on creating realistic traffic data for the traffic simulator and implementing dynamic routing algorithm in VIPLE. The traffic data is generated from the recorded real traffic data published at Arizona Maricopa County website. Based on the generated traffic data, VIPLE programs are developed to implement the traffic simulation based on dynamic changing traffic data.
ContributorsZhang, Zhemin (Author) / Chen, Yinong (Thesis advisor) / Wang, Yalin (Thesis advisor) / De Luca, Gennaro (Committee member) / Arizona State University (Publisher)
Created2022
187378-Thumbnail Image.png
Description
This paper introduces Zenith, a statically typed, functional programming language that compiles to Lua modules. The goal of Zenith is to be used in tandem with Lua, as a secondary language, in which Lua developers can transition potentially unsound programs into Zenith instead. Here developers will be ensured a set

This paper introduces Zenith, a statically typed, functional programming language that compiles to Lua modules. The goal of Zenith is to be used in tandem with Lua, as a secondary language, in which Lua developers can transition potentially unsound programs into Zenith instead. Here developers will be ensured a set of guarantees during compile time, which are provided through Zenith’s language design and type system. This paper formulates the reasoning behind the design choices in Zenith, based on prior work. This paper also provides a basic understanding and intuitions on the Hindley-Milner type system used in Zenith, and the functional programming data types used to encode unsound functions. With these ideas combined, the paper concludes on how Zenith can provide soundness and runtime safety as a language, and how Zenith may be used with Lua to create safe systems.
ContributorsShrestha, Abhash (Author) / De Luca, Gennaro (Thesis advisor) / Bansal, Ajay (Thesis advisor) / Chen, Yinong (Committee member) / Arizona State University (Publisher)
Created2023
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
157864-Thumbnail Image.png
Description
Computer science education is an increasingly vital area of study with various challenges that increase the difficulty level for new students resulting in higher attrition rates. As part of an effort to resolve this issue, a new visual programming language environment was developed for this research, the Visual IoT and

Computer science education is an increasingly vital area of study with various challenges that increase the difficulty level for new students resulting in higher attrition rates. As part of an effort to resolve this issue, a new visual programming language environment was developed for this research, the Visual IoT and Robotics Programming Language Environment (VIPLE). VIPLE is based on computational thinking and flowchart, which reduces the needs of memorization of detailed syntax in text-based programming languages. VIPLE has been used at Arizona State University (ASU) in multiple years and sections of FSE100 as well as in universities worldwide. Another major issue with teaching large programming classes is the potential lack of qualified teaching assistants to grade and offer insight to a student’s programs at a level beyond output analysis.

In this dissertation, I propose a novel framework for performing semantic autograding, which analyzes student programs at a semantic level to help students learn with additional and systematic help. A general autograder is not practical for general programming languages, due to the flexibility of semantics. A practical autograder is possible in VIPLE, because of its simplified syntax and restricted options of semantics. The design of this autograder is based on the concept of theorem provers. To achieve this goal, I employ a modified version of Pi-Calculus to represent VIPLE programs and Hoare Logic to formalize program requirements. By building on the inference rules of Pi-Calculus and Hoare Logic, I am able to construct a theorem prover that can perform automated semantic analysis. Furthermore, building on this theorem prover enables me to develop a self-learning algorithm that can learn the conditions for a program’s correctness according to a given solution program.
ContributorsDe Luca, Gennaro (Author) / Chen, Yinong (Thesis advisor) / Liu, Huan (Thesis advisor) / Hsiao, Sharon (Committee member) / Huang, Dijiang (Committee member) / Arizona State University (Publisher)
Created2020
158322-Thumbnail Image.png
Description
Currently, recommender systems are used extensively to find the right audience with the "right" content over various platforms. Recommendations generated by these systems aim to offer relevant items to users. Different approaches have been suggested to solve this problem mainly by using the rating history of the user or by

Currently, recommender systems are used extensively to find the right audience with the "right" content over various platforms. Recommendations generated by these systems aim to offer relevant items to users. Different approaches have been suggested to solve this problem mainly by using the rating history of the user or by identifying the preferences of similar users. Most of the existing recommendation systems are formulated in an identical fashion, where a model is trained to capture the underlying preferences of users over different kinds of items. Once it is deployed, the model suggests personalized recommendations precisely, and it is assumed that the preferences of users are perfectly reflected by the historical data. However, such user data might be limited in practice, and the characteristics of users may constantly evolve during their intensive interaction between recommendation systems.

Moreover, most of these recommender systems suffer from the cold-start problems where insufficient data for new users or products results in reduced overall recommendation output. In the current study, we have built a recommender system to recommend movies to users. Biclustering algorithm is used to cluster the users and movies simultaneously at the beginning to generate explainable recommendations, and these biclusters are used to form a gridworld where Q-Learning is used to learn the policy to traverse through the grid. The reward function uses the Jaccard Index, which is a measure of common users between two biclusters. Demographic details of new users are used to generate recommendations that solve the cold-start problem too.

Lastly, the implemented algorithm is examined with a real-world dataset against the widely used recommendation algorithm and the performance for the cold-start cases.
ContributorsSargar, Rushikesh Bapu (Author) / Atkinson, Robert K (Thesis advisor) / Chen, Yinong (Thesis advisor) / Chavez-Echeagaray, Maria Elena (Committee member) / Arizona State University (Publisher)
Created2020
132263-Thumbnail Image.png
Description
Karate is a Japanese martial art that originated approximately a century ago, with heavy influence from Chinese martial arts at the time. Although it was originally created as a form of self-defense, many today practice it for sport. Organizations such as the World Karate Federation (WKF) and USA Karate establish

Karate is a Japanese martial art that originated approximately a century ago, with heavy influence from Chinese martial arts at the time. Although it was originally created as a form of self-defense, many today practice it for sport. Organizations such as the World Karate Federation (WKF) and USA Karate establish rules for competitions as well as host tournaments for practitioners of all ages and skill levels to participate in. Dojos will often host small, local tournaments for their students to practice and sharpen their competition skills. Smaller tournaments often do not have the same tools and technologies that larger tournaments do. Sign-ups are typically done in-person and payments are cash-only, which can be inconvenient for those who are extremely busy or forgetful. Another issue with hosting local tournaments is that the software used to run the timer is a desktop application, called Karate Semaphore. In the case of technical difficulties, installing the software on another machine can be extremely time-consuming and delay the progression of the tournament. Not to mention, Karate Semaphore was created following the 2012 WKF rules—meaning it is currently out of date, as it does not contain any features supporting new rules.
For my creative project, I designed a website through which smaller, local tournament registration and management are possible. Users can register for tournaments through the registration page. Registered users can check their registration is successful by viewing a table of all competitors. If the list of competitors is too long, they can filter results based on search criteria. Tournament management will be possible via a functioning timer following WKF rules which keeps track of both the match’s score as well as time.
ContributorsRuan, Shirley (Author) / Sarwat, Mohamed (Thesis director) / Chen, Yinong (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2019-05
131249-Thumbnail Image.png
Description
Learning to code is a skill that is becoming increasing needed as technology advances, yet is absent in traditional education. This thesis aims to provide a resource for middle school teachers to introduce programming skills and concepts to their students over several lessons designed to fit within the constraints of

Learning to code is a skill that is becoming increasing needed as technology advances, yet is absent in traditional education. This thesis aims to provide a resource for middle school teachers to introduce programming skills and concepts to their students over several lessons designed to fit within the constraints of a standard class period. By targeting students in middle school, if they develop an interest, they will have enough time in middle or high school to prepare themselves for a degree in Computer Science or to complete a programming boot camp after they graduate high school. Additionally, middle school students are old enough to understand challenging programming concepts and work together to solve a programming challenge. The programming language and environment, VIPLE, will be used to teach the concepts in the lessons as it is a graphical programming language, which removes many of the common challenges faced by young students in learning to code, like dealing with syntax or remembering keywords for coding blocks.
ContributorsBelt, Emily (Author) / Chen, Yinong (Thesis director) / Miller, Cindy (Committee member) / Computer Science and Engineering Program (Contributor) / Barrett, The Honors College (Contributor)
Created2020-05
131481-Thumbnail Image.png
Description
Alife is an event searching and event publishing website written in C# using the MVC software design pattern. Alife aims to offer a platform for student organizations to publish their events while enabling ASU students to browse, search, and filter events based on date, location, keywords, and category tags. Alife

Alife is an event searching and event publishing website written in C# using the MVC software design pattern. Alife aims to offer a platform for student organizations to publish their events while enabling ASU students to browse, search, and filter events based on date, location, keywords, and category tags. Alife can also retrieve events information from the official ASU Event website, parse the keywords of the events and assign category tags to them. Alife project explores many concepts of Distributed Service-Oriented software development, such as server-side development, MVC architecture, client-side development, database integration, web service development and consuming.
ContributorsWu, Mengqi (Author) / Chen, Yinong (Thesis director) / Feng, Xuerong (Committee member) / Computer Science and Engineering Program (Contributor, Contributor) / Barrett, The Honors College (Contributor)
Created2020-05
165391-Thumbnail Image.png
Description
Programming front-end human computer interfaces follows a unique approach of iterative design and testing to produce a creative model envisioned by the developer and designer. Small but frequent changes to visual or audio aspects of the program are commonplace in order to implement different design ideas, implementations, and adjustments. Functional

Programming front-end human computer interfaces follows a unique approach of iterative design and testing to produce a creative model envisioned by the developer and designer. Small but frequent changes to visual or audio aspects of the program are commonplace in order to implement different design ideas, implementations, and adjustments. Functional Reactive Programming (FRP) acts as a compelling programming paradigm towards this iterative design process, following its strength in utilizing time-varying values. Therefore, this thesis will introduce Coda, a Visual Programming Language (VPL) focused on developing audio interfaces using FRP. Coda focuses on the goal of streamlining audio interface prototyping and development, through two primary features: rapid but sensible code hot-reloading, and the use of time and I/O as an interactive development tool. These features allow Coda to greatly reduce the development cycle time commonly seen in typical, text-based programming languages. Coda also comes in its own integrated development environment (IDE) in the form of a web-application.
ContributorsShrestha, Abhash (Author) / Omais, Adam (Co-author) / De Luca, Gennaro (Thesis director) / Chen, Yinong (Committee member) / Barrett, The Honors College (Contributor) / Computer Science and Engineering Program (Contributor)
Created2022-05