T/Maker   Email: roizen@ix.netcom.com    Opinions Welcomed  (need to decide if this is a pipe dream)

Executive Summary: Relevant decision makers seem to believe the only answer to diminishing competency in math is more teachers with better techniques, especially for algebra.  I believe we should accept basic arithmetic as an entry level when needbe and build tools that expand without algebra into a useful universe of practical normal-life computations. Why not, for once, create a Mountain that goes to Mohammed when Mohammed cannot get to the Mountain?
                                                                          
References:  https://en.wikipedia.org/wiki/T/Maker     https://en.wikipedia.org/wiki/Peter Roizen    My Other Good Idea:  WildWords Crossword Game      
Links for later:    The Download Page           Tutorial Videos           Example Tables

IHA BoxprRelated History: This product has roots in one I created in 1979 and a modernization of the most unusual part in 1991.  In 2020 a Windows update sacrificed these items.  Given my history, I was not about to jump ship to a normal spreadsheet. That would be a betrayal of decades of ideas, fond memories, and a surprising level of success. So I decided to resurrect and revamp the calculating syntax that has remained unique, but to do it better for a different underlying purposeProgramming was done in Oracle's java language to cover Windows, Macs, and some other machines.

Sketch from Programmers At Work,    Microsoft Press, (c) 1983

This News Is Absolutely, Positively Terrible!
The 2023 assessment of 4,600 US adults showed
Americans scoring at the lowest numeracy level or below rose to 34% from 29% in 2017. That means more than a third struggle to perform tasks beyond basic arithmetic. I have developed a tool which I would like to put on the table. It circumnavigates the boogyman land of algebra's fixation on solution-finding by providing a capability that can do math in two dimensions based only on a knowledge of arithmetic. It could be taught concentrating on plain old calculating with known numbers to get new ones that summarize situations or offer useful insights.

Why not develop and teach something special for them?
Although I am using a work of my own to start with, Microsoft, Google, or another big guy could ensure the existance of something similar in the future and expand or polish it in a number of ways. Unlike all commercial spreadsheets, this approach has no prerequisite beyond arithmetic. To begin with, I would like to put the focus on the most important point of all -- everybody can use this approach starting today for a realistic purpose!

                                                       
There are a number of different looking screens in T/Maker. The section shown is a piece of a Trails Screen. This screen allows you to enter or change both text and calculations. Each column consists of two subcolumns -- a green one for calculating instructions followed by a white one for text or numbers. On this screen you can see a Calculation Trail. Such a trail consists of Steps. A step has a number and some sort of instruction that typically involves T/Maker's built-in calculator and its current value. Steps are executed in the order of their numbers.

Step 1 "in this case" (abbreviated henceforth as iTc) uses the exclamation point ! operator which tells T/Maker to enter a value into the calculator. Since this symbol is not followed by one of a variety of possibilities, the number to enter is assumed to be the one in the "white adjacent column"  (abbreviated henceforth as wAj). Step 2 iTc multiplies the current value in the calculator (cVc) by the wAj. Step 3 iTc outputs the current value in the calculator to the wAj and sets the calculator to zero.

Note: If the step 3 had used the number symbol # instead of the equal sign, the value in the calculator would have been left unchanged instead of set to zero. This is often used to display the value in the calculator while carrying it forward for other purposes.

The darkened green cells indicate the starting locations where step 1 of the trail is to be restarted. Typical tables often have few trails but many applications of them. Such trails typically serve one clear purpose and must have a trails screen to themselves. If a trail is only used from one starting location, it sometimes serves many puposes with steps wandering around. Even so, moving on to a new trail may be desired to keep intentions clear.


     It's not even possible to make
     entering calculations and a chart
     easier!    Click here to see that!

 
Remember, T/Maker is not this!

Which can lead to this!
And even this!


Important Options: Ways to specify the values in a Step
You have already seen that an operator which takes a following operand but has none specified, will take the value from or place the value into the white adjacent cell (wAj). Below are other options for referencing particular values in a step.

Constants: In the last video we saw the use of a constant in a step. That is easy enough - just place the constant to the right of operator and the constant will be used as the operand. This two step example converts  temperatures from one scale to another. The exclamation point and equal sign refer to the wAj as they are not followed by an operand.

Column Names: You may place single letters (upper or lower case) to refer to the value in that column (A to Z) on the same row. In the example, it would be a drag to find the columns needed and place the operators next to the correct wAj cells. This technique is very handy in many situations. It not olnly saves time but can improve the clarity of intentions. I recommend using lowercase.

