CV
![]() |
Gregory V. Wilson |
Employment
- Sept 2006–present: Assistant Professor, Dept. of Computer Science, University of Toronto.
- Supervising and co-supervising graduate students in Computer Science and Medical Biophysics; developing and teaching graduate and undergraduate courses; developing a proposal for a Professional Master’s degree in Computer Science; editing a collection of essays on software design called Beautiful Code (O’Reilly, 2008); co-authored a CS-1 textbook called Practical Programming (Pragmatic Press, 2009); on the editorial board of Computing in Science and Engineering and Doctor Dobb’s Journal (until 2008); wrote a children’s book called Bottle of Light (Scholastic, 2008) and co-authored a CS-1 textbook using Python called Practical Programming.
- Sept 2004–Jan 2006: independent consultant and software developer.
- Wrote Data Crunching (Pragmatic Press, 2005); led development of a web-based software project management portal while an Adjunct Professor at the University of Toronto; updated the Software Carpentry course for the Python Software Foundation; contributing editor with Doctor Dobb’s Journal.
- Jan 2000–Aug 2004: senior developer, SelectAccess team, Toronto.
- Worked on design, implementation, documentation, and testing of Select Access, a next-generation network security management product, using C++, Java, LDAP, and XML. The product started life as Nevex Software Technologies, was acquired by Baltimore Technologies, and became part of Hewlett-Packard in September 2003. I was also a contributing editor with Doctor Dobb’s Journal, and an Adjunct Professor in Computer Science at the University of Toronto, where I created a new core course on software design and tool-based software development and supervised a series of undergraduate projects.
- June 1998–Dec 1999: independent consultant and software developer.
- Organized and ran the Software Carpentry project for Los Alamos National Laboratory; worked on a next-generation security product called SelectAccess for Nevex Software Technologies; taught software engineering and Python at Los Alamos National Laboratory and elsewhere; editorial work for Doctor Dobb’s Journal; developed tutorials and documentation for a parallel C++ numerical library at LANL; wrote a children’s picture book called Three Sensible Adventures (Annick Press, 1999).
- Aug 1996–June 1998: software developer, Visible Decisions Inc., Toronto.
- Team lead for In3D Studio, an IDE for building 3D data visualization tools using Microsoft Windows and MFC, during three release cycles. Major responsibilities included project management, testing the In3D library, design and implementation of a property interface for In3D’s classes, and construction of a C++ code generator.
- May 1995–Aug 1996: Center for Advanced Studies, IBM Toronto.
- Co-developed ABC++, a C++ library for parallel and distributed computing; edited Parallel Programming Using C++ (MIT Press, 1996); organized fifteen workshops for CASCON’95.
- Sept 1992–April 1995: post-doctoral researcher.
- Worked at the University of Oregon, University of Alberta, Australian National University (Canberra), Vrije Universiteit (Amsterdam), and University of Toronto; taught graduate and undergraduate courses on parallel programming and participated in local research projects while writing Practical Parallel Programming (MIT Press, 1995).
- Sept 1986–Aug 1992: Research Assistant, Edinburgh Parallel Computing Centre, Edinburgh.
- Supported development and parallelization of large scientific applications for the Centre’s industrial sponsors; wrote and maintained GFX graphics package for Meiko Scientific’s parallel computers; supervised graduate and undergraduate theses; initiated and ran the Centre’s Summer Scholarship Programme; produced a quarterly newsletter; developed an entry for the 1989 World Computer Chess Championships while completing Ph.D. part-time.
- March 1985–Aug 1985: software engineer, Design Interpretive Division, Bell-Northern Research, Ottawa.
- Developed a real-time 68000-based interface to a 3D digitizer for use in an office automation system prototype.
- June 1984–March 1985: software engineer, Miller Communication Systems Ltd., Kanata.
- Developed signal processing simulation software.
- 1975–1983: part-time and summer jobs, including an NSERC USRA in 1982.
Education
- Ph.D. in Computer Science, Department of Computer Science, University of Edinburgh, 1993.
- Thesis was Structuring and Supporting Programs on Parallel Computers.
- M.Sc. in Information Technology (Knowledge Based Systems), Department of Artificial Intelligence, University of Edinburgh, 1986.
- Thesis was An Implementation of a Connection Method Theorem Prover for S5 Modal Logic. Shared prize for best thesis in year.
- B.Sc. in Mathematics and Engineering (First Class Honours), Faculty of Applied Science, Queen’s University, Ontario, 1984.
- Top student in Mathematics and Engineering class.
Awards
- Co-winner with Andy Oram of the 2008 Jolt Award in the Best General Book category (for Beautiful Code).
- University of Toronto Computer Science Student Union Teaching Award, 2004.
- Shared Howe Prize (best M.Sc. thesis in Artificial Intelligence), University of Edinburgh, 1986.
- Commonwealth Scholarship, 1985-86.
- University Medal, Queen’s University, 1984 (top student in Mathematics and Engineering class).
- Co-winner of A.B. Lillie Prize, 1984 (top student in Mathematics).
- Queen’s University Provincial Scholarship (4 years).
- Dean’s Scholar, Faculty of Applied Science, Queen’s University (3 years).
- Jeffrey Scholarship, Department of Mathematics, Queen’s University (2 years).
- Dean’s Scholar, Faculty of Arts & Sciences, Queen’s University (1 year).
- British Columbia Provincial Scholarship, 1980 (stanine 9 out of 9 on examinations).
Grants
- MITACS grant, 2009, to run the Software Carpentry course for graduate students from across Canada, and study its impact on their productivity.
- MathWorks grant, 2008–09, to study how scientists use computers in their research.
- Instructional Technology Courseware Development Fund award, 2007.
- Instructional Technology Courseware Development Fund award, 2006 (with Prof. Jennifer Campbell).
- IBM Eclipse grant, 2005 (with Prof. Steve Easterbrook).
- Python Software Foundation grant, Dec 2004–Aug 2006, for updating the Software Carpentry course.
- Instructional Technology Courseware Development Fund awards, 2004 and 2005 (with Prof. Karen Reid).
Books
- Jennifer Campbell, Paul Gries, Jason Montojo, and Greg Wilson: Practical Programming (Pragmatic, 2009).
- Greg Wilson: Bottle of Light (Scholastic, 2008).
- Andy Oram and Greg Wilson (eds): Beautiful Code: Leading Programmers Explain How They Think. O’Reilly Media, 2007; winner of the 2008 Jolt Award for Best General Book.
- Greg Wilson: Data Crunching: Solve Everyday Problems Using Java, Python, and More.. Pragmatic Bookshelf, 2005.
- Gregory V. Wilson and Paul Lu (eds.): Parallel Programming Using C++. MIT Press, 1996.
- Gregory V. Wilson: Practical Parallel Programming. MIT Press, 1995.
- Greg Wilson: Three Sensible Adventures. Annick Press, 1999.
- Arthur Trew and Greg Wilson (eds.): Past, Present, Parallel: A Survey of Available Parallel Computing Systems. Springer-Verlag, London, 1991.
Papers and Articles
- Jordi Cabot and Greg Wilson: “Tools for Teams: A Survey of Web-Based Software Project Management Portals”. Dr. Dobb’s Journal, Oct. 2009.
- Greg Wilson: “How Do Scientists Really Use Computers?” American Scientist, Sep/Oct 2009.
- Jo Erskine Hannay, Hans Petter Langtangen, Carolyn MacLeod, Dietmar Pfahl, Janice Singer, and Greg Wilson: “How Do Scientists Develop and Use Scientific Software?” Proc. Second International Workshop on Software Engineering for Computational Science and Engineering (SECSE’09), May 2009.
- Greg Wilson: “Not on the Shelves”. IEEE Software, May/June 2009.
- Greg Wilson: “Those Who Will Not Learn from History…” Computing in Science and Engineering, May/June 2008.
- David Matthews, Greg Wilson, and Steve Easterbrook: “Configuration Management for Large-Scale Scientific Computing at the Met Office”. Computing in Science and Engineering, Nov/Dec 2008.
- D. Winter, B. Vinegar, H. Nahal, R. Ammar, G. V. Wilson, and N. J. Provart: “An ‘Electronic Fluorescent Pictograph’ Browser for Exploring and Analyzing Large-Scale Biological Data Sets”. PLoS ONE 2(8): e718, 2007.
- Jorge Aranda, Steven Easterbrook, and Gregory V. Wilson: “Requirements in the wild: How small companies do it”, Proc. 15th International Conference on Requirements Engineering (RE’07), Oct. 2007.
- Karen L. Reid and Gregory V. Wilson: “DrProject: a software project management portal to meet educational needs”. Proc. 38th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’07), 2007.
- Greg Wilson: “Where’s the Real Bottleneck in Scientific Computing?” American Scientist, Jan/Feb 2006.
- Paul Gries, Volodymyr Mnih, Jonathan Taylor, Greg Wilson, and Lee Zamparo: “Memview: A Pedagogically-Motivated Visual Debugger”. ASEE/IEEE Frontiers in Education (FIE 2005), 2005.
- Greg Wilson: “Open-source offers solutions for science software education”. Nature, Vol. 436, pg. 600, July 2005.
- Greg Wilson: “Top Ten Data Crunching Tips and Tricks”. O’Reilly OnLamp.com (www.oreillynet.com), June 9, 2005.
- Keir Mierle, Kevin Laven, Sam Roweis, and Greg Wilson: “Mining Students’ CVS Repositories for Performance Indicators”. Proc. International Workshop on Mining Software Repositories (MSR05), 2005.
- Karen L. Reid and Gregory V. Wilson: “Learning by doing: Introducing version control as a way to manage student assignments”. Proc. 36th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’05), 2005.
- Greg Wilson: “Extensible Programming for the 21st Century”. ACM Queue, Dec/Jan 2004-05.
- Michelle Levesque and Greg Wilson: “Open Source, Cold Shoulder”. Software Development, Nov. 2004.
- Gregory V. Wilson: “XML-Based Programming Systems”. Doctor Dobb’s Journal, March 2003.
- Gene Amdur, Andrew Flint, Irving Reid, and Greg Wilson: “SelectAccess: Extensible Network Access Control”. Doctor Dobb’s Journal, Spring 2002.
- Pete Beckman and Greg Wilson: “Open Source Meets Big Iron”. Doctor Dobb’s Journal, June 2000.
- Gregory V. Wilson: “High-Performance Programming for Computational Scientists”. Keynote address in Pollack et al (eds.), Proc. High Performance Computing Systems and Applications ‘99, 1999.
- Peter Webb and Gregory V. Wilson: “Matlab as a Scripting Language”. Doctor Dobb’s Journal, Jan. 1999.
- Greg Wilson: “Is the Open Source Community Setting a Bad Example?”. IEEE Software, Vol. 16, No. 1, Jan. 1999.
- Mauricio de Simone and Gregory V. Wilson: “The Active Expressions Library”. Doctor Dobb’s Journal, Aug. 1998.
- Brent Gorda and Gregory V. Wilson: “Building and Running Online Auctions”. Doctor Dobb’s Journal, Oct. 1997.
- Roel van der Goot, Jonathan Schaeffer, and Gregory V. Wilson: “Safer Tuple Spaces”. COORDINATION 1997, 1997.
- Eshrat Arjomandi, William G. O’Farrell, and Gregory V. Wilson: “Smart Messages: An Object-Oriented Communication Mechanism for Parallel Systems.” Proc. 2nd USENIX Conference on Object-Oriented Technologies and Systems (USENIX’06), 1996.
- Gregory V. Wilson: “What Should Computer Scientists Teach to Physical Scientists and Engineers?” IEEE Computational Science & Engineering, Summer 1996, Fall 1996.
- Gregory V. Wilson: “Using Opportunistic Combining Networks to Reduce Contention in Multicomputers”. Proc. PARLE’92, 1992.
Sole or joint author of over 130 other articles and reviews in academic journals, popular science magazines, newspapers, and trade publications, including Doctor Dobbs Journal, IEEE Software, New Scientist, and The Independent.
Stories
- Greg Wilson: “Controlled Release” On Spec, 19/4, Winter 2007.
- Greg Wilson: “…But With a Whimper” On Spec, 19/3, Fall 2007.
Courses Taught
- Fall 2002–present: CSC494/5 project course, University of Toronto. Supervised over 170 students working alone or in small teams on 60 real-world projects, of which more than half were for clients outside the Computer Science department. In Fall 2009, coordinated 46 students from 14 universities on 8 projects.
- Fall 2009: CSC490 (Computer Science Capstone) and CSC2125 (Topics in Software Engineering), University of Toronto. 24 students in CSC490 and CSC2125 were worked on real-world Government 2.0 projects using data from the City of Toronto and elsewhere.
- Winter 2009: CSC301 (Introduction to Software Engineering), CSC490 (Computer Science Capstone), and CSC2125 (Topics in Software Engineering), University of Toronto. 40 students in CSC490 and CSC2125 were matched with real customers and went through the entire software development lifecycle on 22 substantial projects.
- Fall 2008: CSC301 (Introduction to Software Engineering), University of Toronto.
- Winter 2008: CSC301 (Introduction to Software Engineering), CSC490 (Computer Science Capstone), and CSC2125 (Topics in Software Engineering), University of Toronto. 45 students in CSC490 and CSC2125 were matched with real customers and went through the entire software development lifecycle on 25 substantial projects.
- Fall 2007: CSC301 (Introduction to Software Engineering), University of Toronto.
- Winter 2007: CSC407 (Software Architecture) and CSC2125 (Topics in Software Engineering), University of Toronto. The latter is an academic version of the Software Carpentry course, which introduces scientists and engineers to basic software development skills.
- Fall 2006:CSC407 (Software Architecture), University of Toronto.
- Summer 2006: CSC207 (Software Design) and CSC407 (Software Architecture), University of Toronto.
- Fall 2005: CSC2125 (Topics in Software Engineering), University of Toronto. This is an academic version of the Software Carpentry course, which introduces scientists and engineers to basic software development skills.
- Summer 2005: CSC309 (Web Programming), University of Toronto.
- Winter 2004: non-credit course in software development to science and engineering graduate students at the University of Toronto.
- Summer and Fall 2003: CSC207 (Software Design), University of Toronto.
- Summer 1998–Spring 2004: intensive short courses on software engineering and Python at Los Alamos National Laboratory, the Space Telescope Science Institute, and the Bettis Atomic Power Laboratory.
Other Achievements
- Supervised MSc theses of Samira Abdi Ashtiani, Jeremy Handcock, and Carolyn Macleod at the University of Toronto (all completed January 2009). Currently supervising five other MSc students.
- Mentor, Google Summer of Code program, 2005-2008 (9 students); organized series of articles on successful projects for Doctor Dobbs Journal in 2005.
- Supervised 9 M.Sc., 4 undergraduate, and 6 Afstudeer theses at the University of Edinburgh and the Vrije Universiteit Amsterdam.
- Recruited, trained, and supervised 60 students while co-ordinator of Edinburgh Parallel Computing Centre’s Summer Scholarship Programme.
- Ultimate frisbee, 1991-present (member of Toronto Ultimate Club “C” Division championship team 2002).
- Competitor in 6th World Computer Chess Championship, Edmonton, 1989 (one win, four losses).
- Competitive judo at Queen’s University, Takahashi Dojo (Ottawa), and the University of Edinburgh.
- Member, Queen’s University Bands, 1980-83 (lead stick 1982).
- Past or current member/volunteer with the Canadian National Institute for the Blind, the Sierra Club, Amnesty International, OXFAM, and the Bruce Trail Assocation.
- Bronze Cross, RCLSS.
References available on request.
