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 SE program.

Exercise #6 Requirements:

1) [10 points] Present your work on Lab #5 and 6 in the form of a brief report (a few paragraphs) comparing the two implementations and background on the primary and alternative PL selected (why each was designed?, what for and why? , why you think the algorithm of your choice should be easy to implement, or not in each PL?).

If you are pressed for time, as long as you answer each question (including above), this is adequate for this exercise. If you prefer to write a complete report now, and to provide a more interactive teaching style presentation with few or no slides, see my note on a suggested format below.

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 on ZOOM or as a Video. Please submit your PowerPoint slides after you complete your talk.

6) If you would like to draft a more formal narrative report before you make slides (optional) in addition to answering the questions above, I would suggest a format (not to exceed 12 pages) such as: a) [1 page] Cover Page (with PL A vs. B title, class, individual or pair-coding members, etc.) b) [1 paragraph] Introduction c) [1 page] A brief history of PL A and B – who designed them, why, and what are major features and goals, what experts have to say about each and why they are of interest to you. ) [1 page] Hypothesis clearly stated (A will be better than B for…, because) and explained e) [N pages] 3 objective metrics, 3 subjective metrics, how they are to be collected (source) f) [N pages] Side by side comparison of simple and more complex algorithms or applications g) [N pages] Metric outcome and analysis (equally weighted score or weighted score) h) [1 paragraph] Conclusion (A is better than B as expected, B is better than A and was not expected, mixed result A better than B for X and B better than A for Y, or null hypothesis) i) [1 page] Formal References (and Attributions to Anyone who helped not on the team) j) [N pages] Appendices with results, code and supporting material (to stay in page bounds)

Report file MUST be separate from the ZIP file with code and other supporting materials. 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 ______