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.

Sunday, November 29, 2009

Interesting Links and Twitter Lists

Short work week last week. Not a lot of great links showing up in my RSS reader or my email inbox. It seems like a lot of people took the week off completely. I needed a bit of a break and I’m sure many others did as well. I do have a couple of interesting links to share though. Two of them are among my Twitter lists. Twitter recently added a feature that lets one create public and private lists of people’s accounts on Twitter. I’ve created several of them. And several private ones (like family members for example). I’d like to talk about two of the public lists though.

@alfredtwo/education – This is a pretty good sized list – well over 200 people. Who is on it? Technology coordinators, computer teachers of all sorts, English teachers, Librarians, middle school teachers, education consultants, professors of education and related subjects and more. Basically I look for people who are in education and technology in education. This is the list of people I follow to learn about the latest in educational Web 2.0 applications. I look to this list to learn about new ideas in teaching, classroom management, dealing with administrators and tech support people and much more. This is my attempt to keep my finger on the pulse of education as it is shared on the Internet. It’s a pretty interesting bunch of people. One might even say eclectic as well.

@alfredtwo/cs-teachers – This is a pretty short list right now but I really hope it grows. This is the list I use to look at Tweets (Twitter messages) from people I know to be actual computer science teachers. People in the trenches as it were who are teaching programming, serious web development, AP CS and other computer science courses. There aren’t enough of them out there in my opinion but I don’t want to miss anything the ones I know about say. If you know of people who should be on that list please let me know.

You can follow either of those lists or any of my others if you have a Twitter account. Or just follow me @AlfredTwo and see what I find interesting during the week.

Now for some other links.

Karen Lang had a very interesting post at the CSTA blog called Down and Dirty Programming which is a fascinating look into a course she created to prepare students for programming competitions. It is a look into different learning styles, classroom management, and how students learn. This article is well worth the read and I hope you’ll do so and leave some comments over there as well. Join the conversation!

CACM (aka Communications of the ACM) had an interesting article about how schools are making computer science relevant by adding video game development to CS courses. Closely related is a CACM blog post by called Games in Schools--Sugar-coated Learning? The latter is about educational computer games. Frankly I see a close tie between the two topics because I see a lot of interest in having CS students create games that are educational for other students. And perhaps as a way to  teach computer science. See Kodu for example.

Thursday, November 26, 2009

Thoughts on the Edublogger Awards

Earlier in the week I received an email telling me that nomination for this year’s Edublogger Awards are now open. Some really great blogs are nominated every year. Last year my main high school computer science blog was nominated which I thought was really great. I didn’t win which was not as great but honestly I can’t say that I am surprised nor that I felt like I deserved to win. The thing is that these awards are really designed for more general education blogs. What I am trying to do here is to create the very best blog resource that I can for high school computer science teachers. It’s a bit of a niche audience. And while others read and I hope benefit from what I write I don’t ever expect the have the audience of a Vicki Davis or Will Richardson (who is not writing as much as he used to unfortunately) who write about Web 2.0 and education by any stretch. Nor do I expect to reach the likes that Ken Royal, Doug Peterson and Larry Ferlazzo whose posts or articles, information and resource lists are useful to huge numbers of teachers around the world. And honestly I hope I never have a larger readership than Scott McLeod whose Dangerously Irrelevant blog is at the top of my must read list these days. So I don’t expect to ever win any big blogging awards. For a while that bothered me. I have a frail ego, you know, being a man and all. :-)

I’m ok with it though. No really. As I look at what I am trying to do and who I am trying to reach I think I’m going ok. If you know of a blog that is aimed at high school computer science teachers that is doing a better job let me know. I want to follow them and learn from them. And try to do better.

Since today and I’m in a thanking frame of mind what I am focusing on is thanks for the people who read here, who comment here, who share ideas and resources for me to post and share with my readers and most of all for those people who come up to me in real life and say “I get useful things from your blog.” You make it all very worthwhile for me. And I also want to thank the people whose blogs I have listed above for all I learn from them. Keep it up.

Oh and the very best computer science related blog out there is Mark Guzdial’s Computing Education blog. But he and I are trying to do different things so I’m fine with that. Besides that I am grateful for all I am learning from his blog. If you are interested in computing education at any level Mark’s blog is a must read. Thanks Mark!

