In today’s generation, astonishing new technologies seem to take the world by storm each new week, small and large. The global robotics industry is expected to reach an estimated $38 billion by 2018; the number of connected devices is anticipated to reach 20.4 billion by 2020; Artificial Intelligence will become a positive net job motivator, creating 2.3 million jobs by 2020.

The projects featured today, in part four of our Senior Project series, encompass the STEM fields (science, technology, engineering, and math). While vastly different in theory, these fields share similar roots and are often closely knit together in the clever STEM acronym for a reason—mechanical inventions and mathematical theories made possible the movement toward modern computer concepts and machines, and the impact of burning fossil fuels on climate change can’t be understood without the tools chemistry provide.  

According to Ms. Alexis Jefferson, who teaches a computer programming course at BASIS Independent Silicon Valley and who advised several of our seniors, “Computer Science is an incredibly diverse and important field. It is amazing that students in high school are learning to conduct research in the facets of this industry. I’m glad to have a chance to teach these brilliant students before they go off to college.”

BISV senior Namita M., who is interning at NASA, is exploring molecules within star-forming regions in outer space to offer further understanding of how stars are born and shared some of her Senior Project experience with us: “I chose my project because an opportunity was given to me on my robotics team to take over for an alumna at her internship at NASA. I have tackled challenges by working thoroughly with my external advisors and occasionally with my peers. I’ve enjoyed learning a new skill the most—I didn’t know how to code before my internship, but now I do and I look forward to using it in my future career as a mechanical engineer.”

Another senior, Shreya K., notes in her blog the progress she has experienced since first starting her project almost nine weeks ago. Her project seeks to discover how we can use the application of neural networks in the analysis of brain data in order to better the quality of living for people with paralysis. “It was just a few months ago that this project only existed in a theoretical sense. I was drafting a hypothetical syllabus and proposal and defending a project that I was yet to start before a panel of judges. Now, looking back, it’s amazing to see the pieces finally falling into place. . .  By the end of this week, I was able to successfully feed the reshaped data as input to a very basic convolutional neural network and get it running!”

We can’t wait to see how these projects impact STEM fields at large. If you’d like to explore the huge scope of algorithms, machine learning technologies, and other scientific endeavors these students are dabbling in, read the project abstracts below and browse through their blogs to see their progress.

(Check out all senior blogs here.)

Math and Science:

Armaun S. - Finding Order in Chaos 

Follow Armaun’s blog here.

Chaos appears in many non-linear systems and plays a critical role in the dynamics and the properties of the system. One such case is turbulent fluid flow. Turbulent fluid flow often occurs after a blade or airfoil reaches a high angle of attack and stall begins. In rotorcraft, the nature of the chaos often determines the path the blade takes to regain laminar conditions. The chaos, however, by nature is very hard to understand and predict. Most computational fluid dynamics models that use canonical partial differential equations (navier-stokes equations) to predict chaotic flow often give incorrect or biased results based on the mathematical approach. In this project, we attempt to take a reverse approach: we decompose large sets of dynamic stall data using Proper Orthogonal Decomposition and Dynamic Mode Decomposition with the hope that the modes from these decomposition techniques capture important physical characteristics, coherent structures, and dynamical structures present in the system. If our approach works and we can develop a mathematical proof of the physical significance of the decomposition modes, it will greatly help the aerospace community better understand, predict, and analyze dynamic stall in rotorcraft. In addition, any new algorithms and mathematical proofs developed through the project will add to the non-linear systems community in general.

Angela Y. - Creating Palladium and Platinum Alloys for Catalysis of the Methane Combustion Reaction 

Follow Angela’s blog here.

