Sunday, October 16, 2016

Learning Mathematics by Making Games

“The natural mode of acquiring most knowledge is through use leading to progressively deepening understanding. Only in school and especially in SME is this order systematically inverted. The power principle reinvents the inversion. [Seymour Papert, 1996]”
It is always a treat reading Papert for the way he criticizes so boldly about the wrong perspectives of traditional education methodologies. He is also so good in pointing out explicitly different and much better perspectives for learning. What amuses me most is his tendency of introducing so called complex concepts at much younger aged students.
I was fascinated with the principle “Project before problem” especially it captures so many reasons against traditional methods and so many principles for the types of education we would want in the future. Before stating my idea for learning math I want to again quote from Seymour Papert:
““Kafai's fourth graders did more and better mathematizing and much more problem solving in making video games than all the word problems in all the algebra texts””
The Idea: To make a game that would be predictably played by the gamer.
The game would be about simulating a business. The player (Named: Alice) is about to open a business, a flower shop, starting with a small amount of money and a shop with a number of a type of flower. Customers come at random times but not very frequently. Within the first two minutes after selling to some customers the number of flowers Alice started with is finished and now Alice needs to buy some more flowers.
Alice visits the flower wholesale shop. There Alice would also find that there are other types of flowers which is higher priced but with better yields. Alice would always try to maximize the profit by maintaining the inventory so that the good customers would not go with empty hands and in addition to that to expand the business by introducing new types of flowers.
It is not a good thing for the gamer to have no challenge at all. The game need to produce goals for the gamer to achieve based on which the gamer would level up which would be required to unlock more interesting game features (e.g. Business deals, Plant own flower trees, etc). Some kind of negative event is also a good thing to keep as part of the experience (e.g. like some kind of pesticides which may destroy all the flowers, or maybe some gangster which frequently visits for money etc).
Game Maker’s Point of View:
Now think from the game maker’s point of view, how many types of flowers to keep, how to set the prices, how frequently the customers shall come and for what types of flowers and with what price in mind? These all questions are dependent upon what type of experience the game maker would want for the gamer to have.
The game needs to be set up in a way that the gamer would be busy all the time and has some challenging task to do. Setting up the prices for each of the flower types can be a linear function of time taking into account how much time the gamer would need to earn enough profit including all the facts of negative events.
The two minutes mentioned earlier is actually not so arbitrary, as it would be a very boring game if the player would need to play the sequence of events (i.e. waiting for a customer, sell the item) for too long. On the other hand, it is also not very good a game if the timing of each event be absolutely fixed (i.e. First customer would come at 50 seconds after the starting of the game.), thus requiring the use of probability inevitably.
The goals that the game would produce need to be more interestingly calculated, may be with help of exponential functions again taking account of all the event types.
Conclusion:
This is just a brainstorming as was required for this blog. But I hope it is evident making a game such as a business simulation is a project requiring many of mathematical concepts. And I do like to argue that it would not be harder to make such games if sufficient mathematical functions are provided for the students than learning the same math concepts in the way they are to be learnt in traditional methodologies. At least this experience can be one which lets the students to have a deep connection with the mathematical concepts they would need for the project of making the game predictably engaging for its gamers.

Fai—Thinking Math with Scratch

One way computational literacy can support mathematics learning is that students can use computational power to offload some of the mechanics that, without computer, students have to go through in order to engage with mathematical ideas. For example, it takes a lot to construct with paper and pencil some geometrical figures before students can investigate their properties. Construction may help understanding, but some aspects of paper-and-pencil construction can be cumbersome. Students can use Scratch to construct those figures. That is very important; however, it is unclear how programming helps with the understanding.

Recently, I have been asked to think about how to support students to develop institution about derivatives and antiderivatives in ways that connect to algebraic manipulations. I find it hard to do so, because most activities I think about develop institution of the underlying mechanisms that use numerical approaches that I am still not sure how to connect to typical polynomial objects. 

Anyway, to start, I thought about line integral. We can ask students to use the Scratch Cat to measure the length of any line. Before starting with Scratch, we can talk about how to measure any lines/curves. One way to do that is to break a line into little line segments and add them up. Students can program the Cat to do that. Then we can talk about how to get the length to a closer approximation of the length. This should help students think about what a line integral means. 

I think one way to assess the line integral program is to look at how each iteration of the program moves toward systematicity. 

Darphin - Exploring Mathematical Reasoning - Area & Perimeter

