Siqi Sun: Voices of Penn Engineering Master’s Alumni
This is part of our series of articles written by Penn Engineering alums about their experiences at Penn and how it shaped their lives. This article is by Siqi Sun, who graduated with a master’s in Scientific Computing in 2017. He is currently working in Shanghai as a research engineer at Nuance Communications, a leader in conversational and cognitive AI innovations.
Growing up in Shanghai, China, I found it to be a modern, lively city where people are open-minded and willing to try new things. For me, this meant that I was always looking for chances to broaden my horizons.
As an undergraduate student in the Qian Weichang School of Shanghai University, I received my bachelor’s degree in Computer Science and was then recommended for admission to its graduate school. There, my major field was computer system architecture. My study and research focused on high performance computing, parallel and distributed computing, and novel computer architectures.
How did I go from Computer Science to Scientific Computing? Since the turn of the century, it’s been clear that Scientific Computing, also known as Computational Science, will play an important, if not dominating, role in the future of the scientific discovery process and engineering design. Computation is now regarded as an equal and indispensable partner to theory and experiment when it comes to advancing scientific knowledge and engineering practice. With the increasing complexity of problems, computation will surely play a much more important role in the future than today.
On one hand, knowledge in computer science and architectures is important, as it can help deploy the computation on computers efficiently. On the other, however, I realized that knowledge in mathematics fundamentals, methods and applications is also important, as they form the backbone of computation in the first place. Domain expertise, mathematical modeling, numerical analysis, algorithm development, software implementation, program execution, analysis, validation and visualization of results are required for any advancement in computing. These aspects interest me the most, and they are core topics in computational science or scientific computing.
It was those interests that led me to want to switch disciplines, but when I started looking around for programs in Scientific Computing, I realized that there are only a few universities that offer such a program. After comprehensive comparison, I regarded Penn as the top choice. Not only is Penn part of the Ivy League, it also has a pioneering contribution to computer history, as the first electronic computer, ENIAC, was developed at Penn. Computational science is a multidisciplinary area, ranging from mathematics to applications. I wanted to go to a school where there is a strong background in science and technology.
In hindsight, it was the right decision! The Scientific Computing (SCMP) program provides both rigorous foundation in mathematics and methods as well as flexibility in choosing the specific application field you have interests in. The curriculum covers a lot of interesting and practical core courses, including Machine Learning, Algorithms, Data Science, Numerical Methods and etc. In addition to these core courses, the program allows students to select two application-related courses and up to two electives, which is quite flexible.
When I came to Penn, I saw that the students enrolled in SCMP had very different backgrounds. Their previous majors ranged from statistics, chemistry to computer science. This interdisciplinary diversity helped to enrich my own experiences. Given my prior background in Computer Science, I chose artificial intelligence and optimizations as my SCMP concentrations.
The SCMP program offers a wide range of interesting courses that span multiple areas. To give you a sense of its diversity, the Computer Algorithms course emphasizes fundamental techniques for the design and analysis of efficient algorithms; the Database course focuses on data representation and analysis for large-scale data; the Machine Learning course provides a fundamental introduction to the mathematics, algorithms and practice of machine learning; the Numerical Methods course lays the foundation of applied mathematics related to the scientific computing; and finally, the Linear Algebra & Optimization course builds up the fundamentals of matrix manipulation and numerical linear algebra. These courses are so useful and practical in my current job.
I currently work as a Text to Speech (TTS) Research Engineer in Nuance Communication Inc., in Shanghai. The purpose of TTS is to convert natural language text to artificial human speech. My current job spans from the front end to the back end of the TTS pipeline. The front end of TTS aims to extract the linguistic features from the input text, while the back end converts those linguistic features to acoustic features, and then generates the appropriate sounds to be spoken aloud.
There are many tasks involved in the TTS front end, including word segmentation, text normalization, homograph disambiguation, prosody prediction and more. For example, given the sentence, “I have read this book before,” a homograph disambiguation algorithm tries to correctly predict that “read” should be pronounced like “red” rather than “reed.” In the past, a set of complicated rules is applied to make prediction for each ambiguous word. However, this is inaccurate and inefficient. Now, we use machine learning methods, like neural networks, to make predictions about the right way to pronounce the text in question.
The Machine Learning and Computational Linguistics courses were both extremely helpful in developing these skills, since linguistic processing is the main task involved in the front end of TTS, and machine learning algorithms, especially deep learning algorithms, are used every day in both the front end and the back end. In between those two stages, one of the issues is to efficiently encode the linguistic features for transfer. We use XML for encoding, a data format I learned from the database course.
My experience at Penn taught me a lot, not only theoretical knowledge and applied skills, but also about independent thinking and team collaboration. Independence and collaboration appears contradictory, but they aren’t. Independence means having the ability to learn and research by yourself, with both creativity and attention to detail. But once you’ve learned, you need to be able to communicate and collaborate with others effectively, since working in teams is common on large projects. For instance, many courses in Penn force the students to form groups of two to four members to work on class projects, where each member focuses on some specific part.
The person I thank the most is Professor Talid Sinno, the director of SCMP and my academic advisor. Since the background of the student in SCMP varies a lot, he makes a specific coursework plan for each student. He was the one who suggested I take Computational Linguistics and many of the other courses that put me on the path to success in my career.