The word "catalyst" has wound its way into everyday speech—something that sparks or incites an event. But in the scientific field, catalysts are materials which speed up chemical reactions. Catalysts enable the production of commercial goods, energy conversions from natural sources, and even chemical reactions in the human body. One important reaction is methane combustion, which has critical applications for car exhaust emissions control and the natural gas usage. The current catalysts for methane combustion can be improved in stability, activity, and cost, which would lead to the safer, cheaper, and more efficient use of natural gas, an abundant resource. I will be contributing to a project for the Cargnello Group of Stanford University; the project goal is to improve platinum and palladium catalysts by combining them with other metals. These new materials are synthesized, characterized, and tested in a reactor chamber (to determine activity). Early results have indicated that adding small amounts of platinum to palladium catalysts can increase stability; furthermore, the use of cheaper metals (like nickel and copper) can decrease overall costs.

Computer Science:

William C. - Quantifying Human Behavior: Creating a Bluff Poker Playing AI 

Follow William’s blog here.

AI (Artificial Intelligence) is one of the hottest fields today, and has made significant progress in the recent years. Games are often used as a measuring-stick of progress in AI, and the recent conquest of Go—a board game considered to be one of the most difficult to approach- by Google's AlphaGo using relatively broad algorithms marks an important milestone in our progress towards constructing a general intelligence. While our gains in machine learning with respect to games have been great, one field has been less explored: games of imperfect information. In these games, the players are missing information about the game, and so must make inferences - something that comes naturally to us humans, but is much more challenging to design a program to do. The game that I am looking into - Bluff Poker - is exactly one of these games of imperfect information, and is one that also requires copious amounts of bluffing to your opponents. By using models based off of data taken from human games of Bluff Poker, I hope to design a "bot" that can not only make inferences about players by observing their actions, but can also (convincingly) lie and bluff back, and so be able to play the game at a high level. Along the way, I hope to learn how humans approach the issue of bluffing, and how humans guess at probabilities.

Kevin H. - Visualizing Neural Networks 

Follow Kevin’s blog here.

Artificial neural networks (ANN) are software or hardware systems designed to simulate brain function. They have the capability to recognize patterns and store a model of the data after being trained, making them useful in stock market prediction and medical diagnosis. My senior project has two goals. The first is to create a visual representation of an ANN while it’s learning a three-variable relationship. I plan to accomplish this by coding a program that pauses the network's training at regular intervals, scans data through the network, and collects the inputs and outputs at each interval. The inputs and outputs collected will then be plotted on a three-dimensional graph to create a surface, and the surfaces will be strung together to form an animation. Additionally, the program will enable users to change certain parameters about the ANN and data passed in. My second objective is to create a series of YouTube videos explaining how ANNs function and my program's methodology. I began working with this visualization methodology last year and found promising results. However, my project’s scope was limited, which I hope to remedy in this year. Two significant applications of this project are image-recognition and education. First, compared to current image-recognition ANNs, networks built with this methodology are more efficient, as they can process the same amount of data with less computing power required. Second, ANNs are becoming increasingly prevalent, and more people want to learn about them. I hope to demystify ANNs for others with my videos and research.

Shreya K. - The Application of Artificial Neural Networks to the Analysis of Brain Data for Brain-Computer Interfaces 

Follow Shreya’s blog here.

Brain Computer Interfaces are seen as a lifeline for people with paralysis, a new means by which they can communicate with the outside world with technology as their proxy. This interface enables people to translate intent into actionable responses. For my project, I am interested in taking a Deep Learning based approach to artificial neural networks to classify brain data as part of a larger effort to help paralyzed people to use their brain signals in a brain-computer interface (BCI) to do various tasks, whether it's communicating a simple 'yes' or 'no' response, or even being able to control a robotic arm or wheelchair. Additionally, I am researching what alternatives to BCIs people with paralysis were using before and how BCIs perform in comparison, both in ease-of-use and efficiency. I am working with researchers at the University of Washington, so any research I conduct or any validation I can do of the datasets they have collected will help them with their findings as well. Additionally, since deep learning is a new approach to machine learning that is revolutionizing AI today, I hope to shed some new light on how we can use the application of neural networks to the analysis of brain data to better the quality of living for people with paralysis.

