haas/spring2026/common/projects/gfoX.md
... ...
@@ -0,0 +1,259 @@
1
+# PROJECT: GRADE FIGURE-OUTERER (gfoX)
2
+
3
+## OBJECTIVE
4
+
5
+To successfully obtain, input, calculate, and derive your current overall
6
+status in the course through the use of a spreadsheet calculator.
7
+
8
+## BACKGROUND
9
+
10
+For this project, you will be installing the **sc** spreadsheet on your
11
+development system (Raspberry pi or other local UNIX/Linux machine you
12
+are using for class transactions), creating a spreadsheet and using it to
13
+tabulate and compute your current status in the class.
14
+
15
+It is likely available for install via your package management system by
16
+the name of `sc`.
17
+
18
+## SC INSTRUCTIONS
19
+
20
+There are two sources of information you can reference for **sc**
21
+operation:
22
+
23
+### MANUAL PAGE
24
+
25
+With the installation of **sc** the manual page is made available for
26
+viewing ('q' to quit, up/down pageup/pagedown to view):
27
+
28
+```
29
+yoursystem:~$ man sc
30
+```
31
+
32
+### SC TUTORIAL
33
+
34
+In the manual page there is given reference to an available **sc**
35
+tutorial, also installed with the **sc** package (tutorial itself tells
36
+you how to exit):
37
+
38
+```
39
+yoursystem:~$ sc /usr/share/doc/sc/tutorial.sc
40
+```
41
+
42
+### RUNNING
43
+
44
+To operate `sc`, run it and provide the desired spreadsheet calculator
45
+filename you wish to work on.
46
+
47
+While not a requirement, the convention is to add a `.sc` to the end of
48
+your spreadsheet filename, for example: `gfo0.sc`
49
+
50
+### SAVING
51
+
52
+One can use the **P** command to "Put" the file to the filesystem (ie
53
+saving).
54
+
55
+NOTE: unlike in text editors, the **sc** status line is at the top of the
56
+screen.
57
+
58
+## LOOK UP YOUR STATUS
59
+
60
+Ever since the first projects came due and were evaluated, your results
61
+were accessible to you on lab46 via the **status** command.
62
+
63
+The synopsis for the **status** command is:
64
+
65
+```
66
+status DESIG [OPTION..]
67
+```
68
+
69
+Where OPTION is any valid presence and combination of viable options
70
+(**detail** is one, **help** is another).
71
+
72
+The most common usage will probably be (square brackets in this context
73
+denote optionality):
74
+
75
+```
76
+status DESIG [detail]
77
+```
78
+
79
+Customize per the desired request. If you do not want the detailed view,
80
+omit the `detail` option. If you desire it, include the `detail` option.
81
+
82
+NOTE: **status** and the data it reads from are only accessible on lab46.
83
+
84
+```
85
+lab46:~$ status DESIG
86
+```
87
+
88
+Furthermore, if you were curious about the breakdown of points, you could
89
+also append the 'detail' argument to get an expanded view of information:
90
+
91
+```
92
+lab46:~$ status DESIG detail
93
+```
94
+
95
+NOTE: because 'detail' is an optional argument we use the square brackets
96
+to denote optionality. You do not type them, instead, you either type
97
+what is in them, or you do not, depending on desired functionality.
98
+
99
+## CALCULATING YOUR GRADE
100
+
101
+Your grade is calculated from four distinct components, three of which
102
+you regularly encounter each week through the semester, and the final one
103
+at the end. Each is worth a certain amount of overall points, that when
104
+added up equals 104 points. With their individual point values, they are:
105
+
106
+ * projects (52 points)
107
+ * notes (13 points)
108
+ * participation (13 points)
109
+ * eoce (26 points)
110
+
111
+Within each category, you tally up two different accumulation of points:
112
+
113
+ * all the points YOU got
114
+ * all the points POSSIBLE to get
115
+
116
+For example, take this sample participation dataset:
117
+
118
+```
119
+1:wcp1:final tally of results (1/1)
120
+2:wcp2:final tally of results (2/2)
121
+1:wcp3:final tally of results (1/4)
122
+5:wcp4:final tally of results (5/8)
123
+4:moar:final tally of results (4/0)
124
+```
125
+
126
+This person got 1+2+1+5 points (and 4 bonus points), for a total of: 9 +
127
+4 = 13 points.
128
+
129
+The total amount of points available (at this point) was 1+2+4+8+0, or:
130
+15 points
131
+
132
+A note on 'bonus' points: in each category, there is the potential for
133
+the accumulation of bonus/extra/moar points. These are added into the
134
+mix, BUT for the purposes of grading, the final tally of YOUR points can
135
+NOT exceed the final tally of total points.
136
+
137
+In this case, the person amassed 13 total points, out of a total of 15
138
+points: for purposes of grading, for their participation score, it would
139
+be 13/15. Bonus points only apply to the particular category in which
140
+they were earned (they cannot be applied to a different category).
141
+
142
+Continuing this example, the person got 13/15ths of the 13 available
143
+points for that section (participation is worth 13 total points). We
144
+would calculate that "out of 13" result as follows:
145
+
146
+`(13/15)*13` = 11 (so at this point, they'd have 11 out of 13
147
+participation points)
148
+
149
+Do the same for projects (52) and notes (13). For now, the total possible
150
+grade points you can receive is 78 total points (52+13+13). So that is
151
+what your spreadsheet should reflect.
152
+
153
+Your letter grade is obtained by determining your score (out of 100) and
154
+selecting the letter grade pertaining to that value.
155
+
156
+## SPREADSHEET
157
+
158
+For this project, your task is to make a spreadsheet that, in clearly
159
+readable and organized fashion, plots out your various results on the
160
+different deliverables for the class, ultimately displaying your current
161
+overall grade for the course.
162
+
163
+I want to see each project (identified), along with the points you got,
164
+along with the total points possible for a "dashboard" quick glance,
165
+calculate your project "score" out of 100 (just to give you a feel for
166
+how you did on a particular project). Be sure to:
167
+
168
+ * have a category for bonus points you have earned
169
+ * have a projects score tally (all your points earned)
170
+ * have a projects total tally (all the points possible to earn)
171
+
172
+Calculate your projects "score" out of 100 (just to give you a feel for
173
+how you did on the category overall).
174
+
175
+Calculate your projects "points" (out of 52), and display it under an
176
+identifiable label.
177
+
178
+Do the same for the participation and notes categories as well.
179
+
180
+Add up your category points (52+13+13=78), and have these be near each
181
+other in your spreadsheet.
182
+
183
+Calculate your actual current score for the class (based on a total of 78
184
+points, that you could then determine against the letter grade ladder
185
+where you fall).
186
+
187
+Do NOTE: the aim and spirit of this project is to use the SPREADSHEET as
188
+the calculator. I want to see embedded equations, NOT pre-calculated
189
+values in your spreadsheet data. I do NOT want to see you being the
190
+calculator, pre-calculating all the values, and just entering them. That
191
+is NOT effective use of the spreadsheet.
192
+
193
+Note that you may have to make your terminal window larger, or just deal
194
+with the need to scroll through the spreadsheet when enough data is
195
+accumulated. If you'd like to continue using this spreadsheet for
196
+additional points accrued in the coming weeks, you may want to plan ahead
197
+and set up your "final results" tally with some space away from the
198
+growing list of results.
199
+
200
+## TIME-SENSITIVE DATA
201
+
202
+As gfoX may be issued multiple times during the semester, each iteration
203
+is to capture the following snapshot of data in its reporting results:
204
+
205
+ * gfo0: start of semester through and including week 4 deliverables
206
+ * gfo1: start of semester through and including week 8 deliverables
207
+ * gfo2: start of semester through and including week 12 deliverables
208
+
209
+You'll notice there is a two-week lag from the end of the sampling window
210
+(gfo0 -> week 4) and when that project is due (gfo0 will be due alongside
211
+pct6/wcp6).
212
+
213
+## EXAMPLE
214
+
215
+Here is a mock-up example spreadsheet that I did, organizing information
216
+in the fashion useful for being informative and pertaining to this
217
+project:
218
+
219
+![sample gfoX](images/gfoX_sample.jpg)
220
+
221
+## SUBMISSION
222
+
223
+To successfully complete this project, the following criteria must be
224
+met:
225
+
226
+ * Solution must utilize the algorithm/approach presented above
227
+ * Output must conform to the specifications presented above
228
+ * Submit a copy of your solution to me using the **submit** tool.
229
+
230
+To submit this to me using the **submit** tool, run the following command
231
+at your lab46 prompt:
232
+
233
+```
234
+lab46:~/src/SEMESTER/DESIG/gfoX$ submit DESIG gfoX gfoX.sc
235
+Submitting DESIG project "gfoX":
236
+ -> gfoX.sc(OK)
237
+
238
+SUCCESSFULLY SUBMITTED
239
+```
240
+
241
+You should get some sort of confirmation indicating successful submission
242
+if all went according to plan. If not, check for typos and or locational
243
+mismatches.
244
+
245
+### RUBRIC
246
+
247
+What I will be looking for:
248
+
249
+```
250
+52:gfoX:final tally of results (52/52)
251
+*:gfoX:gfoX.sc data points entered as numbers, adequately labelled [13/13]
252
+*:gfoX:gfoX.sc all calculations done as equations in spreadsheet [13/13]
253
+*:gfoX:gfoX.sc calculations reference cells, NOT literal data [13/13]
254
+*:gfoX:gfoX.sc calculations use available spreadsheet functions [13/13]
255
+```
256
+
257
+Additionally:
258
+ * Solutions not abiding by **SPIRIT** of project will be subject to a 25% overall deduction
259
+ * Solution output lacking **ORGANIZATION** ior are not easy to read (within 90 char width) are subject to a 25% overall deduction
haas/spring2026/common/projects/images/gfoX_sample.jpg
... ...
Binary files /dev/null and b/haas/spring2026/common/projects/images/gfoX_sample.jpg differ
haas/spring2026/unix/projects/pbx1.md
... ...
@@ -195,7 +195,7 @@ I'll be looking for the following:
195 195
130:pbx1:final tally of results (130/130)
196 196
*:pbx1:submitted pbx1.results file via submit tool [13/13]
197 197
*:pbx1:submitted pbx1steps file via submit tool [13/13]
198
-*:pbx1:both files pushed to lab46 semester repository [13/13]
198
+*:pbx1:both files pushed to private semester repository [13/13]
199 199
*:pbx1:pbx1.results is correctly unscrambled and assembled [13/13]
200 200
*:pbx1:pbx1.results md5sum matches project MANIFEST [13/13]
201 201
*:pbx1:pbx1steps has valid list of non-interactive instructions [13/13]
haas/spring2026/unix/projects/pbx2.md
... ...
@@ -0,0 +1,207 @@
1
+# CSCS1730 UNIX/Linux Fundamentals
2
+
3
+# PROJECT: THE PUZZLEBOX (pbx2)
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
+ * **pbx2.results** - the final instructions correctly unscrambled
32
+ * **pbx2steps** - 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 **pbx2/** sub-directory of the UNIX
46
+Public Directory, under a directory by the name of your username, there
47
+should be a 2 files, one called `EXAMPLE` and another.
48
+
49
+`EXAMPLE` is an unobfuscated example of what your final result from
50
+unravelling the puzzle should look like (not *exactly* like this, but in
51
+this form). Study it, its patterns may help you during the solving of
52
+this puzzle box.
53
+
54
+Make a copy into your home directory somewhere and set to work.
55
+
56
+**NOTE:** Hopefully it has been standard practice to locate project files
57
+in their own unique subdirectory, such as under **src/SEMESTER/unix/**,
58
+where you can then add/commit/push the results to your repository (you
59
+ARE regularly putting stuff in your repository, aren't you?)
60
+
61
+## COMMENTARY
62
+
63
+The first puzzlebox was in many ways a test of your observational skills.
64
+To many, the frustrations emerged from what was being taken for granted.
65
+But once you took proper notice, and could apply the appropriate skills,
66
+its secrets could be obtained.
67
+
68
+The second puzzlebox will test both your observation skills (in a
69
+slightly different way) and reasoning skills in an abstract manner. Along
70
+with that, your scripting skills are being put to the test as well: your
71
+submission will more heavily rely upon a fully functional steps file that
72
+will entirely automate the process. If you are observant, the information
73
+you need is presented early on, but is a few layers of abstraction out of
74
+reach. Patience and perseverance will be key to victory.
75
+
76
+This third one continues to put your skills to the test with new and
77
+exciting obfuscations.
78
+
79
+If you start too late, and do not ask questions, and do not have enough
80
+time and don't know what is going on, you are not doing the project
81
+correctly.
82
+
83
+You are NOT to make use of, as part of your puzzle solution, any steps
84
+that involve interactive tools (such as **nano** or **vi/vim**), nor
85
+utilize **sed**, **ed**, or **awk** in your solutions.
86
+
87
+## NOTE
88
+
89
+While you may need to install any needed packages on your pi to perform
90
+tasks related to this project, do keep in mind that for the actual
91
+solving of the puzzlebox:
92
+
93
+You do NOT need to call upon sudo / root access in any way (solutions
94
+containing such steps will be considered to not be following the spirit
95
+of the project)
96
+
97
+Also: all actionable steps taken are to be done using **non-interactive**
98
+tools. There is zero need to make use of an interactive tool like
99
+**nano**. Solutions that make central use of interactive tools will be
100
+considered to not be following the spirit of the project.
101
+
102
+While you as a user investigating things may end up using various tools
103
+to see what is going on, your resultant steps file is to only be
104
+representative of the core automated/non-interactive task the computer
105
+is performing (with value-added comments giving pertinent clued-in
106
+information as a result of your observations and investigations).
107
+
108
+## PROJECT
109
+
110
+For this project, files are located in the **pbx2/** subdirectory of the
111
+**UNIX Public Directory**.
112
+
113
+There is a directory by the name of your user, which contains a file.
114
+Please copy this into some custom project folder in your home directory.
115
+
116
+In many puzzles, one's visual comprehension of the scenario plays a vital
117
+role. Where something doesn't necessarily meet the eye, or is not
118
+behaving as you would expect- just try reading any messages or output.
119
+Sometimes the clues are right under your nose.
120
+
121
+As is the case many investigations, just observing how things behave can
122
+lead to recognition of an object's true state, or the recognition of a
123
+pattern, which can be used to solve the task at hand.
124
+
125
+## VERIFICATION
126
+
127
+The **pbx2.results** file, when correctly unscrambled and assembled, can
128
+be verified by generating its **md5sum** hash.
129
+
130
+This hash should match the hash stored inside the **MANIFEST** file
131
+located in the project directory (in the public directory).
132
+
133
+### FILECHK
134
+
135
+You can also use the **filechk** tool to verify the accuracy of your
136
+results:
137
+
138
+```
139
+lab46:~/src/SEMESTER/unix/pbx2$ filechk unix pbx2
140
+```
141
+
142
+## SUBMISSION
143
+
144
+In addition to the files produced during the completion of this project,
145
+I would also like for you to create a detailed step-by-step text file
146
+called **pbx2steps** which includes the valid command-lines that will
147
+document for me the steps you took from project commencement through
148
+completion. You will submit this file at the end in accordance with the
149
+instructions.
150
+
151
+To successfully complete this project, you must follow the directions
152
+located in a readable file at the conclusion of this project. Until you
153
+encounter it, you are not yet finished (hint).
154
+
155
+You should get some sort of confirmation indicating successful submission
156
+(actually, two) if all went according to plan. If not, check for typos
157
+and or locational mismatches.
158
+
159
+### SUBMIT TOOL USAGE
160
+
161
+Let's say you have completed work on the project, and are ready to
162
+submit, you would do the following:
163
+
164
+```
165
+lab46:~/src/SEMESTER/unix/pbx2$ submit unix pbx2 file1 file2 file3 ... fileN
166
+```
167
+
168
+A less abstract instantiation of the above (to help you transition):
169
+
170
+```
171
+lab46:~/src/SEMESTER/unix/pbx2$ submit unix pbx2 pbx2.results pbx1steps
172
+Submitting unix project "pbx2":
173
+ -> pbx2.results(OK)
174
+ -> pbx2steps(OK)
175
+
176
+SUCCESSFULLY SUBMITTED
177
+```
178
+
179
+You should get some sort of confirmation indicating successful submission
180
+if all went according to plan. If not, check for typos and or locational
181
+mismatches.
182
+
183
+I'll be looking for the following:
184
+
185
+### RUBRIC
186
+
187
+```
188
+156:pbx2:final tally of results (156/156)
189
+*:pbx2:post screenshot of results to DISCORD channel [13/13]
190
+*:pbx2:submitted pbx2.results file via submit tool [13/13]
191
+*:pbx2:submitted pbx2steps file via submit tool [13/13]
192
+*:pbx2:both files pushed to private semester repository [13/13]
193
+*:pbx2:pbx2.results is correctly unscrambled and assembled [13/13]
194
+*:pbx2:pbx2.results md5sum matches project MANIFEST [13/13]
195
+*:pbx2:pbx2steps has valid list of non-interactive instructions [13/13]
196
+*:pbx2:pbx2steps uses shell features like wildcards, IO redir [13/13]
197
+*:pbx2:pbx2steps uses shell features like command expansions [13/13]
198
+*:pbx2:pbx2steps contains comments explaining process [13/13]
199
+*:pbx2:pbx2steps automates the project when executed [13/13]
200
+*:pbx2:pbx2steps when executed outputs nothing [13/13]
201
+```
202
+
203
+Additionally:
204
+ * Solutions not abiding by spirit of project will be subject to a 50% overall deduction
205
+ * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
206
+ * Solutions not utilizing indentation to promote scope and clarity will be subject to a 25% overall deduction
207
+ * Solutions not organized and easy to read are subject to a 25% overall deduction