ILM+work+in+progress

All of the code is to be stored in subversion for backup and version control. Subversion files can be viewed by going to []. You need a username/passcode to enter. Joel or Vicki can give you that. A "getting started with Subversion" document is at [|subversion].

Vicki produced an ILM on Programming Style. It introduces programming standards. It shows (step by step) how they are applied to two pieces of code. It shows code from students in our data structures class and has students identify problems in code design and documentation. There is really no "applet" in this ILM as I haven't figure out what an applet would do. Both Dean and Steve Allan have been working with me on this.
 * Vicki**

Charles and Steve Allan have been asked to evaluate the complexity applet, and have given their feedback.


 * Don** is working on pulling the code from INETEST which allows a user to drop into an environment where they can enter/change a small portion of code and compile it with surrounding code which defines classes, libraries, variables, etc.
 * Sushil Dosi** will be working on this.

a. We need to give credit to the owners of the original code somewhere. b. Lets specify speed as a slider (instead of as a number you enter) c. Add a “DeleteAll” button. (You don’t have to show the items being deleted individually” d. When the user clicks “insert”, take the value the user has entered OR generate a random value (if the user has not entered a new value) e. Let’s change the color scheme. I think green and blue look ugly. I like the colors below better f. Allow the user to enter all the nodes of an entire tree by entering the nodes “by level”. So, for the tree below, the user would enter the string: “55 3 66 1 15 2 5 6 10 7”. Call the option “Tree Create”
 * Splay Tree Improvements** (**Sushil Dosi)**

Russ's Iteration Applet: Look under teacher published lessons Logan High School/Computer Programming/Iteration
 * Milan is working**

I think the "anatomy of a for loop" is good. I think the "Count Progressions in for loops" is good. "for" Loops From Count Progression could use some improvement. When you enter a loop, if it doesn't look exactly like what was expected, it says it is wrong. It would be nice if it could say, "No, your loop produces 5,4,3,2,1,0 .... Try again." It also doesn't let you edit what is there, but makes you start over each time. There are a few ways around the problems. The system could actually RUN the code that is submitted and see if it produced the correct results. This wouldn't be easy. There may even be an infinite loop. Perhaps a better way is to force the user to select between certain choices such as starting value, ending value, comparison (<=, <, =, >, >=, !=) and an increment/decrement value. The system would have to be smart enough to recognize a few forms of the loop, but it wouldn't be bad.

The "bunny hop" doesn't seem to work for me. I'm wondering if we need to have a ruler along the bottom to be able to see exactly where the carrots are. The method "bunny_hop" should really be hopTo (to indicate the parameter is the location where he lands. I'm not sure there is much to learn here. I just don't see many choices. More interesting examples could include: 1. Carrots are behind the bunny 2. Carrots are not a fixed distance apart - say they increase or decrease by a ratio. 3. Carrots could be in a 2D grid and bunny jumps to an x,y coordinate. That might be a good visual to see how two dimensional loops work. We could get a 3D grid if the bunny hopped to a given x,y coordinate and dug to depth z. 4. Other ideas?

The nested Loops:Quilts lesson doesn't have the specs. The idea is that we would give the students a pattern to recreate and (using some primitives) they create the pattern. I think it is a great idea. I'm just not sure what primitives we give them so that they use 2D or 3D loops to generate it. For the pattern shown in the ILM, the primitives might be something like (VERY SKETCHY): Color sequence = green, yellow

//Allow the user to select from a set of quilt blocks. Allow the user to select what parts of the block are what colors. Then, they use the block they create.


 * So, for the pattern in the ILM, it might look like:**//

for (col =0; col < 4; col++) for (orientation = 0; orientation <360; orientation+=90) drawBlock(row,col, orientation)
 * for (row = 0; row <3; row++)

She has finished: Hashing Heap maze searching dynamic programming **

Milan is doing a plan B report on assessment in the CSILM system**. Parham paper: This research shows an audience of fellow computer science teachers that there is benefit in testing college student's scientific reasoning skills and that the students increase their logical thinking skills in computer science classes when they are presented with real world problems, engaged in group activities, and given hands-on experiments.

This is exactly what we would want to show for our ILMs.

The Amelung paper specifically supporting computer science education with software components. They suggest things like: For self-assessment tests, students can be provided with instant result and/or be allowed to take a test multiple times. Answers can be annotated with explanations which are shown to the candidate in instant-results mode. Teachers can access detailed reports, providing an overview of the performance of all students. The reports can also be exported for further processing in a spreadsheet or statistics program. Tests and individual questions and answers can be imported and exported using the IMS QTI v2.0 standard [8]. These are things we aren’t currently doing. Let us know how important these things are and perhaps give us ideas for implementing them. We have the ILMs – but don’t have a great way of providing feedback to both teacher and student. Here are problems I’ve noticed: 1. If the ILM itself provides immediate feedback, sometimes the students don’t use the system the way we envisioned. They keep trying random things until they get the right answer or they just say things like, “The system said I didn’t do it right, but I couldn’t figure out what to do.” So, we have a problem of providing enough feedback without making it trivial. 2. Teachers want a fast way of accessing the students performance. Consult the getting started document for CSILM. In order to suggests improvements, you’ll need to know what we have currently. Try creating a class of your own and having “fake students” answers questions so you see how the grading would be done. Now CSILM creates a spreadsheet of student answers for the teacher to grade – but grading is manual. Teachers would like something automatic, but that isn’t trivial, particularly since many of the answers are in text form. Some have suggested we need a way for the output from the applet to make its way to the answer sheet. We have asked to get a pdf of the current state of the applet added to the spreadsheet of results, but that will still involve manual grading. 3. What we really need is a way of telling whether or not ILMs improve learning. We would like to be able to say such things as students improve their logic skills, students score better on exams, students are more engaged, students learn the concepts in less time, fewer students are left behind, etc. The basic question is, “It is worth using ILMs?” We likely won’t be able to say they are better in every way – but they should be better in some way(s). What are they? A possible overview of your report is as follows: How is learning typically assessed in computer science classes? [from your interviews as well as reading of papers] What are the shortcomings of such assessment? Goals we seek to achieve with Interactive Learning Modules. How have others assessed software enhanced learning? Recommendations for assessing ILMs. This would involve suggestions from other researches as well as some experiments you have done with students in the tutor room. So if you suggest a particular attitude/opinion survey students fill out, have some experience with that survey so we know we get something useful. If you suggest that students be asked particular kinds of questions, let’s put those into a few ILMs so we can report on what kinds of answers we get.

You are not expected to implement an assessment program and tabulate results, but tell us what we should do and have enough data that when we implement it we have a good chance of getting reasonable results. ** Kyle Feuz
 * Is working on a Cache Memory Simulator for Don.

Kyle has finished: Created the subversion manual. Boolean Logic Boolean Funnel Linked List Array Searching Updating the Complexity ILM to allow users to enter any runtime data into the system

For Data Structures he is working on:

Graph Traversal Disjoint Set Kyle, as you take CS classes, look for ILMs that could be used in the class. We would love to have your ideas for what ILMs you think would be helpful in class. Some may be able to build off of your current assignments.

It might be nice to include an option to see the Venn Diagram view. Starter code is at [|http://web-ext.u-aizu.ac.jp/~niki/courses/sccp/venn/index.html]. Another idea for venn diagrams is at []. Still another way to interact is at [|http://www.stat.tamu.edu/~west/applets/Venn.html]. Still another form of interacting with a Venn Diagram is at [] **

**Kyle Nelson**
Kyle finished all of the ones that Megan and James had designed. Kyle’s been working on the trouble shooting one to make it so a teacher can customize the type of problems.

Applets are available for the following (but need lessons created): Computer Hardware Introduction Computer System Builder Hardware Software Introduction Peripheral System Builder Ram Rom Quiz SimCir (modified the open source circuit simulation applet)

The security ones are Encryption Key User Management Symmetric vs. Asymmetric Encryption

There are two more that I don’t see uploaded, I’ll check with him. System troubleshooter Encryption Key Comparison

He’s now also working on new ones Chad gave him that all deal with network communication protocols like MAC, IP, TCP, DNS, etc.

Russ** We refined the Boolean logic ILM. The programmer notes were removed from the third activity. We got the Java applet to load a configuration file so that a starting circuit is loaded as the applet begins. We have not been able to do that within the CSILM framework yet—an applet gets wrapped in some html and we do not know how to work with that yet. At this point, the applet is running from a web page on the csilm machine but not from within the CSILM server itself. The applet has several additional features now thanks to Kyle. We are working to modify the toggle switch so you can tell visually whether it is on or off. There is an icon to clean out the work area, an icon to load a previously built/saved circuit from a file on the local machine, an icon to load a circuit from a web site, an icon to save a circuit to the local machine and an icon to change the colors of the electrical components. These add some nice functionality. A teacher can have a circuit available for the whole class to access. If class time runs out or the student would like to save a circuit they are working on, that can be done. It also saves the color information. Different components/sections of a circuit can be colored so help focus the student on certain parts. We have a circuit stored on the web which they can load in the 6th activity which shows the OR gate and its equivalent with NAND gates simultaneously and which can be used as a starting point for the 6th activity. I liked the Venn diagram activity that Megan showed for “and”, “or”, etc. That would be a nice type of activity to incorporate to visually show AND, OR, NOT, etc. You could also have students work with simple circuits with the switches themselves demonstrating AND and OR something like this:

There is an NLVM titled “Attribute Blocks” which could be modified using Megan’s venn diagrams and Don’s suggestions to build a sorting circuit to group a subset of a collection of geometric objects based on Boolean logic and various properties such as size, shape and color. The lesson could also be extended with activities on DeMorgan’s laws and include Shannon’s contributions.

I incorporated homogeneous coordinates and transformation matrices in the Data Visualization ILM. I added some prototype java applets to show the structure of the translation, dilation and rotation matrices with sliders placed at the appropriate element locations so that students can see the effects of the transformation matrices on the given object (a triangle in this case) in the applet. I would like to see a java applet like the “Transformations—composition” applet in NLVM except using transformation matrices as building blocks that students could drag and drop and re-order to hit a particular target. After they get an understanding of how to apply the matrices and realize that they are associative but not commutative, I have another idea for an activity where the students have to set up the transformation matrices so they can view a data set in a simulated pixel coordinate space.