您所在的位置: 首頁> 新聞列表> 計算機(jī)專業(yè)PS范例十四(MIT).
申請專業(yè):計算機(jī)
Those passing by Maxwell Dworkin G135 one spring evening last year may have been surprised to see a caped figure dangling his strangely unfazed peer upside-down by the boots. Both characters were holding cardboard arrows; behind them on the board was a sea of *&aposs and ->&aposs.
This was Computer Science 51&aposs C review session, and my fellow review session leader (known to attendees as Guardian of the Heap) was holding me upside-down to demonstrate the conventions of stack and heap growth.
Each year the course holds a review of the essentials of memory management bore diving into C++; this year I had convinced the other teaching fellow to join me in costume to demonstrate how and why C provides an abstraction over the data memory. My own discovery of the power of languages&apos semantic constructs has led me to emphasize this point to all who will listen. My students may recall—fondly or otherwise—my e-mails (sometimes after the course was over) about discoveries of papers such as Richard Fateman&aposs Software Prevention by Language
Choice: Why C is Not my Favorite Language and Bjarne Stroustrup&aposs Evolving a language in and for the real world: C++ 1991-2006.
A class project on parallel computation models first drew me to programming languages.
Physical limitations have caused chip manufacturers to begin increasing the number of cores per processor rather than transistors per core. Because of this, continuing the trend of exponential processor speed growth involves figuring out how to parallelize tasks correctly and ficiently across growing numbers of cores. Solving this problem could eliminate many of today&aposs computational limitations. This convinced me that improving computational tools could produce powerful results.
This tool innovation will come from developing high-level language constructs. In implementing algorithms for my research in computational biology, I saw how usul it was to build my systems out of modular, reusable components. In creating the vision and control systems for my RoboCup team&aposs autonomous soccer-playing robots, abstraction was crucial to maintaining sanity, both in the organization of the code and in the organization of the team. As a technical director of our team, I saw how crucial interfaces were for allowing us to forget about previously solved problems and for allowing people to work separately on interacting code.
After taking courses on computer hardware, compilers, and programming languages, I came to see how language abstraction has allowed many the advances of the last few decades. My experiences continue to confirm the importance of having the proper language tools. When I interned at Google last summer, I discovered how much time people spend implementing details, writing tests, and chasing down bugs. Though I enjoyed the craftsmanship involved with writing C++ code disciplined enough to be correct, ficient, and readable, I saw a glaring need for language constructs with better error prevention mechanisms and better ways of demonstrating code correctness. In the hours I spent waiting for my code to compile, I thought about how to build language tools to better support separate compilation and discourage the production of so many dependencies.
Not only did my experience in industry verify that there are real problems I should solve, but it also motivated me to return to academia to solve them. At Google I noticed that production pressures and the need for backwards compatibility in industry tend to make tool development less important than product development. Academic settings tend to allow greater experimental more conducive to producing innovative projects such as Coq, a proof assistant application developed by INRIA, and Fortress, Sun&aposs revision of the Fortran programming language.
My own undergraduate experience contributes to my desire to remain at the university. Because of the influence of my professors and activities in my decision to continue studying computer science at all, I have felt strongly about increasing undergraduate accessibility to resources, academic and otherwise. As president of the Harvard College Engineering Society, I have organized events such as lunches with professors, freshman advising events, and Women in Computer Science activities. I have also worked to make it possible for students to pursue their own projects: for our RoboCup team I have helped to acquire thousands in funding and critical lab space to test our soccer-playing robots.
Of course, one of the main reasons to stay in academia is to teach. Teaching has been the best thing I have done as an undergraduate: not only has it helped reinforce my understanding of the material, but it has also given me perspective on the purpose of my own coursework. I love teaching because I find the concepts interesting and relevant; my goal is for other people to gain enough understanding to feel the same. I want to provide accessibility to beautiful theoretical results such as the proof of the Halting Problem, to impart necessary practical knowledge such as the proper construction of a Makile, and to convince others that solving problems in computational tools is important.
It would be ideal to remain in academia as a professor because I could pursue my research interests while training and recruiting others to solve relevant problems in programming languages. The NSF fellowship will provide me with the flexibility to work on such problems of my interest while I pursue this goal.
Amy GUO 經(jīng)驗: 17年 案例:4539 擅長:美國,澳洲,亞洲,歐洲
本網(wǎng)站(goplaceswithdan.com,刊載的所有內(nèi)容,訪問者可將本網(wǎng)站提供的內(nèi)容或服務(wù)用于個人學(xué)習(xí)、研究或欣賞,以及其他非商業(yè)性或非盈利性用途,但同時應(yīng)遵守著作權(quán)法及其他相關(guān)法律規(guī)定,不得侵犯本網(wǎng)站及相關(guān)權(quán)利人的合法權(quán)利。除此以外,將本網(wǎng)站任何內(nèi)容或服務(wù)用于其他用途時,須征得本網(wǎng)站及相關(guān)權(quán)利人的書面許可,并支付報酬。
本網(wǎng)站內(nèi)容原作者如不愿意在本網(wǎng)站刊登內(nèi)容,請及時通知本站,予以刪除。
1、拔打奧際教育全國咨詢熱線: 400--601--0022 (8:00-24:00)。
2、點擊 【在線咨詢】,我們會有咨詢老師為您提供專業(yè)的疑難問題解答。
3、 【在線預(yù)約】咨詢,填寫表單信息,隨后我們會安排咨詢老師回訪。