【回复加米】研究型MSCS的SoP求评价&建议(转方向申请)

avatar 488723
dcclogin
2594
11
楼主背景:Bioinformatics,转PL

例文是已经提交的Utah MSCS项目的SoP,要求是1-3页单倍行距,无更多要求描述,于是就写了1200-1300字左右。其他项目有按照要求删减。
为了阅读方便,我用中文标注出了段落主要内容和功能,还请大家花点时间帮忙评价一下,谢谢!

一、Motivation部分

Thinking and Approach of Programming is the first course that has triggered my imagination for Computer Science, Programming Languages to be specific, after I was enrolled in *** University, Bioinformatics major. Impelled by my curiosity about the programming world, I extensively read books and articles to enhance my theoretical knowledge. For instance, The Little Schemer exposed me to the great potentiality of functional programming and enigma of recursion; Programming languages and Lambda Calculi helped me develop deeper insights in lambda calculus and abstract machines, enabling me to implement their semantics by writing interpreters with Scheme/Racket and eventually grasp the strong correspondence between the design of programming languages and that of machines; Types and Programming Languages further increased my interest in static analysis, to write an “abstract interpreter” (e.g. a type checker) traversing the Abstract Syntax Tree of a program to evaluate some “abstract values” (e.g. types) and implement the halt state.
The self-study experience has enlightened me that from a programming language’s perspective, a program is a special data structure, namely a “description” of a specific-purpose computer which the general-purpose computer, i.e. the interpreter, can manipulate. Since the interpreter can simulate the behaviors of any specific programs while itself is also a program, it to a certain degree captures the essence of computation which provides powerful abstractions of the real world. Mesmerized by this elegant intuition, I desire to further probe into Programming Language Theory, to learn from experts in this field and specialize in programming language design, static analysis, type systems, compilers, etc., in my graduate studies.

二、经历和感悟

My undergraduate studies at Shanghai Jiao Tong University exposed me to a wide range of courses concerning computer science. After I mastered the basics of operating systems through the course of Introduction to Linux and Shell Scripting, I realized that using structured data with type annotations instead of unstructured strings will make inter-process communication more efficient in terms of fundamental theories of programming languages. Through The Principle of Database Systems, I figured out the connections between the relational models and logic programming and that most complex SQL queries can be compiled to “functional programming style” (combination of functions like filter, map, etc.). Other courses like Algorithm and Data Structure and Principles of Algorithms in Bioinformatics also deepened my understanding of programming and laid a sound foundation for my graduate studies.

In parallel with accumulating theoretical knowledge was my desire for practice. My first attempt was to conduct an individual project titled Biodiff in March 2016. The emphasis of the project lay in implementing diff command with C based on two files with different formats and containing bioinformatics data. One prominent problem was to select the proper algorithm and data structure. I initially employed a binary tree and KMP algorithm only to find that these could not perfectly satisfy the design requirement, as the input files were calculated in GB, therefore setting a high demand for operational efficiency. Driven by my curiosity for a better algorithm, I independently learned and implemented Trie to improve efficiency. My effort was appraised by my advisor, which greatly boosted my confidence to engage in this field.

With redoubled enthusiasm to engage in the field of computer science, I collaborated with several students and accomplished a project studying text generation based on big data, an innovative project of SJTU. The first part of developing the crawler and database did not take too much time. Instead, I paid much attention to deal with the txt files. To process the files with uneven quality, I drew inspiration from the process of designing the compiler, and built an “intermediate structure” (similar to Abstract Syntax Tree), transforming unstructured text to structured data. Being responsible for the programming and implementation of details, I have fully realized the complexity and inefficiency of the existing programming process and become more eager to decode programming languages.

Aside from the accumulation of hands-on experience via research projects, I served as a software engineer intern at Intel Asia Pacific Research and Development Co. Ltd., Shanghai, in my junior year. This internship was a combination of my interest in Computer Science and my expertise in Bioinformatics. The primary task of mine was the optimization of gene sequence compression algorithms with performance-testing tools like vTune in Intel. To identify the bottleneck of existing algorithms, I studied information theory by myself. Later I delved into the limitations of lossless compression and communicated with the author of a paper that I referred to via email, to figure out more details of optimization. By replacing the instruction set, I also improved the original compression and decompression speed, occupation of memory, and so on. On the one hand, this internship endowed me with a sense of achievement when using my theoretical knowledge in a practical scenario. On the other hand, it granted me an opportunity to review my insufficiency in in-depth knowledge in Computer Science and strengthened my determination to apply to a master’s program.

三、Why Program 定制 + Career Goal

My practical experiences, coupled with the knowledge of PL that I self-learned, have given me a clear direction for my academic path. Longing for being exposed to more professional training in Programming Languages, I am now applying to the Master of Science program in Computer Science at the University of Utah. There are multiple top-notch faculty members in the field of programming languages at the School of Computing. Having benefited from books including Programming Languages and Lambda Calculi and How to Design Programs, I am eager to meet their author, Prof. Matthew Flatt in this program. Prof. Matthew Flatt is also a key contributor to the Scheme/Racket Community. During my self-learning process, I used Racket to write various interpreters and found many of its features user-friendly (especially pattern matching). Therefore, I wish I could have an opportunity to learn more in-depth knowledge about practical and theoretical aspects of programming languages from Prof. Matthew Flatt, participating in his research projects and joining the Utah PLT. Moreover, interested in research projects performed by Prof. Zvonimir Rakamaric and Prof. Pavel Panchekha, I also desire to learn from them. Lastly, I am expecting to attend courses such as Programming Language Concepts, Programming Language Semantics, Compiler Principles and Techniques, and Software Verification and Analysis, which will compensate for my shortage of professional training in Programming Languages and lay a foundation for my engagement in research projects. Considering the top-class faculty members and state-of-the-art education at the University of Utah, this program will definitely train me with advanced skills and knowledge in the field of programming languages.

Upon graduation, I envision myself as an eligible researcher or a research software engineer exploring the area of programming language theory. It will not only satisfy my interests and ambitions but also offer me an opportunity to contribute to academia and industry by identifying the essence of programming. In the long term, while throwing myself into the application of my research findings that will improve programmer productivity, I desire to become a prudent computer scientist who is alerting to the potential danger caused by cutting-edge technology. I am sure that the School of Computing at the University of Utah is the ideal place to provide resources to achieve my career goals.
  • 14
11条回复