CS 315
Homework Assignment 1


Assigned:  April 4, 2024
Due:  April 18, 2024, 23:55

Associative Arrays in Dart, Golang, Javascript, Kotlin, Python, Ruby, and Rust

An associative array is an unordered collection of data elements that are indexed by an equal number of values, called keys. It may be called as map, hash or dictionary in different languages.

In this homework assignment, you will investigate the associative array data structures provided in seven different programming languages: Dart, Golang, Javascript, Kotlin, Python, Ruby, and Rust. You will investigate how the following operations are done in these programming languages:

  1. Initialize
  2. Get the value for a given key
  3. Add a new element
  4. Remove an element
  5. Modify the value of an existing element
  6. Search for the existence of a key
  7. Search for the existence of a value
  8. Loop through an associative array, apply a function, called foo, which simply prints the key-value pair

You can use online compilers/interpreters for this homework.

For each language, prepare a single source code file that exemplifies and tests each operation, in the order given above. Your example programs must be different from the example codes that may be available on the Internet. Be careful to avoid plagiarism!

Organize all of your experiments and their results and put them into a report. The report should include Parts A, B, C, and D as explained below:

Part A - Operations in each language (45 points)

For each language and each operation, give the sample code segments and the results of their execution. You should explain what your example does, and the output, if generated.

Part B - Evaluation (10 points)

Your evaluation of these languages in terms of readability and writability of list operations. Discuss, in your opinion, which language is the best for list operations.

Part C - Learning strategy (10 points)

A learning strategy is an individual's approach to completing a task. In this section, discuss, in detail, the material and tools you used, and the 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

Part D- Sample Codes (35 points)

The sample code files must compile and run without any errors.

Submission:

A single zip or rar file should be submitted containing the following files with given names:

  1. A single file for the Report, containing parts A, B, and C: ID_lastname_name_report.pdf (65 Points)
  2. A folder called, Codes, for Part D. The contents of the folder will be as follows:
    1. A single file for Dart code: ID_lastname_name.dart (5 points)
    2. A single file for Go code:ID_lastname_name.go (5 points)
    3. A single file for Javascript code: ID_lastname_name.html (5 points)
    4. A single file for Kotlin code: ID_lastname_name.kt (5 points)
    5. A single file for Python code: ID_lastname_name.py (5 points)
    6. A single file for Ruby code: ID_lastname_name.rb (5 points)
    7. A single file for Rust code: ID_lastname_name.rs (5 points)

Please upload the zip or rar file you created to Moodle before the due date.

Important Notes: