<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE CAT [ <!ENTITY nbsp  "&#160;"> ]>
<CAT xmlns:cat="http://www.w3.org/TR/html4/" version="2.0"> 
<cat:title>Array Defining Features Matrix</cat:title>
<cat:author>Kate Deibel</cat:author>
<cat:date>March 30, 2004</cat:date>

<cat:technique>Defining Features Matrix</cat:technique>

<cat:purpose>
<p>
This CAT allows instructors to find out if students understand the similarities and differences between an array of integers and an integer variable.
</p>
</cat:purpose>
<cat:activity>
<p>
Fill out the following matrix. This matrix lists some conjectures and it's your job to decide if these hold under two conditions. The first condition is that of an integer variable and the second is that of an array of integers. Please complete the table with '+' or '-' labels.
</p>

<br></br>

<table border="1">
<tr>
<td>
Conjecture
</td>
<td>
Integer variable (named rainfall)
</td>
<td>
An array of integers (named rainfall)
</td>
</tr>
<tr>
<td>
Holds data
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
Holds multiple values simultaneously
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
Can use = to assign to another variable
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
When used as a parameter, it is passed using the call by value convention
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
rainfall[0] is syntactically valid
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
Can compare to another variable using ==
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
</tr>
<tr>
<td>
rainfall = {1,2,3,4,5} is legal
</td>
<td>
&nbsp;
</td>
<td>
&nbsp;
</td>
</tr>
</table>
</cat:activity>
<cat:solution>
<br></br>

<table border="1">
<tr>
<td>
Conjecture
</td>
<td align="center">
Integer variable (named rainfall)
</td>
<td align="center">
An array of integers (named rainfall)
</td>
</tr>
<tr>
<td>
Holds data
</td>
<td align="center">
+
</td>
<td align="center">
+
</td>
</tr>
<tr>
<td>
Holds multiple values simultaneously
</td>
<td align="center">
-
</td>
<td align="center">
+
</td>
</tr>
<tr>
<td>
Can use = to assign to another variable
</td>
<td align="center">
+
</td>
<td align="center">
-
</td>
</tr>
<tr>
<td>
When used as a parameter, it is passed using the call by value convention
</td>
<td align="center">
+
</td>
<td align="center">
-
</td>
</tr>
<tr>
<td>
rainfall[0] is syntactically valid
</td>
<td align="center">
-
</td>
<td align="center">
+
</td>
</tr>
<tr>
<td>
Can compare to another variable using ==
</td>
<td align="center">
-
</td>
<td align="center">
+
</td>
</tr>
<tr>
<td>
rainfall = {1,2,3,4,5} is legal
</td>
<td align="center">
-
</td>
<td align="center">
- (this is tricky since this isn't a declaration of the array; this is not valid notation in an assignment statement)
</td>
</tr>
</table>
</cat:solution>
<cat:analysis>
<p>
The following must be done out of class:
</p>

<ol>
<li>In a first pass, mark and count the number of incorrect answers. Also, mark any answers that you find surprising.</li>
<li>For each question that has a significant (your judgement call) of incorrect answers, do the following:
<ol type="a">
<li>Look through the answers to these questions.</li>
<li>Attempt to identify the nature of the most common errors that are made.</li>
</ol>
</li>
<li>Discuss these errors in class, using the common mistakes that you identified.</li>
</ol>

<p>
In-class feedback can be done by having students write or say out loud their own answers, but caution must be taken to avoid embarassing or ridiculing a student for making mistakes.
</p>
</cat:analysis>
<cat:variant_uses>
	<cat:variation>Have students write short explanations for their answers in the matrix.</cat:variation>
	<cat:variation>Have students correct any names that score a minus in any column.</cat:variation>
	<cat:variation>Have students work in groups to complete this activity. The instructor may want to circulate throughout the groups to ensure that each group is making progress. After the groups have completed their matrix, the instructor can ask for volunteers for each item. Be sure to ask for explanations as to why they assigned a plus or minus to each column.</cat:variation>
	<cat:variation>Have students work individually on their problems and form a small group to discuss their answers.</cat:variation>
</cat:variant_uses>
<cat:classification>
<cat:assessment_goals>
	<cat:goal>Develop analytic skills</cat:goal>
	<cat:goal>Improve memory skills</cat:goal>
	<cat:goal>Learn terms and facts of this subject</cat:goal>
	<cat:goal>Learn concepts and theories of this subject</cat:goal>
</cat:assessment_goals>
<cat:topics>
	<cat:topic>Arrays</cat:topic>
	<cat:topic>Variables</cat:topic>
	<cat:topic>C</cat:topic>
	<cat:topic>C++</cat:topic>
</cat:topics>
<cat:participation_level>
</cat:participation_level>
<cat:time>
	<cat:preparation_time>MEDIUM</cat:preparation_time>
	<cat:class_time>LOW</cat:class_time>
	<cat:in_class_analysis_time>LOW</cat:in_class_analysis_time>
	<cat:out_class_analysis_time>LOW</cat:out_class_analysis_time>
</cat:time>
<cat:instructor_response>
	<cat:response>Lecture</cat:response>
	<cat:response>Next Day Summary</cat:response>
	<cat:response>Class Discussion</cat:response>
	<cat:response>Small Group Discussions</cat:response>
	<cat:response>Homework</cat:response>
</cat:instructor_response>
<cat:device_enabled>Has Been Enabled</cat:device_enabled>
<cat:related_topics>
	<cat:topic>Variables</cat:topic>
	<cat:topic>Type</cat:topic>
	<cat:topic>Classes</cat:topic>
</cat:related_topics>
</cat:classification>
</CAT>