Corning Community College
CSCS1320 C/C++ Programming
PROJECT: Grade Figure-Outerer (gfoX)
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
One can use the P command to “Put” the file to the filesystem (ie saving).
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) 4:moar:final tally of results (4/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 13 total points, out of a total of 15 points: for purposes of grading, for their participation score, it would be 13/15. 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 13/15ths of the 13 available points for that section (participation is worth 13 total points). We would calculate that “out of 13” result as follows:
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.
Your letter grade is obtained by determining your score (out of 100) and selecting the letter grade pertaining to that value.
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.
As gfoX may be issued multiple times during the semester, each iteration is to capture the following snapshot of data in its reporting 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/SEMESTER/DESIG/gfoX$ submit DESIG gfoX gfoX.sc Submitting DESIG project "gfoX": -> gfoX.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:
39:gfoX:final tally of results (39/39) *:gfoX:gfoX.sc data points entered as numbers and adequately labelled [13/13] *:gfoX:gfoX.sc all calculations done as equations in spreadsheet [13/13] *:gfoX:gfoX.sc calculations reference cells AND use spreadsheet functions [13/13]
Additionally: