Education
- Ph.D., Computer Science, University of California San
Diego, March 1999
Title: The Design and Implementation of Practical and Task-Oriented Whole-Program Analysis Tools
Advisor: William G. Griswold - M.S., Computer Science, University of California San Diego, December 1994
- B.S., Computer Science, University of California San Diego, June 1991
Professional Experience
- Associate Department Chair
Department of Computer Engineering, Santa Clara University
September 2007 – presentResponsibilities include oversight of undergraduate program and events such as open house weekend, preview days, and orientation, developing program for introducing freshmen to computing discipline, planning and coordination of freshmen retention events, and scheduling of undergraduate classes.
- Associate Professor
Department of Computer Engineering, Santa Clara University
September 2007 – presentActivities include teaching undergraduate and graduate courses, curriculum development, research activities, departmental and university service, supervision of senior design projects and theses, advising and mentoring of undergraduate and graduate students, and directing graduate program in software engineering.
- Acting Department Chair
Department of Computer Engineering, Santa Clara University
June 2007 – September 2007Duties included advising incoming freshman and transfer students, assisting with student registration, advising incoming graduate students, and reviewing graduate admission applications, overseeing adjunct faculty, reviewing fiscal year-end closing.
- Assistant Professor
Department of Computer Engineering, Santa Clara University
September 2000 – August 2007Activities included teaching undergraduate and graduate courses, curriculum development, research activities, departmental and university service, supervision of senior design projects and theses, advising and mentoring of undergraduate and graduate students, and directing graduate program in software engineering.
- Assistant Professor
Department of Mathematics and Computer Science, Clark University
August 1999 – August 2000Activities included teaching computer science classes, development of new courses, mentoring students, research activities, and planning of new computer lab.
- System and Software Analyst
Department of Computer Science & Engineering, University of California San Diego
October 1995 – July 1999Duties included implementing and designing security policies, upgrading and maintaining network, installing new hardware and software, and assisting faculty and graduate students.
- Research Assistant
Department of Computer Science & Engineering, University of California San Diego
September 1993 – September 1995Responsibilities included developing tools and methodologies for reverse engineering the Comprehensive Health Care System, and working closely with software engineers at Science Applications International Corporation to develop and present new techniques to managers and programmers.
- Staff Programmer
Digital Image Processing Laboratory, Scripps Institution of Oceanography
June 1989 – June 1993Activities included assisting students in system usage, project design, and implementation, and the specification and implementation of a library of routines for digital image processing and rendering. Duties included installation of new hardware and software, system and network administration, and security.
- Teaching Assistant
Department of Mathematics, University of California San Diego
Fall 1988 and Fall 1989Teaching assistant for undergraduate calculus class. Responsibilities included preparing and presenting weekly discussion sections for students.
Research Interests
- General interests: software engineering, program understanding, software tool design, system reengineering, compilers, programming languages, data-flow analysis, and data structures.
- Specific interests: scalable static analysis techniques and tools, particularly the development of ad hoc and approximate algorithms for analyzing C programs.
Publications
Refereed Journal Articles
- D. C. Atkinson, D. C. Weeks, and J. Noll. “Tool Support for Iterative Software Process Modeling.” Information and Software Technology 49,5 (2007):493–514.
- D. C. Atkinson and W. G. Griswold. “Effective Pattern Matching of Source Code Using Abstract Syntax Patterns.” Software – Practice and Experience 36,4 (2006):413–447.
- M. Mock, D. C. Atkinson, C. Chambers, and S. J. Eggers. “Program Slicing with Dynamic Points-To Sets.” IEEE Transactions on Software Engineering 31,8 (2005):657–678.
- W. G. Griswold and D. C. Atkinson. “Managing the Design Trade-Offs for a Program Understanding and Transformation Tool.” Journal of Systems and Software 30,1–2 (1995):99–116.
Refereed Conference and Workshop Papers
- D. C. Atkinson and T. King. “Lightweight Detection of Program Refactorings.” Proceedings of the 12th Asia-Pacific Software Engineering Conference, Taipei, Taiwan, December 2005, pp. 663–670.
- D. C. Atkinson. “Accurate Call Graph Extraction of Programs with Function Pointers Using Type Signatures.” Proceedings of the 11th Asia-Pacific Software Engineering Conference, Busan, Korea, December 2004, pp. 326–335.
- D. C. Atkinson, D. C. Weeks, and J. Noll. “The Design of Evolutionary Process Modeling Languages.” Proceedings of the 11th Asia-Pacific Software Engineering Conference, Busan, Korea, December 2004, pp. 73–82.
- D. C. Atkinson and J. Noll. “Automated Validation and Verification of Process Models.” Proceedings of the 7th IASTED International Conference on Software Engineering and Applications, Marina Del Rey, CA, November 2003, pp. 587–592.
- J. Noll and D. C. Atkinson. “Comparing Extreme Programming to Traditional Development for Student Projects: A Case Study.” Proceedings of the 4th International Conference on Extreme Programming and Agile Processes in Software Engineering, Genoa, Italy, May 2003, pp. 372–374.
- M. Mock, D. C. Atkinson, C. Chambers, and S. J. Eggers. “Improving Program Slicing Using Dynamic Points-To Data.” Proceedings of the 10th ACM Symposium on the Foundations of Software Engineering, Charleston, SC, November 2002, pp. 71–80.
- D. C. Atkinson. “Assisting Program Analyses with Library Synopses.” Proceedings of the 6th IASTED International Conference on Software Engineering and Applications, Cambridge, MA, November 2002, pp. 490–495.
- D. C. Atkinson. “Call Graph Extraction in the Presence of Function Pointers.” Proceedings of the 2002 International Conference on Software Engineering Research and Practice, Las Vegas, NV, June 2002, pp. 579–584.
- D. C. Atkinson and W. G. Griswold. “Implementation Techniques for Efficient Data-Flow Analysis of Large Programs.” Proceedings of the 2001 International Conference on Software Maintenance, Florence, Italy, November 2001, pp. 52–61.
- D. C. Atkinson and W. G. Griswold. “Effective Whole-Program Analysis in the Presence of Pointers.” Proceedings of the 6th ACM International Symposium on the Foundations of Software Engineering, Lake Buena Vista, FL, November 1998, pp. 46–55.
- D. C. Atkinson and W. G. Griswold. “The Design of Whole-Program Analysis Tools.” Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, March 1996, pp. 16–27.
- W. G. Griswold, D. C. Atkinson, and C. McCurdy. “Fast, Flexible Syntactic Pattern Matching and Processing.” Proceedings of the 4th Workshop on Program Comprehension, Berlin, Germany, March 1996, pp. 144–153.
- W. G. Griswold and D. C. Atkinson. “A Syntax-Directed Tool for Program Understanding and Transformation.” Proceedings of the 4th Systems Reengineering Technology Workshop, Monterey, CA, February 1994, pp. 274–282.
Publications Under Review
- T. King and D. C. Atkinson. “Finding Refactorings Using Lightweight Code Analysis.” Journal of Systems and Software (2006). In revision.
Technical Reports
- B. Pelton and D. C. Atkinson. “Flexible Generation and Lightweight View-Dependent Rendering of Terrain.” Technical Report COEN-2003-01-22, Santa Clara University, Department of Computer Engineering, March 2003.
- L. Bent, D. C. Atkinson, and W. G. Griswold. “A Comparative Study of Two Whole Program Slicers for C.” Technical Report CS2001-0668, University of California San Diego, Department of Computer Science & Engineering, April 2001.
- D. C. Atkinson. “The Design and Implementation of Practical and Task-Oriented Whole-Program Analysis Tools.” Technical Report CS99-618, University of California San Diego, Department of Computer Science & Engineering, April 1999.
- J. I. Gobat and D. C. Atkinson. “The FElt System: User's Guide and Reference Manual.” Technical Report CS94-376, University of California San Diego, Department of Computer Science & Engineering, 1994.
Software Systems Developed
- ICARIA/SPRITE: a suite of source code analysis tools for the C programming language, including a whole-program slicing tool for helping isolate faults in programs and a call-graph extractor for showing the relationships between program components, developed from 1998–present, and publicly available for download from http://www.cse.scu.edu/~atkinson.
- PONDER/TAWK: a suite of libraries and documentation comprising a highly efficient, programmable, retargetable, program understanding toolkit, including a syntactic source code pattern matching engine for precisely locating code fragments, developed from 1993–present, and publicly available for download from http://www.cse.scu.edu/~atkinson.
- FElt: an easy-to-use, interactive, open source system for finite element analysis, designed primarily for teaching purposes and for solving structural engineering problems, developed from 1993–1995, and publicly available for download from http://felt.sourceforge.net.
Research Grants and Gifts
- “Guided Program Refactoring: Assessing and Improving the Quality of Existing Source Code.” IBM faculty research grant, Santa Clara University, January 2005. $3,150.
- “Automated Extraction of Models of Library Code.” Paul Locatelli, S. J. junior faculty grant, Santa Clara University, June 2004. $3,150.
- School of Engineering research development grant, February 2004. $20,000.
- “Automated Validation and Verification of Software Process Models.” IBM faculty research grant, Santa Clara University, March 2003. $4,725.
- “Analyzing Programs Based on Their Dynamic Execution.” School of Engineering faculty research grant, Santa Clara University, April 2002. $8,760.
- “Accurate Modeling of Program Libraries.” IBM faculty research grant, Santa Clara University, March 2002. $3,255.
- General Dynamics gift for Distinguished Lecturer Series, 2001 – 2002. $4,500.
Teaching Experience
Courses Taught
Lower Division
- Abstract Data Types and Data Structures: Winter 2004, Spring 2004, Winter 2005, Spring 2005, Spring 2006, Spring 2007
- Assembly Language and Computer Organization: Spring 2000
- Introduction to Programming: Winter 2001
Upper Division
- Computer Architecture: Fall 1999
- Formal Language Theory and Compiler Construction: Winter 2002, Winter 2003, Winter 2005, Fall 2005, Winter 2006, Winter 2007
- Design and Implementation of Programming Languages: Spring 2002, Winter 2004, Fall 2006
- Senior Design: Fall 2000 – present
- Software Architecture and Design: Spring 2000
- Software Engineering: Fall 2000, Winter 2001, Fall 2001, Fall 2002, Fall 2003, Fall 2007
- Software Tools Design: Spring 2001
Graduate
- Compilers: Winter 2002, Fall 2002, Spring 2005
- Component-Based Software Engineering: Fall 2001
- Graduate Engineering Seminar: Fall 2000 – Spring 2003
- Introduction to Probability: Winter 2006
- Linear Algebra: Winter 2007, Spring 2007
- Software Engineering: Summer 2004, Summer 2005, Fall 2006, Fall 2007
Curriculum Development
Undergraduate
- Introductory programming sequence: changed programming language from Java to C to better prepare students for upper-division classes, most of which are system-based and develop programs in the C language, and expanded the sequence from two courses to three courses to better accommodate students without previous programming experience.
- Compiler construction: developed a project-based course using the C language and projects delivered in incremental phases, allowing students to build on provided solutions to improve student retention; this course was added as a required course in 2004.
- Software engineering: added team project component; teams are assigned randomly and must work together to build a single product, thereby encouraging intra-team and inter-team communication and cooperation.
- Senior design guidelines: developed a comprehensive guide to senior capstone projects, specifying assessment criteria, grading policies and penalties, timelines, and sets of deliverables.
Graduate
- Compilers: developed a new project-based course on compiler technology, with an emphasis on data-flow analysis and optimization.
- Distinguished lecturer series: instituted and coordinated a lecture series inviting internationally well-known speakers from research and academia.
- M.S. program in software engineering: restructured course requirements to allow students to pursue concentrations in system engineering, business, or law.
Theses Supervised
Undergraduate
- C. Hoefer and J. Mastroieni. “Stock Market Simulation Model.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2007. Won Best in Session and Best in Conference awards at Senior Design Conference.
- D. Amin. “C2V: Software Utility for Hardware Synthesis.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2005.
- D. Raimondi, S. Roberts, A. Stewart, and L. Yapdiango. “Local Area Network Exchange.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2004. Won Best in Session award at Senior Design Conference.
- T. King. “Design Critic.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2004.
- A. Crouch. “LAWBase.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2004.
- A. Barrena. “A Configurable Code Editor.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2004.
- C. Tracy. “DOCS++: A Management Tool for Networked Heterogeneous UNIX Workstations.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2003. Won Best in Session award at Senior Design Conference.
- B. Pelton. “Procedural Generation and Efficient Rendering of Terrain.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2003. Won Technical Excellence award.
- C. Egan, C. Mendes, and M. Bidwal. “SCU PICS: Planned and Integrated Course Scheduler.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2002.
- O. Bravo and J. Magpayo. “Redondo Pier Lodge: Online Property Management/Reservation System.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2002. Won Best in Session award at Senior Design Conference.
- P. Kozanian, N. Tran, and V. Balian. “Integrated Intelligent Image Processing.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2002.
- P. Baytler and S. Moore. “IREG: An Internet Class Registration System.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2002.
- E. Cheng, H. To, V. Tan, and Y. R. A. Yong. “Business Integration Software for Small to Mid-Sized Businesses.” Senior thesis, Santa Clara University, Department of Computer Engineering, June 2001. Won Best in Session award at Senior Design Conference.
Graduate
- T. J. H. King. “Finding Refactorings Using Lightweight Code Analysis.” Master's thesis, Santa Clara University, Department of Computer Engineering, December 2005.
- D. C. Weeks. “Process Modeling Language Design and Model Verification.” Master's thesis, Santa Clara University, Department of Computer Engineering, June 2004.
Professional Activities and Service
Invited Talks and Presentations
External
- “Using Dynamic Points-To Data in Static Analysis Tools,” Dagstuhl Seminar 03491: Understanding Program Dynamics, Wadern, Germany, Dec. 2003.
Internal
- “Lightweight Detection of Program Refactorings,” Computer Engineering Undergraduate Summer Research Group, 2005.
- “Assisting Program Analyses with Library Synopses,” Graduate Engineering Seminar Series, 2002.
- “Analyzing Programs Based on Their Dynamic Execution,” School of Engineering Summer Research Seminar, 2002.
- “Improving the Efficiency of Program Analysis Tools and Compilers,” Graduate Engineering Seminar Series, 2001.
- “Data-Flow Tools: What They Are, How to Make Them Fast, and Why You Should Care,” Graduate Engineering Seminar Series, 2001.
Conference Activities
- Program committee member, 10th IASTED International Conference on Software Engineering and Applications, Dallas, TX, Nov. 2006.
- Program committee member, 9th IASTED International Conference on Software Engineering and Applications, Phoenix, AZ, Nov. 2005.
- Program committee member, 8th IASTED International Conference on Software Engineering and Applications, Cambridge, MA, Nov. 2004.
- Session chair, 11th Asia-Pacific Software Engineering Conference, Busan, Korea, Dec. 2004.
- Session chair, 7th IASTED International Conference on Software Engineering and Applications, Marina Del Rey, CA, Nov. 2003.
Manuscript Reviewing
Journals
- ACM Transactions on Programming Languages and Systems (2004)
- ACM Transactions on Software Engineering and Methodology (2002, 2004, 2007)
- IEEE Transactions on Software Engineering (2003)
- Information and Software Technology (2007)
- Software – Practice and Experience (2000)
- Software Quality Journal (2004)
Conference Proceedings
- 10th IASTED International Conference on Software Engineering and Applications (2006)
- 9th IASTED International Conference on Software Engineering and Applications (2005)
- 8th IASTED International Conference on Software Engineering and Applications (2004)
- 7th IASTED International Conference on Software Engineering and Applications (2003)
Departmental and University Service
- Associate Department Chair (2007 – present)
- Acting Department Chair (Summer 2007)
- Chair, search committee for academic-year lecturer (2005)
- Department representative, Faculty Senate Council (2005 – present)
- Coordinator, Graduate Engineering seminar series (2000 – 2003)
- Founder and coordinator, Distinguished Lecturer Series in Computer Engineering (2000 – 2003)
- Coordinator, M.S. program in software engineering (2000 – present)
- Advisor, Upsilon Pi Epsilon honor society (2007 – present)
- Co-director, Undergraduate Summer Research Group (2002 – 2005)
- Member, graduate admissions committee (1995)
Community Service
- “A Sip of Java,” Summer Engineering Seminars, School of Engineering, Santa Clara University, August 2002 and August 2003. This was a presentation given to high school students interested in engineering who stay on campus for one week. The students apply to the program and are selected from across the western United States.
- “A Sip of Java,” Academic Enrichment Seminars, School of Engineering, Santa Clara University, April 2001 and April 2002. This was a presentation given to high school students interested in engineering who participate in a four weekend seminar series. The students apply to the program and are selected from local schools.
Honors and Achievements
- Eminent Engineer, Order of the Engineer, Santa Clara University (2007)
- David Packard Fellow, School of Engineering, Santa Clara University (2000 – 2002)
- Muir College Caledonian Honor Society, University of California San Diego (1991)
- Phi Beta Kappa Honor Society (1990)
Professional Society Memberships
- IEEE and IEEE Computer Society
- Association for Computing Machinery
- ACM Special Interest Groups on Software Engineering (SIGSOFT) and Programming Languages (SIGPLAN)
- Order of the Engineer