Archive for the ‘Cool Topics in CS’ Category

Star Trek Technology and CMU

So this is a re-post from Peter Lee’s Blog. Apparently CMU professors were asked when the last Star Trek movie came out about how much of the Star Trek technology could become real one day.

This is a great video to show your students to help encourage them to not see technology as fixed, and that no idea is impossible to explore. It may not be possible to make right away - but isnt the journey just as fun?

Monday, July 20th, 2009

The New Image for Computing

The ACM recently commissioned a marketing research report to find out what kind of message would be most successful in changing the attitudes of today’s youth towards computer science as a potential career path, and hopefully at the same time encouraging more people to enroll in computer science degree programs.

The report, which can be found here details the research methodology as well as the results.

In addition to the message findings, one of the more intriguing findings to me was that while there was significant difference for gender, there was no significant difference between ethnicities. African American and Latino boys were just as likely as Caucasian boys to think that computing is a viable and interesting career choice. This supports the research that Jane Margolis did in Stuck in the Shallow End, which indicated that inequities in the educational system were a large factor in why certain populations were missing from the computer science landscape.

In terms of messaging, the message that was most successful with the women was that Computing empowers you to do good. 38% of women reported this message as “Very Compelling”, and it was the third best ranked message overall.

Something in the key results that echoes a comment I made during a session at SIGCSE was that “The strongest positive driver towards computer science, or an openness to a career in computing is ‘having the power to create and discover new things’.” I made the comment that so many of our assignments are about recreating programs that students can find faster on Google than they can even load up the IDE and begin to think about programming it. Again I recommend to the community that we use this information to continue to design assignments that make use of new technology and social patterns within the use of computing in order to inspire our students and engage them in our classes.

Tuesday, June 23rd, 2009

Sitting Next to the Father of the Internet

I spent today at the first day of the Rebooting Computing summit in California. Its been an extraordinary day in so many ways.

First, the organizers of the conference assigned the group to tables, and each table has a mix of education, industry, students, and everyone else. There was media and government representatives there as well.

The day started out slowly, but quickly got interactive. First of all they asked us to do one on one interviews with the person sitting next to us to find out how they got into computing and get an idea of what inspires the magic in them. My interview partner - Vin Cerf - in case you dont know - he is the man who invented the internet. I’m not kidding.

One of the common themes at our table is that the moment of decision - when CS became important in all their lives was when they were first able to CREATE something that before that did not exist in their personal sphere. Reflecting on the current status of introductory CS education - we have gotten away from this idea that students can create from the beginning and we mostly ask them to reproduce. I think this may become one of my driving principles when constructing assignments for my students in the future - how does what I ask them to do give them the opportunity to CREATE and not just replicate what I have in mind.

We spent a lot of the rest of the day sharing with both our tables and the room what got us interested in CS and also what we hope to accomplish in this summit. So many different responses that I cant list them all here - but I was greatly impressed by the importance that the group put upon education in the K12 arena.

We also did an exercise where we wrote down important events in each of 5 time segments (CS infancy - pre 1935, Toddler 1935 - 1950, Youth 1950 - 1970, adolescence 1970 - 1990, Young adult 1990 - present) There were 3 categories - general historical/social events (like WW1), computer science development, and finally events in our own life that contributed to who we were today. I have to take some pictures tomorrow and post them of this room-long time line of computing we created.

There are two management specialist directing the collaboration at the conference through a process called appreciative inquiry. It is an excellent process to this point at identifying common themes. It will be interesting to see if any obtainable action items come out of the conference and make the kinds of changes people are talking about. With the caliber of the participants I think it just might.

Monday, January 12th, 2009

Microspotting and uses for recruiting

Its about that time of year when our students start thinking about what courses they are going to take next year. As CS teachers that means we are bringing out our recruiting tools and looking to find new ways to encourage students to take CS.

I found a blog today called Microspotting. The blog is written about Microsoft employees and the things that they do both at Microsoft and outside. Here are some interesting recent profiles that you could share with your students:

Environmental Technologist Mark Aggar - today’s youth are just as concerned as the adult population about saving the environment. Read about Mark and his work not only to reduce computing’s footprint, but more importantly in what software can do to help the environment. Consider modifying one of your assignments with data structures to be car pool matching. (given a street address of start and end for each commuter and a lookup table for distances - find groups of people that start and end within some small distance of each other) - Maybe I’ll write that up if I have time after exams :)

There are lots of other great profiles, and looking at what people are interested in and working on in industry is always a good way to get inspiration for new program assignments and just anecdotes to tell during class and recruiting times.

If you find any inspiration, post it somewhere, let me know about it and definitely share it with the CSTA repository!

Wednesday, December 10th, 2008

Numb3rs and Trains and CS

This past Friday the Numb3rs episode was about the devastation caused by a train wreck and the efforts to find survivors as well as to determine the cause of the problem. For those of you who don’t know about the show, an FBI agent uses his brother (a brilliant Mathematician professor) and often his friends in order to help solve crime. Aside from the fact that most of what they are calling is Mathematics is really computer science (and a good portion is machine learning at that) I really enjoy the show :)

