Thursday, December 31, 2009

Monte Carlo Simulation - Roulette

In theory, theory and practice as the same. In practice, all too often, they are not. Sometimes running a simulation can help one separate theory and reality. For example, about a month ago I received an email that promised me success at the roulette tables. This is a game I’m not into because it seems too much about luck. But there was this email and it sounded good. Part of it is below.

you know in roulette you can bet on blacks or reds. If you bet $1 on black and it goes black you win $1 but if it goes red you loose your $1.

So I found a way you can win everytime:

bet $1 on black if it goes black you win $1

now again bet $1 on black, if it goes red bet $3 on black, if it goes red again bet $8 on black, if red again bet $20 on black, red again bet $52 on black (always multiple you previous lost bet around 2.5), if now is black you win $52 so you have $104 and you bet:

$1 + $3 + $8 + $20 + $52 = $84 So you just won $20 :)

now when you won you start with $1 on blacks again etc etc. its always bound to go black eventually (it`s 50/50) so that way you eventually always win.

Not the best written piece of prose but it caught my attention. As far as I can tell it was really a come on to try this scheme at an online casino. Not a chance in the world I’m going to try that. But would this work? I’m sure there is a solid mathematical way to find out but I don’t know what it is. So I decided to run a simulation.

Low and behold it seemed to work just fine. But then I looked into it some more. It turns out that you don’t have a 50/50 chance of winning. There are two locations on the wheel in the US that are neither red or black (0 and 00). So the odds are 1.111 against you not 1 to 1 as the email I received would indicate. Does that make a difference? Turns out it does. You can still win but it is not a sure thing. And in fact at times the amount one has to bet can get very large very quickly. This runs the risk that the better will run into a limit on the amount the casino allows a better to make. In fact in several simulations I ran the program tried to bet in the billions of dollars and crashed.

I leave creating your own simulation as an exercise for the user. What do you see as a result?

Monday, December 28, 2009

Monte Carlo Simulation – Slot Machines

Random numbers are fun. Really they are. They are at the heart of gambling for sure but they are also a key part of what is called a Monte Carlo Simulation. These simulations are used for all sorts of scientific, financial, engineering and other simulations. They are an attempt to figure the effects of chance, of random reactions, to a formula/algorithm or plan. As such they are an important tool in many fields. But of course Monte Carlo refers to the famous casino so its association with gambling is pretty much unavoidable. This even though the term originated with a group of nuclear researchers that included the computer pioneer John von Neumann. And as it turns out I have a couple of gambling simulations in mind that I think make interesting projects.

The first was inspired by this slot machine simulator that I found as a result of a Tweet on Twitter.

image

It’s pretty fancy and clearly some serious research went into it. Just for fun I decided to create a very simple version of a slot machine simulation. I didn’t do much research so it’s not as scientific but it was fun to do. The form is below and you can see that I used textboxes to allow the user to specify the starting amount, how much to bet on each spin and how many spins to do. The payoff rate I hard coded in but could easily be another variable the user could set. The payoffs is determined by an other random number and could be a lot more fancy. Probably should be.

 

image

   1: private void button1_Click(object sender, EventArgs e)



   2:       {



   3:           int bankRoll = Int16.Parse( this.textBox1.Text);



   4:           int bet = Int16.Parse(this.textBox2.Text);



   5:           int cnt = Int16.Parse(this.textBox3.Text);



   6:           Random r = new Random();



   7:           for (int i = 0; i < cnt && bankRoll >= bet; i++)



   8:           {



   9:               if (r.Next(100) > 90)



  10:               {



  11:                   bankRoll += r.Next(100);



  12:               }



  13:               else



  14:                   bankRoll -= bet;



  15:           }



  16:           this.label1.Text = bankRoll.ToString();



  17:       }








Making this better is an exercise for the student. I hope to write this up in some more detail at a future date but I’m on vacation so it will wait. But there are a couple of things I do like about it. One is that I get to use a more complex terminating clause than we often see in an early student project. It allows for some discussion about the roll of negative numbers in loops. Do you allow them? It depends on the application doesn’t it? Slot machines typically do not grant credit. And of course there are those random numbers to look at so you can get into all sorts of discussions about random numbers, statistics and streaks. Why do you sometimes win? Good stuff.

Wednesday, December 23, 2009

Microsoft bliink Contest in the State of Illinois

I made mention of this announcement when it was first made in October. I hope that if you are at a high school in Illinois you know about this and are getting involved. Note that it doesn’t have to be a computer science teacher/or class that gets involved. Microsoft is actively looking to create similar partnerships with other states so if you are working at the state level please let me know at AlfredTh (at) Microsoft.com

CHICAGO, IL. — October 8, 2009 — With financial support and assistance from Microsoft Corp., the Illinois State Board of Education and Governor Quinn’s Office announced plans to provide high school students an opportunity to use cutting-edge software tools to develop workforce skills and prepare for post-secondary education by participating in the “bliink” web design contest, whose theme “I Imagine a Green Future” focuses on environmental sustainability. Participants will compete against other students for cash and prizes by developing a Web site using Microsoft Expression Web software, which will be donated to every high school in Illinois as part of the Microsoft Developer Network Academic Alliance (MSDN AA) Program. Tutorials and curriculum units, created by a team of classroom teachers and mapped to national standards, will also be provided at no charge. Microsoft’s software donation has been valued at over $4,000,000.

Despite our nation’s struggling economy, the U.S. Bureau of Labor Statistics estimates that more than 300,000 technology-related jobs currently remain unfilled for lack of qualified workers.  Only five percent of American college undergraduates today are pursing degrees in science or engineering, compared with 42 percent of university students in other countries such as China and India. The National Center for Women and Information Technology reports that “U.S. universities will graduate qualified candidates to fill only 50% of the 1,500,000 computer- and information-related jobs expected by 2012.” The bliink web design contest, held in five US locations last year, successfully engages a wide group of students – not just those who are already technology experts.

This challenge is part of Illinois Innovation Talent, a public-private initiative designed to connect schools with industry, government and community partners to examine and solve complex problems as members of diverse, interdisciplinary teams utilizing leading-edge information technology tools.  These initiatives create unique learning environments that are designed to promote innovation-centered education and increase student achievement in math, science and engineering by working as project management teams.  Innovation Talent is one of our strategies for demonstrating the integration of the updated National Education Technology Standards. 

“The Microsoft bliink Web Design Contest offers a great opportunity for high school students to apply their creativity and technology skills through a real-world assignment,’’ said State Superintendent of Education Christopher A. Koch. ``I hope as many Illinois high school students as possible will take advantage of this chance to develop workforce and academic skills to prepare for success beyond high school.’’

Illinois Governor Pat Quinn, agreed: “By participating in the Microsoft bliink Web Design Contest, our students will benefit from the experience of working in teams to develop an original web site while strengthening their entrepreneurial and technical skills. The theme of environmental sustainability highlights the economic advantages of building new ‘green’ businesses in the State of Illinois and simulatenously improving the world.”

“Providing students with cutting-edge technology tools and the resources to learn how to use them is a priority for Microsoft,” said Anthony Salcito, Microsoft’s Vice President of Worldwide Education. “We are pleased to partner with the State of Illinois to equip students to explore and develop their talents. They can download the same software for their home computers through Microsoft’s DreamSpark™ Program. Students who graduate from high school and college with strong technical skills will have a wider choice of career options in today’s global economy.”

For more information about the Microsoft bliink Contest in the State of Illinois, please go to: www.bliinkcontest.com. For information about DreamSpark, go to: www.dreamspark.com

Tuesday, December 22, 2009

Women and Computer Science – Is It The Environment?

The Internet was a buzz last week with reports of a study done on the effects of environment on women’s interest in computer science. (Links to articles below) While we’ve been talking about how the atmosphere in a computer lab or a computer class may be a turn off for women now there is a study that confirms this. Apparently not all women are into Star Wars, Star Trek or even science fiction in general. Shock! OK it’s not a surprise. In fact a lot of men are not interested either. So when these people run into a room decorated in Star Trek with people sitting around playing “Rock, Paper, Scissors, Lizard, Spock” they decide “maybe this environment is not for me.”

So what do we do about it? Can we ban decorations? Seems harsh. But at least we can do some thinking about what decorations are put up. We can make the environment look less excusive at least? I think one thing we need to is make sure that there is diversity in the room. It may start with diversity of decorations but we need to make sure we encourage diversity in the people who inhabit the labs.

When I was teaching high school our computer labs were a hub of activity after school. Most of the people in the lab were not doing school work but killing time while they waited for rides home or sports practices to start. So there were boys and girls of all types and we let them have some freedom as to what they did. If nothing else it made it clear that computer labs were not geek only environments. I like to think this was/is helpful. There were also a lot of kids doing school work using both applications and computer science projects. There was a lot of peer tutoring going on as well. That environment, I believe, encouraged students to share both their knowledge and their interest in computers with others.

I’m sure there are a lot of other and perhaps better ways we can make our computer labs and computer science areas more diverse, more open, more inviting and less intimidating and exclusive looking. have you got some to share? I know lots of us could benifit from a sharing of ideas.

Friday, December 18, 2009

Microsoft at FETC 2010

I’m going to FTEC in Orlando this January. This will be my first time at FETC and I’m looking forward to it. There isn’t usually a lot for computer science/programming/web development teachers at FETC from what I understand but this year Pat Phillips and I will be there to talk about the Expression Web development curriculum with a couple of sessions. Specifics on them below the announcement about Microsoft’s wider participation below.

These are exciting times for technology in education with the recent release of Windows® 7, the upcoming release of Microsoft® Office 2010 and the even closer launch of the Microsoft Academic Toolkit. This year at FETC, learn about these recent innovations and learn new ways of engaging students in the classroom with web design, XML, Web 2.0 and more by attending a session at FETC.

See the Microsoft at FETC site for a listing of sessions and registration information. Microsoft’s sessions Will be held in Room W205 across from the Exhibit Hall entrance.


I hope to see you there!

Technorati Tags:

Thursday, December 17, 2009

Don’t Lose It

Years ago I saw a cartoon, it was probably in The New Yorker, that was set in what looked like an excusive upper class businessmen’s club. Two very well dressed overweight businessmen were seated in overstuffed chairs. One of them was saying to the other “I owe everything I am today to some advice my father gave me. He said ‘Son, here’s a million dollars. Don’t lose it.’” I’ve been thinking about that cartoon as I think about getting students interested in STEM and computer science. Aren’t most kids born with an interest in most everything? Somewhere do they lose some of it and if so why?

Mark Guzdial has a short but interesting post last week ( Child Development Expert Offers Ideas for Promoting Early Science Learning and read the comment by Alan Kay) where he said.

“… young children act as scientists.  My read of the literature suggests that kids don’t turn away from science until middle school.”

IF you think about it kids start looking at science very early in basic ways. How many parents have heard questions like “why is the sky blue?” or watched as a small child sat enraptured watching ants in the dirt? And isn’t building things with blocks quite a bit like engineering thinking? When children are very young they have a fascination with the world around them – science. Counting things – math. And figuring out how things work – technology/engineering. But somewhere along the line they lose much of that. In some ways we teach it out of them. We take the interesting and turn it into he boring. We take the fun of learning and make it work. We often even take the fun out of reading (to bring up another pet peeve of mine) by assigning books that are “good for kids” rather than books that are interesting and fun to read. We could have it all.

I will never ever forget the Materials Science teacher I had as a freshman in high school. The man was a nutcase in many ways but, boy, was he interesting. He was passionate about his subject, had a blast showing us experiments/demos and instilled in me a fascination with the subject. It’s a wonder I didn’t go into the field but at least I took a knowledge and understanding of the subject that has served me well through my life. He sure improved my love for science in general as well.

How does this relate to computer science? Well I think that in the younger grades we can either make computer science look boring and like work or we can make it look interesting and like fun. Why not use tools like Scratch and Alice and maybe robots? (I’m working on a list of educational robotics resources for later this week BTW.) Why not use kinesthetic learning projects like those in Computer Science Unplugged? Let’s not kill the interest in computers by making it all about drill and kill with applications usage courses. Not that those applications are not important these days but let’s not use learning them as a way to kill interest. Let’s find better ways.

Kids are born with an interest in science (and other things) so let’s not push them into losing that interest.

Tuesday, December 15, 2009

Deploying XNA Games

Kathleen Weaver, one of the many amazing computer science teachers in Texas these days, has been using XNA Game Studio with her students. Recently she recorded two videos that demonstrate how to deploy XNA games to other devices.

Specifically this first video shows how to deploy a game from your PC to an XBOX 306. http://kweaver.us/xboxDeploy/XboxDeploy.html

This second video (http://kweaver.us/XNA_Zune/XNA_Zune.html) shows how to deploy an XNA game to a handheld Zune device. I give her extra credit for this one because she is being filmed doing a life demo to a classroom full of students.

Kathleen posted these links on her blog at http://www.kweaver.org/cs/ where she posts fairly regularly. I found her comments on required tech classes to be interesting. They go hand in hand with my recent comments about students not being as computer savvy as many think they are. Kathleen is on Twitter at @KathWeaver BTW.

Monday, December 14, 2009

Interesting links December 14 2009

Last week was the first ever national Computer Science Education week in the US. I Twittered (tweeted?) quite a few links to announcements, interviews and web sites (including Microsoft Research’s CS Ed Week site) during the course of the week. I really hope that CSEdWeek will draw some needed attention to the issue of improving and increasing computer science education in the future. Rather than link to all the CSEdWeek links I had I thought I would just do one. The article is Computing Our Children's Future, an op-ed by Maria Klawe, Andrew Chien, Rick Rashid and Alfred Spector on HuffPost. That includes people from Intel, Microsoft and Google as well at Harvey Mudd University. We’re all agreed on the need for CS education. An excerpt is below.

To the age-old question -- "What do you want to do when you grow up?" -- children today give many modern answers: "Help feed hungry families." "Prevent and cure diseases." "Find sources of renewable energy." "Understand the universe."

One clear path leads to each of these aspirations: the study of computer science. Computer models and applications enable farmers to increase crop yields, HIV-positive patients in Africa to receive lifesaving treatment, industry to reduce its carbon footprint, and explorers to study the stars. Computing has become the universal underpinning of scientific advancement and economic activity.

Now for some other links. I see that the governor of Texas, Rick Perry Announces State Investment in Robotics Education Programs. Long story short, Texas is putting some serious money into promoting robotics programs in high schools in conjunction with FIRST Tech Challenge. I’m a fan of all the FIRST Robotics programs because they involve turning consumers into creators. It involves engineering of several types, computer science, and many more things in a fun and interesting experience.

Microsoft Partners in Education program announced their new Partners in Learning Network, free public/private communities for teachers. Join & get AutoCollage & Songsmith free. Those are tools you can use to help excite your students who are multimedia focused.

Robb Cutler, past president of the CSTA, had another good post on the CSTA blog When Technicalities Interfere with Learning. Do we hurt learning by insisting on too much complexity and technical vocabulary?

Ever wanted your own Wikipedia Entry? Microsoft Research may be able to help with Entity Cube. Read about it here Microsoft labs tests a Wikipedia of average Joes

There is a new Student Career portal from Microsoft that focuses on Information Technology (IT) careers. You may want to point students to it.

Technorati Tags: ,

 

Friday, December 11, 2009

Learning About Programming Language Design

Did you ever wonder why a programming language did or did not have a specific feature? Have you ever thought about what a first/learning programming language should look like? What features should it have? What should the IDE look like? Are you curious about a language called Small Basic? If you answered yes to any of these questions then this interview on Channel 9 will be of interest to you.

Expert to Expert: The Basics of SmallBasic

SmallBasic is a new programming language aimed at beginners. It was created as a side project of Vijaye Raji, a software developer on the Oslo team. SmallBasic is a very limited language with only a handful of keywords and a small set of concepts that should make building an application on Windows very simple for beginners. However, don't let it's simplicity fool you into thinking that you can't build very compelling applications with it on Windows.


Here, programming language designer (and de facto Expert to Expert host) Erik Meijer, Oslo architect Chris Anderson, Vijaye Raji and I discuss the details behind, in between and in front of SmallBasic. Why was it created in the first place? Why the VB-like syntax? What's the goal of the language and runtime, anyway, given that there are already beginning languages out there that run on the Microsoft stack? Why is the language designed in the way that it is? Why is it so popular? How will it evolve? You know, typical Channel 9 questions. We go pretty deep here, but we don't touch bottom. It was a lot of fun taking part in this conversation and I am impressed with SmallBasic and the folks behind it.

During the conversation they talk about what features are there or are missing and why those decisions were made. They also come up with a couple of suggestions that I think show how important conversations are in developing software today.

Thursday, December 10, 2009

Web Development or Computer Science

I love to look at the logs to see how people find this blog. Some of the search strings people use amaze me. Sometimes I’m not sure which to wonder more about – how did that string find my blog or what in the world are they really looking for. Recently I saw a search for “is it better to study computer science or web development” that was a bit of a puzzler. I’m not sure those are separate subjects. Can you do good web development without a grounding in computer science? Can you be a knowledgeable computer scientist without some knowledge of web development? Probably not.

I suspect that at the heart of this question was a vocational idea. What career should they go into? Programming (which is what many people think of when they think of computer science) or web development (which many people don’t seem to be aware requires some computer science to do well).

These days most important web pages have database access, active response, and other “programming” that take them a whole level beyond the static web pages of the past. It’s hard to see how one can keep up with the trends towards AJAX, HTML5, Silverlight, Cloud computing and so much more of the direction of the web without a good computer science background. Sure there are self taught people who do great things  but having a good solid base of computer science knowledge would seem to be a big edge for learning the new technologies.

Related to this is that I keep seeing people list HTML as a programming language. That confuses me. I’ve worked with mark up languages for years (anyone else remember Runoff?) and while they are useful tools I see them as data rather than as programming languages. Are they part of computer science? For sure. They take in data, meta data, process descriptions and much more. But HTML is not a programming language. Perhaps this is part of that whole confusion that has people thinking computer science and programming are the same thing? Are people calling HTML a programming language an attempt by people to try to justify calling web development computer science? If so, I think they are missing the point. Web development is a part of computer science.

It may not have the prestige in academic circles that other parts of CS have but it is growing in importance in the “real world” all the time. I think we really want the people developing the next big web app (think Facebook, Twitter and Amazon.com) to know a bit about “the rest” of computer science. What do you think? Is HTML programming? Is web development computer science? Or is it rightly kept separate?

Wednesday, December 09, 2009

The Importance of History in Computer Science

One of the people I really admire is Erik Meijer who is an absolutely brilliant computer scientist and outstanding communicator. And a real fun guy. One of the things I have heard him say are words to the effect that if you want to know what the next big thing is in computer science look at what was big 20 years ago. I think he is totally correct here. Of course when we reinvent things 20 years later one hopes that we learn the lessons for the previo0us incarnation. But that can’t happen if people are unaware of previous innovations.

I’m pretty lucky in this regard as I started in computer science over 35 years ago so I’ve seen a couple of cycles already. But what about students today? They can’t remember from life experience but are they learning history either? It’s not clear to me that they are. Oh sure most students get a unit or three on history of computers at some point but how much sticks? And how much is more than cursory story telling? I know that what I taught was pretty cursory. Does it matter?

Well take cloud computing for example. Is this absolutely new? Not really. The early days of mainframe computers were basically the same thing as cloud computing in many concepts. One had all sorts of remote terminals (think thin clients) that connected though a network (hardwired or leased phone lines rather than Internet) to some system somewhere managed by some people that you probably have no real contact with. Sounds a lot like cloud computing to me. Sure there are differences but that’s the part that matters. What problems did mainframes have? Lack of user control of applications and data. Dependence on other organizations for management. There were reasons why first mini computers and then PCs took over. How do we avoid that in the future without knowing the problems of the past?

And honestly, between you and I, I think we’ve lost some things from the past as well. While we have great and powerful databases we seem to be short of simple easy to use flat file systems. And command line interfaces used to me easier to use but now we only let experts use them because they pretty much require expertise that they didn’t used to. Most people I know seem to only know two or three operating systems (Windows, Mac and/or Linux/UNIX) This seems pretty limited to me because there was a time when I’d use four or five in the same day. I learned a lot from those days but some of it has been lost.

The Computer History Museum is a great repository of hardware. If you ever get a chance you should visit. And they do have information on software as well. (I like the computer software timeline on their website) But it is had to understand software without using it or at least digging into the documentation. I’m not sure how we avoid losing this part of our history. Especially if when someone says “back when I was programming in ‘76 …” everyone turns off their listening. Perhaps collecting oral histories is a start. Now if we can just get people to listen to them, learn from them, and move us all forward.

Monday, December 07, 2009

Interesting Links December 7 2009

A lot of links last week that anticipate Computer Science Education week came my way. Well you’d expect that and I have a number of them to share. But that’s not all. A little about Silverlight, a little about programming languages, and a little about other things. First though the CSEdWeek links.

Besides Congress there have been other announcements from government and other officials about Computer Science Education Week.

Plus some college.university announcements and web sites.

Now for some additional (beyond what I linked to last week) resource links with ideas on how to celebrate.

Leigh Ann Sudol sent the following announcement to the APCS mailing list.

Another cool thing is the emergence of Keepon and BeatBots as an internet phenomenon. Keepon is a little squishy robot that was designed to dance to a beat - its breakout video is here: http://www.youtube.com/watch?v=nPdP1jBfxzo&feature=fvw and an article about how its being used to help autistic children here: http://beatbots.net/2009/04/10/popular-science-robots-to-fight-autism/

How do you feel about free software? Did you know you can download the beta of the next version of Office, Office 2010. http://www.microsoft.com/office2010 So far it has been downloaded over 1,000,000 times.

Interested in Silverlight and games? Coding 4 Fun has a great post on creating a pinball game in Silverlight using the Physics Helper Library + Farseer Physics

Peter Vogel (@PeterVogel) pointed me to an article called Top 10 Programming Languages Used at Microsoft. It’s an interesting list but believe it or not Java isn’t on it. :-)

Interested in getting kids thinking about inventions? Or about how to go from idea to product and company?  From the TCEA Twitter feed (@tcea) comes a link to a fabulous Inventor's Handbook for students from the Lemelson-MIT program.

Friday, December 04, 2009

Computer Science Education Week Website is Live

The Computer Science Education week web site is now live at http://www.csedweek.org/ Some good stuff there. I especially like the “Why computer science” page.

  • Computing is ubiquitous; it touches everyone’s daily lives
  • Computer science-related jobs remain strong despite extraordinary economic challenges
  • Numerous issues depend on computing, including the following:
    • Securing our cyber-infrastructure
    • Protecting national security
    • Implementing electronic health records
    • Increasing efficiency of the energy infrastructure

And there are quite a few resources listed in the computer science education resource page.

Microsoft is a proud sponsor of Computer Science Education week and has a web site up at http://research.microsoft.com/en-us/events/csew/ for the occasion. Articles and information about computer science careers, learning resources and links to other CS Ed Week sites and information.

Technorati Tags:

Thursday, December 03, 2009

Let’s drop English from the curriculum

Just for fun, at your next faculty meeting or school board meeting try the following out.

Let’s drop or at least reduce the English requirement for graduation. Let’s face it these kids have been talking and writing for years. They know English. It’s not like they’ll all become professional writers. Some of these kids already speak better English than their parents.

Probably will not go over very well. But somehow things like the following go over just fine.

We don’t need a computer science requirement. Let’s face it these kids have been using computers for years. They know computers. It’s not like they’ll all become professional programmers. Some of these kids already know more about computers than their parents.

Ok so an argument can be made that the two are not exactly the same but I think they are closer than many people would like to admit. And there is this fact that students have generally had 8 full years of English before  they get to high school and almost no one has a computer science course (computer science does not mean using applications BTW) before high school.

Computer science is a critical piece of knowledge these days though. In any line of work or study computer science is going to be a tool that one will use. Sort of like how everyone will be reading, writing and speaking in any line of work or study. We really do a disservice to students by not giving them at least a taste, a vocabulary, some basic concepts of computer science.

College is too late. In fact some would argue and I would probably agree that middle school is not too early. One of the things a good education does, at least in my opinion, is to expose students to as many possibilities as possible. Given how important computer science has become and its increasing importance how can we say a school is doing a good job if students are not exposed to computer science?

Next week is Computer Science Education week. (Read the ACM Press Release.) Is your school doing anything for it? If you don’t have a real computer science program at your school perhaps this week can be a catalyst to get one started.

 

Technorati Tags:

Wednesday, December 02, 2009

Software Development – Old School V. New School

One of the links floating around a lot recently has been this article from the recent Microsoft Professional Developers conference - Microsoft's top developers prefer old-school coding methods. It seems particularly hard on visual programming tools which are left mostly undefined. So of course I wanted to watch the whole talk. You can find the video stream (about an hour long) at Microsoft Perspectives on the Future of Programming and I do recommend it as a very interesting panel. The panel spent quite a bit of time talking about parallel/concurrent programming, some time on safety of programming and memory management and garbage collection. Some of it at a very high level which you’d expect with people like Turing award winner Butler Lampson and super computer pioneer Burton Smith (watch his talk on The State of Parallel Programming as well.) on it.

But the comments about developing software using text versus using visual programming seems to have garnered the most discussion. For example:

"Graphical programming environments are usable when they are useless, but unusable when they would be useful," said Jeffrey Snover, another Microsoft distinguished engineer and creator of Microsoft's PowerShell scripting tool for Windows. "When there are five things on the screen, you can burp that out [in text]. But when there are 500 things, [graphical programming] is completely unusable. You zoom in and zoom out and you lose all context. I think it's just smokin' dope."

And what he says is largely correct. If you want to add a handful of objects to a form drag and drop is quick and easy but you could probably do it manually (i.e. write some code in text) to do it pretty easily. On the other hand if you want 64 objects (say for a board game) you’ll probably prefer to write some code to add them all. (BTW I have an article about creating arrays of objects you may be interested in) That being said I do like drag and drop for beginners. Why? Because specifying all the little details for an object using text is tedious and for most beginners unnecessary knowledge. It lets beginners do some things that they might not otherwise be ready for. The analogy in the talk is how anti-lock brakes mean that drivers don’t have to be quite as skilled on snow and ice then they used to. Is that bad? I’m not so sure it is.

The panel doesn’t directly address drag and drop languages like Scratch and Alice. That paradigm is one I’d really like to see taken to greater depth. With the right IDE to manage complexity and some reasonable extensions to the language to make them less domain specific what possibilities might open up? I hope we as a discipline are not to close minded and backwards looking not to try.

But you know, no matter what some people will stay old school. There are drivers out there who not only eschew anti-lock brakes but automatic transmissions. I’ve heard them say “it’s not real driving” if you use an automatic. Well it’s different and sometimes the old way is better. I like real wheel drive and a standard on a sharp windy road myself. On the other hand I really like my automatic transmission in stop and go city traffic. So the idea of one “real” way is a myth and will probably always be a myth.

Tuesday, December 01, 2009

Are you going to SIGCSE 2010?

I see over on the SIGCSE 2010 blog that early registration for SIGCSE is now open. In my opinion SIGCSE is the most important computer science education event of the year. Now I know that a lot of people see it as primarily a higher education event and for sure most attendees are in higher education. But there are always a lot of high school computer science teachers there. Lots of AP CS teachers. Lots of CSTA (Computer Science Teachers Association) members. And usually a lot of local high school CS teachers taking advantage of the opportunity. It’s tops on my list every year. ISTE (nee NECC) may be larger in shear numbers but SIGCSE is larger in terms of the density of computer science educators. And I’ll tell you a little known (or perhaps just little admitted) piece of information – the overlap between advanced high school courses and entry level college courses is pretty high. So there is always a lot of value in attending SIGCSE for high school CS teachers.

Some great information/introduction from the conference web site:

The SIGCSE Technical Symposium addresses problems common among educators working to develop, implement and/or evaluate computing programs, curricula, and courses. The symposium provides a forum for sharing new ideas for syllabi, laboratories, and other elements of teaching and pedagogy, at all levels of instruction. We invite those interested in computer science education and computer science education research to contribute to SIGCSE 2010.

CONFERENCE THEME: Making Contact

SIGCSE 2010 continues the long tradition of bringing together colleagues from around the world to make contact via paper, panel, poster and special sessions, as well as workshops, birds-of-a-feather, and informal settings at breaks and meals. We celebrate and encourage these contacts that allow us to renew and make new connections as we discuss the challenges and excitement of computer science education.

SIGCSE is March 10-13, 2010 in Milwaukee Wisconsin this year. That’s actually a good thing I think. I am expecting hotel and airfares not to be too outrageous. So it may be more affordable for more people. Well I’m planning on going. I hope to see many of you there.