Vinay K. - Applications of General Purpose GPU Computing 

Follow Vinay’s blog here.

The most important features of any electronic device are speed and storage capacity. To increase processing speed, you need a better processor. Standard processing ships, CPUs, have been getting more and more powerful, but when it comes to performing computations, none come close to the power of a graphics card, or GPU. GPUs have been used primarily in graphics, but there is an emerging field in GPU Computing, which utilizes the GPU in regular programs. One process that can be sped up with GPU Computing is deduplication. Deduplication deletes duplicate files stored on a device, which allows for storage of more unique files. During my project, I will be applying GPU Computing to deduplication to see how optimizable the process is. I will be comparing different methods of deduplication to see which is the most optimizable for the GPU. I will conduct my research online and through testing programs that I will make to run on the GPU on my laptop, using NVIDIA's CUDA platform. I will run these programs and measure the efficiency increase that the GPU provides over the CPU.

Yash L. - Increasing The Adaptability of Evolved Neural Networks: Improving The NEAT Algorithm Using Videogames as Performance Metrics 

Follow Yash’s blog here.

Modern computers are millions of times faster and more efficient than the human mind. Unfortunately, their usefulness is limited by the fact that they can't 'learn' in the way that our organic brains can. To overcome this shortcoming, computer scientists are taking leaves out of nature's book, designing algorithms that mimic biological processes and take advantage of their unique strengths. One such algorithm, dubbed NEAT, does so by evolves neural nets (abstractions that mirror biological brain structure), under conditions similar to those in which the human brain evolved. 

This project attempts to improve the learning ability of the NEAT algorithm by adding in analogues to homeobox genes, letting the algorithm recognize and clone productive 'subnets' within a given neural net. I will quantify the 'learning ability' of the produced neural nets by testing their ability to beat various video games (which are designed, after all, to challenge human reflexes and learning abilities). In the process, I will intern at Purple Interactive to learn more about the field.

The NEAT algorithm is able to adapt to new challenges like a biological organism, and can evolve to almost any task. An improved version will prove immensely useful within research circles, and should also shed some more light on just how the human brain came to be.

Apurv L. - Public Key Encryption-Based IoT Security System 

Follow Apurv’s blog here.

Internet of Things (IoT) involves the network of physical devices connected to the existing internet. Each device is uniquely identified on the network and exchanges data with other devices. These devices may not have a sizeable computational capability which means that they may not have a significant memory, CPU, or general-purpose operating system. This brings limitations on securing the communication between these devices and the user. Symmetric key encryption is used for securing the communication in most cases. Symmetric key encryption usually takes less computation but requires the distribution of keys to the ever-expanding network of devices. Its symmetric nature also can be vulnerable to hacking because the encrypted data can be intercepted. Its keys, if determined, can be used for decryption. Asymmetric (Public) key encryption addresses most of these limitations since the key distribution among different devices is not required. It is relatively immune to hacking since the intercepted data does not have a private key which can be used for decryption. However, asymmetric key encryption requires sizeable computational power in IoT devices.

My research project addresses this issue by providing the unique solution to evaluate the different possibilities of IoT security. I will use an Arduino Uno board along with an ESP8266 WIFI module as an intermediate IoT port with the embedded internet access point. The mobile phone can be connected to the Arduino board through WIFI. IoT devices are connected to the GPIO pins of the Arduino board. From the mobile phone, I will send a text message addressed to the Arduino board and the connected IoT devices. I will write applications that will use the Arduino Cryptographic libraries to encrypt and decrypt these messages. The idea in the initial prototype is to benchmark different asymmetric and symmetric key algorithms.

