Middle School Computing with Robots: 2009
Overview of the Middle School Experience
This past semester two groups of middle school students, ages 11-14, participated in a study wherein they were taught computing. The aim of the study was to attempt to elicit why people, particularly women, do not gravitate to computing, and attempt to change their attitudes towards computing in general. We used robots throughout the course in order to achieve this goal. The course met once a week for an hour and a half and met over the course of 8 weeks. One group was unable to finish the curriculum due to scheduling problems and only finished 6 weeks of the curriculum.
The following is a copy of each week's curriculum, the goals of the course, notes about each piece of curriculum, and conclusions about how the course ran.
Pre-Course and Other Logistical Notes
Total students: 12 (5 Girls, 7 Boys)
Age Range: 11-15, 6th through 9th grade
Originally, only students from one school, a girl’s school, were supposed to take part in the course. However, there was not much participation; only 6 students signed up, 2 of whom were in the 9th grade. The head of the school determined that students playing sports, which had already started, could not take the course despite there being no regular conflict between the two activities. This resulted in low participation. Though this implies that students would rather play sports than learn computing, we cannot make this assumption, however obvious it may seem. The commitment to sports had to be made earlier than the commitment to computing, which may have affected their decision. Because of low participation, we looked to another school to boost our numbers. 7 students from this school participated, all of whom were male and from the 6th grade. Though this number seems low, it is actually not: this school only has students through the 6th grade, and the class size of the 6th grade is 16 students, making the number of students in the class nearly 50% of the total class. In addition to this, it seemed that all the girls in the 6th grade played field hockey (a prior commitment), practice for which occurred on the same day of the class. The only male that did not participate in the class also had a prior commitment. In the middle of the course, the school scheduled a field trip to Bryn Mawr to do some computing with the whole class. The trip was a huge success, many of the girls, and the boy that could not participate, requested that the course be moved to a different day. Data on how many students would actually be interested in taking the class will be acquired very shortly.
3 students dropped the course, all of whom were female. 1 dropped the course stating that it was not what she expected. She only attended 1 class. Another 2 students dropped the course due to a new theater conflict 6 weeks into the course. This commitment was a larger commitment than computing, meeting everyday after school. One student was an actress, the other working on costumes.
The boys class started later than the girls class.
Originally, the girls group was forced to walk to Bryn Mawr because their school could not provide transportation. This cut 1/3rd, at times more, out of each class. After watching several classes, the school decided that they should provide transportation. It is not clear whether they had realized that itwas absolutely necessary in maintaining the integrity of the course, or if it had just been acquired. Throughout the course, lateness was a problem with the girl's group.
Goals and Methods
Though teaching computing was the overarching theme of the course, the main goal of the course was to stimulate young people's interest in computing, and inspire them to go further in the field. That being said, one of the largest goals of the project was to make computing both an educational experience but a very fun, interesting experience.
Academically speaking, the course focused far more on general problem solving, and computing at a higher level, than focusing on things like syntax or mastery of the python programming language. For example, the course frequently claimed that having a correct and strong algorithm is the most important part of solving a problem. Additionally, the course attempted to have students master three areas of general computing: sequential reasoning (e.g. putting instructions in the right order), understanding of loops, and understanding of conditionals.
The class generally had the same format each time of equal parts lecture (though participation was extremely encouraged), group activity, and individual programming project. The individual portion ensured that students would have time one on one with a teacher. We found that having two teachers in the room was necessary to ensure that everyone got individual time. The group activities were mainly active and often kinesthetic. Activities were meant to stimulate the students, keep them engaged, and enjoying themselves. Each individual project was chosen because of its appeal, as well as the students ability to finish them within the session. The lectures were meant to address both visual and audio students. A print out, filled with pictures, of the lecture notes was distributed to students each day. Additionally, the lecture provided time for questions, to go through interactive examples, and let students share their thoughts with the class.
Strong Areas: Students really enjoyed having open discussions about what robotics and computing are, and what AI is. Some of them even had a grasp on what programming might be like and could express, in plain English, simple AI algorithms (such as solving a maze).
The students really enjoyed and often would not stop driving their robots around the room and doing the maze
Weak Areas: Because of the shortened time not all the students had a full go at driving their robots through the maze into the pyramid of doom.
Strong Areas: Like the girls group, the boys really enjoyed the open discussion questions provided for them and made very astute comments about programming and artificial intelligence and robots.
Weak Areas: Also similar to the girls group, the boys did not have time for everyone to go through the full maze, though most stayed a few minutes late to finish.
Strong Areas: The students had no problem understanding the concept that "robots only do as their told" and formulating algorithms to draw shapes. Many of them made the observation that all of their code repeated, and asked if this could be avoided, almost predicting our next class. Many of them were also able to draw multiple shapes.
A particularly insightful moment occurred while watching a student alter code from a function we used to draw a triangle. She was attempting to draw a square. She added an extra two lines of code to do this, but did not change the values of the robot's turns, and thus, the robot would turn at the angles required for a triangle. She asked me why it did not work. It only took a simple gesture to enlighten her; as soon as I made an "angle" shape using my hands, she determined the problem, and even figured how to alter her turns to solve the problem. Another insightful moment occurred while debugging another student's code. The student had accidentally used a period, rather than a comma, in one of her forward() functions. The result created a strange, rectangular shape rather than a square. I asked her to reenact her code, pretending to be the robot. When she took on this role, it reminded her to read the code very closely (robots only do what they are told), and she found the error.
Weak Areas: Time was the largest issue, however, the girls were also frustrated by the inconsistencies of the robots (due to low battery or friction).
Strong Areas: Like the girls group, the boys caught onto the main concepts very quickly, some of them even had time to draw multiple shapes.
Weak Areas: Inconsistency of robots was a complaint, but more interesting was the attention span of the boys. Often times they got distracted and would rather watch their peer's successful program runs than finish their own.
Strong Areas: The girls did not have much trouble digesting the concept of loops, at least generally speaking, and greatly enjoyed writing their dances. I think that they were excited to have an open ended, more creative type of assignment. Time was no longer an issue because the school acquired transportation for the girls.
Weak Areas: It was at this week in the curriculum that weaknesses in the girls basic syntax knowledge began to show. They couldn't remember basic things like "def funcName()" or where to put colons. Indentation was automatic, but they often did not know what to do in order to stop writing code that would be part of a loop and start writing code that wouldn't be part of a loop. Additionally, the explanations of the range() function in the Syllabus were much too complicated for this point in the course and I recommend removing them.
Strong Areas: The boys were very, very excited to work on this project, more so than I expected, as dance is often construed as a "girl activity". They took to the concept of loops very easily. They were also very pleased to have to use youtube for this assignment.
Weak Areas: The boys, like the girls, also had very similar troubles with syntax. Focus was again another issue with the boys, however, in this class it took on the form of youtube. Some boys went through upwards of 10 songs before they began programming. I found that imposing a limit upon them helped to solve this, it might also be helpful to give them a selection of songs to choose from.
Strong Areas: The girls greatly enjoyed the madlibs activities, asking to do it several times over. They digested very easily the idea of setting a variable and referencing variables (save one concept). They also had no problem understanding how to use variables within functions e.g. foward(x,y). The Braitenberg vehicles activity was fun for the girls, but not quite as exciting as other topics.
Weak Areas: The students had a lot of trouble understanding statements in which variables referenced themselves (e.g. x = x + 5). This even baffled the older students. This problem was solved with one student whom I met with for tutoring on a weekly basis (non-robot tutoring). We did a kinesthetic activity acting out code, using boxes as variables, and batteries, the only item which I had in abundance at the moment, as the "value" of the variable. If a box had 5 batteries in it, then it had a value of 5. This seemed to help very much and I would recommend it ihttp://wiki.roboteducation.org/wiki/index.php?title=Middle_School_Computing_with_Robots&action=edit§ion=7n the future
Strong Areas: The boys, like the girls, loved the madlibs activity. Interestingly, within that activity, every boy chose "the race" as their madlib of choice as opposed to "little red riding hood", whereas with the girls there was an equal spread between the two madlibs. The boys seemed to really enjoy the Braitenberg vehicles more than the girls. They wanted to create their own Braitenberg vehicles other than the one I described to them, and we had a long discussion at the end about different ones we could think of. One came up with a particularly interesting example of "nocturnal", that was stimulated by darkness and slowed down by lightness.
Weak Areas: Like the girls, the boys had a lot of trouble with self-referential variables. They attempted to solve the problems like they would in math class, and were almost unwilling to stop. It might be good to avoid this topic in the future as it is not particularly relevant to anything we do in the course, perhaps above their age level, and only a source of frustration.