EDUCATION

Ph.D. in Computer Science, Yale University, 2002
M.Phil in Computer Science, Yale University, 2002
M.S. in Computer Science, Yale University, 1998
M.S. in Computer Software, Institute of Software, Chinese Academy of Sciences, 1997
B.S. in Computer Science, University of Science & Technology of China, 1994

SKILLS

  • Operating Systems: MS Windows, UNIX, MS DOS, VMS, MacOS
  • Programming Languages
    • Object-Oriented: C++, Java, Object Pascal
    • Imperative: C, Basic, Pascal
    • Domain-Specific: SQL, Perl, Matlab
    • Assembly: 80x86, PowerPC, 6502
    • Functional: Haskell, Standard ML, MetaOCaml, Scheme, LISP
    • Logic: Prolog
  • Programming Environments:
    • Visual Studio, JDK, emacs, gcc, gdb, Borland C++/Delphi/JBuilder, hugs, ghc, MetaOCaml
  • Technologies: COM, HTML, ASP, JSP, CGI
HONORS
  • Henry Fan Fellowship, Yale University, 1997-1999
  • President Fellowship (highest honor for academic excellence), Chinese Academy of Sciences, 1997
  • First Class Elite Scholarship, Chinese Academy of Sciences, 1995
  • Baogang Scholarship, University of Science and Technology of China, 1994
  • Meritorious in the Mathematical Contest in Modeling, Consortium for Mathematics and Its Applications (COMAP) of USA, 1994
  • Outstanding in the Mathematical Contest in Modeling, Association of Industrial and Applied Mathematics of China, 1993
INDUSTRIAL EXPERIENCE
  • Microsoft, Redmond, WA, Oct 2002 - Feb 2005

    Software Design Engineer.
  • Microsoft, Redmond, WA, Summer 1998 and summer 1999

  • Software Design Engineer Intern.  Wrote a tool for automating the testing of COM software components.  Designed and implemented part of a diagramming API employed by many Microsoft products, including Windows, SQL Server, and Visual Studio.  Received the highest performance rating in the final review for my work on the diagramming API.
  • Yale University, 1998

  • Added operation statistics for the CODA distributed file system to the Linux kernel.
  • China Software Technology and Services Corp., Beijing, China, 1995-1997

  • Software Engineer (part-time).  Developed a full text Chinese search engine and a Chinese word processor for UNIX.
  • Sunhill Technology Company, Beijing, China, 1996-1997

  • Software Engineer (part-time).  Chief architect for a News Compilation and Manipulation System used by the China News Services.
  • Sun-USTC Institute, Hefei, China, 1994

  • Software Engineer.  Developed a management system for the Nippon Telegraph and Telephone Corporation (NTT).
  • Neijiang Transformer Factory, Sichuan, China, 1991

  • Software Engineer (part-time).  Designed and implemented a tool for designing large electric transformers.
APPENDIX A. PROJECTS