An implementation of this project can be used in a real IoT network. The user can first establish the communication session to the IoT devices by using asymmetric key encryption and addressing it to the Arduino IoT port (Arduino Board) through the WIFI module. Once such a session is set the user can then send specific commands from the mobile phone to the IoT devices connected to the GPIO pins of the Arduino board. Such a system will save MAC addresses because it will use only one MAC address for Arduino instead of using MAC address for each IoT device. It can make communication more secure by first establishing the session using asymmetric key encryption. The connected IoT devices do not require sizable memory or general-purpose operating system. These IoT devices can be sensors connected to the GPIO pins of Arduino board. This is an innovative approach towards solving IoT security issues in a simple and inexpensive way.

Nikhil M. - Discovering the Power of Machine Learning in Natural Language Processing 

Follow Nikhil’s blog here.

Computers today have immense processing power and are capable of analyzing terabytes of data. Yet, perfecting the English language, or any spoken language for that matter, in a conversation-like manner has proven to be difficult for computer programs. This is because ambiguity in context-based languages has made it difficult for computers to determine the meaning of words, phrases, and sentences. Take a look at the following example, "This morning I shot an elephant in my pajamas. How he got in my pajamas I don't know." Through my project, I hope to discover a simpler way of teaching computers spoken language by first teaching them how to combine simple sentences into compound and more complex sentences. I hope to create a Machine Learning algorithm that can take two simple sentences in English and successfully combine them in the most efficient way yet grammatically correct, just like a person would.

Namita M. - Using Astronomical Molecular Line Surveys to Provide Data Characterizing the Molecular Emission from Star Forming Regions 

Follow Namita’s blog here.

My project is an exploration of molecules within star forming regions in outer space. Characterizing molecules in these regions will help further our understanding of how stars are born. For my project, I will be creating code to help characterize molecules by organizing and analyzing data taken from the ALMA interferometer. The ALMA interferometer will collect data depicting electromagnetic waves being emitted from molecules in different astronomical objects. The data will be presented in molecular line surveys, and I will be writing code to try to isolate the molecular line surveys of identified molecules in the data. This way the lines of the unidentified molecules can be studied and compared to see if they can be characterized. With a better understanding of the molecular composition in star forming regions, we can better predict the stages of star formation, understand the significance of specific molecules during formation, and potentially discover the presence of organic molecules outside of the Earth.

Rishab M. - Discovering a Defense Against Adversarial Attacks on Neural Networks of Self-Driving Cars 

Follow Rishab’s blog here.

With the advent of neural networks into society, there is becoming much more of a need to ensure that these neural networks are robust. As machine learning becomes increasingly prominent, some may try to disrupt neural networks' performances to show their vulnerability. Exploiting the vulnerability of these networks can have dangerous consequences, especially in autonomous car navigation. This project will investigate whether a reduction in dimensionality using principle component analysis (PCA) can act as a defense against these attacks. The primary objective of the project is to attack image classifiers trained on a German Traffic Sign (GTSRB) dataset by forcing these classifiers to classify slightly modified traffic sign images intended to make the classifiers malfunction. To generate these adversarial images, a substitute neural network will be created and modified with an algorithm created to generate these images.

Aaron S. – The Creation and Optimization of Artificial Intelligence for the Real-Time Strategy Game StarCraft

Follow Aaron’s blog here.

StarCraft: Brood War is a game created by Blizzard Entertainment and was published in 1998. Despite its age, the game has left a legacy that continues to be forged today. This has primarily taken the form of competitive gaming in Korea. However, a new form of interaction beyond playing has arisen in the past few years, namely the creation of artificial intelligence to push the limits of what is possible. During the third trimester, I will partake in this test by creating my own AI to play the game. By using the pre-existing API, my bot will interact with the enemy and the terrain in order to make independent decisions in game. I will be working mainly independently, but when I face problems I have the guidance of Mrs. Jefferson, my Computer Science teacher, and Michal Certicky, administrator of SSCAIT, the main StarCraft AI tournament. As for my goals, I intend to have my bot be functional in producing units and reacting to enemy movements, but realistically I don't expect to win any tournaments. Me project explores the unclear area of AI decision making given incomplete information. While having an omniscient bot is unrealistic, many bots at present work as such, such as Google's AlphaGo. On the other hand, StarCraft is a game that limits information, and using this my AI will still have to be able to make the best choices available to it.