The relationship between area and perimeter could be explored with scratch if students imagined themselves as competing real estate developers.  I imagine students creating a game where you build houses.  Students could choose to make this game multiple players or not.  Students could propose various goals, for example build houses with the most area (house would sell for more) or built the most amount of houses (more sales). Posing limitations on players resources could cause exploration of proportional and nonproportional relationships.  Below are just a few that came to mind.
  • Say players must purchase building blocks for perimeter - students become conscious of how perimeter affects area.  
  • Requiring each building built to have the same perimeter could lead students to explore different shapes and which shapes use perimeter more efficiently in terms of area.
    • I would assume students would also find shapes like circle pose other limitations on the game like loss of available space for other buildings (if players were not allowed to create irregularly shaped buildings).
  • If students could only create squares and earned money (points) for area but had to spend money (lost points) for perimeter they could find that area and side length is not a proportional relationship for squares.
  • Limitation on time to build a building could help students develop concrete mental “rules” about these relationships. The players would need to have a grasp the relationship implications between perimeter and area quickly when it was their turn to build.

Assessment
When thinking of a math concept to be explored, I tried to consider, hopefully somewhat successfully, principles Papert discussed in An Exploration in the Space of Mathematics Education.  Grover suggested “systems of assessments” to tackle the assessment concern with this type of learning.  I did not find these “systems of assessments” as drastically different from how teachers already assess student learning in elementary settings.
Considering my proposal with area and perimeter, a pre- and post-test would be useful for gauging concepts developed.  Observing students play the game and narrating their choices could demonstrate relationship reasoning developed.  

Huang - Math in Scratch

I thought I was good at math until I got to multivariable calculus and suddenly, nothing made sense anymore. I feel like having some sort of computational model or program in that class could’ve been really helpful. But anyway, for grade school math, one of the things that I always found difficult was those word problems that ask you to figure out the speed of some moving transportation device given a certain time or distance, etc.

Like this problem from this website: http://purplemath.com/modules/distance.htm.
A passenger train leaves the train depot 2 hours after a freight train left the same depot. The freight train is traveling 20 mph slower than the passenger train. Find the rate of each train, if the passenger train overtakes the freight train in three hours.

