haas/fall2026/c4eng/projects/gfoX.md
... ...
@@ -0,0 +1,304 @@
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 using **Google Sheets** to create a
11
+spreadsheet and use it to tabulate and compute your current status in the
12
+class.
13
+
14
+You will need a Google account (a personal one is fine; if you use your
15
+school account, be mindful of any sharing restrictions that may apply).
16
+Sheets is accessed through your web browser at:
17
+
18
+ * https://sheets.google.com
19
+
20
+No installation is required. You will still use your lab46 account to
21
+look up your results (see LOOK UP YOUR STATUS below), but the spreadsheet
22
+itself is built in the browser.
23
+
24
+## GOOGLE SHEETS BASICS
25
+
26
+If you have never used a spreadsheet before, here is what you need to get
27
+started. Google also has built-in help (Help menu -> Sheets Help) and a
28
+function list (Help -> Function list) you can reference at any time.
29
+
30
+### CELLS AND REFERENCES
31
+
32
+A spreadsheet is a grid of **cells**. Columns are lettered (A, B, C...)
33
+and rows are numbered (1, 2, 3...), so the cell in column B, row 4 is
34
+**B4**. Click a cell to select it, and type to enter data.
35
+
36
+ * A cell whose contents start with `=` is a **formula**.
37
+ * Formulas can reference other cells: `=B4+B5`
38
+ * Formulas can reference a **range** of cells: `=SUM(B4:B9)`
39
+ * Formulas update automatically when the cells they reference change.
40
+
41
+### USEFUL FUNCTIONS
42
+
43
+Some functions you will likely find helpful (there are others; explore!):
44
+
45
+ * `SUM(range)`: add up all the numbers in a range
46
+ * `MIN(a, b)`: the smaller of two values (useful for capping)
47
+ * `MAX(a, b)`: the larger of two values
48
+ * `ROUND(value, places)`: round to a number of decimal places
49
+ * `IF(test, if_true, if_false)`: choose between two results
50
+ * `IFS(test1, result1, test2, result2, ...)`: chain multiple tests
51
+ * `VLOOKUP(key, range, column, is_sorted)`: look a value up in a table
52
+
53
+### FORMATTING
54
+
55
+Use the toolbar to make your spreadsheet readable: bold headers, borders,
56
+cell background colors, column widths, number formats (such as decimal
57
+places or percent). You can also merge cells for titles (Format -> Merge
58
+cells).
59
+
60
+### SAVING
61
+
62
+Google Sheets **saves automatically** as you work. Give your spreadsheet
63
+a meaningful name by clicking the title at the top left of the page (for
64
+example: `gfo0`).
65
+
66
+See the SUBMISSION section for how to get your finished work to me.
67
+
68
+## LOOK UP YOUR STATUS
69
+
70
+Ever since the first projects came due and were evaluated, your results
71
+were accessible to you on lab46 via the **status** command.
72
+
73
+The synopsis for the **status** command is:
74
+
75
+```
76
+status DESIG [OPTION..]
77
+```
78
+
79
+Where OPTION is any valid presence and combination of viable options
80
+(**detail** is one, **help** is another).
81
+
82
+The most common usage will probably be (square brackets in this context
83
+denote optionality):
84
+
85
+```
86
+status DESIG [detail]
87
+```
88
+
89
+Customize per the desired request. If you do not want the detailed view,
90
+omit the `detail` option. If you desire it, include the `detail` option.
91
+
92
+NOTE: **status** and the data it reads from are only accessible on lab46.
93
+
94
+```
95
+lab46:~$ status DESIG
96
+```
97
+
98
+Furthermore, if you were curious about the breakdown of points, you could
99
+also append the 'detail' argument to get an expanded view of information:
100
+
101
+```
102
+lab46:~$ status DESIG detail
103
+```
104
+
105
+NOTE: because 'detail' is an optional argument we use the square brackets
106
+to denote optionality. You do not type them, instead, you either type
107
+what is in them, or you do not, depending on desired functionality.
108
+
109
+## CALCULATING YOUR GRADE
110
+
111
+Your grade is calculated from four distinct components, three of which
112
+you regularly encounter each week through the semester, and the final one
113
+at the end. Each is worth a certain amount of overall points, that when
114
+added up equals 104 points. With their individual point values, they are:
115
+
116
+ * projects (52 points)
117
+ * notes (13 points)
118
+ * participation (13 points)
119
+ * eoce (26 points)
120
+
121
+Within each category, you tally up two different accumulations of points:
122
+
123
+ * all the points YOU got
124
+ * all the points POSSIBLE to get
125
+
126
+Each category (and the overall grade) is evaluated as a sum of points
127
+earned out of a sum of points possible (NOT an average of averages).
128
+
129
+For example, take this sample participation dataset:
130
+
131
+```
132
+1:wcp1:final tally of results (1/1)
133
+2:wcp2:final tally of results (2/2)
134
+1:wcp3:final tally of results (1/4)
135
+5:wcp4:final tally of results (5/8)
136
+4:moar:final tally of results (4/0)
137
+```
138
+
139
+This person got 1+2+1+5 points (and 4 bonus points), for a total of: 9 +
140
+4 = 13 points.
141
+
142
+The total amount of points available (at this point) was 1+2+4+8+0, or:
143
+15 points
144
+
145
+A note on 'bonus' points: in each category, there is the potential for
146
+the accumulation of bonus/extra/moar points. These are added into the
147
+mix, BUT for the purposes of grading, the final tally of YOUR points can
148
+NOT exceed the final tally of total points (bonus points only pad the
149
+category in which they were earned, and only up to that category's
150
+maximum).
151
+
152
+In this case, the person amassed 13 total points, out of a total of 15
153
+points: for purposes of grading, for their participation score, it would
154
+be 13/15. Bonus points only apply to the particular category in which
155
+they were earned (they cannot be applied to a different category).
156
+
157
+Continuing this example, the person got 13/15ths of the 13 available
158
+points for that section (participation is worth 13 total points). We
159
+would calculate that "out of 13" result as follows:
160
+
161
+`(13/15)*13` = 11 (so at this point, they'd have 11 out of 13
162
+participation points)
163
+
164
+Do the same for projects (52) and notes (13). For now, the total possible
165
+grade points you can receive is 78 total points (52+13+13). So that is
166
+what your spreadsheet should reflect. (EoCE does not exist yet, so it is
167
+not part of this calculation.)
168
+
169
+### LETTER GRADES
170
+
171
+Your letter grade is obtained by determining your score (out of 100) and
172
+selecting the letter grade pertaining to that value. Letter grades are
173
+pegged to the following numeric values (per the course syllabus):
174
+
175
+```
176
+A 98.00+
177
+A- 92.00 - 97.99
178
+B+ 86.00 - 91.99
179
+B 80.00 - 85.99
180
+B- 74.00 - 79.99
181
+C+ 68.00 - 73.99
182
+C 62.00 - 67.99
183
+D 56.00 - 61.99
184
+F 0.00 - 55.99
185
+```
186
+
187
+Your score out of 100 is your current points out of 78, scaled to 100:
188
+`(your points / 78) * 100`.
189
+
190
+## SPREADSHEET
191
+
192
+For this project, your task is to make a spreadsheet in Google
193
+Sheets that, in clearly readable and organized fashion, plots out your
194
+various results on the different deliverables for the class, ultimately
195
+displaying your current overall grade for the course.
196
+
197
+I want to see each project (identified), along with the points you got,
198
+along with the total points possible for a "dashboard" quick glance,
199
+calculate your project "score" out of 100 (just to give you a feel for
200
+how you did on a particular project). Be sure to:
201
+
202
+ * have a category for bonus points you have earned
203
+ * have a projects score tally (all your points earned)
204
+ * have a projects total tally (all the points possible to earn)
205
+
206
+Calculate your projects "score" out of 100 (just to give you a feel for
207
+how you did on the category overall).
208
+
209
+Calculate your projects "points" (out of 52), and display it under an
210
+identifiable label.
211
+
212
+Do the same for the participation and notes categories as well.
213
+
214
+Add up your category points (52+13+13=78), and have these be near each
215
+other in your spreadsheet.
216
+
217
+Calculate your actual current score for the class (based on a total of 78
218
+points), and use a spreadsheet function (such as IFS or VLOOKUP) to
219
+determine from the letter grade ladder where you fall, displaying the
220
+resulting letter grade.
221
+
222
+Do NOTE: the aim and spirit of this project is to use the SPREADSHEET as
223
+the calculator. I want to see embedded equations, NOT pre-calculated
224
+values in your spreadsheet data. I do NOT want to see you being the
225
+calculator, pre-calculating all the values, and just entering them. That
226
+is NOT effective use of the spreadsheet.
227
+
228
+If you'd like to continue using this spreadsheet for additional points
229
+accrued in the coming weeks, you may want to plan ahead and set up your
230
+"final results" tally with some space away from the growing list of
231
+results (or on its own tab). Using ranges that have room to grow (for
232
+example, `SUM(B2:B30)`) can save you from having to rewrite formulas
233
+later.
234
+
235
+## TIME-SENSITIVE DATA
236
+
237
+gfoX is issued twice during the semester, and each iteration is to
238
+capture the following snapshot of data in its reporting results:
239
+
240
+ * gfo0: start of semester through and including week 6 deliverables
241
+ * gfo1: start of semester through and including week 12 deliverables
242
+
243
+There is a bit of a lag from the end of the sampling window and when that
244
+project is due:
245
+
246
+ * gfo0 (through week 6 data) will be due alongside pct9/wcp9
247
+ * gfo1 (through week 12 data) will be due alongside pctE/wcpE
248
+
249
+Each iteration is a fresh snapshot: gfo1 should include everything from
250
+gfo0 plus the weeks since (weeks 1-12 in total). You are welcome to build
251
+gfo1 by copying your gfo0 spreadsheet and extending it (in Google Sheets:
252
+File -> Make a copy), as long as the final result is correct for the full
253
+week 1-12 window.
254
+
255
+## SUBMISSION
256
+
257
+To successfully complete this project, the following criteria must be
258
+met:
259
+
260
+ * Solution must utilize the algorithm/approach presented above
261
+ * Output must conform to the specifications presented above
262
+ * Submit your solution by committing it to your private semester
263
+ repository (NOT via the lab46 **submit** tool).
264
+
265
+Your finished spreadsheet needs to be exported from Google Sheets in a
266
+format that preserves your formulas, and then placed in the gfoX project
267
+directory of your private semester repository:
268
+
269
+ 1. In Google Sheets, choose **File -> Download -> Microsoft Excel
270
+ (.xlsx)**. Name/rename the downloaded file `gfoX.xlsx`
271
+ (substituting the actual iteration, such as `gfo0.xlsx` or
272
+ `gfo1.xlsx`).
273
+ 2. Place the file in the corresponding project directory of your
274
+ private semester repository (the same place you would put other
275
+ project deliverables).
276
+ 3. Add, commit, and push it.
277
+
278
+NOTE: do NOT download as CSV. CSV files contain only the displayed values
279
+and discard your formulas, which would defeat the purpose of the project.
280
+
281
+Be sure the push completes without errors, and verify that your file
282
+shows up in your repository. If not, check for typos and or locational
283
+mismatches (wrong directory, wrong filename, forgetting to push).
284
+
285
+Your submission is evaluated as of the project's due date, so be sure to
286
+push before the deadline (the late policy applies as usual).
287
+
288
+It is also a good idea to keep your Google Sheet itself as a backup.
289
+
290
+### RUBRIC
291
+
292
+What I will be looking for:
293
+
294
+```
295
+52:gfoX:final tally of results (52/52)
296
+*:gfoX:gfoX.xlsx data points entered as numbers, adequately labelled [13/13]
297
+*:gfoX:gfoX.xlsx all calculations done as equations in spreadsheet [13/13]
298
+*:gfoX:gfoX.xlsx calculations reference cells, NOT literal data [13/13]
299
+*:gfoX:gfoX.xlsx calculations use available spreadsheet functions [13/13]
300
+```
301
+
302
+Additionally:
303
+ * Solutions not abiding by **SPIRIT** of project will be subject to a 25% overall deduction
304
+ * Solution output lacking **ORGANIZATION** or not easy to read (fits on a standard screen without excessive scrolling, clear labels and formatting) are subject to a 25% overall deduction