Stanford Sample
Stanford Sample
SOP Sample
Stanford
By Apply For Free
@Applyforfree.insta
@ApplyForFree
@Applyforfree.insta
@ApplyForFree
STATEMENT OF PURPOSE
________ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ___ ________ ______ ______ ______ ______ ______ ______ _
ANANT BHARDWAJ
[email protected]
____________________________________________________________________________________________________________________
NOVEMBER 10, 2011
_______________________________________________________________________________________________________________________
My primary research objective and interest is in the area of Human Computer Interaction. I am currently
studying computer science at Stanford University, with HCI as the specialization. I believe that the most
important HCI investment for the next decade would be in the management of vast amounts of data.
Through my research, I want to make it easier for people to organize, manage, and make sense of data. I
plan to continue research after my Ph.D., as a faculty in academia.
1 Research
While I always had a passion for building software tools, initially I focused mostly on the system building
aspect of it. It was only during CS 376 (Research Topics in Human Computer Interaction), a course taught
by Prof. Scott Klemmer at Stanford University, I started thinking about research seriously. As part of the
course, I did a research project called Redprint1 , which later got accepted at UIST as a demo paper2 . After
Redprint, I got involved with two more very interesting research projects which I will discuss in detail, in
the following sections.
1.1 Redprint
Joel Brandt’s thesis work at Stanford, explored the roles that code examples play during software
development. As part of this work, he built Blueprint3 , a search interface integrated into the Adobe Flex
Builder development environment that makes it easier for programmers to locate and use instructive code
examples.
Blueprint helped programmers a lot as they could find task specific code examples from within the IDE.
However, when I tried to closely observe the programmers using a Blueprint kind of IDE (a custom IDE I
had built for experimental purposes), it was surprising to see that they still visited search engines like
Google during coding. The interesting part though, was that their search queries were different this time.
They were looking to find API (Application Program Interface) documentation and samples to understand
the APIs used in the borrowed code.
My Redprint work extends Blueprint to provide API specific “Instant Example” and “Instant
Documentation” display interfaces within the development environment. These display interfaces do not
require the programmer to enter any search query; there is a continuously running background search that
looks at the cursor position in the editor window and updates these interfaces with the related API’s
documentation and sample code. This significantly reduces the cost of searching and the time to develop
software.
1
http://projects.abhardwaj.org/redprint/
2
http://dl.acm.org/citation.cfm?id=2046408
3
http://hci.stanford.edu/research/opportunistic/
@Applyforfree.insta
@ApplyForFree
Current search engines are largely text based, and the text vocabulary that they use is a poor match for the
style based concerns. Search engines return pages based on content match with the keyword query; they
cannot be used for searches along stylistic attributes such as ‘pages with funny backgrounds’.
I am working on a system that will allow users to query on stylistic attributes. The search query could be
either language-keyword based or it could be based on examples i.e. a user can select a design and ask the
system to show other examples in the corpus that are similar (or dissimilar) to the designs in the query. For
example, a user can select a header element in a web page, and query the system for other pages with similar
(or dissimilar) headers. I am also thinking of a search interface that can allow users to create abstractions
(user can draw nested rectangular boxes and affix known semantic labels to them (header, logo, image,
etc.)) to describe a design layout and use that as a query. The system could search for pages that mimicked
the layout exactly, with similar content blocks positioned in similar relative locations.
I am using a machine learning technique to solve this problem. Given a set of training examples consisting
of web design’s tree representation and a style label distribution, the labels are used to learn the parameters
of the system via a back-propagation neural network which is applied recursively to each node in the binary
tree representation of the web page. Once these parameters are learned, the system can predict the style
distribution for any given Web page. Example-based querying can be implemented on top of this
representation.
This work is a part of the Bricolage4 project, being led by Ranjitha Kumar, a Ph.D. student at Stanford,
advised by Prof. Scott Klemmer.
Data Wrangler5 is an interactive system for creating data transformations. It combines direct manipulation
of visualized data with automatic inference of relevant transforms, enabling analysts to iteratively explore
the space of applicable operations and preview their effects.
I am collaborating with Sean Kandel (a Ph.D. student at Stanford, advised by Prof. Jeff Heer), who is the
primary investigator for this project. My work focuses on building a high level language, which abstracts
the low level script/sql query and allows users to express the transformations in a much more simple and
intuitive way. Since the direct manipulation techniques don’t scale well for large data cleaning tasks
(because it requires a lot of human effort like drag, drop, mouse clicks, etc..), this high level scripting
language can be used for describing the specification. It involves some classic HCI problems like threshold
and ceiling trade-off, how to provide a path of least resistance, etc.
4
http://hci.stanford.edu/research/bricolage/
5
http://vis.stanford.edu/wrangler/
@Applyforfree.insta
@ApplyForFree
2 Teaching
Currently, I am TAing CS 247 (HCI Interaction Design Studio), a graduate course in HCI, taught be Prof.
Jeff Heer. In the Fall, I TAed CS 249A (Object Oriented Programming from Modelling and Simulation
perspective), taught by Prof. David Cheriton.
3 Related Courses
To get a good understanding of the topics related to HCI, I took the HCI sequence offered at Stanford -
‘Intro to HCI’, ‘HCI Interaction Design Studio’ and ‘Research Topics in HCI’. One other course that I
found very useful, was ‘Designing Computer Science Experiments, Klemmer and Levis’ – it helped me
understand the experiment design aspect of computer science research. I attend Stanford HCI seminar
regularly, for keeping myself updated about the interesting research problems in the area of HCI.
4 Industry
I spent about 3 years, working in the industry. Last summer, I interned at Oracle, where I worked on the
user interaction for iPhone and Android based clients for their OPAM (Oracle Privileged Account
Management) workflow. I also wrote OPAM client SDK. This work manifested into a patent application
which has already been submitted, and is pending approval. Prior to coming to Stanford, I worked for a
little more than 2 years at BMC Software as a Product Developer for their Marimba products. Some of my
key contributions include – Intel AMT (Active Management Technology, a.k.a vPro) integration and a Java
SDK for programming AMT, x64 architecture support for Marimba, and auto relay mechanism for WOL
(Wake on LAN) to work across WAN.
5 Conclusion
Having spent some time in industry and then two years at Stanford for my Masters, I now want to pursue a
Ph.D., as it would allow me to do a much focused research. In my research, I want to go beyond building
prototypes, and build production quality software systems such that they are used by other people for their
daily work. As Prof. John Ousterhout suggests, designing for production use forces us to think about
important issues that could be ignored otherwise, and measurements of usage allow us to evaluate our ideas
more thoroughly.
At Stanford, Scott Klemmer and Jeff Heer are working on the research problems related to different aspects
of management of vast amounts of data.
Most of Scott’s research are in the area of leveraging the online information to increase the quality of
people’s creative work - especially interface design and programming. This opens many sub-areas of
research which I would love to explore.
I am also interested in Jeff’s research, especially related to investigating the factors involved in making
sense of data – especially visualization tools.