With the solid foundation in computer science provided by undergraduate education, I would like to deepen my understanding and acquire professional skills in the field of compiler design to become a professional engineer and an industrial leader. Therefore, I am applying to the Professional Master of Computer Science from the University of Illinois Urbana-Champaign.
My undergraduate education laid down a solid foundation in computer science. I majored in electrical engineering in National Tsing Hua University (NTHU). The programming course aroused my interest and unleashed my potential in computer science. In order to program more efficiently in terms of time and space complexity, I took courses in Data Structure and Algorithm. In addition, I studied in Operating System, Computer Architecture, Compiler Design, and Embedded System Lab to deepen my understanding of how low-level languages interact with computer hardware. While I highly specializes in the field of computing systems, I insist on extensive learning. For instance, I took courses in Machine Learning, Internet of Things, Bilingual Web Design, Digital Signal Processing, and Communication System, etc. I have achieved excellent grades of A or A+ in all these courses. They have brought me numerous practical experiences in a variety of programming languages such as C/C++, Python, MATLAB, HTML, CSS, and JavaScript, and assembly languages. I realized efficiency is crucial in programming, and I am eager to further research in the field of computing systems to learn how to improve it.
My knowledge of computer architecture as well as the experience of designing a C compiler from scratch have enhanced my realization for computing systems. In the computer architecture course, I implemented merge sort with RISC-V and reduced the cycles needed to implement linear search. I learnt how to decompose an instruction into multiple steps, and we can improve the efficiency through pipelines. In the compiler design course, I designed a scanner for C codes with the use of Lex to process lexical analysis. I made a parser for C codes with the use of Yacc to tackle sematic analysis. Finally, I completed a C compiler for RISC-V based on the scanner and the parser, which supports function and variable declarations, arithmetic expressions, and pointers. During the project, I realized the design of a compiler has a great impact on efficiency. It prompted me to learn in-depth compiler optimizations for improving efficiency of a compiler.
My research experience working on a one-year independent study motivated me to learn how to improve the efficiency with parallel computing. I was the leader of a 5-person team on Professor Chu’s Modular Reconfigurable Robot for Locomotion Control. We worked on applying Genetic Algorithm to realizing locomotion control of a modular robot. Since our lab had prior experience in Genetic Algorithm, I was put in charge of improving the GA to get results of higher quality; for example, changing the methods of crossover and mutation. These results were later verified in the locomotion control of our modular robot. The motor parameters of the robot can be automatically generated with the GA from randomly initialized parameters, including two modes- crawling on the floor and climbing stairs. Based on my findings, I then explored different parameters of GA and found the solution can be even better if the population size is larger. However, we don’t have the computing power for a larger population size. It was then I came up with an idea of optimizing the efficiency to speed up the computation for numerous applications.
Awards and Honors I received in the university demonstrate my prominent performance in the field of computer science. I won two Academic Excellence Awards for excellent academic performance and upright conduct in academic years of 108 and 109. I was also awarded with Elite Scholarship for 2 semesters (about US$2200 per semester) which is provided by Elite-Well Education Foundation for top 20 juniors or seniors in the universities in Taiwan. In addition, for the independent study, the team I led won Second Place in 2020 in Department of EE, NTHU and Honorable Mention Award in 2021 in College of EECS, NTHU. These awards have enhanced my sense of accomplishment and further encouraged me to continue my study.
Although I acquired solid programming skills and problem-solving ability during the university, I want to develop a deeper technical specialization in compiler design and parallel computing. As we approach to the end of the Moore’s law, we must make the system design more efficient by improving the architecture. Compilers are key in identifying new opportunities to make use of specialized accelerators. My background in electrical engineering makes me understand how the hardware interact with low-level languages. Thus, I feel like researching on performance optimizations and correctness problems for systems such as multi-core processors and GPUs. Because companies in the United States usually have a larger structure, I started my study abroad plan.
The courses of MCS program at UIUC are comprehensive and can prepare me for a career in compiler design. With my experience in implementing the major phases of a simple compiler, including scanning, parsing, and code generation, I seek to enhance my professional skills in compiler optimization. Thus, I am interested in taking “Progrmg Languages & Compilers” and “Compiler Construction”. Your department is particularly strong in this area. The most popular codegen used by ML compilers “LLVM” is developed by your department. TensorFlow XLA, NVIDIA CUDA compiler, and TVM all use LLVM. The training in your program will hone my professional skills in dealing with compiler optimization. On the other hand, the breadth requirement gives me the opportunity to learn how compiler can work with other levels of applications; for example, machine learning and artificial intelligence. I look forward to the challenges and opportunities provided by the compiler programs in your prestigious school.
As the artificial intelligence becomes the trend of the technology development, a large amount of computation is required for deep learning and neural network. Compilers are the bridge between applications and hardware (such as CPU and GPU), and the optimizing compilers is a solution that pushes the computation. With the training this program offers, I am confident that I will succeed in becoming an industry leader and a professional engineer in designing compilers. Therefore, I am applying to the Professional Master of Computer Science from the University of Illinois Urbana-Champaign to achieve my goal.
With the solid foundation in computer
science
provided by undergraduate education, I would like to deepen my understanding and acquire
professional
skills
in the
field
of
compiler
design
to become a
professional
engineer and an industrial leader.
Therefore
, I am applying to the
Professional
Master of Computer
Science
from the
University
of Illinois
Urbana-Champaign
.
My undergraduate education laid down a solid foundation in computer
science
. I majored in electrical engineering in National
Tsing
Hua
University
(
NTHU
). The
programming
course
aroused my interest and unleashed my potential in computer
science
. In order to
program
more
efficiently
in terms of time and space complexity, I took
courses
in Data Structure and Algorithm.
In addition
, I studied in Operating
System
, Computer
Architecture
,
Compiler
Design
, and Embedded
System
Lab to deepen my understanding of how low-level
languages
interact with computer hardware. While I
highly
specializes
in the
field
of
computing
systems
, I insist on extensive
learning
.
For instance
, I took
courses
in Machine
Learning
, Internet of Things, Bilingual Web
Design
, Digital Signal Processing, and Communication
System
, etc. I have achieved excellent grades of A or A+ in all these
courses
. They have brought me numerous practical
experiences
in a variety of
programming
languages
such as C/C++, Python, MATLAB, HTML, CSS, and JavaScript, and assembly
languages
. I realized
efficiency
is crucial in
programming
, and I am eager to
further
research in the
field
of
computing
systems
to
learn
how to
improve
it.
My knowledge of computer
architecture
as well
as the
experience
of designing a C
compiler
from scratch have enhanced my realization for
computing
systems
. In the computer
architecture
course
, I implemented merge sort with RISC-V and
reduced
the cycles needed to implement linear search. I
learnt
how to decompose an instruction into multiple steps, and we can
improve
the
efficiency
through pipelines. In the
compiler
design
course
, I designed a scanner for C codes with the
use
of
Lex
to process lexical analysis. I made a parser for C codes with the
use
of Yacc to tackle
sematic
analysis.
Finally
, I completed a C
compiler
for RISC-V based on the scanner and the parser, which supports function and variable declarations, arithmetic expressions, and pointers. During the project, I realized the
design
of a
compiler
has a great impact on
efficiency
. It prompted me to
learn
in-depth
compiler
optimizations
for improving
efficiency
of a compiler.
My research
experience
working on a one-year independent study motivated me to
learn
how to
improve
the
efficiency
with parallel
computing
. I was the leader of a 5-person team on Professor
Chu
’s Modular
Reconfigurable
Robot for Locomotion Control. We worked on applying Genetic Algorithm to realizing locomotion control of a modular robot. Since our lab had prior
experience
in Genetic Algorithm, I
was put
in charge of improving the GA to
get
results of higher quality;
for example
, changing the methods of crossover and mutation. These results were later verified in the locomotion control of our modular robot. The motor parameters of the robot can be
automatically
generated with the GA from
randomly
initialized parameters, including two modes- crawling on the floor and climbing stairs. Based on my findings, I then explored
different
parameters of GA and found the solution can be even better if the population size is larger.
However
, we don’t have the
computing
power for a larger population size. It was then I came up with an
idea
of optimizing the
efficiency
to
speed up
the computation for numerous applications.
Awards and Honors I received in the
university
demonstrate my prominent performance in the
field
of computer
science
. I won two Academic Excellence Awards for excellent academic performance and upright conduct in academic years of 108 and 109. I was
also
awarded with Elite Scholarship for 2 semesters (about US$2200 per semester) which
is provided
by Elite-Well Education Foundation for top 20 juniors or seniors in the
universities
in Taiwan.
In addition
, for the independent study, the team I led won Second Place in 2020 in Department of EE,
NTHU
and Honorable Mention Award in 2021 in College of
EECS
,
NTHU
. These awards have enhanced my sense of accomplishment and
further
encouraged me to continue my study.
Although I acquired solid
programming
skills
and problem-solving ability during the
university
, I want to develop a deeper technical specialization in
compiler
design
and parallel
computing
. As we approach to the
end
of the Moore’s law, we
must
make
the
system
design
more efficient by improving the
architecture
.
Compilers
are key in identifying new opportunities to
make
use
of specialized accelerators. My background in electrical engineering
makes
me understand how the hardware interact with low-level
languages
.
Thus
, I feel like researching on performance
optimizations
and correctness problems for
systems
such as multi-core processors and GPUs.
Because
companies
in the United States
usually
have a larger structure, I
started
my study abroad plan.
The
courses
of MCS
program
at
UIUC
are comprehensive and can prepare me for a career in
compiler
design
. With my
experience
in implementing the major phases of a simple
compiler
, including scanning, parsing, and code generation, I seek to enhance my
professional
skills
in
compiler
optimization
.
Thus
, I
am interested
in taking “
Progrmg
Languages
&
Compilers”
and
“Compiler
Construction”. Your department is
particularly
strong in this area. The most popular
codegen
used
by ML
compilers
“LLVM”
is developed
by your department. TensorFlow
XLA
, NVIDIA
CUDA
compiler
, and TVM all
use
LLVM. The training in your
program
will hone my
professional
skills
in dealing with
compiler
optimization
.
On the other hand
, the breadth requirement gives me the opportunity to
learn
how
compiler
can work with other levels of applications;
for example
, machine
learning
and artificial intelligence. I look forward to the challenges and opportunities provided by the
compiler
programs
in your prestigious school.
As the artificial intelligence becomes the trend of the technology development, a large amount of computation
is required
for deep
learning
and neural network.
Compilers
are the bridge between applications and hardware (such as CPU and GPU), and the optimizing
compilers
is a solution that pushes the computation. With the training this
program
offers, I am confident that I will succeed in becoming an industry leader and a
professional
engineer in designing
compilers
.
Therefore
, I am applying to the
Professional
Master of Computer
Science
from the
University
of Illinois
Urbana-Champaign
to achieve my goal.