Now that you can watch TV episodes quite easily over the internet - this would be a great snippet to use in a recruiting website (or presentation) for what computer science is about these days. I am going to try and make this a series on this blog - Feel free to develop your own site though and share with your guidance counselors and science/math teachers as you make updates. Link me to your pages as well! I would love to see what people come up with.

First of all - the mathematician used robots in order to help map the space and find survivors. He specifically used something called “swarm bots”, explaining them to be collaborative robots. Using robots to help find survivors in places where humans cannot go is a recurring theme in autonomous robotics. Here at CMU in the Robotics Institute you can find lots of great examples of the different kinds of projects that people are doing with robots. Here are a few that match the numb3rs theme:

Cognitive Colonies - http://www.frc.ri.cmu.edu/projects/colony/ - This is exactly in line with the “swarm bots” theme from the show. Highly recommend students look at this one :)

EMBER - http://www.frc.ri.cmu.edu/projects/colony/ - Providing tracking information and resource management (of both humans and robots) in emergency response situations. Also highly recommended.

DepthX - http://www.frc.ri.cmu.edu/project/depthx/ This is about using thermal information to explore underwater areas.

Ferret - http://www.ri.cmu.edu/projects/project_493.html - Mine mapping robot.

Pioneer Project - http://www.frc.ri.cmu.edu/projects/pioneer/ The creation of an autonomous robot to map out the Chornobyl Unit 4 reactor building.

There are lots more! If you follow the links from the main Robotics Institute page theres lots of interesting stuff including links to watching the robots work on youtube.

In addition to robots, the episode reminded me of some other work going on here in the computer science department. CMU recently brought in a new faculty member, Andre Platzner. Andre is from Germany and he has been working on a number of things including verification of automated systems. Andre’s thesis work included a tool that is now being used in Germany to prevent accidents like the one depicted in the show.

Andre’s website and work is quite complex and I myself dont completely understand it, however there is a link to some case studies (http://www.functologic.com/info/KeYmaera.html#case-studies) that his tool was used for, and you can point students there if you think they will not be turned off by the complexity.

The lesson here? Computer science is evolving to meet the changing needs of our world. There are serious researchers working on serious problems that are as important to humanity as helping to find a treatment for a disease. Students who like science and are interested in making a difference can find interesting problems to work on that have nothing to do with fixing someone’s computer at home.

Let me know if you would like me to continue with this vein of highlighting research that is current in the field :) and let me know if you create your own pages to help inform your community.

Sunday, November 23rd, 2008

Computer Science and Theater: Learning by Engagement

In a recent Edutopia article “Stage Craft: Taking Cues from Theater Class to Help Make Math and Science Fun, Why can’t a classroom have the passion of drama or sports?” by Carl Engvall there are some great comparisons that can be made to sports and drama that computer science also embodies.

Carl gave six reasons why students get engaged in sports (he used football as an example) that he also believed motivated students to be interested in drama as well. The six reasons were:

* players are considered active participants rather than passive recipients.
* the unexpected happens all the time, so there’s no time to coast or be unfocused.
* a player can let the team down.
* there’s no such thing as “good enough”; we’re always asking players to excel.
* the adults who participate are genuinely interested.
* a public performance is expected.

I think that these six items are also key cornerstones of good computer science programs as well. The first two are definitely applicable to computer science. We give our students programming tasks to complete with real time feedback (compiler results and on screen results of running test data whether it be through unit tests or just through example cases). If that feedback tells you something is wrong, you are EXPECTED TO FIX IT!!! unlike other classes in school when you get back a paper (perhaps a few days after you turned it in) and you get something wrong, you just shrug, put it away and continue with that day’s activities. In computer science you need to fix things in your program that are wrong in order to complete the assignment.

Letting the team down - Whether you believe in pair programming or not, I love to give my students assignments where the part that they work on plugs into a larger piece and the whole thing needs to work.

The fourth statement - “there is no such thing as good enough”, I have been a strong proponent of that for a long time. I give assignments that are often not worth full credit without at 5-10 point “make it better” clause. This serves not only to drive students to think creatively and reflect on what they are working on, but also to tap into the higher levels of bloom’s taxonomy and encourage them to come up with additions that they can make that are relevant to the assignment as well as functional.

The adults are interested - Most computer science teachers (especially the good ones) are interested in the assignments they give. Contrary to some math classes (not all - I know of some exceptional math teachers) we as a discipline put our heart and soul into the assignments we create. Very rarely do students encounter a program assignment that teachers have the similar investment as a page of algebra problems.

Public Performances - While this doesnt occur with every program assignment I give, there are few where there is not this potential. Many times I do ask a student to share code with the class if they have a creative solution. I not only praise them personally but let them know their contributions are valuable because they thought about something in a different way. I used to have students post in a class discussion board the creative “make it better” solutions they thought of for 2 points as a part of the assignment as well. I think robots are also so popular among educators because of this as well.

