悉尼大学商学国贸双硕士毕业,现居澳洲,在澳学习生活15+年,从事教育咨询工作超过10年,澳洲政府注册教育顾问,上千成功升学转学签证案例,定期受邀亲自走访澳洲各类学校
您所在的位置: 首页> 新闻列表> 计算机专业PS范例十四(MIT).
申请专业:计算机
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 经验: 16年 案例:4272 擅长:美国,澳洲,亚洲,欧洲
本网站(www.aoji.cn,刊载的所有内容,访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务用于其他用途时,须征得本网站及相关权利人的书面许可,并支付报酬。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,予以删除。