Tuesday, November 24, 2009

What does it look like?

Every so often someone suggests a project and I ask myself “why wasn’t I clever enough to think of that?” Actually it happen more often than I would probably like to admit. There are a lot of really good out of the box thinkers in education. The other day was just such an example. And I learned about it on Twitter with reinforces to me the value of Twitter for learning. Chris Champion (blog Twitter @ChrisChampion) TwitteredAsking students 2 find images to describe programming terms.” What a great idea. The student finds a picture and places a good definition as a caption. Great memory aid!

Chris went on to say “ROFL when student found an ad: child with lice inspection comb for "Debugging”” Kids are going to surprise you. They are often much more clever than we expect. I suspect that many students coming up with images to describe programming terms are going to come up with humorous ideas. Humor stimulates a lot in the brain so I suspect this is a very good outcome. But even without humor having images has got to be helpful in making ideas stick. And if you are stuck for things to hang on the computer lab wall there you go. :-)

You can see the ad Chris’ student brought in here – Lice as debugging. If you try this with your students I hope you’ll share any particularly interesting results you receive.

By the way I am on Twitter @AlfredTwo. If you’re on Twitter please follow and let me know you are out there.

Monday, November 23, 2009

Interesting Links 23 November 2009

Ever wonder how they get the sound effects for car racing video games? A Tesla gets recorded for Microsoft games. Interesting story really.

Hacking and ethics I was really hoping more people would leave comments and opinions on that post.Especially after a former student of mine left a strongly dissenting view. Is he right? What do you or your students think?

I saw this first on a Tweet from @Microsoft: “Make learning fun: Game Design Challenge -- build mini-games on XNA Game Studio 3.1Games for Learning Institute Announces Design Contest for Microsoft's XNA Game Studio Platform. Looks like an interesting project to get people to think about simple, small games with real educational value.

Interested in Silverlight? Perhaps with an eye to teach it at some point? There is a new 3 Day Deep Dive into Silverlight curriculum at the Microsoft Faculty Connection educational community site.

New on the Microsoft on the Issues blog - Forum Highlights Innovations in Education : Posted by L. Michael Golden Corporate Vice President, Education

There is a new public beta of Office 2010 out now. Are your tech people looking at it? Are you looking at it? I’m loving it but of course I’m biased. Plus the new features in Outlook rock for me.

For all your space science geeks - Be a Martian web site from NASA and Microsoft

Interesting tech ed blog post by Ken Royal @kenroyal last week - 15 Things All Classrooms Should Have PK-12  Has he got it right do you think? Or are things missing or extra? What’s our classroom like these days?

New to Twitter last week is @CSEdWeek to Twitter for all the latest on Computer Science Education week (website opening any day now). What is your school doing that week? CSEdWeek is on Facebook as well.

Tuesday, November 17, 2009

Hacking and Ethics

I get a lot of interesting email. Today I received an email from a student in Japan asking me the question “Do you think that hackers will decrease if we improve Information-ethics-education?” My first thought was yes. My second thought was no. My third thought was maybe. Helpful answers? Perhaps not but it is a complex question.

By hacking I assume, based on context, that me means the breaking into systems sort of hacking rather than the old-fashioned “trying all sorts of things to see what one can learn sort of hacking” that was the more common meaning in “the old days.” And of course many of the people breaking into systems even today claim no malicious intent. They seem oblivious to the feelings of violation that people quite naturally feel from having strangers poking through their computers. If we started some ethics training in young people learning computer science maybe we could help there.

I do think that ethics training is quite necessary and that it will help reduce some forms of hacking by the sorts of people who get formal education in computing and IT. It doesn’t reach or do much with the self-taught learners or the people who are learning informally from people who are already hacking. So the effects of ethics training on hacking or as I would prefer to say “cracking” are perhaps limited. That doesn’t mean it should not be done. I note that it is included as a part of the APCS curriculum.

Also it is most often the people who get formal training who wind up in commercial software development (Though not always of course) and there we may need ethics training even more. Take the case of the two programmers recently arrested as being complacent in the Bernie Madoff Ponzi scheme. Perhaps some more ethics training would have helped there. Maybe not of course as a lot of money can move many people. But one can have hope.