Cell Names:  Cell names are generally used in all commercial spreadsheets as the way to identify values needed in a formula. In T/Maker one tries to avoid them as they are often the cause of mistakes. But you can use them. The name of an individual cell is the column name letter followed by the row number. Note the in the example that  the step could be placed in any cell and would accomplish the exact same calculation. 
I recommend lowercase.


Memory Names: Memories can be used to store and fetch values and can be created on the fly in a step. They're great for intermediate values. Their names must start with two letters. Numbers and letters may optionally follow. Names are not sensitive to case and should not match a T/Maker keyword.  I recommend always capitalizing at least the first letter to visually differentiate memory names from the other operands above.

This trail is using the Pythagorean theorem to determine the length of a tarp that will drop 9 feet while moving 6 feet away from the side of a house.
A^2 + B^2 = C^2.  9 is multiplied by itself and placed in memory Asqrd. 6 is multiplied by itself and then Asqrd is added to get A^2 + B^2.
sqr is a T/Maker function that replaces the cVc with its squareroot. Thus C^2 became just C (the hypotenuse of the right triangle).
BTW, I have only used this twice in my life for the roof of a doghouse and a shower stall to accomodate an inset in a vertical wall.
Also, I have never needed to solve two simulaneous linear equations outside of a classroom or doing algebra homework. Same for factoring polynomials.


Syntactical Anomaly: Do not enter a negative number as an operand.  T/Maker interprets - (dash) as subtraction operator.
Use _ (the underscore character) instead.    Wrong:  *-3  (intended to multiply by -3).     Right:  *_3      


Surprise!  Many things are not as complicated as you might expect.
The tariffs that shocked the world can be calculated by the trail shown below.
Step 2, neg, is a function that reverses the sign of the cVc.
The second part of Step 5 ( >10 ) imposes a minimum that the cVc is at least 10.
Columns A through F came from the NY Times. Column G is calculated using the trail.
 


Using column names, the calculation could have been done anywhere on the row in just one step:  !b neg  /d  *100   /2   >10  =g         

T/Maker offers choices because some problems are better solved by different approaches or even a mix of them. It's best to get completely comfortable with all the options for operands (values) and spot them immediately when reading the step left to right: wAj, constants, column names, cell names, and memory names.


Lists: Sometimes a well-made list with a minimum of calculations is valuable on its own. Below is one similar to a favorite of mine. It lists all bills that need to be paid. The list includes the number per year, how it arrives, where to find details about it, what day it closes, how it is paid, an approximate average amount, the total per year (calculated), and a number to sort on for my prefered order. The other number calculated is the column total of "Total." The table can also be sorted on any other column. I print one every three months and use the last three columns to mark an amount paid if any for potentially adjusting the average. With the number of bills one has these days, I am happy to have this page in a permanent location on my phyiscal desktop.



It's full speed ahead
to get started with basics. Easily set formats (below) or add lines with dedicated screens and toolbars for those purposes.



Click here to see that.


Getting Things Right! : As to the main priorities in T/Maker. Priority 2 is making stuff clear and easy to specify. Priority 1 is heaving a great tool to check your work and find mistakes. If you clicked on the picture of the distressed individual above, you would have gotten to an article detailing some incredibly costly errors made with Excel. Like me, you probably don't have hundreds of millions to lose. Even so, it's nice to feel confident in the solutions you create. Below is a table designed to answer a question: can a Cybertruck carry 5,000 cans of sardines without exceeding its cargo space or cargo weight limit? For this sort of situation, I wanted to show another way to display a trail. By clicking on the Steps button on the top tool bar, you can bring up an ordered list of all steps in the trail. The size of this box can be adjusted to suit your needs. You can select a step in the box to delete it, insert a step ahead of it, or edit it. It's extremely helpful when a trail has many steps or steps with many operations. This is an easier way to check for typos or various other accidental entries.

 

The Calculations:
Step 1. Convert space limit from cubic feet to cubic inches, put in memory IN3
Step 2. Convert weight limit from pounds to ounces, put in memory OZs
Step 3. Multiply the dimensions of the tin so the cVc holds the volume in cubic inches
Step 4. Put the above in memory TIN3 and also in the Adj.

