Closed seanchen1991 closed 1 year ago
I’d be tempted to expose people to the rabin-karp algorithm as an example of how to use a hashtable. https://www.freecodecamp.org/news/the-rabin-karp-algorithm-explained/
The exercise could be framed as “we want you to write a plagiarism detector for exercism submissions “ :-)
(It’s an algorithm I would love to have come across earlier and it’s pretty easy).
After several failed attempts to create a high-quality syllabus, I believe any future attempts will have to do their own design work from scratch.
This issue describes how to implement the hashmap concept exercise for the Rust track.
Getting started
Please please please read the docs before starting. Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read up on the following documents:
Please also watch the following video:
Goal
The hashmap collection is a commonly-used collection in Rust that has many miscellaneous methods associated with it. This concept exercise should serve as an introduction to the common-case usage of
HashMap
s, though it is not intended to cover its usage exhaustively.Learning objectives
Student should be able to...
new
insert
contains_key
remove
get
Student may be able to...
Out of scope
Concepts
Prerequisites
This exercise should depend only on a basic understanding of functions, types, and variables. They need to know enough to be able to shove something into a HashMap, after all.
Is it before or after methods? Is it before or after Iterator? Is it before or after generics? The lesson may change accordingly. Including variances is not required: assume the most minimal form. Additional content for possible usage may be included in the .meta folder of the exercise.
Resources to refer to
Hints
After
Representer
This should require no special changes to the representer.
Analyzer
This should require no special changes to the analyzer.
Implementing
See our implementation guide for guidance. In addition, you may want to make use of the shell script while in the
concept
directoryHelp
If you have any questions while implementing the exercise, please post the questions as comments in this issue.