Eish K. - Creating a Recommendation Engine to Output College Programs Based on Interests and Grades 

Follow Eish’s blog here.

In the college application process, a student chooses a list of colleges to apply to because they see a fit for themselves on campus. However, there are far too many universities (5,300) and aspects of each university that a prospective student can experience or has exposure too. Additionally, a student probably does not have the bandwidth to find all the information that is provided on the internet, again causing a lack of information. CollegeProRec is a program geared towards solving this issue, as the program will use the vanguard of computer science- machine learning - to recommend users a list of college programs that fit their profile. Through methods such as Bayesian algorithms and decision trees, the program will use past data scraped from numerous data points such as AdmitSee and Naviance to mold a realistic list of colleges. The goal of this project is to create a viable algorithm that can recommend college programs from a conference of universities (Pac-12, ACC, etc.) to a user profile. I hope to discover the intricacies of machine learning algorithms and also better quantify the seemingly very subjective college process in order to better applicants’ chances of college admission.

Kabir S. - Traffic Infrastructure for A Driverless Future 

Follow Kabir’s blog here.

My project aims to understand how to implement a smart-road system. Full control of steering, braking, and acceleration will no longer be in the hands of the driver and these tasks will be done by computers in the roads and highways. This will help to minimize two problems: traffic jams and accidents will be minimized. Accidents are almost always the fault of a driver, bar a defect in the vehicle. If the driving process can be automated, then driver incompetence and indecisiveness will no longer jeopardize the safety of other drivers. Additionally, route optimization will improve greatly since traffic can be spread among all possible routes. I will be reading a collection of papers and using computer programs in order to determine by what method to implement a smart road. I would like to find out if the best method is to use an array of sensors within the road, a set of RFID tags, radar/lidar, or satellite. In addition, I will also attempt to create a budgeting plan for the implementation of such a system. Traffic and road safety are problems that everyone has to deal with on a daily basis. Reducing the threat of these can greatly improve society.

Esha P. - Who's at the Door? 

Follow Esha’s blog here.

What if there is a way to identify who is at the door when you are not at home? According to the San Jose Police Department, there was a 3.6% increase in robberies in just the first half of 2017 compared to the whole of 2016. Due to this increase in home break-ins, many people are looking to cameras and smart doorbells, in addition to alarms, for home security. Smart doorbells such as Ring Pro Video Doorbell offer audio and video functionalities and notify the homeowner when motion is sensed at the door. My project will use facial recognition technology to identify the person at the door, and notify the homeowner only when there is a potential threat, rather than every time there is motion at the door. Using a Raspberry Pi, camera, and switch I will make a model of a doorbell. When someone presses the switch on the bell, his or her picture will be taken and checked if they are in a preset database of images. If the person is not recognized, then a warning message and image of the person will be sent to the homeowner. Through my project, I hope to make homes more secure.

Jasper Z. - Marketing Research of a Smart CPR Dummy 

Follow Jasper’s blog here.

CPR is one of the most important skills a first responder can master; it can be the difference between life and death. However, CPR is a difficult skill to learn, requiring special training and certification. Currently, CPR dummies are very primitive, molded pieces of plastic that mimic the shape and rigidity of the human chest. The main issue these primitive dummies present is the lack of practice in diagnosing the condition of victims by listening for breathing and feeling for pulse. Currently, CPR instructors must call out scenarios, telling the student when the "victim" is breathing or not, which first responders will not have the luxury of. For my project, I will help create a CPR dummy which will provide useful and relevant feedback.

Photo by Igor Ovsyannykov on Unsplash.