Step 5. Enter OZs and divide by the weight of one tin
Step 6. Output maximum tins based on weight to Adj
Step 7. Calculate max tins based on space, output to Adj
Yes on 5,000 tins. Cybertruck could carry around 9500 tins!
The Debugger:
A special screen / tool (see below) can do all calculations in sequence while you watch. This is useful for your own work, and also for understanding tables you may have gotten elsewhere like here!
With T/Maker the order of every calculation is explicit. This is not true of algbraic spreadsheets where rules of precedence and parentheses govern even a single formula. In T/Maker trails are executed in numerical order. For each trail, applications are done row by row from the top. At each row, applications are done left to right. From each start location, steps are executed in number order. For each step, the operators are performed left to right. When invoked by the Debug button, the debugger begins its display with the trail on the screen.The usual calculations will have been performed to that point. The display offers information about the current trail and location.You will see values as well as options for how to proceed. It's a dynamite tool which can only work thanks to T/Maker's ordered calculations.

Let's try it with a click here!

 


Mortgages, Etc. For mortgage payments and a few other common but complicated calculations, there are built-in procedures to do them. The mortgage payment calculation is the second of the three trails (normally on separate screens shown) below. Memories are filled with the needed data and then the function name is used to do the calculation. You start the specification by clicking on the function name in the Full Math Toolbar. You will get cursors to succesively click into the appropriate calculation cells. These cursors already include the needed conversions of the yearly interest rate to monthly rate, and the number of years to the number of months. You only need to do the clicks. 
Watch it happen with a click here.









Mistakes : It is, of course, possible to make mistakes in T/Maker. The hardest to find are the ones where the rules of what's a column name, cell name, or memory are violated and render it one of the other legitimate choices. Below is the "All" toolbar on a trails screen. It shows all the function names and other keywords used. If you are intending to use one, spell it correctly. If you are not intending to use one, make sure your name for a memory follows other rules and cannot be found below or confused with a column name or cell name. The last part of the video shows the pitfalls of inadvertently covering two trails with different purposes on only one screen and with one set of restarting locations.
   

In the video you will see, the Debugger is used to go though some steps. Watching the information provided about each step, you can clearly see what the Debugger believes it has been asked to do. Along the way, you should be making sure that corresponds to your own understanding. Also in the video, some steps place values far from the scenes of their crimes. There is an option in the Misc. Menu to "Whiteout all calculated values." That is easier to do than scanning screens for rogue entries created by errors. Click here for the video.


Starting From (Almost) Scratch :  I do keep the template below handy without any data. It gives me a head start on adding up lump sums or quantities with unit prices. My once a year hand-prepared maintenance bill for a small ski boat gets checked for labor and parts. The template includes a single pie chart for all the items most of which are zero. I just push the Show button for that.

   



Forms: With four different line styles plus the possibility of no line, you can design some nice forms. Allow text to span multiple columns when setting formats (Alignment + Spans). Text can be specified in an invisible ink format effectively blanking it out. This is useful when elements in a table are needed for calculations but not desired in a final print-out.

Printing:  Print the table in one of four fonts. Choose font style and size. Set a row height to tighten or spread out the vertical dimension. Decide whether or not to print lines. Options are available for row headings and column names. Switch between landscape and portrait as well as set margins with two system dialog boxes called up with a button.

The top of the page shows the length and width of your table in pages. In addition to marign adjustments, changing the size of the font and other items may affect these numbers. Use the Recalculate button to refigure the size when you have altered any items. I generally try for a minimum number of pages with the width of only a single page.



Graphics: While the charts and graphs are not on a par with well-established spreadsheets, you can use them to get insights into your data and a student can learn what type of chart best illustrates a certain point.










The When Clause:  Different rows or columns in a table may require very different calculations. With the Apply button you do have the possibility to have a number of different trails and choose to apply them across different rows or columns as needed. This introduces an overhead of keeping track of what is used where and making choices when a new row or column is added.  Another approach is to put something in the trail or a step that lets the trail determine if it should do a calculation or not. This is achieved through what is called a "When Clause."  This clause is a true or false test which can be put in a step. If the clause is true, the operators after it are executed normally. If the clause is false execution moves on to the next step.

The clause itself consists of the word "when," a first operand, a test to be performed, and the second operand for the test. One chooses the elements proceeding from left to right on the help screen. This completes the edit area to the right of the light green "Load Clipboard and Cursor" button below. You may also edit what is in that area to provide specifics of what happens when the test is true. Then you can push the just mentioned button to get a cursor representing the text and click it where needed. It is often the case that some form of almost the same clause is needed more than once. You can change the text in the edit area and use the aforementioned button to get a new cursor. Note below that the calculation given is only executed for rows designated with the code "A".