The motivations for cracking are many. Sometimes it is money. Sometimes it really is learning. And sometimes it is people looking for a chance to prove themselves. I think we can help the latter two by a combination of ethics training and increasing the legitimate options for learning and proving ones self.

Frankly that is one of the cool things about the DreamSpark program. If a student can get a legitimate copy of Windows Server 2008, set it up, secure it from Internet endeavors and demonstrate to peers or potential employers that they know what they are doing that is a good thing. That they can do it without cracking some company security is bonus! We can also provide show off opportunities in schools, in contests (see the Imagine Cup for example) and service projects that may help as well. But at the root we have to instill some ethical sense in students from the very early days. School is a good place to start.

BTW as a starting point for discussion there is a link to the ACM Code of Ethics and Professional Conduct.

Monday, November 16, 2009

Interesting Links November 16 2009

Early in the week last week the @tcea Twitter account tweeted (Twittered?)

"They may forget what you said, but they will never forget how you made them feel." Anonymous

That has sort of been my thought for the week. How do we make our students feel? Our peers feel? Other people we interact with? Do we leave them feeling better or worse about themselves, about life, about us, about what we want them to know? It is the sort of thing that makes Twitter a lot more than people saying what they had for breakfast for me.

Interesting article called Educators That Rock!: danah boyd danah impresses me because of how well she approaches young people on the internet with questions rather than preconceived notions. I wish more school administrators and policy makers did the same.

Just What is Computer Science? Perhaps the key question for computer science educators as discussed on the CSTA blog.

One of my friends turned me on to http://wordsmith.org/anagram/index.html for anagrams. It is an interesting look at how a computer can generate anagrams but I think it is also a good way to have a discussion about how it still takes a person to pick out the really interesting or even ironic anagrams after the computer generates them.

Looking for a timely discussion topic? Take a look at Debate: This house believes that the cloud can't be entirely trusted on the web site of the Economist magazine.

Mark @guzdial followings the continuing saga of getting graduation credit for Advanced Placement Computer Science at  Georgia Board of Regents reconsiders APCS decision and will now "count" it. Next, the Department Of Education has to look at the issue again.

From @blogCACM “CSTA Chapter Liaison Fran Trees writes about email etiquette with 20 useful composition tips (plus 1 good joke)”

From @PeterVogel I see that Paint.NET 3.5 has been released in final form. Paint .NET is free software that is widely respected as an alternative to applications such as Photoshop. IF you are looking for a great tool for image editing this may be what you need.

From Liz Davis aka @lizbdavis I see that MIT is hosting a free Intro to Scratch workshop on Saturday, November 21 from 1-3pm at MIT Media Lab.

Microsoft Technology Blueprint for Primary and Secondary Schools

These resources provide guidance to assist educational institutions in fully utilizing their current technology and migrating from their current state to a more efficient and effective institution. Because each school has unique issues, priorities, and resources, no general Technology Blueprint can be expected to address the specific needs of all schools. Although educational institutions have very specialized requirements, many lessons that have been learned in the business world can apply to the needs of educational institutions. Visit the Microsoft Technology Blueprint for Education website to learn more.

Saturday, November 14, 2009

Dealing With Complexity

I had an interesting conversation with two teachers last week. One the chair of the computer science of a large state university and the other a teacher in a career/technical high school. We were talking about how beginning programming students worked on their programs. I said that time and again I’d seen students trying to fix nested loops by adding end loop constructs in random places until they got a clean compile. Then they were often surprised that the code didn’t work as they expected. The others responded that a lot of those sorts of problems came from students trying to write too much code at once rather than working more iteratively.

For example, one teacher is using Alice which is a great tool. But many students start by adding all the characters they think they need all at once and then have trouble getting them to all work the way they want. The college professor related students trying to write all the methods and functions in a project at once and before testing any of them. The end result was code that was all but impossible to debug because finding where there heart of the error was is so difficult.

Students want instant results though. They think that they can keep many more details in their head then they actually can. Perhaps it comes from multi-tasking so much. Perhaps it is just youthful vanity. or perhaps it is because they see others keep large amounts of details in their head (perhaps their teacher) and assume that it is easy. Lots of students assume they are smarter or more knowledgeable than their teachers. Usually they’re wrong. What they fail to realize is that years of practice and experience gives their teachers an edge that only time and practice will let them catch up to.