Having written more than 175,000 lines of C/C++ code, I do have a bunch of projects to show you:

  • Programming Languages/Tools/Environments
    • Functional Reactive Programming (FRP) (1998 -- 2002),

    • a high-level, declarative programming language for reactive/real-time/event-driven systems.  Funded by NSF and DARPA.  Examples of applications include interactive animation, computer vision, graphical user interfaces, control systems, and robotics.  My main contributions are in the semantics, design, and implementation of FRP, proving important properties of it, and using it to program soccer-playing robots and the MindRover robot simulation environment.
    • Diagramming API (1999),

    • my summer intern work at Microsoft.  Used in many Microsoft products, including Visual Studio, SQL Server, and Windows.
    • COM Component Testing Tool (1998),

    • another summer intern project at Microsoft.  This tool automates the testing of COM components.
    • SAQ (1995 -- 1997),

    • a specification acquisition, verification and reusing system.   Sponsored by the National Natural Science Foundation of China and the 863 Hi Tech Program, and directed by professor Yunmei DONG (member of the Chinese Academy of Sciences).  The goal was to help the user to obtain the formal specification of a problem and verify it using recursive functions.  SAQ can also be used as a rapid prototyping system.  I designed the specification base management sub-system, and used SAQ to implement a formal differentiation system, a LISP interpreter, and a music notation system.
    • Static Call Browser for COFF Files (1994),

    • developed for the National Semiconductor corporation.  A reverse engineering tool for browsing the static caller-callee graph of COFF (an executable file format for UNIX) files.
    • Tiger Compiler (1997 -- 1998).

    • Tiger is a block-structured imperative language in the flavor of Pascal.  My compiler translates Tiger programs into PowerPC assembler code, which in turn can be translated into executable UNIX programs.
    • PL/0 Compiler (1992),

    • which compiles the programming language PL/0 to byte code on a stack-oriented virtual machine.  I also implemented a simulator for the virtual machine.
  •  Operating Systems
    • CODA Operation Statistics (1998),

    • part of the Linux operating system (since kernel version 2.1.100).   CODA is a distributed file system developed at the Computer Science Department at CMU.  Two friends and I added statistics for CODA operations into the Linux kernel.  The statistics can be read via the /proc file system, and can be used to analyze and optimize CODA.
  • Distributed and Parallel Computing
    • News Compilation and Manipulation System (1996),

    • a groupware developed for the China News Services to coordinate the work-flow.  This system runs on a Windows NT network of 120 PCs and features user authentication, access control, concurrence control, data integrity assurance, and data security.
    • Parallel Algorithm for Industrial CT Image Reconstruction (1992),

    • sponsored by the Torch Hi Tech Program of China.   I developed a new method for reconstructing industrial CT images. The algorithm was implemented in Parallel C on an INMOS Transputer network.  My algorithm is both more efficient and more accurate than traditional methods.
    • See Also: CODA Operation Statistics
  • Image Processing
    • Digital Image Compression and Encryption Using Orthogonal Gold Matrices (1990 -- 1991),

    • a new approach for compressing and encrypting digital images.
    • See Also: CT Image Reconstruction
  •  Chinese Language Computing
    • Auto-SEARCH (1995 -- 1996),

    • a full text Chinese document search engine developed for the China Software Technology and Service Corporation (CS&S).  The system has been successfully used by several projects of CS&S.
    • On-line Hand-written Chinese Character Recognition Card (1993),

    • a PC ISA card that recognizes hand-written Chinese characters.  I designed the hardware interface and a procedure for transforming RAM-resident programs to ROM-resident.  I also wrote a tool for automating such transformations.
    • A Quick Chinese Font Realizing Algorithm (1995),

    • used in Auto-WRITE, a Chinese word processor developed by the CS&S.  I designed the algorithm to realize B-spline Chinese character font and produce many special effects.
  •   Database
  •   Games & Graphics
    • Yale Game Machine (1998),

    • a 3-D interactive casino game built on OpenGL, featuring 3-D animation, lighting and moving view-point.
    • Core War (1991),

    • a computer game of warrior vs. warrior, programmed by two opponents, and placed into a virtual 'ring' to fight to the death, or until time runs out on them.   The idea was from Scientific American.
    • Tetris and Magic Ball (1992),

    • two games in the line of Tetris.
    • See Also: A Quick Chinese Font Realizing Algorithm
  • CAD
    • Transformer Oil Container CAD System (1991),

    • a tool aiding the design of large scale electric transformers.
  • Many more...
    • (I have been a fan of programming since 1985.)
APPENDIX B. PUBLICATIONS
  • Functional Reactive Programming for Real-Time Reactive Systems (ps)

  • Zhanyong Wan, Ph.D. dissertation, Dept of Computer Science, Yale University
  • Event-Driven FRP(dvi.gz, ps.gz)

  • Zhanyong Wan, Walid Taha, and Paul Hudak, LNCS, (c) Springer-Verlag, PADL '02
  • Directions in Functional Programming for Real(-Time) Applications (Invited Paper) (dvi, ps)

  • Walid Taha, Paul Hudak, and Zhanyong Wan, EMSOFT '01
  • Real-Time FRP (dvi, pdf, ps)

  • Zhanyong Wan, Walid Taha, and Paul Hudak, ICFP '01
  • Yale FRP User's Manual (html)

  • John Peterson, Zhanyong Wan, Paul Hudak, and Henrik Nilsson, Yale Department of Computer Science Research Report YALEU/DCS/RR-1221, Jan 2001
  • Functional Reactive Programming from First Principles (ps.gz, dvi.gz, ppt.gz slides, ps.gz slides) (c) 2000 ACM

  • Zhanyong Wan and Paul Hudak, PLDI '00, pp. 242 -- 252.
  • Computer-Aided Emulation (a chapter of the book A Series of Lectures on MCM),

  • Zhanyong Wan, Jiangsu Educational Press, China, 1995
  • Digital Image Compression Using Orthogonal Gold Matrices

  • Zhanyong Wan and Jinkang Zhu, National Conference on Information and Communication Theory, China, 1991