Watch the construction of a When Clause demonstrating another use of it with the Tally Table button.



Importing Data:

To try T/Maker, you don't have to start with typing data. You can probably import data from a program you have that exports files in the popular CSV (Comma Seperated Values) format. T/Maker can also import data using white space as a delimiter, parsing mostly vertical columns, or using a first line that is a template for where columns of data are located.



Open a table file or create a new blank one for the data to be imported.
Click Export / Import menu, then Clipboard / File Controls
If the data is in a file, use the Load Clipboard button.
Otherwise make sure the data is in the clipboard.
Push the Show Clipboard button to display the data.
You may edit lines shown for whatever purpose.
If you do, push Set Clipboard To: button to load your edited version.


For this example, I made a selection from a web page and used the copy keystroke. I was unable to select the titles. Perhaps they are represented by a graphic and not text. Pushing the Show Clipboard button, the data appeared as in the listbox. I used the Select cursor on Row 1 Column A as the strarting position to load the table. Then I chose the White Space Delimited option to transfer the data to the table. You can see the first two rows below.


Picking data out of a web page works or does not work depending on how the HTML in the web page is written.
As you can see, there are a number of Clipboard to Table options. You can try one after the other. 
Push the Explain button for more details.

If you can get a CSV file, use it. If not, you can inspect the clipboard to see what might work.  The Export / Import menu also has some cursors to fix problems that might occur on individual rows.



Exporting Data:
Load the table from which data is to be exported.
Click Export / Import menu, then Clipboard / File Controls
Use the Select Cursor to select an area (click first and last cell)
Hint for above: use Page Up, Page Down, etc. to move screen
Or, push Select All button.
Enter CSV Character for separating values in CSV Format.
(Above does not have to be a comma)

Check Export Raw Values or leave blank for formatted values.
Choose a Table to Clipboard option.
Clipboard will then show in area below.
You may edit lines shown for whatever purpose.
If so, push Set Clipboard To: afterwards to load your changes.
To save clipboard as a file, push Save Clipboard option.
A dialog box will allow you to set a folder and file name.
   Moving Data:
   Save the file as it is first. 
Duplicate or move data in a table by exporting it. Then import it to the new location.
   Erase the old data when that operation is completed. Don't save anything until you are sure.
   BTW, one backup file is kept with zzz prepended to the file name if you set that option in the Options Menu.