I  think we all try to get students to break problems down into small pieces. We emphasize modular coding with small methods and functions. We talk a lot about top down design where we break a large problem down in to progressively smaller pieces. I wonder if we don’t always talk enough about getting each small piece to work right before moving on to the next one. Do we talk enough about unit testing? Do we talk enough about keeping it simple?

I think this is a point that goes far beyond programming BTW. In English class I remember being told to start with an outline and then fill in the outline. One didn’t try to write the whole paper as one run-on sentence. Rather one planned out each section and wrote them in order. Well maybe not exactly in order but one typically made sure one section was in good shape before moving on to another section. Or at least that is always what worked for me. Many problems work better if one focuses on one piece of the project at a time. That is the most efficient way to do things.

Software is getting more and more complex all the time. Student projects are generally fairly simple compared to professional software development. that just means that it is more, not less, important that they learn to keep it simple, work in phases, and deal with complexity from the very beginning.

Wednesday, November 11, 2009

Wait while I look that up on the Internet

Recently I have been doing some mock interviews with high school students. I have some business cards with a coded message on the backs with a challenge for students to solve the code. For a number of the mock interviews I handed the student one of these cards and asked them “what’s the first thing you would do to solve this?” The first part of the code looks like “8BF3A13B” and some many students say “that looks like hex. so I’ll convert it to decimal.” Others say they will compare it with a table of ASCII codes. But at least one in four says “I’ll search for it on the Internet.” OK some of them say they will “Google it” which of course lets me asks me ask if they are sure Google is the reference they want to use when interviewing with someone who works for Microsoft. :-) I learn a lot from the answers to that question as well. But I digress from the issue of if searching for answers on the Internet is really problem solving.

Of course the Internet is a great resource for looking for information and finding the answers to all sorts of questions. Watching student search the Internet for years now I have to say that many of them do a very poor job at it. They don’t always know how to ask questions or what questions to ask. Now searching for an example of a coded message is easy. I expect that many students who get these coded cards from me or from others in my group will find this blog post in the future. I will be of almost no help to them at all though. Well at least not with decoding the message. False positives on the Internet are common.

Information is only half the battle though. Problem solving may start with what questions to ask but it moves on to knowing what specific information or algorithm must be use to solve general problems. This is where it gets difficult for many people. I think that learning to move from specific to general is the key important thing in teaching computer science. This is what makes the difference, for example, between teaching the syntax for a loop and having students who can use a loop to solve problems. Or for that matter in math the difference between teaching what the Pythagorean theorem is and having students who can look at a problem and think “I need to use the Pythagorean theorem to solve this one.” Students need to exercise the problem solving muscles.

There is a fine line though between making things too easy and too hard. Finding it is the art of teaching.

BTW a related post is Are Your Students Good Problem Solvers, or Good Mimics? on the CSTA blog. And there is a collection of puzzles in the archive of the Microsoft College Student Puzzle Day event.

Monday, November 09, 2009

Interesting Links November 9 2009

Welcome to this week’s collection of interesting links. Some of these I found on Twitter, some on various blogs, and some came by email from various people. I hope you find something useful here.

The Innovative Teacher Network is now the new Partners in Learning Network, free public/private communities for teachers. Join & get AutoCollage & Songsmith free

We are a global community of educators who value innovative uses of information & communication technology that improve learning outcomes. By joining the Partners In Learning Network, you can:

  • Create or join communities & discussions
  • Find lesson plans and activities, as well as share your own resources
  • Access free tools and learning programs for your classroom and school
  • Collaborate with like-minded colleagues, improve education in your own classroom and community, and ultimately help improve the quality of education globally

Barbara Boucher Owens from ACM SIGCSE has an interesting post on Computer Science Education week. It’s not too early to too late to start thinking about having an event at your school.

On the CSTA blog I found this cool picture of a sign explaining FIFO in every day life.

image002.jpg

Great visual for explaining the concept I think.

MIT BLOSSOMS STEM education initiative - math, engineering, physics and Bio videos for students.

Here is a list of the most lucrative college degrees from Money magazine. Engineering and science degrees are at the top. Why are students not looking at them? Why are guidance counselors pushing students into other areas? I don’t get it.

Are Your Students Good Problem Solvers, or Good Mimics?  Nice post on the CSTA blog. Are we really turning out critical thinkers or jsut students who can regurgitate solutions to known problems?

