As you may know, I've been teaching a web programming course this year. I wrote previously about the work we did at the beginning of the year making interactive websites using the Meteor framework. Since then, we've spent time exploring the use of templates, event handlers, databases, and routing to build single page applications.
The latest assignment I gave students was to create an online school resume site with a working guestbook. I frequently discuss the importance of having a positive digital footprint online, and one of the most beneficial ways of establishing this is through a site created to share their work. Students worked last week to complete this and submitted their projects. We've had connectivity issues to the Meteor servers from China from school. As a result, some students used Meteorpad, which unfortunately means their sites aren't permanent.
Those that were successful at deploying, however, have persistent guestbooks that anyone can visit and comment upon. Some students added secret pages or like buttons to show that they have learned how to use the reactive features of Meteor. The students were excited when I said I would post links on my blog and have given me permission to share. Here is the set of deployed sites:
If anyone wants recommendations for a summer hire, let me know.
For more than a year now, my process of sharing student work involves me going around the class, snapping pictures on my phone, and uploading the results through a web page to my laptop. It's a lot smoother than using a document camera, and also enables students themselves to upload pictures of their work if they want, or if I ask them to. This is much smoother and faster than using a native application in iOS or Android because it's accessed through a web page, and is hosted locally on my laptop in the classroom.
I've written about my use of this tool before, so this is more of an update than anything else. I have cleaned up the code to make it easier for anyone to run this on their own computers. You can download a ZIP file of the code and program here:
Unzip the file somewhere convenient on your computer, and make a note of where this is on your computer. You need to have a Python compiler installed for this to run, so make sure you get that downloaded and running first. If you have a Mac, you already have it on your computer.
Here's what you need to do:
- Edit the submit.py file in the directory containing the uncompressed files using a text editor.
- Change the address in the line with HOST to match the IP address of your computer. You can obtain this in Network Preferences.
- Change the root_path line to match the directory containing the uncompressed files. In the zip file, the line refers to where I have these files on my own computer. These files are located in the /Users/weinbergmath/Sites/submitMePortable directory. This needs to be the absolute address on your file system.
- Run the submit.py file using Python. If you are on a Mac, you can do this by opening a terminal using Spotlight, going to the directory containing these files, and typing
python submit.py . Depending on your fire-wall settings, you might need to select 'Allow' if a window pops up asking for permission for the Python application.
- In a web browser, enter the IP address you typed in Step 2 together, port 9000. (Example: http://192.168.0.172:9000). This is how students will access the page on their computers, phones, or tablets. Anyone on the same WiFi network should be able to access the page.
That should be it. As students upload images, they will be located in the /images directory where you unzipped the files. You can browse these using Finder or the File Browser. I paste these into my class notes for use and discussion with students.
Let me know if you need any help making this work for you. If needed, I can throw together a screen cast at some point to make it more obvious how to set this up.
Last July, I posted a video in which I showed how to create a local, customized version of the Math Caching activity that can be found here.
I was inspired to revisit the idea last weekend reading Dan Meyer's post about teacher dashboards. The part that got me thinking, and that stoked the fire that has been going in my head for a while, is identifying the information that is most useful to teachers. There are common errors that an experienced teacher knows to expect, but a new teacher may not recognize is common until it is too late. Getting a measure of wrong answers, and more importantly, the origin of those wrong answers, is where we ideally should be making the most of the technology in our (and the students') hands. Anything that streamlines the process of getting a teacher to see the details of what students are doing incorrectly (and not just that they are getting something wrong) is valuable. The only way I get this information is by looking at student work. I need to get my hands on student responses as quickly as I can to make sense of what they are thinking.
As we were closing in on the end of an algebra review unit with the ninth graders this week, I realized that the math cache concept was good and fun and at a minimum was a remastering of the review sheet for a one-to-one laptop classroom. I came up with a number of questions and loaded it into the Python program. When one of my Calculus students stopped in to chat, and I showed her what I had put together, I told her that I was thinking of adding a step where students had to upload a screenshot of their written work in addition to entering their answer into the location box. She stared at me and said blankly: 'You absolutely have to do that. They'll cheat otherwise.'
While I was a bit more optimistic, I'm glad that I took the extra time to add an upload button on the page. I configured the program so that each image that was uploaded was also labeled with the answer that the student entered into the box. This way, given that I knew what the correct answers were, I knew which images I might want to look at to know what students were getting wrong.
This was pure gold.
Material like this was quickly filling up the image directory, and I watched it happening. I immediately knew which students I needed to have a conversation with. The answers ranged from 'no solution' to 'identity' to 'x = 0' and I instantly had material to start a conversation with the class. Furthermore, I didn't need to throw out the tragically predictable 'who wants to share their work' to a class of students that don't tend to want to share for all sorts of valid reasons. I didn't have to cold call a student to reluctantly show what he or she did for the problem. I had their work and could hand pick what I wanted to share with the class while maintaining their anonymity. We could quickly look at multiple students' work and talk about the positive aspects of each one, while highlighting ways to make it even better.
In this problem, we had a fantastic discussion about communicating both reasoning and process:
The next step that I'd like to make is to have this process of seeing all of the responses be even more transparent. I'd like to see student work popping up in a gallery that I can browse and choose certain responses to share with the class. Another option to pursue is to get students seeing the responses of their peers and offer advice.
Automatic grading certainly makes the job of answering the right/wrong question much easier. Sometimes a student does need to know whether an answer is correct or not. Given all the ways that a student could game the system (some students did discuss using Wolfram Alpha during the activity) the informative part on the teaching and assessment end is seeing the work itself. This is also an easy source of material for discussion with other teachers about student work (such as with Michael Pershan's Math Mistakes).
I was blown away with how my crude hack to add this feature this morning made the class period a much richer opportunity to get students sharing and talking about their work. Now I'm excited to work on the next iteration of this idea.
I've been collecting homework and checking individual problems this year. I grade it on completion, though if students tell me directly that they had trouble with a question before class (and it is obvious it isn't a case of not being able to do ANY of it because they waited until the last minute to try) I don't mind if they leave some things blank. I did this in the beginning since I had heard there were students that tried to skip out on doing homework if it wasn't checked. We do occasionally go over assigned problems during class, but I tend not to unless students are really perplexed by something.
I have lots of opinions on homework and its value. Some can use the extra practice and review of ideas developed in class. Some need to use homework time to make the material their own. In some cases, it gives students a chance to develop a skill, but in those cases I insist that students have a reliable resource nearby that they know how to use (textbook, Wolfram Alpha, Geogebra) to check their work. I don't think it is necessary to assign it just to "build character" or discipline. I read Alfie Kohn's The Homework Myth, and while I did find myself disagreeing with some aspects of his arguments, it did make me think about why I assign it and what it is really good for. I do not assign busy work, nor do I assign 1 - 89 - each problem I assign is deliberately chosen.
Among the many ways I try to assess my students, I admit that homework doesn't actually tell me that much about the skill level of a student. Why do I do it then?
My reason for assessing homework is for one selfish reason, and I make no secret of it with my students:
The more work I see from students relating to a concept, the better I get at developing that concept with students.
I would love to say that I know every mistake students are going to make. I know many of them. If I can proactively create activities that catch these misconceptions before they even start (and even better, get students talking about them) then the richness of our work together increases astronomically. You might ask why I can't get this during conversation or circulation with students during the class period. I always do get some insight this way. The difference is that I can have a conversation with the student at that point about their thinking because he or she is in the room with me. I can push them in the right direction in that situation if the understanding is off. The key is that most of my students are alone when they do their work, or at least, have only online contact with their classmates. In that situation, I can really see what students do when they are faced with a written challenge. The more I see this work, the better I get.
I am not worried about students copying - if they do it, it always sticks out like a sore thumb. Maybe they just aren't good at copying. Either way, I don't have any cases of students that say 'I could do it in the homework, but can't do it when it comes to quizzes or tests.' Since I can see clearly when the students can/can't do it in the homework, I can immediately address the issue during the next class.
The other thing I have started doing is changing the type of feedback I give students on homework. I still fall into the habit of marking things that are wrong with an 'x' when I am not careful. I now try to make all feedback a question or statement, as if I am starting a conversation with a student about their work through my comments, whether positive or negative:
- Great explanation using definition here.
- Does x = 7 check in the original equation? (This rather than marking an x when a solution is clearly wrong.)
- (pointing out two correct steps and then third with an error) - mistake is in here somewhere.
- You can call "angle CPK" "angle P" here.
- Good use of quotient rule - can you use power rule and get the same answer?
The students that get papers back with ink on them don't necessarily have wrong answers - they just have more I can chat with them about on paper. The more I can get the students to understand that the homework is NOT about being right or wrong, but about the quality of their mathematical thinking, I think we are all better off.
This does take time, but it is so valuable to me, and I think the students not only benefit from the feedback, but appreciate the effort on my part. I don't check every problem, just key ones that I know might cause trouble. If a student has everything right on the questions I am checking, it's a chance to give feedback on one of the others. If there's nothing to say because the paper is perfect (which is rare), I can praise the student for both their clear written solutions, hard work, and attention to detail.
I decided at the beginning of this year to look at more student work, and checking homework in this way is letting me do this. I am lucky to have prep time in the morning, and I have committed to using morning time for looking at student work almost exclusively. I have had to force myself to do this on many mornings because it's so easy to use the time for other things. Some of my best ideas and modifications to lessons come after seeing ten students make the same mistake - it feels good to custom fit my lessons to the group of students I have in front of me.
In the end, it's just one more way the students benefit from having a real teacher working with them instead of a computer. Every mark I make on the paper is another chance to connect with my students and conversation that can help make them better thinkers and learners. I don't think I really need to justify my presence in the classroom, but it feels good to say that this is one of the reasons it's good I'm there.
One of my students came to me today to ask about ray tracing in preparation for his SAT II tomorrow in Physics. What happened is a good example of what tends to be my thought process in using technology to do something different.
Step 1 - I looked through some of my old worksheets, which I haven't used in a while since I haven't taught physics since 2009. The material I was happy with back then suddenly didn't work for me. Given the fact he was standing there (and that time was of the essence) I wasn't about to make a whole new worksheet.
Step 2 - I started drawing things on the board. This started working out fine, but I realized that every drawing I made would have to be erased or redone or saved in some other format. The student, after all, was most interested in learning how to do it and getting some practice. We did a couple sketches for mirrors, but when we got to lenses, I realized there had to be a better way. The sign for me for technology to step in is when I find myself doing the same thing over and over again, so the next step was pretty obvious.
Step 3 - Geogebra to the rescue. This is a particularly sharp student, so I was pretty happy with just talking him through what I was doing and asking him questions as I put together a quick demo of how to do this. He was pretty impressed with how logical the concept of ray tracing was, and had read the basic procedure in the textbook, but actually seeing it happen made a big difference. As he was standing there, his questions pushed me to make the applet (to steal Darren Kuropatwa's term) "a little more awesome."
He asked what happens when the object is inside the focus of the lens. This led to throwing in some simple logic to selectively display the rays to show the location of the image when it is virtual and real. He asked what the difference is for a diverging lens. I told the student that I didn't know what would happen if I switched the primary and secondary foci in Geogebra, but we talked about why that would relate to a diverging lens. Sure enough, the image appeared virtual and upright in the applet.
Step 4 - I then adjusted it a bit to show a diverging lens when the primary focus was on the left side of the lens, cleaned up some things, added colors, and now I have this cool applet to use when I get to working on lenses in the spring.
I like when I can think on my toes and use a tool like Geogebra to make something that will really make a difference. When I do this activity in the spring, it would be cool to put this side by side with an actual lens and an object and have students compare what is happening in both cases.
Check out the applet here: http://www.geogebra.org/en/upload/files/weinbergmath/Lens_Ray_Tracing.html
You can direct download the Geogebra file from here but be aware that I made the mistake of creating it in the beta version of 4.2. At some point, I'll do it in the stable version.
You can drag the head of the arrow around, as well as move the primary focus F_p around to change it into a diverging lens. Clearly there are limitations to this - drag the object to the right side of the lens, for example, but I think it's pretty cool that Geogebra can show something like this after an hour or so of playing around.