Assessment Plan for COP 4020
This page provides an assessment plan for COP 4020 at the University of Central Florida as taught by Gary T. Leavens. The plan maps the course's learning outcomes to general types of questions and problems for in-class quizzes, homeworks, and exams. Since all units of the course have roughly the same impact on the course's learning outcomes, this represents planning for how to achieve the learning outcomes in general. That is, this document is something of an abstraction from the individual quizzes, homeworks, and exams.
New ideas for assessment of any objectives are very welcome!
The normal assessment threshold (for me to consider that students have adequately learned the material) is 75%. For programming the answer must be a correct solution 75% of the time.
Per Outcome Plans
Outcome [Concepts]
Summative (Exams)
Explain how a given program (shown) executes using appropriate technical terms. (The program or the question will make use of concept X.)
Give an example program (or code fragment) that illustrates concept X. Explain how the fragment executes, and how its execution illustrates the concept.
Explain how concept X is found in (or affects, or is realized in) C, C++, or Java (also [MapToLangauges]).
Compare and contrast concepts X and Y. Give an example that illustrates the difference (in its execution).
How does concept X differ in Oz vs. C, C++, or Java? Explain with examples (also [MapToLangauges]).
Use of concept X in the description of a problem, noting that ``you are supposed to understand concept X.''
Formative (In-Class Quizzes, Homeworks)
All of the above, and the following.
Apply concept X to some new language or situation. What would the consequences be?
Outcome [UseModels]
Summative (Exams)
Write a program in Oz to correctly solve a programming problem in programming model X. Run your code using the Mozart/Oz system. and provide evidence that your program is correct (for example, test cases with output). (Assessment will be based on the solution's lack of maintenance difficulties, such as no repeated code, and use of the ideas and abstractions that appropriate to programming model X.)
Formative (In-Class Quizzes, Homeworks)
All of the above, and the following.
Trace the execution of an exemplary program in programming model X (also [Concepts]).
Explain the steps used to solve problems in a particular style. Give an example.
Follow the steps used to solve problems in a particular style for a given problem.
Explain how to debug programs written in programming model X.
Design an algorithm on paper (show steps between data structure snapshots) to solve a given problem in programming model X.
Develop an Oz program in programming model X to solve a problem of your own choosing. Explain how your code illustrates the ideas in this programming model.
Outcome [EvaluateModels]
Summative (Exams)
Consider problem solving problem P (explain it) using both programming model X and Y (which you are supposed to know). Which programming model would you pick for solving this problem? Briefly explain why, referring to appropriate terms and concepts and general programming rubrics.
Consider problem solving problem P (explain it). Of all the programming models we have studied so far, which would be the best programming model to use for solving this problem? Briefly explain why, referring to appropriate terms and concepts and general programming rubrics.
What are the advantages of programming model X compared to programming model Y? Illustrate each advantage with a small program or a problem.
Formative (In-Class Quizzes, Homeworks)
All of the above and the following.
Solve the same problem using both programming model X and Y in Oz. What objective measures (such as a count of non-commentary tokens, or a measure of your time) differ between the two solutions? What are the advantages of programming model X compared to programming model Y for this problem? What are the essential characteristics of problems that would have similar advantages for programming model X relative to Y?
Make a table that summarizes your evaluation of the advantages and disadvantages of each essential programming model compared to the kinds of problems we have studied so far. Give a one sentence explanation for each entry in the table.
Find a published paper (in a journal or conference) that compares programming models. Summarize the evaluation done in the paper (e.g., the case study or experiment) and the results. What threats to validity of the results did the authors consider? Which ones did they omit? Are the results found by the authors surprising to you? Briefly explain.
Outcome [MapToLanguages]
Summative (Exams)
What feature(s) in C, C++, or Java (if any) support feature F of programming model X? Show how to translate an example written in Oz that uses feature X into the selected language.
Show how to translate a program written in C, C++, or Java into Oz.
Explain how concept X is found in (or affects, or is realized in) C, C++, or Java (also [Concepts]).
How does concept X differ in Oz vs. C, C++, or Java? Explain with examples (also [Concepts]).
Compare and contrast the support for programming model X in Oz and C, C++, or Java (also [UseLanguages]).
Formative (In-Class Quizzes, Homeworks)
All of the above, the ideas in the formative assessments for the previous outcome, and the following.
Write a "Rosetta Stone" that shows how to translate code in Oz into C, C++, or Java (also [UseLanguages]).
Last modified Tuesday, November 5, 2013.
This web page is for the Fall 2013 offering of COP 4020 at the University of Central Florida. The details of this course are subject to change as experience dictates. You will be informed of any changes. Please direct any comments or questions to Gary T. Leavens at leavens@eecs.ucf.edu. Some of the policies and web pages for this course are quoted or adapted from other courses I have taught, in partciular, Com S 342.