Academic Interests

The standard manner of communicating interests in an academic area is to use the professional organizations classifications of topics.In our case, it is the classification of the Computing Reviews published by the ACM.

Like most global thinkers, I have many interests, but this is because I am primarily interseted in computational science. This is a vertical topic, meaning that successful implementations of computational science software crosses many of the narrow topics. I have two primary interests:
  1. D.2.2, Programming Workbenches. All the other elements (other than education) listed below are subsumed by workbenches.
  2. K.3.2. Education
Why on Earth would the two go together. It's actually quite simple: learning and problem-solving are two sides of the same coin. What we learn about problem-solving should show up in our educational system, and vice versa.

Interests using CR Classification

          o D.1 PROGRAMMING TECHNIQUES (E)
                + D.1.1 Applicative (Functional) Programming
                + D.1.2 Automatic Programming (I.2.2)
                + D.1.3 Concurrent Programming
                      # Distributed programming
                      # Parallel programming
          o D.2 SOFTWARE ENGINEERING (K.6.3)
                + D.2.2 Design Tools and Techniques
                       # Programmer workbench [**]
                + D.2.4 Software/Program Verification (F.3.1)
        Verification and validation of computational models
                + D.2.6 Programming Environments
                      # Graphical environments NEW!
                      # Integrated environments NEW!
                      # Interactive environments
                      # Programmer workbench NEW!
                      # Patterns (e.g., client/server, pipeline, blackboard) NEW!
         o D.3 PROGRAMMING LANGUAGES
                   + D.3.1 Formal Definitions and Theory (D.2.1, F.3.1, F.3.2, F.4.2, F.4.3)
                      # Semantics
                      # Syntax
                      # Very high-level languages
  * F. Theory of Computation
          o F.3 LOGICS AND MEANINGS OF PROGRAMS
                + F.3.0 General
                + F.3.1 Specifying and Verifying and Reasoning about Programs (D.2.1, D.2.4, D.3.1, E.1)
                      # Assertions
                      # Invariants
                      # Logics of programs
                      # Mechanical verification
                      # Pre- and post-conditions
                      # Specification techniques
                + F.3.2 Semantics of Programming Languages (D.3.1)
                      # Algebraic approaches to semantics
                      # Denotational semantics
                      # Operational semantics
                      # Partial evaluation NEW!
                      # Process models NEW!
                      # Program analysis NEW!
          o F.4 MATHEMATICAL LOGIC AND FORMAL LANGUAGES
    * G. Mathematics of Computing
          o G.0 GENERAL
          o G.1 NUMERICAL ANALYSIS
                + G.1.10 Applications NEW!
                + G.1.m Miscellaneous
          

          o G.4 MATHEMATICAL SOFTWARE
                + Algorithm design and analysis
                + Certification and testing
                + Documentation NEW!
                + Efficiency
                + Parallel and vector implementations NEW!
                + Portability [**]
                + Reliability and robustness
                + User interfaces NEW!
                + Verification [**]
 [**]
    * H. Information Systems
          o H.0 GENERAL
          o H.1 MODELS AND PRINCIPLES
                + H.1.0 General
                + H.1.1 Systems and Information Theory (E.4)
                      # General systems theory
                      # Information theory
                      # Value of information
          o H.5 INFORMATION INTERFACES AND PRESENTATION (e.g., HCI) (I.7)
                      # Prototyping NEW!
                      # User-centered design NEW!
    * I. Computing Methodologies
          o I.0 GENERAL
          o I.1 SYMBOLIC AND ALGEBRAIC MANIPULATION
                + I.1.0 General
                + I.1.1 Expressions and Their Representation (E.1, E.2)
                      # Representations (general and polynomial)
                      # Simplification of expressions
                + I.1.2 Algorithms (F.2.1, F.2.2)
                      # Algebraic algorithms
                      # Analysis of algorithms
                      # Nonalgebraic algorithms
                + I.1.3 Languages and Systems (D.3.2, D.3.3, F.2.2)
                      # Evaluation strategies
                      # Nonprocedural languages [**]
                      # Special-purpose algebraic systems
                      # Special-purpose hardware [**]
                      # Substitution mechanisms [**]
                + I.1.4 Applications
                + I.1.m Miscellaneous
          o I.2 ARTIFICIAL INTELLIGENCE
                + I.2.0 General
                      # Cognitive simulation
                      # Philosophical foundations
                + I.2.1 Applications and Expert Systems (H.4, J)
                      # Medicine and science
                + I.2.2 Automatic Programming (D.1.2, F.3.1, F.4.1)
                      # Program transformation
                      # Program verification
                + I.2.3 Deduction and Theorem Proving (F.4.1)
                      # Metatheory [**]
                      # Uncertainty, ``fuzzy,'' and probabilistic reasoning
                      # Semantic networks
                      # Temporal logic NEW!
             o I.6 SIMULATION AND MODELING (G.3)
                + I.6.0 General
                + I.6.1 Simulation Theory
                      # Model classification
                      # Systems theory
                      # Types of simulation (continuous and discrete) [*]
                + I.6.2 Simulation Languages
                + I.6.3 Applications
                + I.6.4 Model Validation and Analysis
                + I.6.5 Model Development
                      # Modeling methodologies
                + I.6.6 Simulation Output Analysis
                + I.6.7 Simulation Support Systems
                      # Environments
                + I.6.8 Types of Simulation
                      # Animation
                      # Combined
                      # Continuous
                      # Discrete event
                      # Distributed
                      # Gaming
                      # Monte Carlo
                      # Parallel
                      # Visual
                + I.6.m Miscellaneous
* J. Computer Applications
          o J.0 GENERAL
                    o J.2 PHYSICAL SCIENCES AND ENGINEERING
    * K. Computing Milieux
                + K.3.2 Computer and Information Science Education
                      # Computer science education
                      # Curriculum
                      # Self-assessment