Well, I encourage you to reflect on your own practices, how do you incorporate these 6 ideas into your classes? If you have one I didn’t mention please share with the group :) I am astonished at how the readership of this blog is growing, and I think that while I have things to say, by no means do I know it all.

Sunday, October 5th, 2008

Calculator Controlled Robots

So, now that I’m back to work and reading my RSS feed again… theres lots of posts to be made. :)

One of the coolest things I came across this afternoon (in addition to FINALLY setting up twitter - user: lsudol) was the new link on FREE (Federal Resources for Educational Excellence) - http://free.ed.gov/resource.cfm?resource_id=2063

This resource links you to a book with activities for hands on Math and Science explorations using a TI calculator and a robotics platform. It combines CS in that you need to do some programming on the calculator with math and science activities! For middle school!!!

To all the CS teachers out there looking for interesting ways to integrate yourself into math and science classes and “recruit” here you go! Order a couple of platforms and go down to your middle school, or get into your 9th grade classes and do a 1-2 day lesson. Find a day when a colleague is going to be out or away and has put together sub plans. Ask if you can “sub” for the class and give your own classes a “work on your programs” day. (Still only charges the district for one sub and you get the chance to put on a little show for potential students)

The platform for the robot is created by Norland Research and their website is here: http://www.smallrobot.com/scimath.html

For university and college people looking to do outreach - why not make one or two of these activities part of your outreach package? Find a faculty member who has fun with this stuff and go to Math and Science classes to show off what programming can accomplish! Why limit it to CS classes?

Because its programming the calculator (which is very non threatening to math and science teachers) they may pick up the activities and start doing them on their own! Schools have whole classroom sets of calculators and with just a few robot platforms for students to share and test on, you can involve the whole class.

Enjoy!

Wednesday, July 16th, 2008

History of Computing in Pictures

Theres an interesting article here: http://royal.pingdom.com/?p=274 that shows the “History of Computers” with pictures.

What struck me more than the interesting types of storage that were displayed in the pictures was the fact that the majority of operators of those computers in the pictures were women.

Wednesday, April 9th, 2008

SIGCSE inspired #1 - 20% Time

So.. this is piggybacking off of something that Alfred Thompson posted about the possibility for allowing students 20% time to work on projects of their own.

Being a constructivist I am wholeheartedly in support of students finding meaning from self directed activities.

Having been a high school teacher for 10 years the part of me that needs to justify their outcomes with grades shudders violently at the thought of 20% to do whatever time.

So instead I humbly offer my personal solution to the 20% time which I implemented first as a final assignment in my AP class for the time after the exam, and then built an entire 1 semester post-AP course around the idea.

For their final assignments AP students were required to write a proposal and have it approved by me for pursuing any topic they chose. It did not even have to be a program, but it had to further their knowledge of computer science. The materials for the project can be found in a word document here.

There are some keys to this type of assignment. First, notice on the outline page that the due dates are spaced so that some measurable progress should be reported each week. (aha! theres the assessment we can use to monitor student learning) Secondly, before the students even start on the creation/programming part the project in full detail needs to be approved by me. In 4 years of giving this assignment NO ONE ever had it approved on the first try. The questions read like a grant application and with good reason. Even the approximate schedule needs to be detailed. I want at least two to three paragraphs about what they want to learn out of the project - it shows me they clearly thought it out.

Notice also there is a “share with others” question on the application. Students need to start thinking that their work has impact outside of the classroom. How will their work not only be seen and evaluated by themselves, but also on a larger scale by others. What will the evaluation criteria be?

I think this is a good framework for an educator to implement something like 20% time. You could create a new assignment each quarter and devote one day a week for students to work on it. (just match the desired learning goals to topics covered in that quarter and you will find you are not actually giving up any instructional time)

Monday, March 17th, 2008

Battleship

For those of you who are coming from the AP List-Serv I mentioned a blog post with a battleship attachment.

The Battleship assignment is given to students with two weeks of time to complete. They are directed to download the files in this zip and to create two classes of their own: ComputerPlayer and BattleShipBoard. The individual files are linked below in case you have trouble with the zip.

The BattleShipBoard is the part of the assignment testing their basic knowledge of two dimensional arrays. The ComputerPlayer class is much more interesting. The implementation of the getNextMove method determines how “good” your computer player is. Obviously the easiest solution is just a random number chooser (without even bothering to check if the position has already been chosen). I have seen much more complex solutions including specific dividing of the board, etc.

The zip file contains the following files:
Player Interface - Your computer player must implement this interface

Move Class - This class represents one more on the board

BoardDisplay - The board display is the first step in checking your work. After completing the BattleShipBoard class you can run BoardDisplay to check to make sure that your board behaves appropriately. This program does not “play” battleship, but allows you to see hits/misses as you click to reveal spots.

Board Interface - your BattleShipBoard needs to implement this interface

WatchPlayer - this class is used to test your ComputerPlayer class. It will show the computer player uncovering squares with each new mouse click (note: does not respond to the particular location being clicked)

TwoPlayer - this is the actual game of Battleship - you vs. the computer player you created.

Thursday, November 8th, 2007