Assessment Item J1 – Modeling and Design – CS381 Skill being assessed: Given a language recognition problem and a computational model, can you design a solution to the problem using the given model? Program outcome to which this skill is mapped: (j) An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices. Performance Assessment Abstract: Given one (or several similar) language recognition problem(s), design and implement a solution to this problem using a variety of computational models. If the given language is regular, possible models include: deterministic finite-state machines, non-deterministic finite-state machines, regular expressions, regular grammars, etc. If the given language is context-free, possible models include: deterministic pushdown automata, non-deterministic pushdown automata, context-free grammars, etc. If the given language is recursively enumerable, possible models include: any of the variations of Turing machines (deterministic, non-deterministic, one or more tapes, semi-infinite or two-way infinite tapes, building blocks allowed or not, etc.), pushdown automata with 2 or more stacks, Post machines, context-sensitive or Type 0 grammars, etc. By correctly solving the same or related problems with different computational models, students will demonstrate in a practical way their level of understanding of some of the tradeoffs that exist among ease of programming, size and complexity of the solution, and efficiency of the solution. These tradeoffs will depend on the selection of a data structure (e.g., stack versus queue), the access method (e.g., sequential versus random access). Rubric for Evaluation Criteria Design using the first model Exemplary The design identifies every important step and the implementation is completely correct with no redundant components. Design using the second model The design identifies every important step and the implementation is completely correct with no redundant components. Design using the third model The design identifies every important step and the implementation is completely correct with no redundant components. Satisfactory The design might miss one important step or lack some details, or the implementation might contain a small number of redundant components, but taken together, they convey a correct solution. The design might miss one important step or lack some details, or the implementation might contain a small number of redundant components, but taken together, they convey a correct solution. The design might miss one important step or lack some details, or the implementation might contain a small number of redundant components, but taken together, they convey a correct solution. Marginal The solution is mostly correct but it misclassifies or crashes on a small number of strings (e.g., the empty string) or the description of the design is too vague or succinct. Deficient The solution misclassifies or crashes on a large number of strings or it implements the wrong algorithm altogether. The solution is mostly correct but it misclassifies or crashes on a small number of strings (e.g., the empty string) or the description of the design is too vague or succinct. The solution misclassifies or crashes on a large number of strings or it implements the wrong algorithm altogether. The solution is mostly correct but it misclassifies or crashes on a small number of strings (e.g., the empty string) or the description of the design is too vague or succinct. The solution misclassifies or crashes on a large number of strings or it implements the wrong algorithm altogether.