Matching Items (15)
- All Subjects: Programming
- Creators: Computer Science and Engineering Program
- Creators: Foy, Joseph
- Member of: Barrett, The Honors College Thesis/Creative Project Collection
- Status: Published
The main objective of this thesis is to describe and analyze Clippr, an ASU startup founded by four students: Adam Lynch, Eric Gottfried, Ty Sivley, and Thomas Carpaneto. This paper will describe the formation of Clippr as a business, analyze the work and reasoning for dissolving the business, and suggest three pivots that could increase the chances of success for the future of Clippr. These three pivots are: mini salons, a concierge service, and an online resource. The idea for Clippr came from Sam, the team's friend's experience within the cosmetology industry. Sam graduated from cosmetology school in Phoenix and started his career as an assistant, which is the most common entry level position within the industry. Assistants do not get to work with clients and primarily do chores around the salon so he was not gaining any valuable experience. Eventually Sam found a position at a salon in Flagstaff. Unfortunately, he was not scheduled enough hours to pay his rent which forced him to travel back to Phoenix to cut his friend's and family's hair to make ends meet. Sam is not alone experiencing these issues within the industry, they are a common trend throughout the cosmetology field. It was found that there is a clear problem that affects every stylist: they struggle to reap the benefits of their self-employment. Most stylists become independent contractors where they are constrained by the salon's management. They are generally forced to work during the salon's hours of operations, promote specific products, adhere to a dress code, and forfeit their clients information. On the other hand, freelance workers outside of salons do enjoy greater freedoms within their work but with significant hurdles to overcome. They have a much harder time building a client base and face prohibitive start-up costs that make it harder to break into the industry.
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.
This paper explores the inner workings of algorithms that computers may use to play Chess. First, we discuss the classical Alpha-Beta algorithm and several improvements, including Quiescence Search, Transposition Tables, and more. Next, we examine the state-of-the-art Monte Carlo Tree Search algorithm and relevant optimizations. After that, we consider a recent algorithm that transforms Alpha-Beta into a “Rollout” search, blending it with Monte Carlo Tree Search under the rollout paradigm. We then discuss our C++ Chess Engine, Homura, and explain its implementation of a hybrid algorithm combining Alpha-Beta with MCTS. Finally, we show that Homura can play master-level Chess at a strength currently exceeding that of our backtracking Alpha-Beta.
Less than half of all premedical applicants get accepted into a medical school, 39.3% of applicants to be precise, and that statistic is based on the number of matriculants out of the total applicants in 2015. With such a discouraging acceptance rate, many students who start out as premed are often not towards the end of their undergraduate career and post-graduation because they do not feel prepared for medical school. It’s difficult for premed students to find all the information they need in one place rather than going from place to place or school website to school website. Additionally, it can be a hassle for premeds to keep track of all their coursework and calculate separate GPAs for each category especially due to how annoying Excel spread sheets can be. This is where the conceptualization of Premed Portfolio comes in. Premed Portfolio is a prototype mobile application. Premed Portfolio aims to streamline the process of preparing for medical school by guiding students to create a portfolio aimed to address the most important aspects of a medical school application. Students will be able to keep track of their cumulative GPA, BCPM (also known as science/math) GPA, MCAT Scores, prerequisite coursework and many more targeted areas of medical school. Premed Portfolio will also hope to use the stats that students provide and educate them on their chances of getting into medical school.
Technical innovation has always played a part in live theatre, whether in the form of mechanical pieces like lifts and trapdoors to the more recent integration of digital media. The advances of the art form encourage the development of technology, and at the same time, technological development enables the advancement of theatrical expression. As mechanics, lighting, sound, and visual media have made their way into the spotlight, advances in theatrical robotics continue to push for their inclusion in the director's toolbox. However, much of the technology available is gated by high prices and unintuitive interfaces, designed for large troupes and specialized engineers, making it difficult to access for small schools and students new to the medium. As a group of engineering students with a vested interest in the development of the arts, this thesis team designed a system that will enable troupes from any background to participate in the advent of affordable automation. The intended result of this thesis project was to create a robotic platform that interfaces with custom software, receiving commands and transmitting position data, and to design that software so that a user can define intuitive cues for their shows. In addition, a new pathfinding algorithm was developed to support free-roaming automation in a 2D space. The final product consisted of a relatively inexpensive (< $2000) free-roaming platform, made entirely with COTS and standard materials, and a corresponding control system with cue design, wireless path following, and position tracking. This platform was built to support 1000 lbs, and includes integrated emergency stopping. The software allows for custom cue design, speed variation, and dynamic path following. Both the blueprints and the source code for the platform and control system have been released to open-source repositories, to encourage further development in the area of affordable automation. The platform itself was donated to the ASU School of Theater.
Since the release of Discord in March of 2015 it has become the choice VoIP client for 25 million users, pulling in more each day from many sources including online video games with no voice chat, such as League of Legends. With such an expansive user base and many servers hosting multiple users during all times of the day, for a server admin to always be monitoring users is unreasonable. AhriBot aims to solve this problem by providing general administration through a command system to a server while it is logged onto that server. Specifically, AhriBot will be tailored for use on servers where League of Legends is primarily being played. Using commands issued to AhriBot, users can get statistics about their current game. By providing a set of features for general users, and a more specific set of features for League of Legends, AhriBot provides a greater experience and will help players to have quicker access to information about the game without having to travel to multiple outside sources.
Gamification is used to provide an entertaining alternative to educate an individual on a topic that has proven to be difficult, confusing, or undesirable. This thesis describes the design of a video game whose goal was to provide a way for coders and non-coders to educate themselves on programming scopes while also being entertained in the process. Reaching the goal required using the puzzle genre to create a concept where programming scopes would serve as the primary mechanic while also using various other programming concepts to complement it. These concepts include variables, values, functions, programming statements, and conditions.
In order to ensure that the game worked both as an educational tool as well as an entertaining one, informal testers were used with various degrees of experience in both coding and video games. After reaching the end of the game, each of the testers demonstrated that they understood the programming concepts in their video game form. However, this understanding came after additional verbal help was supplied and illustrated that the tutorial section of the game would need to be re-worked in order to efficiently demonstrate each concept.
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.
For those interested in the field of robotics, there are not many options to get your hands on a physical robot without paying a steep price. This is why the folks at BCN3D Technologies decided to design a fully open-source 3D-printable robotic arm. Their goal was to reduce the barrier to entry for the field of robotics and make it exponentially more accessible for people around the world. For our honors thesis, we chose to take the design from BCN3D and attempt to build their robot, to see how accessible the design truly is. Although their designs were not perfect and we were forced to make some adjustments to the 3D files, overall the work put forth by the people at BCN3D was extremely useful in successfully building a robotic arm that is programmed with ease.
The goal of this product was to create a highly customizable application in which any individual, musician or not, can create a harmony for the user’s melody. This Automating Music Composer is built on the underlying rules of music composition, rules that are unique for each type of music available. This program is built on rules that are similar to how a Finite State Machine works (Fig 1). Each state represents a different chord in a given key, where the first roman numeral represents the first note in the chord progression. Each transition represents the action that can be taken by the chord progression, or the next note that can be reached by the current note. The user is able to manipulate these rules and styles, adjust different musical parameters to their liking, and is able to input their own melody, which then will output a unique harmony. This product aims to bridge the gap between predictive technologies and musical composition. Allowing the user to be more involved in the composition process helps the program to act as a tool for the user, rather than a separate entity that simply gives the user a completed recording. This allows the user to appreciate and understand what they are helping to produce more than they would if they were to simply be an inactive consumer of a random music composer. This product is meant to feel like an extension of the user, rather than a separate tool.