Common Requirements for Graduate Competency
in Professional Masters Programs
in the School of Computer Science at Carnegie Mellon

-DRAFT-

Professional masters programs for which the School of Computer Science grants a professional Masters degree will expect their graduates to be competent in the following areas. For interdisciplinary programs housed chiefly in another college the list may be adapted somewhat. We identify six essential competency areas. For each we list several examples of that kind of competency as it appears in various of the interdisciplinary areas represented in our professional programs. We expect students to be fluent (i.e., able to generate results) in at least one area on the list, and we expect them to be able to read/discuss prepared content in two others. The lists are representative, not exclusionary -- they maybe extended when appropriate.

The specific manner in which competency is demonstrated may vary from one program to another. Each program already requires expects its students to be familiar with some of these topics before they're admitted. Each program already expects its students to achieve a very high degree of competency in some of these topics before graduation. The purpose of this common requirement is to set a baseline for what we can expect each student to know when he or she graduates. The competency may therefore be demonstrated by prerequisite, by a specific course, by faculty certification based on project performance, or in other ways the faculty determines to be sufficient.

Essential Competency Areas

  • Analytical Competency
  • Requirements Competency
  • Design Competency
  • Implementation Competency
  • Correctness Competency
  • Extra-technical Competency
  • Analytical Competency

    The hallmarks of this area are the need for rigor, analysis, and symbolic computation. This requires facility with formal, usually mathematical, systems and with the corresponding validation or proof techniques. Topics include
  • Mathematical proof (logic, induction, O(n) complexity, software specification)
  • Statistics for empirical data analysis
  • Formal language theory (type theory, semantics)
  • Computational cognitive modeling (GOMS, Soar, Act-R)
  • Linguistic modeling (grammars, Markov models)
  • Stochastic modeling
  • Control theoretic analysis
  • Optimization
  • Computational geometry
  • Calculus of variations as applied to mechanics
  • Contextual inquiry (analysis of)
  • Work-flow modeling
  • Sequence modeling
  • Cultural-influence modeling
  • Artifact modeling
  • Physical modeling
  • Requirements Competency

    The hallmark of this area is the ability to figure out what product you should be building. This requires the ability to elicit requirements, analyze their consistency, validate them, and capture them in specifications and requirements documents. Topics include
  • Domain analysis
  • Use cases/scenarios
  • Domain-specific validation strategies
  • Problem frames
  • Corpus analysis for natural language
  • Delphi studies
  • Tradeoff analysis
  • QFD
  • Contextual inquiry and design
  • Robot decomposition techniques
  • Sensor capabilities and limitations
  • Control capabilities and limitations
  • Contextual Inquiry interviewing
  • Questionnaire design
  • Design Competency

    The hallmark of this area is the ability to design a system that is bigger than you can keep track of in your head and that will be modified over time by other people. It requires the ability to resolve conflicting constraints appropriately and to address needs in the context of resource limitations. Topics include
  • Data flow analysis
  • Control flow analysis
  • Module decomposition
  • Buy vs. build decisions
  • Architectural issues
  • Contextual inquiry and design
  • Task analysis
  • Robot architecture building
  • Contextual Design from work models
  • Implementation Competency

    The hallmark of this area is the ability to create systems of practical scale and scope that will be used by real people. It entails fluency in abstraction, algorithms, use of existing program libraries or generation tools, creation of usable interfaces. It requires understanding of the underlying system structures: user interfaces, control, data, and communication. Topics include creation and modification of:
  • Java/C++/Ada/etc. programs of thousands of lines involving multiple components
  • Databases with tables, queries, forms, reports, and embedded code
  • External SQL
  • Specific user interfaces with interface development tools
  • Prototypes of applications in Visual Basic or similar environment
  • Rich grammars for natural language
  • Robot navigation systems
  • Multi-robot cooperative systems
  • Interleaving planning and execution
  • Correctness/Evaluation Competency

    The hallmark of this area is the ability to determine whether a product satisfies (or a product in development will satisfy) the needs of its user, purchaser, or sponsor. It entails competency in an appropriate portfolio of techniques, the ability to establish correctness/acceptance/evaluation criteria appropriate to the product at hand, and the ability to select from among those techniques the ones that best match the criteria. Techniques include
  • Formal verification
  • Testing
  • Simulation
  • Performance evaluation
  • Reviews
  • Precision and recall for IR
  • Accuracy and coverage (for machine translation and speech understanding)
  • Productivity enhancement
  • Usability testing
  • Usability inspection methods (e.g. heuristic evaluation, cognitive walkthrough)
  • Experimental design
  • Extra-technical Competency

    The hallmark of this area is the ability to work effectively within an organization. It requires competency in written and verbal communication sufficient to work in teams, presentation planning, team organization, project planning, and understanding the way a product fits into business processes.

    For further information, contact Mary Shaw, Associate Dean for Professional Programs.