Ying Feng
VPIT, Indiana University
Bloomington, IN 47405
Phone: 812-***-****
E-mail : abpj1q@r.postjobfree.com
URL: http://www.cs.indiana.edu/hyplan/yingfeng.html
ObjectiveLooking for a software development or a research/teaching position.
Areas
of special professional interest: data analysis/visualization,
intelligent user interface, virtual reality, computer graphics.Other
areas of professional interest: information retrieval, database,
multimedia, network, web applications, computer music, computer art.SkillsLanguages: Proficient in Java (>10 years), C/C++ (>10 years), Perl; In the past also used Pascal, Basic, Fortran, Lisp/Scheme,
Prolog, Assembly.IDEs: Eclipse, Netbeans, JBuilder, Visual C++ (MFC), XEmacs
Platforms: Familiar with Unix, Linux, Windows, Mac OS.Graphics & multimedia: OpenGL, CAVE, CAVERNSoft, VSS, VRML,
Matlab; Experienced in GUI design.Database: Familiar with PL/SQL (Oracle, MySQL, Access); Experienced in ER model design.Web Applications: HTML, XML, JSP, Struts, OJB, Spring, Javascript, PHP, Flash; Experienced in web application development.Computer music: MIDI, Performer, CSound, Humdrum.Research/Programming ExperienceAug 2007 - present: Senior
System Analyst/Programmer, University Information Technology Services,
Indiana University, Bloomington, IN. Working on the nationally
recognized Kuali community source development project (see http://www.kuali.org for details); in particular, the Kuali Financial System (KFS), an enterprise web application supporting financial administrative systems. As part of the PurAP team, my main responsibilities include providing technical expertise in the design, development, and implementation of the Purchasing / Accounts Payable Module; communicating and interacting with financial users on troubleshooting,
problem-solving,
and support of the system; extra responsibilities also include
maintenance and support of EPIC, the Financial Processing System
currently used in production at IU campus, which involves occasional
releases of source code patches, coordinating with other technical
teams (Database, Workflow etc) on upgrades of platforms and supporting
applications, and providing technical help on production issues
encountered by users. Various J2EE and DB
development tools and frameworks are used, including Eclipse, CVS, SVN,
Ant,
Tomcat, HTML, CXML, JSP, Javascript, Struts, OJB, Oracle, MySql, JUnit, Log4j, Spring, etc.
Aug 2003 - July 2007: Research Assistant at Visualization and Interactive Spaces Lab, Pervasive
Technology Labs at Indiana University, Indianapolis, IN.
Worked on the ArborQuest project (An Intelligent Visualization Recommendation System Based on User Interaction History).
The goal is to provide recommendations to users on choosing suitable
visualization tools to explore multiple data sets and achieve various
data analysis tasks in more efficient ways. Investigated related work,
designed a framework to model data, task, user, platform, and
visualization history, on which recommendations are based, and explored
various machine learning and data mining methods, in search of
effective algorithms to analyze interaction history. The web-based
front-end GUI is implemented in Flash and PHP, while the back-end
algorithms are implemented in Java. XML stream data are passed between
the two ends.Took part in the RIVER project (Research, Instrumentation, and Visualization for Ecological Restoration), in association with the Lilly ARBOR Project, an ecosystem restoration and monitor system for the White River riverbank, sponsored by the Lilly Foundation. Designed and implemented the prototype of a visualization system ArborVis (Visualization of Large Unstructured Multi-dimensional Spatial-Temporal Datasets Using Synchronized Hierarchical Multi-views), to help scientists analyze multiple datasets collected over years of the ecosystem spreading across several areas along the riverbank. MySQL and JDBC were used for database management, and the visualization tools were implemented in Java.Feb-Aug 2003: Research Assistant for Psychology Department, Indiana University, Bloomington, IN. Worked on a graph matching algorithm (ABSURDIST) applied to the
translation between parallel conceptual systems or ontologies. Improved
the original algorithm in both mapping speed and accuracy, greatly
increasing the scale of applicable graphs. Carried out experiments
applying the algorithm to real-world systems and had some interesting
discoveries on how internal/external similarity and other node features
could affect the alignment of two conceptual systems. Publications were
produced based on these results. The algorithm and its applications
were implemented in Java, and its online GUI was implemented as a Java
applet.May-Jun & Oct-Dec 2002: Intern at the Imaging and Visualization Department at Siemens
Corporate Research, Princeton, NJ.
Worked on a pilot visualization tool for a patient record
system. Researched various existing tools, and designed a framework for
the visualization pipeline, which was general enough to handle a
variety of applications with multi-featured temporal data.
Implemented a prototype interface using a synchronized hierarchical
multi-view strategy to display patient records, which include textual,
numerical, and image data. The interface was written in Visual C++ and
MFC. Detailed documentation on the code and framework was also
delivered.
Jul-Sep 2002: Intern at the Information Sciences and Technologies
Lab at Palo Alto Research Center, Palo Alto, CA.
Worked
on web information retrieval and visualization methods.
Developed a prototype for a GUI front-end to a web information
retrieval application called Blackmarket.com, to provide a novel,
dynamic, and intuitive interface for a website filled with scent-rich
information designed to support browsing. Applied a variety of
technologies in the area of information visualization, including the
Scatter-Gather algorithm, dynamic clustering algorithms, cluster layout
algorithms, 2D graphics with animation, and zoomable interface
techniques. The front-end GUI was written in Java, with a zoomable
toolkit called Jazz, and the back-end computation was written in C++.
Detailed documentation on the design and implementaion of the GUI was
also delivered. May-Aug 2001: Coop Pre-Professional Engineer with the IBM Research Division's
Distributed Systems & Services Department at the T.J. Watson Research Center, Hawthorne, NY.Worked with the Intelligent Multimedia Interaction Group on the
project RIA (Responsive Information Architect), doing research on
Example-Based Information Graphics Generation. Helped design and
implement an example-based generation engine, which could automatically
generate graphics for information presentation based on users' queries
and data, using CBR techniques to retrieve similar graphics from
a database of annotated information graphics, then merge the top
matched examples to generate desired graphics. Technology in the field
of information science, artificial intelligence, and computer graphics
were learned and investigated. Coauthored a paper based on the project.
Tools used included XmlSpy, XML parser written with Xerces/Xalan XML
packcage, Java under JBuilder, and OpenInventor.
Jun-Aug 2000: Programmer and Research Assistant, New Media Department,
IUPUI, Indianapolis, IN.Worked on the Distributed Virtual Concert project, a
collaborative virtual environment that targets to enable musicians at
geographically distributed sites to play MIDI music together
through networks: musicians collaborate in a virtual concert room;
telepresense is provided by avatars tracking the remote musicians,
along with audio and video to help communication; music is generated
from both local and remote MIDI messages. Technology in the field of
virtual reality, computer graphics, networking, computer music, and
human factor study were learned and applied. Programming tools used
included C/C++, OpenGL, CAVE & CAVERNSoft, Performer, SGI MIDI lib,
and pthread.
May 1999 - May 2000 & Sep 2001 - Apr 2002: Independent research, Computer Science Department,
IU, Bloomington, IN.
Research on analysis and visualization of hierarchically
clustered data. Developed an efficient algorithm to dynamically and
incrementally categorize a large set of data into a hierarchy of
clusters according to their semantics, and used a stable and fast
layout algorithm to display these clusters, so that their semantic
closeness and relationships would be maintained and mapped into limited
2D screen space. A large collection of personal bookmarks was used as a
sample data set, and a layout tool called Semantic Treemap was
implemented to visualize personal web space, providing various
interaction tools to facilitate manipulations on the bookmarks. The
client-side GUI, implemented in Java, connected to the C++ back-end
computation module through Javaservlets. Publication on this project was produced.
Research on quaternion visualization. Developed an interactive
animation tool (GLUT version on SGI, and a CAVE version) for
interpolating 3D object positions and orientations, by interpolating
both in the 3D geometry space and the quaternion space. Implemented with C, OpenGL, GLUT, and CAVE.Research on database security. Designed an extended model for
Mandatory Access Control using Multilevel Security Labels and Row
Constraints, implemented a prototype for this model using Oracle
8. Jun-Aug 1998: Research Assistant, Computer Science Department, IU, Bloomington, IN.Extended and improved a tool for visualizing large sparse
linear systems, using C++, Matlab and X-Motif. The tool, called
Emily, was later integrated into the Linear System Analyzer as
the Visual Component, using Java AWP.
Sep 1995 - Jun 1997: Research Assistant, Distributed Systems Lab at Computer Science Dept, Nanjing University,
Nanjing, China.Designed and implemented a Visual Programming Environment for
Distributed Systems, using Visual J++, running under Windows. Participated in the project "Intelligent Human-Computer Interface
for Parallel Machine", implemented the module for Natural Language Command
Processing, using Lisp, Prolog, C++, and X-Motif, running under Unix.Sep 1993 - Jun 1994: Curriculum Practical Training, Tsinghua Computer Company,
Beijing, China. Designed and implemented a Hypertext Documentation System used
for product manuals, using Borland C++.Participated in a Real-Time Dynamic Control System for steel
production pipeline, designed and implemented the
Dynamic Data Visualization module, using Borland C++.
Teaching ExperienceSep 1997 - May 2002: Associate Instructor, Computer Science Department,
Indiana University, Bloomington, IN.
Undergraduate level courses: Introduction to Computer Science,
Introduction to Software Systems, Data Structures, Computer Structures,
Computer Graphics,Java Programming, Multimedia Communications, Java Server Pages.
Graduate level courses: Operating Systems, Networks and Distributed Computing, Distributed Systems
Responsibilities: Teach lab and discussion sessions, hold office hours,
help designing and grading homework, help grading exams.Sep-Dec 1994: Teaching Assistant, Computer Science Department, Nanjing
University, Nanjing, China.Helped teaching undergrad level course (Data Structures), supervised lab sessions.
Education
Ph.D. (candidate) in Computer Science (in progress), Computer Science Department, Indiana University, Bloomington, IN.Candidacy acquired; Current GPA: 3.91/4.0.M.S. in Computer Science (Dec. 1999), Computer Science Department, Indiana University, Bloomington, IN.
GPA: 3.85/4.0Awards: Graduate Fellowship (1998-1999, by Indiana University)
Operating Systems: Enhancement of a simulated operating system, with management for multitasking, virtual memory and distributed
file system; implemented in C++.
Networks and Distributed Systems: Implemented a simple HTTP
server, TCP/UDP and IP protocol, and the Token Ring protocol, using Java
network packages.
Software Engineering: Participated in the design of an online evaluation
system for BEST at IU, including feasibility study, requirement specification,
ER model design, user interface design, involving intensive writing
and documentation.
Data Mining: Participated in the design and implementation of a
personalized knowledge base management system called Knownspace, responsible
for the user modeling module written in Java.
Programming Languages: Implemented a simple interpreter for a scheme-like
language using Java.
Scientific Visualization: Simulation of a dynamics system, with GUI and data visualization, implemented as a Java
applet.
Machine Learning: Participated in a disaster response planning system
with introspective adaptation learning, implemented the Case-Based Adaptation
module using Scheme.
Computer Vision: Implemented various image processing algorithms
using Matlab, applying techniques such as image compression and decompression with Laplacian
pyramid, pattern recognition, face recognition with PCA and ICA.
Virtual Reality: Implemented several CAVE applications using OpenGL/CAVE, applying UI design
techniques.
M.S. in Computer Science (Jun. 1997), Computer Science Department, Nanjing University, Nanjing, China.GPA: 8.8/10.0Awards: Huawei Scholarship (1994-1995, by Nanjing University)
B.S. in Computer Science & Engineering (Jul. 1994), Department of Computer Science and Technology, Tsinghua University,
Beijing, China.GPA: 8.6/10.0Awards: Scholarship for Excellent Students (1992-1993, by Tsinghua University)PublicationsYing Feng, Robert Goldstone, Vladimir Menkov. A Graph Matching Algorithm and its Application to Conceptual System Translation. International Journal on Artificial Intelligence Tools, 14, 77-99, 2005.
Goldstone, R. L., Feng, Y., & Rogosky, B. Connecting Concepts to each other and the world. In D. Pecher and R.Zuann (Eds.) Grounding cognition: The role of perception and action in memory, language, and thinking. Cambridge: Cambridge University Press, 292-314, 2005.Ying Feng, Robert Goldstone, Vladimir Menkov. ABSURDIST II: A Graph Matching Algorithm and its Application to Conceptual System Translation. Proceedings of FLAIRS, AAAI Press, Miami, FL, May 2004.
Michelle X Zhou, Sheng Ma, & Ying Feng. Applying Machine Learning
to Automated Information Graphics Generation. IBM Systems Journal,
Vol. 41, No. 3, p504-523, 2002,
Katy Borner, Ying Feng, & Tamara McMahon. Collaborative Visual Interfaces
to Digital Libraries. The Second ACM+IEEE Joint Conference on Digital
Libraries, Portland, OR, Jul. 2002.
Ying Feng & Katy Borner. Using semantic treemaps to categorize and
visualize bookmark files. Visualization and Data Analysis, Proceedings
of SPIE, Vol. 4665, p218-227, St. Jose, CA, Jan. 2002.
Y. Feng & X. Yuan. Mandatory Access Control - An Extension
to Security Policies in DBMS. IRMA 2000.
X. Yuan & Y. Feng. The Optimization of Class Hierarchy in
Object-Oriented Design. ACM SIGSOFT Software Engineering Notes,
Vol. l25 No.2, Mar. 2000
Ying Feng. Knowledge-Based HCI For Parallel Machines. Computer Aided Engineering, Shanghai, China, No.3, 1997.
Ying Feng. A Visual Interface Model For Object-Oriented Distributed
Programming. Micro Computer, Chongqing, China, Sep. 1997.