Corning Community College
CSCS2330 Discrete Structures
PROJECT: Grade Figure-Outerer (gfo0)
To successfully obtain, input, calculate, and derive your current overall status in the course through the use of a spreadsheet.
As an exercise in toning your abstraction abilities (literally seeing one thing, but understanding and using it as something else), there will be a number of 'generic' terms used throughout this (and other) documents throughout the course, requiring you to substitute in the pertinent information (else face confusion or error).
Some examples:
This sort of abstraction is very similar to that we will find in our utilization of variables in programming, where we can have a “name”, but the data associated with it can change based on various conditions.
Do not be a literalist computer! Start to exercise your abstraction abilities.
This document is written with TWO locations in mind:
There are commands you can ONLY run on one system or the other. Pay attention to any prompt cues in the given examples (or section headings, context of language leading up to any examples).
For example:
Please pay attention to your prompt, so you can perform the needed activity on the correct system.
For this project, you will be installing the sc spreadsheet on your Raspberry Pi, and creating a spreadsheet using it to tabulate and compute your current status in the class.
Don't forget to update the package database and apply any available upgrades:
yourpi:~$ sudo aptitude update ... yourpi:~$ sudo aptitude upgrade ...
Getting an error when trying to run 'aptitude', such as “command not found”, or “no such file or directory”? It likely means you need to install it: sudo apt-get install aptitude
To proceed on this project, you will also need to install the 'sc' package:
yourpi:~$ sudo aptitude install sc The following NEW packages will be installed: libncurses5{a} sc 0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 263 kB of archives. After unpacking 606 kB will be used. Do you want to continue? [Y/n/?] y Get: 1 http://raspbian.mirror.constant.com/raspbian buster/main armhf libncurses5 armhf 6.1+20181013-2+deb10u2 [75.3 kB] Get: 2 http://raspbian.mirror.constant.com/raspbian buster/main armhf sc armhf 7.16-4 [188 kB] Fetched 263 kB in 10s (26.1 kB/s) Selecting previously unselected package libncurses5:armhf. (Reading database ... 98655 files and directories currently installed.) Preparing to unpack .../libncurses5_6.1+20181013-2+deb10u2_armhf.deb ... Unpacking libncurses5:armhf (6.1+20181013-2+deb10u2) ... Selecting previously unselected package sc. Preparing to unpack .../archives/sc_7.16-4_armhf.deb ... Unpacking sc (7.16-4) ... Setting up libncurses5:armhf (6.1+20181013-2+deb10u2) ... Setting up sc (7.16-4) ... Processing triggers for man-db (2.8.5-2) ... Processing triggers for libc-bin (2.28-10+rpi1) ... yourpi:~$
There are two sources of information you can reference for sc operation.
With the installation of sc the manual page is made available for viewing ('q' to quit, up/down pageup/pagedown to view):
yourpi:~$ man sc
In the manual page there is given reference to an available sc tutorial, also installed with the sc package (tutorial itself tells you how to exit):
yourpi:~$ sc /usr/share/doc/sc/tutorial.sc
Ever since the first projects came due and were evaluated, your results were accessible to you on lab46 via the status command:
lab46:~$ status desig
Furthermore, if you were curious about the breakdown of points, you could also append the 'detail' argument to get an expanded view of information:
lab46:~$ status desig detail
NOTE: because 'detail' is an optional argument, the whole command may be written (for reference) as: 'status desig [detail]'; the square brackets denote optionality. You do not type them, instead, you either type what is in them, or you do not, depending on desired functionality.
Your grade is calculated from four distinct components, three of which you regularly encounter each week through the semester, and the final one at the end. Each is worth a certain amount of overall points, that when added up equals 104 points. With their individual point values, they are:
Within each category, you tally up two different accumulation of points:
For example, take this sample participation dataset:
1:wcp1:final tally of results (1/1) 2:wcp2:final tally of results (2/2) 1:wcp3:final tally of results (1/4) 5:wcp4:final tally of results (5/8) 8:wcp5:final tally of results (8/10) 12:moar:final tally of results (12/0)
A note on 'bonus' points: in each category, there is the potential for the accumulation of bonus/extra/moar points. These are added into the mix, BUT for the purposes of grading, the final tally of YOUR points can NOT exceed the final tally of total points.
In this case, the person amassed 29 total points, out of a total of 25 points: for purposes of grading, for their participation score, it would be 25/25. Bonus points only apply to the particular category in which they were earned (they cannot be applied to a different category).
Continuing this example, the person got 25/25ths of the 13 available points for that section (participation is worth 13 total points). So they currently have the full 13 points for participation.
Do the same for projects (52) and journal (13). For now, the total possible grade points you can receive is 78 total points (52+13+13). So that is what your spreadsheet should reflect.
For this project, your task is to make a spreadsheet that, in clearly readable and organized fashion, plots out your various results on the different deliverables for the class, ultimately displaying your current overall grade for the course.
I want to see:
Note that you may have to make your terminal window larger, or just deal with the need to scroll through the spreadsheet when enough data is accumulated. If you'd like to continue using this spreadsheet for additional points accrued in the coming weeks, you may want to plan ahead and set up your “final results” tally with some space away from the growing list of results.
Here is a mock-up example spreadsheet that I did, organizing information in the fashion useful for being informative and pertaining to this project:
To successfully complete this project, the following criteria must be met:
To submit this to me using the submit tool, run the following command at your lab46 prompt:
lab46:~/src/desic/gfo0$ submit desig gfo0 gfo0.sc Submitting desig project "gfo0": -> gfo0.sc(OK) SUCCESSFULLY SUBMITTED
You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.
What I will be looking for:
78:gfo0:final tally of results (78/78) *:gfo0:gfo0.sc contains and shows all data points [13/13] *:gfo0:gfo0.sc calculates and shows the section tallies [13/13] *:gfo0:gfo0.sc calculates and shows each project out of 100 [13/13] *:gfo0:gfo0.sc points per section are capped by section values [13/13] *:gfo0:gfo0.sc overall results calculated and shown [13/13] *:gfo0:gfo0.sc data and results contain reasonable accuracy [13/13]
Additionally: