Table of Contents

PROJECT

PROJECT: Grade Figure-Outerer (gfoX)

Objective

To successfully obtain, input, calculate, and derive your current overall status in the course through the use of a spreadsheet.

Abstraction

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:

  • yourusername - where you see this (likely in a config file or command-line argument), you are NOT to literally type in y-o-u-r-u-s-e-r-n-a-m-e, but instead, substitute in YOUR lab46 username.
  • desig - different classes have different class designations. To make one universal document pertinent to ALL classes, specific examples will instead use 'desig', where you must substitute in the class desig of the class YOU are taking and acting upon in that moment. Example class desigs:
    • c4eng - ENGR1050 “C for Engineers”
    • cprog - CSCS1320 “C/C++ Programming”
    • unix - CSCS1730 “UNIX/Linux Fundamentals”
    • data - CSCS2320 “Data Structures”
    • discrete - CSCS2330 “Discrete Structures”
    • comporg - CSCS2650 “Computer Organization”
    • sysprog - CSCS2730 “Systems Programming”

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.

2024/07/23 10:37

Locational Awareness

This document is written with TWO locations in mind:

  • lab46 (the system you may retrieve resources and SUBMIT projects)
    • identified in examples with the use of the lab46:~$ prompt
  • your pi (the system you will transfer resources to/from, and WORK ON/COMPLETE projects)
    • identified in examples with the use of the yourpi:~$ prompt

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:

  • YOU cannot install software on lab46. You don't have access.
  • projects CANNOT be SUBMITTED on your pi.

Please pay attention to your prompt, so you can perform the needed activity on the correct system.

2024/07/23 10:37

Background

For this project, you will be installing the sc spreadsheet on your development system (Raspberry pi or other local UNIX/Linux machine you are using for class transactions), creating a spreadsheet and using it to tabulate and compute your current status in the class.

Update the package database and apply updates on your pi

Don't forget to update the package database and apply any available upgrades:

yourpi:~$ sudo apt update
...
yourpi:~$ sudo apt upgrade
...

Install sc on your Raspberry Pi

To proceed on this project, you will also need to install the 'sc' package:

yourpi:~$ sudo apt 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:~$ 

sc instructions

There are two sources of information you can reference for sc operation.

manual page

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

sc tutorial

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

saving

One can use the P command to “Put” the file to the filesystem (ie saving).

NOTE: unlike in text editors, the sc status line is at the top of the screen.

Looking up your 'status'

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.

Calculating your grade

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.

Spreadsheet

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.

Time-sensitive data

As gfoX may be issued multiple times during the semester, each iteration is to capture the following snapshot of data in its reporting results:

Example

Here is a mock-up example spreadsheet that I did, organizing information in the fashion useful for being informative and pertaining to this project:

Submission

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.

Evaluation Criteria

What I will be looking for:

52:gfoX:final tally of results (52/52)
*:gfoX:gfoX.sc data points entered as numbers, adequately labelled [13/13]
*:gfoX:gfoX.sc all calculations done as equations in spreadsheet [13/13]
*:gfoX:gfoX.sc calculations reference cells, NOT literal data [13/13]
*:gfoX:gfoX.sc calculations use available spreadsheet functions [13/13]

Additionally: