$24
In this homework assignment, you will investigate how some design issues, related to subprograms, are addressed in Golang, a recent, high-level programming language. The web site for Golang is https://go.dev//. The design issues you will investigate are
Nested subprogram definitions
Scope of local variables
Parameter passing methods
Keyword and default parameters
Closures
First investigate how each of these issues are answered in Golang programming language. Then write simple programs clearly illustrating the design decisions for the issues Golang. Discuss the results of execution of your programs in the report.
For each design issue, your example code and its output should illustrate the answer. You can illustrate the answers to these questions, in different parts of a single program. The example program must be complete.
You can use online compilers. Your example programs must be different than the sample codes that may be available in the Internet. To help the TA understand your code and give you good grades, appropriately comment your source to explain your example and why your example is appropriate for this homework.
Organize all of your experiments and their results and put them into a report. The report should include the following:
For each design issue, a sample code segment and the results of its execution. You should explain what your example does, clearly. Make sure you give a list of references and proper citations to these references in your report about the design choices for these issues in the language covered in this homework.
A section that includes your evaluation of Golang in terms of readability and writability of subprogram syntax. A section about your learning strategy. A learning strategy is an individual's approach to complete a task. In this section, discuss, in detail, the material and tools you used, experiments you performed. Also talk about personal communication, if you had. Give the URLs of the online compiler/interpreters you used to run your programs.
Submission:
A single zip or rar file should be submitted containing the following files with given names:
1. A single file for report: lastname_name_report.pdf
2. A single file for Golang code: lastname_name.go
Please upload the zip or rar file you created to Moodle before the due date.
Important Notes:
Late submissions will be accepted, with 30 points (out of 100) deduction for each extra day.
You may use the tutorials available in the Internet as a reference, but do not derive your example from the contents of the tutorials. If you do so, your programs may be similar to others in the class, that causes a disciplinary investigation.
Collaboration on the homework assignments is not allowed.
You must cite in the report, any resources that you used, such as files, code segments, documents, etc.
Grading Policy:
a. Discussion of design issues (50%)
b. Evaluation of the language (10%)
c. Learning strategy (10%)
d. Code samples (30%)