Find / Replace Helper in Misc. Menu:
To remove unwanted symbols (e.g., $, #) in data obtained elsewhere, this helper screen can save time.
It can also come in handy when entering data. Create abbreviations to minimize typing.
In addition to finding and/or replacing in an ad hoc fashion, you may store a series of replacement instructions with the file itself.
Then the Do All Instructions / Cells button is used to replace all abbreviations with the fully spelled out text.
For a needed monthly list of purchases on behalf of someone else, the previous month's file could be renamed and blanked out to take advantage of the abbreviations stored in it.




It's There Somewhere:  While not always the case, if you find something you and others probably want to do, there is a chance it's there. It may be a faster way to edit, move the screen, duplicate some data, or in this case, insert, delete, or reorder trails and givem the names and descriptions. This starts with the Revise button on the Trails screen. Select the Trail Slot and move it or whatever. If you change the text (Name or Comments), remember to push the Set / Reset button. Names and comments will be helpful reminders. Also, someone else may have put in meaningful text in a file you got from elesewhere, like here! Some other screens have their own purposes for the Revise button.






Column Relative Memory Names:  If a memory name ends with a question mark, the question mark is replaced by the column letter in which the name is used. Again, case insensitive. For Row 1 below the consecutive values are placed in raB, raC, and raD (think of "ra" as an abbreviation for "row above". In the second row, the value in raD (33, the D is specified) is divided by the values above for the three columns which use the question mark. The example below demonstrates how you might put values from previous rows into memories to make referencing them easier without having to use cell names. Note that when calculating row 3, the row above becomes row 2.
This is not often used but can prove valuable.







Statistics: Basic statistics can be obtianed with one trail using the & (Combo cursor). It uses memories to keep track of a number of key indices. These can be fetched from the memories and displayed as in the table below. With a few other trails you can put the values in normalized form and calculate correlation coefficients. This table includes those calculations. The current maximimum number of rows is 250. I have been meaning to try this with perhaps 25 numbers for each variable and all completely random. I am curious what the chances are of seeing correlation coefficients that suggest a correlation even though all numbers were random.




Toy or No Toy?  If you have not yet guessed it, I enjoy math and sometimes use my freetime with T/Maker to investigate an issue that triggers my curiosity. A number of capabilities in T/Maker (some still to see) would not be there if I were only trying to satisfy the demands of the most common denominator of a user. They are included to allow myself and others like me to solve problems from a wide spectrum including some that require simulations. This is an example of one of those.

Roulette:The table below gambles on roulette with the optimal strategy. One sets what they are willing to risk and how much they want to win. You choose your lucky number as well! The strategy involves betting only on a single number with an amount that achieves your goal on your first win. That amount goes up to cover bets lost. The more you are willing risk for a smaller win, the better your chances. To avoid being responsible for a bad decision you might make, the example below of risking 10,000 to win 500 actually loses after 108 lost bets in row. It wins much more often than it loses. But a loss wipes out the gain from 20 wins.

This simulation is done in one trail so it could be shown one screen. Dividing tasks into a few trails be more natural. You can think of the trail as a program that runs over and over again until either the number of passes exceeds "Max Passes," the money is all lost, or the desired winnings are achieved.  Steps 1 to 4 initialize values in memories for the very first pass. Steps 5 through 8 place the remianing funds, update the number of passes, and check for a terminal condition. Steps 9 and 10 calculate the bet ("cel" stands for ceiling and forces the bet, if possible, to be the whole number big enough to achieve the desired winnings). Step 11 rolls the dice. Step 12 handles a losing bet. Step 13 handles a winning bet. In either case, the trail is restarted which would exit if a terminal condition has arrived. At the top of the screen is the "heavy" math toolbar to remind you of what's available.

Why is this the optimal strategy? Like all casino games, the odds favor the house. When you bet on more that one number, part of your bet is actually betting against other parts of your bet. The more money that gets to the table, the more slices of it the house is expected to get. The odds pay you as though there were 36 numbers on the wheel but there are 38 when you include 0 and 00.



Here's a video of a number of spins. Watch the Pass count and the This Bet size.


The Quadratic:  Real life math is generally about applying known formulas to known values to get an estimate or understanding. Finding solutions to equations or points where lines intersect is more about scientific pursuit than managing your home or even small business.  Part of algebra includes this famous formula which can be a nightmare for some students. I thought I would put in a table that solves it for the coefficients a, b, and c.  Pushing the Compute button displays the solution if there is one in real numbers and prepares a list of numbers for the chart to the right. The Show button would show the chart.



The necessary designations for the graph values were put in the table manually on the Graphs input page.  I first did the graph as a single line showing the parabola f(x) versus x. That was rather boring and quite low on information value. I then tried the presentation above. The value of x is shown as a red bar which starts off negative and climbs. The blue bar shows the value of the function. You can see the two solutions where the height of the blue bar is zero. When things are easy, a spirit of trial and error discovery is encouraged. That often leads to something unexpected and better.


Keywords : Spreadsheet, tables, t/maker, tmaker, arithmetic, remedial math, algebra, quadratic equations, silmultaneous linear equations, word problems, computational skills, math for everyone, spreadsheet for everyone, elementary school spreadsheet, problem solving, problem solving before algebra, spreadsheet for 10 year olds, two dimensional hand calculator, arithmetic syntax for spreadsheets, practical math, math for the real word, usable math, few mistakes, fewer mistakes, easy to understand, intuitve, visual syntax, like writing on a blackboard,sensible, practical, useful, straightforward, user friendly,
fun, enjoyable, low stress, easy to use, math for dummies, spreadsheets for dummies, do not need algebra, algebra not required, only arithmetic needed, no algebraic formulas, no cell names,
memories, make your own names for memories, left to right order, no precedence, no parentheses, mortgage function, net present value, discounted value, growth rate, trigonometry, sine, cosine, tangent,
logs, exponents, Peter Roizen, Cubberley, University of California at Berkeley, Cal, Palo Alto, I Hate Algebra, non-algebraic solutions and notations, programmable calculator, iterations, convergent solutions, probablities, optimal strategies, linear programming, statistics, correlation coefficients, standard deviations, conditional logic