Liz Davis @lizbdavis has some fine Scratch lesson material assembled. It is 6 45 minute lessons for her 8th grade class. Take a look and see if it fits into what you are trying to do.

Do you or your students know what a really large data center look likes today? Take a peek into one of the new huge data centers Microsoft has been building.

Recently a young "TIME for Kids" Reporter visited Microsoft to Learn About the Future of Education. They interviews Joe Wilson who is one of the senior people in education outreach in Redmond and someone I get to work with from time to time.

Friday, November 06, 2009

Sequencing

Imagine you had a pickup truck that you used for work. One day the person in charge of company vehicles says to you “we’re going to replace your pickup truck with a Prius. We’ll be saving money on gas. Isn’t that great?” You of course reply with something like “But I need the room in the back of a pickup truck to carry things.” And they reply “well you’ll find a way to work it out.” Can you see that happening? Does it sound like a good idea? Of course not. One lays out the needs and starts from what meets the needs and then works in other factors. A Prius is a great car for what it is designed for but it was never intended as a pickup truck replacement.

How about this version? A true story. Several years ago a teacher I know came back from summer vacation to find that all of her Windows PCs had been replaced by Apple Macintoshes. With no warning to her. Now of course none of the applications she had been teaching worked and the textbooks she could not replace were all wrong. But hey, the tech support people said “you have new computers! Isn’t that great?” Crazy? Well it happened.

I hear these stories regularly. Someone decides that they are going to change the hardware and/or software platform for some reason that sounds good to them. But they don’t take the applications that are being used into account. They’ll leave fixing that to the user. Shouldn’t planning for computer use, in industry, at home and at schools, start with the user facing applications software? Select that and then go looking for an operating system and a hardware platform to run it on. Am I wrong?

Most recently I have heard this in the context of people looking for “replacements” for Visual Basic because their school is migrating to some OS other than Windows. Even if I were not heavily biased towards Windows and Visual Basic (you know I am) this would drive me crazy. As it is none of the Visual Basic alternatives I have looked at look anything like a sideways more. A big step backwards is how they look to my (admittedly biased) eyes. But teachers being presented with this situation never seem to push back. Why not? Tech support is there to support  the teacher aren’t they?

I was a high school technology coordinator for several years and I always viewed my job as being an enabler – someone who helped teachers teach. When ever evaluating operating systems, be it a change or an upgrade, the first thing we did was to get a list of all the applications in use. Then we tried to verify which ones worked and which ones didn’t work with the potential platform. I saw it as the technology department's role to make sure that either everything worked or their were viable replacements that the users approved of before making or even suggesting a change. Everything gets tested. Only when it all works is a change implemented.

Of course to me the role of technology support goes beyond just careful evaluation of platform changes. When a teacher wants to use some new software it is tech supports job to research how to make it work not the classroom teacher’s. It drives me crazy when tech support who will not even let a teacher download solutions tells the teacher that they (the teacher) have to present technical solutions for them (tech support) to implement when software doesn’t work right.

Who works for who in educational technology?

 

Note: see also Your technology coordinator works for you, not the other way around by Scott McLeod.

But I Don’t Want to be a Programmer

One of the things I hear pretty regularly is that not everyone needs (or wants) to be a programmer. Some people want or perhaps even need to do some programming or more generally programming like activities but they don’t want to be full time programmers or computer scientists. These people can be a lot more effective and productive if they at least learn the basics at a fairly good level. Mark Guzdial talks about some of this on a recent post called Talk on Meeting Everyone’s Needs for Computing

The “bigger” problem is the number of people who program and who want to learn more computer science, but who do not want to become CS majors or learn to be software engineers.  A paper out of CMU predicts that we’ll have around 3 million software developers in the US in 2012, and about 13 million end-user programmers.

Another term that comes into use is non-professional programmers. In other words these are people who program but do not do it as their career/full-time profession. Non-professional programmers is actually a super set that includes end-user programmers and people who programmer recreationally or hobbyists. Yes there are people who write code for fun. Lots and lots of them.