Or this problem (http://www.shelovesmath.com/algebra/intermediate-algebra/systems-of-linear-equations/):
Lia walks to the mall from her house at 5 mph.  10 minutes later, Lia’s sister Megan starts riding her bike at 15 mph (from the same house) to the mall to meet Lia.  They arrive at the mall the same time.  How far is the mall from the sisters’ house?  How long did it take Megan to get there?

I don’t know what it was, maybe it was just too many words for me to read or that I didn’t really understand the concept of or relationship between speed, time, and distance, but I always found these problems challenging. Maybe it would be helpful for learners to better understand these problems if they could use programming to work through it. I’m not exactly sure what that would look like in terms of the actual program that we would ask students to write. It would be great to represent this visually, though. And maybe someone else will have an idea.


After this past week with the USN kids, one thing that I have been struggling with is how to present concepts to learners who are programming. Programming seems new enough to them that there are many challenges in just the language; how can you entice a learner to also care about the concepts? Is it enough to just provide them with the intuition or do we actually need to show learners that this concept we are teaching them plays out in their program in this way? I am afraid just giving them intuition would provide too superficial an understanding, like the concerns raised in the article that looked at different collision scenarios (Simpson, 2005). What can we do to make sure that these concepts are getting through to our learners while they are programming?

Bergin: Multiplication and Division Link Visual Representation


I might attempt to create a visual situation that displays the relationship between multiplication and division. I acknowledge that having the students create a game may be interesting and would certainly worthwhile. But I think in order to allow them to focus on what I would want them to achieve I would begin by setting up the main points of the game then instruct them on how to remix my work.
To be more specific I would create a circumstance that depicted a random display of objects such as bouncing balls. I would prompt the students by presenting a real world problem such as we need to collect all of these balls into baskets. How many different baskets will we need to collect all of the balls if each fit two, three, four, five , six, etc. I would encourage students to collect the balls into the baskets and after observing the visual representation see if they could write in their notebooks, a number sentence that would describe what was going on in each picture. As the students began to play with their games I would encourage their observations and have informal dialogue with them as a walked around the room. My goal would be for them to draw the connection that each set of groups could represent a fact. For example, 2 baskets full of 6 balls are all 12 balls. I would see if they could make the connection that 6 baskets would only need to hold two balls. Beginning the conversation about related facts. It would also be interesting to assess whether all students choose multiplication to explain the visuals they were seeing, or rather if some said the 12 balls were divided into 3 groups of four each. This I hope would make the link between division and multiplication very tangible, therefore creating a deeper understanding of the topic.



Bell - Math in Scratch and Assessments

We could do a simple extension of Papert’s turtle geometry activities from Logo or Boxer in Scratch to incorporate CT and geometry concepts. Those activities are well-established and seem to work well for learning both the math content (at least exploring geometry in a new way) and some programming knowledge. Although you can easily do the turtle geometry activities in Scratch, the more flashy parts of Scratch kind of make the geometry stuff seem boring to kids. Why would kids want to keep playing around with drawing shapes when they can paint sprites and backgrounds, play with characters and sound, make stories, etc.? I think it would be fine to use Scratch in this way in a math class, but doing it in an after-school or more informal space seems less appealing to some kids (some would enjoy it – and there’s one girl in our math group now who’s been enjoying drawing really complex shapes – but some would be bored). But maybe if we actually followed the activities that Papert created for the Logo turtle in Scratch, it would be interesting (he seemed to have lots of success with those activities with kids). 


To assess their CT skills, we can start by looking at the code included in their projects to see what skills they use, then interview them about it (how they developed their projects, if they got any help with the ideas, if they used pieces from other projects they found on Scratch, what they did if they ran into trouble/found an error, etc.). The interviews are important to reveal if kids actually understand the concepts they’re using in the code. Really, we should have a “system of assessments” (Grover, Pea, & Cooper, 2015) to get a more comprehensive view of student learning, rather than just relying on students’ code or multiple-choice tests. In that case, we’d want to look at students’ projects, interview them about their projects, and give them additional programming problems to solve. This is like what Brennan and Resnick (2012) talked about in last week’s reading.

Saturday, October 15, 2016

Hutchins - Math Lesson Plan Using Scratch

The day I was asked to take over the computer science curriculum at my previous school I was given the choice of continuing a programming project that students were working on with the previous instructor or start from “scratch” (pun not initially intended). The students were working on building a calculator through Visual Studio using C#. To me – I felt sorry for the students because I thought this could quite possibly be the most boring programming assignment for a high school student. They all owned calculators or could use a calculator on their home or school computers. Why would a high school student be remotely interested in building one? And in C#, no less.

Based on our readings and class discussions – I think this project may be potentially useful at a younger age (middle school) using Scratch. Each digit/key would be a sprite programmed to do a certain task or representing a certain value (a value that must be saved in the flow of the program until the equal sign is clicked). The assignment plan:

1.     Students work in groups to:
a.     Decide on look of calculator (choose images for sprites)
b.     Assign tasks (one student may be responsible for the sprites that represent numbers, another student may be responsible for + and -, etc)
2.     Each individual member of the group is responsible for coding specific sprites based on the initial group meeting
3.     Lab Meeting: groups given time in class to discuss their initial findings on coding of the sprites. Did they have similar findings/algorithms? Should they change their initial plan based on their progress?
4.     HW: Individual assignments due
5.     Lab Day: Groups will be given lab time to combine their code, test their calculator and finalize their calculator for submission.

The overall flow of the assignment may not be optimum (for instance, maybe it is better to complete the entire assignment in class with teacher supervision).

In terms of assessment, the easiest assessment piece would be the accuracy of the calculator. Do sprites do as intended? It would be worthwhile to do a pre- and post- assessment for this assignment on topics ranging from adding, subtracting, multiplying and dividing to an understanding of components of an equation (in x – y, what is the relationship of y to x? (maybe not the best example)). This would allow for a teacher to see if there is an improvement in understanding the math concepts addressed by building a calculator.

In terms of computational thinking, I believe a quality rubric focused on abilities such as planning, debugging, collaboration is needed (as discussed on p3 of Grover and Pea, in reference to a Conley and Darling-Hammond article). In addition, the ability to build a calculator involves ideas or concepts necessary in object-oriented programming languages. In this case, each sprite is an object and each student group needs to correctly implement the appropriate relationships between the objects for the calculator to work. A more informal assessment could be completed that gets the students understanding of the relationships between sprites and how the relationships fit into the bigger picture of their submitted calculator.


I would love to hear what you all think – especially downsides or fixes you may have for this idea!

Friday, October 14, 2016

Karan Math

Papert and Sherin made clear that there a lot of opportunities to use programming to support math learning, from statistics to geometric constructions. I thought that it was interesting the Sherin was using traditional construction strategies to draw a perpendicular bisector. It seems like you could draw a bisector more purposefully with a program, because you could walk back exactly half the line, turn 90 degrees, and draw that line. I can see how you get a different understanding with traditional construction, but I wonder what that version buys us when we have new tools to think with now.

I also thought it was interesting how much Grover and Pea emphasize learning by doing for CT, but their pre-post assessments don't allow students to "do" in the same way that they would if they were working with the tool of the computer. They remind me a lot of the assessments we see in AP or college classes where students are asked to write out, predict the output of, or debug code without the tool of the computer that they have learned to think with. They artifact-based interviews seem to be more likely to provide a sense of how students see programming and what they can do with programming tools and what kinds of thinking they are engaging in. I wish I could see more of the rubrics they used for grading programming projects.

In terms of math projects, I could see having kids try to develop a tool to help them do a certain mathematical task efficiently and accurately, kind of like Fai's sliding number line for proportions. I think that would be best assessed with interviews based on their artifact where kids could explain why their tool was useful, how they built it, and what they wish it could do (that way you could get a sense of what they think the limitations are).

I could also imagine programming in scratch being really helpful for high school math, like algebra 2 and calculus, because you could write functions that show things like limits or areas under curve to get a sense of how those things can be built up iteratively or estimated and to get a sense of space for them. It could also be useful for projects like Megan's  2nd year talk with 1st graders - kids could use Scratch to define isometry as they rotate or reflect shapes and by moving shapes over each other to see if they are "exact copies" to check for congruence.

In all cases, I think that math knowledge could potentially be assessed with traditional math measures, but CT is harder to get at, because it is a way of thinking and not an output. I really think to assess CT you have to be watching what kids are doing and asking them about the choices they are making.



Monday, October 10, 2016

Misar- Continuing the comparison between the definitions of computational thinking

Brennan & Resnick

Breaks it down similar to Grover & Pea- re-categorized the elements they mentioned. Grover & Pea also does not include perspectives.
“We have developed a definition of computational thinking that involves thee key dimensions: computational concepts (the concepts designers employ as they program), computational practices (the practices designers develop as they program), and computational perspectives (the perspectives designers form about the world around them and about themselves” P. 3
Grover & Pea
“The following elements are now widely accepted as comprising CT and form the basis of curricula that aim to support its learning as well as assess its development: - abstractions and pattern generalizations (including models and simulations) - systematic processing of information - symbol systems and representations - algorithmic notions of flow of control - structured problem decomposition (modularizing) - iterative, recursive, and parallel thinking - conditional logic - efficiency and performance constraints - debugging and systematic error detection” (p. 39-40)
Brennan & Resnick
Computational concepts: “sequences, loops, parallelism, events, conditionals, operators, and data” p.3
Computational thinking practices: “being incremental and iterative, testing and debugging, reusing and remixing, and abstracting and modularizing” p.7
Computational perspectives: expressing, connecting, and questioning p. 10-11
Wolz et. al

Similar to Wing 2006 & 2008 about computational thinkingà problem solving, abstraction, decomposition, algorithms, parallel processing, debugging, redundancy

Also similar to Kafai & Peppler about the role that computational thinking can play in civic engagement

Weintrop & Wilensky associate computational thinking with math and science, while Wolz et. al link it to language arts and social studies
“We view computational thinking as a mode of problem solving that emphasizes the processes necessary to express a computing-intensive solution in a structured, dynamic way. The required skill set includes how to define and analyze a problem and implement and test the solution [NRC 2010; Wing 2010}.” p. 9:2
“As reported in the NRC “Report of a Workshop on the Scope and Nature of Computational Thinking” (NRC, 2010), computational thinking requires confidence in oneself as a creative innovator. Computational thinking is a higher-order skill, not a content area, thus teaching explicit concepts such as “iteration” should be subsumed within experimental skill development. Computational thinking requires students to become creators rather than consumers of technology.” p. 9:5
Computational thinking ….. is essential for understanding information access, aggregation, privacy and security….Skills in computational thinking, that is, in algorithm design, knowledge representation, abstraction from fixed cases, induction, and scale are crucial for information gathering, analysis, and synthesis…Computational thinking is thus essential to both producers and consumers of civic media.” p. 9:6

Above is a copy of the notes that I took as I was reading each article. I pulled back out my notes from the articles we have previously read and found that Wolz et al is more aligned with Wing’s first definition, and has a similar viewpoint about the predicted impact computational thinking will have on civil engagement and participation as Kafai & Peppler. I find it interesting that like Weintrop & Wilensky, Wolz is trying to apply computational thinking to what students are already doing; though he is associating it with language arts and social studies instead of science and mathematics. On the other hand, Brennan and Resnick provide a more concrete definition similar to the one provided by Grover and Pea- with a list of particular items that make up computational thinking. In the chart, I created a side by side comparison of the two definitions and underlined the concrete elements of computational thinking have in common.


When I think back to our last class, I remember our frustration over not having a clear definition nor a consensus about what computational thinking is, how do we enact it into our curriculum, and how can we create constructionist and collaborative environment to encourage students to enhance their computational knowledge and thinking. Looking at these definitions, I am seeing the researchers fall in line about computational thinking being something we can do without a computer and that it is already something we are doing. I disagree. I don’t think computational thinking is so broad. I think it can be embedded into several subject areas because of its flexibility, however, it does have distinct concrete elements that set it apart from higher-order thinking and problem solving. I disagree with Brennan & Resnick; while I think expressing, connecting, and questioning are important skills in developing computational thinking, I do not think that they are a part of it. I am interested in reading more articles similar to Grover & Pea and Brennan & Resnick to see if there is more of a consensus on their side on the elements making up computational thinking.