<p>I'm not aware of such resources, and I expect that there wouldn't be. These are great problems, but you (hopefully) only need to do a few of them until the concepts click into place.</p>
<p>I didn't know these were called trace table problems, but I have often provided them to struggling students in three different contexts:</p>
<ol>
<li><strong>Absolute beginners</strong>, where it helps students understand the ideas of assignment and execution order</li>
<li><strong>Strugglers</strong>, where it helps students understand whatever has them lost, and</li>
<li><strong>Students working on very low-level problems</strong>, such as assembly, or on processor design.  Here it is more of a basic survival tool. There are few, if any, meaningful variable names, and working your way through the values is a straightforward way of figuring out what is going on.</li>
</ol>
<p>And this gets me to why I don't think you'll find a specific resource for problems like these: in all three of these scenarios, the actual prompt is the specific code we're studying.  Tracing the values is just a tool to understand the code that is in front of you.  The value-add (and the overarching purpose) comes from that code, not from the trace table per se.</p>

CC BY-SA 4.0
2020-09-04T11:25:43.143Z
2020-09-04T11:25:43.143Z
Ben I.
<p>A trace table problem is code that you follow along by hand and fill out variable values at each line. For example.</p>
<pre class="lang-py prettyprint-override"><code>0  msg = 'hello'
1  num = 5
2  num = num + 1
3  if num &lt; 6:
4      msg = 'goodbye'
5  print(msg)
</code></pre>
<p>The table is filled out with variable values at each line number.</p>
<pre><code>line | num | msg     | 
0    |     | 'hello' |
1    | 5   | 'hello' |
2    | 6   | 'hello' |
3    | 6   | 'hello' |
4    |     |         |
5    | 6   | 'hello' |
</code></pre>
<p>This would be for a collection of beginner language problems, to provide practice and review understanding of programming language operations. These are the CS 101 style problems of what does this print, or what is x at the end of this. An initial topic list might be as follows.</p>
<ul>
<li>variable declaration</li>
<li>function declaration</li>
<li>function calls</li>
<li>if / else if / else</li>
<li>for / while</li>
<li>arithmetic</li>
<li>scope</li>
<li>asynchronous</li>
</ul>
<p>Are there any resources or existing collections for these types of problems? Specifically looking for Javascript but I can adapt other problems to the language.</p>

<pseudo-code><problem-structure>
Are there problem sets for trace table problems? If not, what are some good topics to cover?
# Are there problem sets for trace table problems? If not, what are some good topics to cover?

(Asked by: username_0 on 2020-09-04)

A trace table problem is code that you follow along by hand and fill out variable values at each line. For example.
0  msg = 'hello'
1  num = 5
2  num = num + 1
3  if num < 6:
4      msg = 'goodbye'
5  print(msg)

The table is filled out with variable values at each line number.
line | num | msg     | 
0    |     | 'hello' |
1    | 5   | 'hello' |
2    | 6   | 'hello' |
3    | 6   | 'hello' |
4    |     |         |
5    | 6   | 'hello' |

This would be for a collection of beginner language problems, to provide practice and review understanding of programming language operations. These are the CS 101 style problems of what does this print, or what is x at the end of this. An initial topic list might be as follows.

variable declaration
function declaration
function calls
if / else if / else
for / while
arithmetic
scope
asynchronous

Are there any resources or existing collections for these types of problems? Specifically looking for Javascript but I can adapt other problems to the language.

**Tags:** pseudo-code, problem-structure


---

## 1 answers

### Answer by username_1 on 2020-09-04. Score: 1

I'm not aware of such resources, and I expect that there wouldn't be. These are great problems, but you (hopefully) only need to do a few of them until the concepts click into place.

I didn't know these were called trace table problems, but I have often provided them to struggling students in three different contexts:

1. **Absolute beginners**, where it helps students understand the ideas of assignment and execution order
2. **Strugglers**, where it helps students understand whatever has them lost, and
3. **Students working on very low-level problems**, such as assembly, or on processor design. Here it is more of a basic survival tool. There are few, if any, meaningful variable names, and working your way through the values is a straightforward way of figuring out what is going on.

And this gets me to why I don't think you'll find a specific resource for problems like these: in all three of these scenarios, the actual prompt is the specific code we're studying. Tracing the values is just a tool to understand the code that is in front of you. The value-add (and the overarching purpose) comes from that code, not from the trace table per se.


---

