You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: hws/inverse_word_search/README.md
+15-24Lines changed: 15 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,8 @@
1
-
**Special Note 1: A correct program does not necessarily pass all the test cases for this assignment, as Submitty may let you fail a test case if your program is not fast enough or consumes too much memory.**
2
-
3
1
# Homework 6 — Inverse Word Search Recursion
4
2
5
3
In this homework we will build an inverse word search program using the techniques of recursion.
6
4
The goal is to construct a grid of letters that one can search to find specific words. Understanding the non-linear word
7
-
search program from Lectures 12/13 will be helpful in thinking about how you will solve this problem.
5
+
search program from Lectures will be helpful in thinking about how you will solve this problem.
8
6
We strongly urge you to study and play with that program, including tracing through its behavior using a
9
7
debugger or cout statements or both. Please read the entire handout before beginning your implementation.
10
8
@@ -49,8 +47,6 @@ solution, your program should just output the first legal solution it finds (it
49
47
number of solutions, nor does it need to be the first solution shown in our output). If the puzzle is impossible
50
48
your program should output “No solutions found”.
51
49
52
-
**To implement this assignment, you must use recursion in your search.** First you should tackle the problem of finding and outputting one legal solution to the puzzle (if one exists).
53
-
54
50
<!-- ## Algorithm Analysis
55
51
56
52
For larger, more complex examples, this is a really hard problem. Your program should be able to handle the small puzzles we have created in a reasonable amount of time. You should make up your own test cases as well to understand this complexity. Include these test cases with your submission (they will be graded).
@@ -64,17 +60,14 @@ Once you have finished your implementation and testing, analyze the performance
64
60
65
61
## Program Requirements & Submission Details
66
62
67
-
Use good coding style when you design and implement your program. Organize your program into functions:
68
-
don’t put all the code in main! Be sure to read the [Homework Policies](https://www.cs.rpi.edu/academics/courses/spring25/csci1200/homework_policies.php) as you put the finishing touches on your solution. Be sure to make up new test cases to fully debug your program and don’t forget
69
-
to comment your code! Use the provided template [README.txt](./README.txt) file for notes you want the grader to read.
70
-
You must do this assignment on your own, as described in the [Collaboration Policy & Academic Integrity](https://www.cs.rpi.edu/academics/courses/spring25/csci1200/academic_integrity.php) page. If you did discuss the problem or error messages, etc. with anyone, please list their names in your README.txt file.
63
+
**To implement this assignment, you must use recursion in your search.**
71
64
72
-
**Due Date**: 03/13/2025, Thursday, 10pm.
65
+
**Due Date**: 03/13/2026, Friday, 11:59pm.
73
66
74
67
## FAQs
75
68
76
69
1. Q: Am I allowed to use data structures not covered in this class?
77
-
A: Yes. For this homework, you can use whatever data structures you want to use; but last year, the student who topped the leaderboard with a very large margin, did not use any fancy data structures. The student used std::set, but did not use std::unordered_set or std::unordered_map, or any data structures which had not been covered in this class.
70
+
A: Yes. For this homework, you can use whatever data structures you want to use;
78
71
79
72
2. Q: Can I use global variables for this homework?
80
73
A: Yes, you can.
@@ -91,31 +84,29 @@ You must do this assignment on your own, as described in the [Collaboration Poli
91
84
6. Q: If I fill in all the words in the grid and there are still some empty slots, what characters do I fill in the these extra spaces?
92
85
A: You can fill in any lower case letter there and make sure it doesn't introduce a forbidden word. A single letter gives you one solution; replacing it with another letter would give you another solution, and in total, this would lead to 26 potential solutions, since there are 26 lower case letters.
93
86
94
-
7. Q: What bonus do I get if my program ranks higher than the instructor's program on the leaderboard?
95
-
A: If by Thursday night 10pm (which is the submission deadline), your program ranks higher than the instructor's program, you have many options. You can choose one of these:
96
-
- Drop the lowest test score
97
-
- Drop the lowest homework
98
-
- Skip 1 future homework
99
-
- Skip test 3
100
-
101
-
You will receive an email asking you about which option you want to choose, or if you want to propose a different option.
87
+
7. Q: What bonus do I get if my program beats last year's best record as shown on the leaderboard?
88
+
A: If by the submission deadline, your program ranks higher than last year's best record as shown on the leaderboard, you have 3 options. You can choose one of these:
89
+
- Skip all remaning homeworks and labs, and receive full credits for all of them.
90
+
- Skip test 2 and test 3 and receive full credits. (This means you must beat the best record before Thursday March 12th, the test 2 time).
91
+
- Skip final exam and receive full credits.
102
92
93
+
<!--
103
94
## Rubric
104
95
105
96
20 pts
106
97
- README.txt Completed (3 pts)
107
98
- One of name, collaborators, or hours not filled in. (-1)
108
99
- Two or more of name, collaborators, or hours not filled in. (-2)
109
-
- No reflection. (-1)
100
+
- No reflection. (-1)-->
110
101
<!-- - LETTER GRID REPRESENTATION (3 pts)
111
102
- Grid is not represented via nested structure vector<vector<char>>, vector<vector<string>>, vector<string>, char\*\*, etc. (-2)
112
103
- Lookup of a position is not O(1), uses something like<list<char>> which has lookup of O(n). (-1)
113
104
- Incomplete to the point that no grid representation is evident within their code. (-2)
114
105
-->
115
-
- USES RECURSION (10 pts)
106
+
<!-- - USES RECURSION (10 pts)
116
107
- Use some non-trivial recursion but doesn’t use recursion in the search process of board creation. (-3)
117
108
- Uses recursion but only trivially. (-7)
118
-
- Does not use any recursion. (-10)
109
+
- Does not use any recursion. (-10)-->
119
110
<!-- - ALGORITHM ANALYSIS (In terms of the grid dimensions, the # of words, # of letters per word, the number of solutions etc. Looking for both an answer in order notation and a well-written justification in the plaintext README.txt file.) (5 pts)
120
111
- No order notation provided (-5)
121
112
- Order notation not written in terms of the provided variables w,h,r,f,l,s. Introduces new vars or provides it just in terms of n. (-2)
@@ -130,12 +121,12 @@ You must do this assignment on your own, as described in the [Collaboration Poli
130
121
- Does not provide an adequate description of what the new testcases were in the README. (-2)
131
122
- Did not provide running times of the new test cases. (-1)
132
123
- Provides new test case description but implementation/test was missing from the submission. (-1)
133
-
- Did not provide new test cases or implementation too incomplete for new test cases. (-3)-->
124
+
- Did not provide new test cases or implementation too incomplete for new test cases. (-3)
134
125
- PROGRAM STRUCTURE (7 pts)
135
126
- Putting almost everything in the main function. It's better to create separate functions for different tasks. (-2)
136
127
- Function bodies containing more than one statement are placed in the .h file. (okay for templated classes) (-2)
137
128
- Functions are not well documented or are poorly commented, in either the .h or the .cpp file. (-1)
138
129
- Improper uses or omissions of const and reference. (-1)
139
130
- At least one function is excessively long (i.e., more than 200 lines). (-1)
140
131
- Poor file organization: Puts more than one class in a file (okay for very small helper classes) (-1)
141
-
- Poor choice of variable names: non-descriptive names (e.g. 'vec', 'str', 'var'), single-letter variable names (except single loop counter), etc. (-2)
132
+
- Poor choice of variable names: non-descriptive names (e.g. 'vec', 'str', 'var'), single-letter variable names (except single loop counter), etc. (-2)-->
0 commit comments