Fuller Laboratories, B-20
George T. Heineman
Computer programming makes it possible to solve problems that otherwise could never be attempted. You can create worlds that could never be possible and help make this world a better place. Most of my professional and personal accomplishments were possible directly because of my understanding and practice of computer programming. For me, programming led me to appreciate fundamental concepts in computer science and directed me to major in CS. I've always been passionate about the possibilities of computer programming; this forms the basis for all of my teaching.
At WPI, I teach students about software engineering, which sets the standard of professional excellence and demonstrates how students can be "more than just programmers." These projects all revolve around a software development project whose complexity forces students to adopt best practices and grow professionally. In both my undergraduate and graduate classes, I am able to challenge students to complete tasks expected of software professionals in industry, and this lets me train them for whatever jobs await them.
- Software Engineering
- Component-Based Software Engineering
- Software Architecture
- Modularity and Composition
- BS, Dartmouth College, 1985
- MS, Columbia University, 1990
- PhD, Columbia University, 1996
- G. T. Heineman, G. Pollice, and S. Selkow, “Algorithms in a Nutshell”, O’Reilly Media Inc., October 2008.
- G. T. Heineman and B. Councill, Eds., Component Based Software Engineering: Putting the Pieces Together, Addison- Wesley Longman, Boston, MA, June 2001.
- G. T. Heineman, “Unit testing of Software Components with inter-component dependencies”, Proceedings, 12th International Symposium on Component-Based Software Engineering (CBSE), East Stroudsburg, Pennsylvania, Jun. 2009
- Component-based Software Engineering
- CS 1004. INTRODUCTION TO PROGRAMMING FOR NON-MAJORS
- CS 110X. INTRODUCTION TO PROGRAMMING FOR NON-MAJORS
- CS 3733. SOFTWARE ENGINEERING
- CS 509. DESIGN OF SOFTWARE SYSTEMS
- CS 557. SOFTWARE SECURITY DESIGN AND ANALYSIS
- CS 562. ADVANCED TOPICS IN SOFTWARE ENGINEERING
- TSC 314. PRACTICAL DEBUGGING OF SYSTEMS UNDER TEST
- TSC 321. DATA COLLECTION, ANALYSIS METHODOLOGIES AND TOOLS