haas/spring2026/unix/projects/pbx0.md
... ...
@@ -1,6 +1,6 @@
1 1
# CSCS1730 UNIX/Linux Fundamentals
2 2
3
-# PROJECT: THE PUZZLEBOX (dac0)
3
+# PROJECT: THE PUZZLEBOX (pbx0)
4 4
5 5
## OBJECTIVE
6 6
haas/spring2026/unix/projects/pbx1.md
... ...
@@ -0,0 +1,213 @@
1
+# CSCS1730 UNIX/Linux Fundamentals
2
+
3
+# PROJECT: THE PUZZLEBOX (pbx1)
4
+
5
+## OBJECTIVE
6
+
7
+Continue to cultivate your skills, problem solving abilities, and ability
8
+to explore and figure out new tools.
9
+
10
+## PROCESS
11
+
12
+Do note, the productive way to go about this project involves taking the
13
+following steps:
14
+
15
+ * starting early
16
+ * reading the project page
17
+ * asking questions regarding things you do not know, are not clear on, or are confused about
18
+ * experimenting and exploring the your files, using tools familiar and new to try and unravel the puzzle.
19
+
20
+If you start too late, and do not ask questions, and do not have enough
21
+time and don't know what is going on, you are not doing the project
22
+correctly.
23
+
24
+## TASK
25
+
26
+You are to unravel the puzzle, getting to the instructions inside. Be
27
+wary of deceptions and obstacles trying to throw you off track.
28
+
29
+You are seeking the creation of two files, that you will submit:
30
+
31
+ * **pbx1.results** - the final instructions correctly unscrambled
32
+ * **pbx1steps** - a list of the steps taken to accomplish the core task
33
+
34
+## NO GRABIT
35
+
36
+As part of this activity is to test your ability to navigate around the
37
+filesystem and manipulate files on your own, there is no grabit
38
+configured for this project.
39
+
40
+Navigate to the UNIX PUBLIC DIRECTORY yourself and manually copy your
41
+project files back into your repository.
42
+
43
+## OBTAIN THE FILES
44
+
45
+This week's project is located in the **pbx1/** sub-directory of the UNIX
46
+Public Directory, under a directory by the name of your username, there
47
+should be 2 files. One named **README**, and another.
48
+
49
+Make a copy into your home directory somewhere and set to work.
50
+
51
+**NOTE:** Hopefully it has been standard practice to locate project files
52
+in their own unique subdirectory, such as under **src/SEMESTER/unix/**,
53
+where you can then add/commit/push the results to your repository (you
54
+ARE regularly putting stuff in your repository, aren't you?)
55
+
56
+## COMMENTARY
57
+
58
+The first puzzlebox was in many ways a test of your observational skills.
59
+To many, the frustrations emerged from what was being taken for granted.
60
+But once you took proper notice, and could apply the appropriate skills,
61
+its secrets could be obtained.
62
+
63
+This second puzzlebox will test both your observation skills (in a
64
+slightly different way) and reasoning skills in an abstract manner. Along
65
+with that, your scripting skills are being put to the test as well: your
66
+submission will more heavily rely upon a fully functional steps file that
67
+will entirely automate the process. If you are observant, the information
68
+you need is presented early on, but is a few layers of abstraction out of
69
+reach. Patience and perseverance will be key to victory.
70
+
71
+If you start too late, and do not ask questions, and do not have enough
72
+time and don't know what is going on, you are not doing the project
73
+correctly.
74
+
75
+## TOOLBOX
76
+
77
+In addition to tools you may already be familiar with from previous
78
+projects, you may also want to check out:
79
+
80
+ * **ar**(**1**)
81
+ * **basenc**(**1**)
82
+ * **cpio**(**1**)
83
+ * **file**(**1**)
84
+ * **lzma**(**1**)
85
+ * **cat**(1)
86
+ * **cut**(1)
87
+ * **grep**(1)
88
+ * **head**(1)
89
+ * **paste**(1)
90
+ * **sort**(1)
91
+ * **tail**(1)
92
+ * **tr**(1)
93
+ * **uudecode**(1)
94
+ * **uniq**(1)
95
+
96
+You are NOT to make use of, as part of your puzzle solution, any steps
97
+that involve interactive tools (such as **nano**), nor utilize **sed**,
98
+**ed**, or **awk** in your solutions.
99
+
100
+## NOTE
101
+
102
+While you may need to install any needed packages on your pi to perform
103
+tasks related to this project, do keep in mind that for the actual
104
+solving of the puzzlebox:
105
+
106
+ * you do NOT need to call upon sudo / root access in any way (solutions containing such steps will be considered to not be following the spirit of the project)
107
+ * all actionable steps taken are to be done using **non-interactive** tools. There is zero need to make use of an interactive tool like **nano**. Solutions that make central use of interactive tools will be considered to not be following the spirit of the project.
108
+
109
+While you as a user investigating things may end up using various tools
110
+to see what is going on, your resultant steps file is to only be
111
+representative of the core automated/non-interactive task the computer
112
+is performing (with value-added comments giving pertinent clued-in
113
+information as a result of your observations and investigations).
114
+
115
+## PROJECT
116
+
117
+For this project, files are located in the **pbx1/** subdirectory of the
118
+**UNIX Public Directory**.
119
+
120
+There is a directory by the name of your user, which contains a file.
121
+Please copy this into some custom project folder in your home directory.
122
+
123
+In many puzzles, one's visual comprehension of the scenario plays a vital
124
+role. Where something doesn't necessarily meet the eye, or is not
125
+behaving as you would expect- just try reading any messages or output.
126
+Sometimes the clues are right under your nose.
127
+
128
+As is the case many investigations, just observing how things behave can
129
+lead to recognition of an object's true state, or the recognition of a
130
+pattern, which can be used to solve the task at hand.
131
+
132
+## VERIFICATION
133
+
134
+The **pbx1.results** file, when correctly unscrambled and assembled, can
135
+be verified by generating its **md5sum** hash.
136
+
137
+This hash should match the hash stored inside the **MANIFEST** file
138
+located in the project directory (in the public directory).
139
+
140
+### FILECHK
141
+
142
+You can also use the **filechk** tool to verify the accuracy of your
143
+results:
144
+
145
+```
146
+lab46:~/src/SEMESTER/unix/pbx1$ filechk unix pbx1
147
+```
148
+
149
+## SUBMISSION
150
+
151
+In addition to the files produced during the completion of this project,
152
+I would also like for you to create a detailed step-by-step text file
153
+called **pbx1steps** which includes the valid command-lines that will
154
+document for me the steps you took from project commencement through
155
+completion. You will submit this file at the end in accordance with the
156
+instructions.
157
+
158
+To successfully complete this project, you must follow the directions
159
+located in a readable file at the conclusion of this project. Until you
160
+encounter it, you are not yet finished (hint).
161
+
162
+You should get some sort of confirmation indicating successful submission
163
+(actually, two) if all went according to plan. If not, check for typos
164
+and or locational mismatches.
165
+
166
+### SUBMIT TOOL USAGE
167
+
168
+Let's say you have completed work on the project, and are ready to
169
+submit, you would do the following:
170
+
171
+```
172
+lab46:~/src/SEMESTER/unix/pbx1$ submit unix pbx1 file1 file2 file3 ... fileN
173
+```
174
+
175
+A less abstract instantiation of the above (to help you transition):
176
+
177
+```
178
+lab46:~/src/SEMESTER/unix/pbx1$ submit unix pbx1 pbx1.results pbx1steps
179
+Submitting unix project "pbx1":
180
+ -> pbx1.results(OK)
181
+ -> pbx1steps(OK)
182
+
183
+SUCCESSFULLY SUBMITTED
184
+```
185
+
186
+You should get some sort of confirmation indicating successful submission
187
+if all went according to plan. If not, check for typos and or locational
188
+mismatches.
189
+
190
+I'll be looking for the following:
191
+
192
+### RUBRIC
193
+
194
+```
195
+130:pbx1:final tally of results (130/130)
196
+*:pbx1:submitted pbx1.results file via submit tool [13/13]
197
+*:pbx1:submitted pbx1steps file via submit tool [13/13]
198
+*:pbx1:both files pushed to lab46 semester repository [13/13]
199
+*:pbx1:pbx1.results is correctly unscrambled and assembled [13/13]
200
+*:pbx1:pbx1.results md5sum matches project MANIFEST [13/13]
201
+*:pbx1:pbx1steps has valid list of non-interactive instructions [13/13]
202
+*:pbx1:pbx1steps uses shell features like wildcards, IO redir [13/13]
203
+*:pbx1:pbx1steps contains comments explaining process [13/13]
204
+*:pbx1:pbx1steps automates the project when executed [13/13]
205
+*:pbx1:pbx1steps when executed outputs nothing [13/13]
206
+```
207
+
208
+Additionally:
209
+ * Solutions not abiding by spirit of project will be subject to a 50% overall deduction
210
+ * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
211
+ * Solutions not utilizing indentation to promote scope and clarity will be subject to a 25% overall deduction
212
+ * Solutions not organized and easy to read are subject to a 25% overall deduction
213
+