Thirty five years ago when I was first learning to program the idea of a software hobbyist was a pretty strange idea. They did exist of course but you had to have some real money (unlike Bill Gates I could not afford to buy an Altair computer to play with) and some serious interest. learning to program was pretty difficult. It was mostly assembly language on computers that hobbyists could get access to. The idea of end-user programmers was even more of a strange concept. Computers were kept in locked rooms with access tightly controlled and limited to highly trained professionals. All that has changed now.

Computer science and programming have now become a life skill. It is something “regular people” can use in their daily jobs, for fun, and as a mental exercise. Computers are inexpensive and most people have access to them. Development software is cheap (often free) and easy to acquire. (See Microsoft Visual Studio Express Editions for example) In daily work life people have access to programming to modify their existing tools (see creating macros for Excel for example) Just last night I talked to a high school student who told me he was habitually creating macros for Excel to solve tasks. I suspect that he will have a huge advantage as a knowledge worker totally apart from any programming type jobs.

I think that schools should be making sure that students have the option to learn and use these sorts of tools. Teaching computer science is not just about turning out computer programmers any more. Today teaching computer science is about supplying students with the tools to succeed in just about any field they go into. And as a plus some of them may find a lifelong hobby. You don’t have to be a fantastic physical specimen to create a great computer game. of course this mean we have to teach the subject well and in ways that interest students – that make them relevant to them. Media computation seems like a great example. game development? Sure. Robots? Sure. And yeah we can do the math thing for the math geeks. :-) But at the very least we need to expose everyone to this field. Let them try it first before they decide it is not something they want to learn and use.

Pre-Collegiate Faculty Connection Redesign

Back a year or so ago Microsoft opened the Pre-collegiate faculty connection web portal to share resources for computer science, computer programming, web development and other related teaching areas. It’s been a pretty successful site with tens of thousands of teachers visiting it for news and resources. This week it was time for a site refresh. The new site is now up and I think it looks pretty good. Of course I like blue themes. :-)

image

More importantly the site navigation is (I think and hope you agree) cleaner and clearer. We’ve also added some colleague connections – links to other blogs and useful web sites that we think you will find valuable. Of course I’m biased as this blog is first on the list but the others are great as well. As before there are links to software for educational use, curriculum for various courses and topics, and links to online training resources that you can use for yourself or with your students. If you haven’t visited lately (or even if you have) please stop by and look around.

Wednesday, October 14, 2009

Web 2.0 and Other Educational Resources from Microsoft

OK, this may not be the definitive index to Microsoft resources for teachers but it’s close. Something for everyone from elementary school English teachers to high school science teachers (check out the world wide telescope) to high school computer science teachers. Lots to choose from.

Web 2.0 and Other Educational Resources from Microsoft

1. PhotoSynth - http://livelabs.com/photosynth/

You can share or relive a vacation destination or explore a distant museum or landmark. With nothing more than a digital camera and some inspiration, you can use Photosynth to transform regular digital photos into a three-dimensional, 360-degree experience. Anybody who sees your synth is put right in your shoes, sharing in your experience, with detail, clarity and scope impossible to achieve in conventional photos or videos.

2. Worldwide Telescope - http://www.worldwidetelescope.org/Home.aspx

WorldWide Telescope (WWT) enables your computer to function as a virtual telescope, bringing together imagery from the best ground and space-based telescopes in the world. Experience narrated guided tours from astronomers and educators featuring interesting places in the sky.

3. Office Labs – Concepts http://www.officelabs.com/Pages/ConceptTests.aspx

a. Community Clips

If there’s a new trick or skill you want to learn in Microsoft Office, but you don’t have the time to take a course, check out Community Clips. It offers a portal through which you can easily browse, view, share, and discuss informal "how-to-use” Office videos from around the world. It also gives you the ability to record your own screens and voice, so you can create your own training videos to share.

b. SharedView

Connect with up to 15 people in different locations and get your point across by showing them what's on your screen. Share, review, and update documents with multiple people in real time. A Windows Live ID (Passport, Hotmail, or MSN) is required to start sessions, but not to join sessions. New in version 1.0: we have added a web based join experience to make SharedView even easier.

4. Live@edu - http://www.microsoft.com/liveatedu

a. Office Live Workspace

If the H1N1 flu virus keeps your students away from the classroom, continue the learning online by using Office Live Workspace to:

· share assignments

· distribute handouts

· post presentations

· enable group collaboration

