Exercise #6 – Design Research and Analysis

DUE: As indicated on Canvas

PowerPoint presentation to the class required during final exam, but for this assignment, report on what you have found so far.

Read PLP Chapter 12, which completes our coverage. The goal of this assignment is to compare implementation of a sufficiently complex and interesting from your experience as a student in two vastly different programming languages to determine if there’s specific advantage in using one compared to the other. Alternative languages you can choose from include: , Halide, Lisp, Scheme, Java, Python and Prolog (or other with instructor approval) and Primary languages to compare to can include: /C++, Ada83, Ada95, and MATLAB that are taught in the SWE program.

Exercise #6 Requirements:

1) [10 points] Present your work on Lab #5 and 6 in the form of a report comparing the two implementations and background on the primary and alternative PL selected (why each was designed and what for and why you algorithm should be easily implemented or not in each).

2) [20 points] Research a hypothesis that can be tested by your side by side comparison with at least 3 metrics. The research should be peer-reviewed papers that you can cite the support your position or go against it. Describe specifically how the reference supports or refutes your position and note in your text and in your final presentation. You position should be that PL A is better than PL B in terms of objective and subjective assessment (see next part). Some resources for researching alternative programming languages are available on our web site (http://mercury.pr.erau.edu/~siewerts/cs332/documents/Papers/ ) and through:

Scholarpedia, Google Scholar, Rosetta Code, Research Gate IEEE Explore, ACM Library, SPIE Library, AIAA ARC MS Academic Research ERAU Hazy Library

3) [30 points] Select an algorithm that is simple, but more interesting than “hello world” – a great source of is prior classes or Rosetta Code. For this algorithm, analyze 3 objective metrics in the primary and alternative programming language. For example, including: 1) cost, 2) performance (efficiency in time, code size, memory use, etc), 3) lines of code to implement common algorithm; and 3 subjective assessments including for example: 1) readability, 2) debug features (single step, trace, print data), and 3) extensibility (libraries, type and operator extension, etc.) for both implementations and provide comparative analysis.

4) [40 points] Turn in your completed application implemented in both languages and provide tutorial information so that someone new to the alternative language can compare and understand key differences. Include:

a) How to install and test the alternative language tools (interpreter) along with simple examples to make sure it works (target VB-Linux or Windows using open sources). b) Teach the reader what the differences are between the alternative language and imperative procedural programming noting the top 3 key differences with a short paragraph on each. c) Describe how the alternative language’s key features (as described before – 3 objective and 3 subjective) makes implementation, verification of correctness, assessment of computational or logical accuracy, and performance optimization simpler or harder.

5) [100 points for FINAL EXAM Presentation of results] Present your PL comparison and selection for your application of interest to the class with PowerPoint slides and demonstrations in 15-minute talk allowing for 5 minutes of Q&A on your presentation by the class. The talk should summarize what you’ve learned in Assignment #5 and #6 work. This is in addition to turning in your report above. Please submit your PowerPoint slides after you complete your talk. Grading Checklist

[10 points] PL comparison outcome self-assessment (summarize at high level):

[2 pts] primary PL design key aspects______

[4 pts] alternate PL design key aspects______

[2 pts] primary support for test algorithm ______

[2 pts] alternate support for test algorithm______

[20 points] Hypothesis and research:

[6 pts] 3 or more quality citations to support or refute hypothesis______

[8 pts] Hypothesis______

[6 pts] Metrics to evaluate______

[30 points] PL Comparison work:

[12 pts] 3 objective metric results______

[12 pts] 3 subjective assessments______

[6 pts] Debugging support comparison of both______

[40 points] Alternate and Primary PL Key Differences Summary:

[15 pts] Using alternate PL ______

[15 pts] Top 3 key differences______

1. ______2. ______3. ______

[20 pts] Advantages and disadvantages of key differences (so you can make a final recommendation at your final exam with justification)

1. ______2. ______3. ______4. Conclusion ______