From fc16e380f3728a80bd4d7845bf6a04b76fa4fb16 Mon Sep 17 00:00:00 2001 From: "Douglas B. Rumbaugh" Date: Mon, 3 Nov 2025 12:03:39 -0500 Subject: Added assignment details as a README and LICENSE --- LICENSE | 30 ++++++++++++++++++++++++++++++ README.html | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 LICENSE create mode 100644 README.html diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c3e87d9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,30 @@ +BSD 3-Clause License + +Copyright (c) 2025, Douglas B. Rumbaugh + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.html b/README.html new file mode 100644 index 0000000..4b1a1af --- /dev/null +++ b/README.html @@ -0,0 +1,49 @@ +

Unlike in Java or Python, C has a very limited standard library which lacks general collections/data structures. This means that, if you need a particular structure, you'll need to either include an external library, or implement it yourself. In this project, you'll write a very useful data structure called a hash map, which will be useful to you in future assignments. As a starting point, download and extract this tarball. It includes the following basic directory structure,

+
.
+|-- include
+|   |-- hashfuncs.h
+|   `-- strmap.h
+|-- src
+|   `-- strmap.c
+`-- tests
+    `-- strmap_tests.c
+
+

The interfaces that you must implement are defined in include/strmap.h. DO NOT EDIT THIS FILE. You should implement this functions, along with any internal helper functions or structures you may want to add, in src/strmap.c. I've provided a suite of unit tests to verify the functionality of your data structure in tests/strmap_tests.c. DO NOT EDIT THIS FILE either.

+

Specific Tasks

+

For this project, you must complete the following tasks

+ +

Submission

+

Create a tarball containing the following files,

+
project-1
+|-- Makefile
+|-- include
+|   |-- hashfuncs.h
+|   `-- strmap.h
+|-- src
+|   `-- strmap.c
+`-- tests
+    `-- strmap_tests.c
+
+

and upload it to Canvas by the deadline. Do not alter the provided include or unit test files.

+

Tips and Advice

+ +

Errata

+ -- cgit v1.2.3