Use this free online service to publish and share Microsoft Office Word documents, Office Excel spreadsheets, and PowerPoint presentations. Students can get class information from anywhere they have Internet access.

b. Skydrive

With SkyDrive, you can embed public or shared folders on Windows Live Spaces. Everyone can see what’s public, but only people you’ve granted permission can see your shared folders.

Computer Science and Computer Technology Resources

1. Pre-Collegiate Faculty Connection - http://www.microsoft.com/education/facultyconnection/bz/default.aspx

Microsoft’s site for K-12 educators where you can access resources developed for middle school and high school technology, computer science and math teachers. Just released: A tutorial and Curriculum unit for teaching and learning Expression Web – the latest Web development software.

2. MSDN Academic Alliance - http://msdnaa.net

The MSDN Academic Alliance is the easiest and most inexpensive way for academic departments to make the latest Microsoft software available in labs, classrooms, and on student PCs. The program, which is available in more than 45 countries worldwide, has two primary goals:

1. To make it easier and less expensive for academic institutions to obtain Microsoft developer tools, platforms, and servers for instructional and research purposes.

2. To build a community of instructors who can share curriculum and other learning resources to support the use of these technologies.

3. DreamSpark - https://www.dreamspark.com/default.aspx

DreamSpark High School provides professional level development and design tools to students enrolled in an accredited, secondary educational institutions at no charge. Register now and give your students access to all the great software and training DreamSpark offers.

4. Expression for Educators - http://expression.microsoft.com/education

These educational materials provide a variety of resources for learning Web design with the tools provided in Microsoft Expression Studio software.  Students, educators and hobbyists of all ages will find quick tutorials, short learning units and extensive course content to fit their individual teaching and learning styles. The range of difficulty goes from easy - with the quick start tutorials that require no previous Web design experience- to a more advanced level for people who are already skillful at using Web technologies and employing design strategies.  The one semester web design course is appropriate for high school and introductory post-secondary technology courses.

5. IT Academy - http://www.microsoft.com/education/msitacademy/default.mspx

The Microsoft IT Academy program is designed for accredited academic institutions worldwide. Today there are thousands of Microsoft IT Academies in more than 100 countries and regions.

The program provides educators with the tools they need to effectively train students on Microsoft technologies, prepare students for the global economy, and create a skilled community. This subscription-based membership program offers curricula, courseware, and online learning for students focused on a profitable career path, life-long learning, and Microsoft certification.

6. Alfred Thompson’s High School Computer Science blog - http://blogs.msdn.com/alfredth

Alfred Thompson's blog about teaching computer science at the K-12 level. Alfred was a high school computer science teacher for 8 years. He has also taught grades K-8 as a computer specialist. He has written several textbooks and project books for teaching Visual Basic in high school and middle school. Alfred is the K-12 Computer Science Academic Relations Manager for Microsoft.

Other Education Resources for Education

1. Innovative Teachers Network - http://www.innovativeteachers.com/Pages/Welcome.aspx

The Innovative Teachers Network makes it easy to find the resources you need, contribute your favorite curriculum resources, and connect with educators to transform your classroom into a technology-rich environment for classroom learning!

2. Microsoft Partners in Learning - http://www.microsoft.com/education/pil/partnersInLearning.aspx

Partners in Learning is a global initiative designed to actively increase access to technology and improve its use in learning. Our goal is to help schools gain better access to technology, foster innovative approaches to pedagogy and teacher professional development and provide education leaders with the tools to envision, implement and manage change.

3. PiL (MSFT Institute)

Participate in a unique professional development experience that will provide you and your organization with tools and resources to create and support innovative environments and organizations. Based on key learnings of Microsoft initiatives and our Partners in Learning program, (which has already reached nearly 3.5 million educators in more than 100 countries), this program will give you new ideas to implement in your organizations, district, classroom, or workplace. One coming October 27 - 29, Cambridge, Massachusetts.

4. Microsoft Education Teachers Site - http://www.microsoft.com/education/teachers/default.aspx

The home page for Microsoft resources for teachers of all levels.

5. Digital citizenship curriculum - http://www.digitalcitizenshiped.com/

The Digital Citizenship and Creative Content program is a free, turnkey instructional program. The goal is to create an awareness of the rights connected with creative content. Because only through education can students gain an understanding of the relevance of and a personal respect for creative rights and grow to become good digital citizens.