7c14311108cdc65dc56930d6ac0d89298e8a2466
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 | + |