#TechTeen – Francisca Vasconcelos

FranciscaFrancisca Vasconcelos is a senior at Torrey Pines High School in San Diego, California. She became interested in programming during her sophomore year AP Computer Science course. She has worked on many engineering and computer science projects including a drone programmed to follow people autonomously based on computer vision, an Android app explaining the Standard Model of quantum physics, a computer vision algorithm to read and solve hand-drawn circuits, and a shape-shifting origami robot.

How did you first become involved with coding and technology?

Both of my parents are engineers, so I have grown up in a house promoting STEM. However, my first true introduction to programming and tech was in my AP Computer Science class. That was when I learned coding fundamentals and built a foundation that I could expand upon through projects. I think completing my first few projects, a Java game applet and personal website, made me feel more confident in my programming skills. However, it was the progress I made with my drone research that truly empowered me. After months of hacking, my drone was finally able to follow me as I moved side to side through computer vision recognition of a patterned badge I wore. This was when I realized how far my coding skills had progressed and I felt like I could take on any challenge.

Have you created any apps? Tell us about them!

I developed an Android mobile app, “Quantum,” which is available for free on Google Play. Through the 2015 Intel International Science and Engineering Fair, I won a trip to CERN (the European Center for Nuclear Research), where I spent a week learning about quantum physics and visiting experimentation facilities. I was really excited to get home and delve even further into the world of quantum physics, but was disappointed to find a lack of online resources. Since I had a firm grasp of the fundamentals, from my trip, I could read more advanced articles. However, I felt it unjust that equally interested students would not be able to understand the available resources. So, I decided to make quantum physics easily accessible and understandable by programming an app.

I already knew Java programming, so I only had to learn XML and how to use the Android platform. I did so by reading Android design books, watching YouTube tutorials, checking help forums, and browsing the Android developers site. In making the app I also did a lot of research on the particles of the standard model and took endless notes.

The app has been very successful! It has been installed 10,000+ times across the globe, with a 4.5+ rating. “Quantum” has also been featured on the Society for Science and the Public webpage and recently won the District 52 Congressional App Challenge. It was presented to Congressman Scott Peters and will be featured in the US Capitol Building for a year!

What did you think about tech and coding before you began?

I always thought tech and coding were super cool and dreamed of becoming a “hacker.” However, I was also very intimidated by them, since I had no experience.

Now that I have more experience with tech and coding, I believe they are the two most powerful tools you can master and use. Within these few years, I have also watched an explosion in educational programs for tech and coding. Now with software such as Scratch and App Inventor, it is far easier to get into programming than when I was a kid. To be successful in tech all you need is to be motivated, with a desire to create and innovate.

What programming languages are you familiar with? 

I learned, took an entire course on, and have worked on several projects using Java, so it is the language I am most familiar with. However, I personally believe C/C++ is more powerful and have become familiar with it through my drone project and Arduino programming. For writing research papers and science reports, I have utilized LaTeX. In order to get the most out of my computer and write scripts, I have learned Unix. At my first hackathon (SD Hacks at UCSD), a group of friends and I coded a computer vision algorithm using Python, which is my primary exposure to the language. In school, I took a Mathematica course and have become fairly familiar with the language, even publishing a game explaining the prisoner’s dilemma on the Wolfram Mathematica Demonstration site. I have worked on a few websites along the way to learn HTML, CSS, and some JavaScript. At an engineering internship over the summer, I was given the task of programming GUIs using Visual Basic.

While I have had exposure to several languages, I would love to further hone my skills in all of them, especially Python because it is so widely used and I have had such little experience with it. I do believe, however, that after learning the first programming language it has been fairly easy to learn new ones. In fact, generally it is just a matter of learning the syntax. One language that I really want to learn is MatLab since it is so prevalent in engineering.

What is it that you enjoy about programming?

I love the limitless potential of programming. Solely having access to a computer gives you the power to do almost anything. Coding allows you to transform any idea into a reality. Especially if you design and build the hardware, like I did with my shape-shifting origami robot, it is so cool to watch code transform your lifeless bulk of mass into a lively creature.

Are there any resources that have helped you develop your skills?

I think Stack Overflow has been one of my greatest resources. It is one of the best programming help forums and there is an answer for almost every question. I also think that watching YouTube tutorials can be particularly helpful in many cases. However, the resources I use are generally very specific to the project I am working on. When I programmed my Android app, the Android Developer site was my go-to informational source. On the other hand, when I was programming my drone to follow me based on computer vision, OpenCV and its tutorials proved the most helpful.

Why do you think students should learn how to code?

Students should learn to code because it is such a powerful skill to have. Not only does learning to program teach them to think in entirely new ways, but it gives them a means to develop all their crazy, awesome ideas.

Do you see yourself building a career field in the tech field?

I currently plan on pursuing a career in tech. In college I will be majoring in electrical engineering and computer science, possible with a minor in quantum physics or computational neuroscience. However, unlike many students studying EECS, I do not plan on making a start-up or working for a large corporation. Rather, I want become a researcher for a major university. I want to perform research that will develop state-of-the-art technology and help solve some of humanity’s greatest challenges.

What advice do you have for other beginners, especially high school students?

There are so many free resources available online, ranging from Codecademy to EdX, for learning new languages. It is never too early or late to learn to program. Furthermore, there are several great programs, such as Scratch and App Inventor, that allow beginners to master the concepts of programming without worrying about syntax. Find a project you are passionate about and get hacking!