CMSI 284 Computer System Organization/Systems Programming, Spring 2019
This next set of encoding drills is all about IEEE 754, in addition to some reinforcement of the integer material.
Pretty much all of the information you need can be found in Dr. Toal’s Numeric Encoding page, as well as many other sites on the web—it isn’t like numeric encoding differs from person to person! As mentioned in class, the core information is pretty straightforward; the trick is doing it enough so that it feels intuitive and second-nature.
For Submission: Encoding Exercises
You are meant to do all these problems without the aid of a computer. The purpose of these exercises is for you to develop skills. If you spend the time to practice with pencil and paper (or a whiteboard) you will learn the material much better. You may use a calculator to help with arithmetic, but that’s it.
Acquiring Your Exercises
In its initial state, your encoding assignment repository contains:
- A sample set of exercises
- A sample set of handwritten solutions to these exercises
- A sample solution file, formatted for automated (initial) scoring
These examples are meant to illustrate how your actual set of exercises and final submissions should look, in terms of format and content.
Upon acquiring this repository, open a GitHub issue that mentions either Dondi (@dondi) or Tyler Edmiston (@tedmist1) in order to request your personal, individualized set of exercises. Either one of them will deposit the exercises in your repository and resolve the issue once this is done. At that point, you can start working in earnest.
Adhering to the Submission Format
To facilitate a level of automation in scoring, the exercise file is in a very specific tab-delimited (TSV) format. Copy the exercise file into a new one called solutions.tsv then fill in the requested answers (indicated by the question marks). You may ignore blank tabs/columns that don’t have a question mark. Commit solutions.tsv as often as you see fit.
When formatting your integer answers:
- Add leading zeroes up to the stated bit width of the number for bases that are powers of 2 only
- Do not use punctuation (commas)
- Use spaces only in binary (i.e., four bits at a time)
When formatting your IEEE 754 answers:
- Separate 32- and 64-bit hexadecimal into bytes
- Add leading zeroes to 32- and 64-bit hexadecimal values only
- Do not use spaces in the binary portion of the “binary scientific notation” format
- Write the multiplication operator
xand the power of 2 exactly as shown
- Preserve all parts of the “binary scientific notation” expression, even if its value is 1.0 (and write it that way if so!)
Do not veer from the format specified by the TSV file: Discrepancies in formatting may confuse the autoscoring script and will confuse, frustrate, or exasperate its human counterparts.
Protip: An effective way to work with your file is to import solutions.tsv into a spreadsheet program such as Excel or Google Sheets. Work on the exercises by hand, fill in your answers, then export back to a TSV for submission. Do make sure that the spreadsheet applications do not interfere with your intended answers, especially leading zeroes. You are responsible for making sure that your submission corrects for “spreadsheet interference.”
Providing Manual Work
It has been stated that you are to work on these exercises without the aid of a computer. To provide evidence that you have done this, take pictures of your manual work (as shown in this repository’s example) and submit those as well. This manual work not only shows that you did these exercises by hand but also provides a basis for partial credit, if necessary.
Note some additional specifics for this assignment, based on what was experienced in evaluating Assignment 0205:
- File formats for your manual work are now restricted to JPEG, PNG, or PDF only
- Name your files manual-x where x is a number indicating the correct sequence for your work (i.e., don’t mix things up—it makes things harder to find). So you should have files named manual-1.jpg, manual-1.png, manual-2.pdf, etc. only.
Diverging from any of these specifications will incur a general deduction on top of the overall score.
Here’s another way to think about your submission: Your submitted files should be named almost exactly like the files in this repository, except without the prefix sample-.
How to Turn it In
Commit your solutions.tsv file and pictures of your manual work to this repository.
Specific Point Allocations
This encoding assignment is scored according to outcomes 1a and 4d to 4f in the syllabus. For this particular assignment, graded categories are as follows:
|Integer conversions||3 points each, 15 points total||1a, 4d|
|Integer arithmetic||5 points each, 15 points total||1a, 4d|
|IEEE 754 conversions||5 points each, 70 points total||1a, 4d|
|Missing/incomplete/off-spec manual work||deduction only|
|Version Control||deduction only||4e|
The 3 and 5 points in the integer and IEEE 754 conversions, respectively, will allow for partial credit. For integer arithmetic exercises, 1 point goes to the saturated sum, 2 points go to the modular sum, 1 point to carry, and 1 point to overflow.