本科生往往沒有太多的東西可寫,重要的是要找到unique的角度。本文學(xué)習(xí)目的寫得相當(dāng)明確。
A fourth-year student grounded solidly in the basics of computer science, I am writing in pursuit of graduate studies that I hope can help me acquire cutting-edge expertise in software programming in general and parallel processing in particular.
Intrigued by the power of the computer since high school, I have been trying to stay on top of the computer science by concentrating my undergraduate studies on those subjects that underpin the discipline, particularly mathematics and electronics. To build up my solid knowledge in these subjects, I have taken virtually all the related courses that the university has had to offer. These courses include Algorithm & Data Structure, Mathematical Modeling, Network Theory, Digital Circuit, Discrete Mathematics, and Electric Circuit. With a sophisticated understanding in these areas, I have been well positioned to appreciate the basic theories of computer science and their applications to software development.
Aided by the firm command of the basics, I have found it not only easy but also exciting to study the various subjects covered by my major. As most of my classmates, I took a variety of courses ranging from AI to Computer Network, from AI Programming to Knowledge Engineering, from Pattern Recognition to Software Engineering, and from Database Design to Programming Language Design. But I distinguished myself by my academic record, which places me as one of the very top students in my class. My grades in these course never went below A or B. I have also stood out as one of the few who have taught themselves Real Time System and Computer Graphics.
Armed with sound training in the basic theories and applied technologies, I have been able to move on into deeper and wider areas of computer science. Early in my university life, I began to understand that the modern computer's base, the Turing machine, was reaching its limits in AI. Gradually, I have narrowed down my research interest to parallel & distributive computing, which I understand can significantly boost the performance of personal computers by giving them some of the functions of mainframe computers.
Of all the areas of computer science, parallel processing fascinates me the most. The term first came to me when I read the book Computer Organization & Design: the Hardware/software Interface as part of my Computer Architecture course. By teaching me how the performance of computers can be improved through pipelining and parallel processing, the book reshaped my thinking in computer science.
My lab experience deepened my understanding of parallel processing. In my third year, I worked on a GIFT project with Dr. Komatsu, chief researcher of IBM Tokyo Research Laboratory and Dr. Koseki, one of Dr. Komatsu's colleagues. The project was to introduce the architecture supports that can allow compilers to derive more parallelism from programs. These architecture supports include three designs, a conditional execution mechanism to execute instructions without normal conditional jump instructions, speculative execution mechanism, and a dynamic memory disambiguation mechanism to execute memory access instructions simultaneously.
As undergraduate students seldom get to be involved in actual research, I took full advantage of the opportunity of working in the lab. I particularly enjoyed the seminars held twice a week as part of the lab work. At these seminars, I engaged in in-depth discussions with Master's students under Dr. Komatsu's seasoned guidance. The lab experience is adding weight and insights to my graduation paper An Improvement of Software pipelining using Loop Transformations. In this paper, I will introduce a translation algorithm using loop interchange and loop skewing. This algorithm can minimize the initiation interval of loop nest to improve the performance of software pipelining.
Through my lab experience and other research, I have developed a long-term professional objective: the advancement of the parallel processing technology. While I have strong faith in this technology, I also know its limitations as it is today. Some sequential algorithms can't be easily translated into fast parallel algorithms and most compilers can only distribute works on one platform. Another unsettled problem is that programming parallel computers is now still a manual work. But even the modern language (like Java, C++) can do some automatic translation work. If a compiler can be developed to translate and distribute work into different platforms, personal computers will be able to work like mainframe computers at a fraction of the mainframes' costs. This will make it possible to connect all the computers in the world and speed up all the processes.
To help take the parallel processing technology beyond what is capable of today, I have to undertake more advanced studies. This, I believe, can only be accomplished in a quality graduate program like yours. I plan to pursue a master's degree with a concentration on paralleling and distributing compilers, operating systems or computer networks, a combination thereof. With the training that goes into such an advanced degree, I think I will be able to take great strides towards fulfilling my professional objective. When I do, I think I will be standing on the cutting-edge of the computer science.