Saturday, June 13, 2009

Real Life Is An Open Book Test

The other day a regular reader of my primary high school computer science blog (thanks Avi Burstein) sent me a link to an article titled Academic source code dust-up symptom of CS education ills. The short version is that a college student posted the source code from a school project to the Internet and his professor objected strongly. The professor was concerned that future students would be able to find the code on the Internet and turn it in as their own. The student believes that his right of expression allows him to post his work. Eventually an academic judicial affairs office sided with the student. Kyle Brady the student involved tells his version of the story on his blog.  I don’t expect this to be the last of this sort of conflict though. And that is a shame.

I’ve been programming for school, for fun and to make my living for about 37 years know. And while I have learned a great deal from course work and from “book learning” I have learned even more from reading the code other people have written. In fact many textbooks include sample code. Certainly the books I have written have included sample code. But professional developers spend a lot of time reading other people’s code. Formally, informally and in any way you can imagine. They also look to reuse code. And they keep documentation around. Even today when much of what one wants to learn professional software developers often have shelves filled with books. Believe it or not they actually reference them too!

I don’t remember when I first heard someone say “real life is an open book test” but it really stopped me on my feet one day. It also influenced me as a teacher. While I often expected students to memorize some things and gave my share of closed book tests and quizzes I always expected students to take advantage of external resources for projects. That included the textbooks of course and the help files and programming language documentation. It also includes asking for help – though one does have to be careful about explaining the difference between getting help and getting someone else to do the work. And yes, even looking things up on the Internet. That’s how professionals work.

There are people, often great educators whom I respect, that want to put more limits on students. For example they want to avoid things like Intellisense (IDE features that show programmers options for function/method calls and parameters) because if means they don’t have to memorize as many of those things. I disagree because I see greater value in the experimentation and “accidental learning” that provides. But that is ok I think.

Stealing (or borrowing) code from the Internet is a real and justifiable concern for many people teaching computer science (well programming anyway). I would argue that faculty should know their students programming styles well enough to spot clear cheating just as English teachers can pick it up in student essays. Sure that is not very practical in sections of 300 but I don’t approve of sections that are too large for the instructor to know their students. (So there :-P ) IF you are going to have sections of 300 you are begging for cheating to occur so you should not whine when it happens. That doesn’t mean I approve of cheating – I don’t. But you already heard me write disapprovingly of overly large sections and cheating is one reason for that.

One thing I used to do with semester end projects was to have one on one mini-code reviews with each student. They would do a demo and I would test a few things. Then we would talk about the code. I came prepared and if there was code that seemed to advanced for the student or too different from their normal work I asked them to explain it. If a student can explain code in a way that makes it clear to me that they know how it works, can debug it, can modify it and can make it fit their particular application why should I care if they wrote it from a blank slate or took some ideas and code snippets from someone else? It would be like penalizing a student in shop class because they borrowed a saw.

School is about learning. It is not teaching students to work with one hand tied behind their back. It is about helping to understand what they read (or find on the Internet) not making them reinvent the wheel. I’ve blogged  before that I think it is important to have computer science students read more code. IF they find student code on the Internet and learn something from that I think that is great. I suspect they’ll learn how not to do things more often that how to do things but that is valuable learning too. In the mean time there are a great many code samples on the Internet. Microsoft posts lots of code that answers the question “How do I?” (some links below) There are many other sites that do the same thing. Students will find sample code. But they will learn for it and that is what we’re all after isn’t it?

 

Friday, June 05, 2009

It Ain’t Heavy It’s My Software

The trend these days seems to be moving applications to the web browser. The ideas behind that are having access anywhere – from any location, from any computer, and at any time. Sounds great. But I resist. I like my so-called heavy applications. OH I understand the benefits of light applications that run from the web browser. I also understand the limitations of computer based heavy applications – operating systems dependence and lack of availability when one is away from their “home” computer. And there is installation costs. I get all that. 

I do happily use Outlook Web Access and Hotmail for email  when I need to for example. But I’d still rather use real Outlook or another “real” email application. I use twitter from the web interface from time to time but the power and flexibility of TweetDeck or other special twitter applications wins me over when I have a choice.

I think this is as much a result of my perception that special purpose tools in most areas give one better results than general purpose tools. Sure a Swiss Army knife will let you do a lot of things with one tool. But as well as separate screw drivers, scissors, knifes, etc? No not even close. You can use one hammer for everything you need to hit but a wrecking hammer will not do as good a job putting in nails as a framing hammer. And getting a table saw to do what a scroll saw can do is going to lead to frustration. Likewise a web based email client will do a lot – and they are much improved in recent years – but a dedicated application on your computer can do more, faster, easier, and still let you do a lot when you are not connected to the Internet.

Which brings me to the next piece. I didn’t grow up with ubiquitous network access. And I still find myself in places where I can’t get connected easily. So the idea of only being able to use an application when connected to the Internet scares me a little. Well maybe concerns me would be a better way to phrase it.

I do like cloud computing to some extent. The idea that I can place data on the cloud and get it from anywhere is great. The idea that there are cloud applications that I can use and access when I am connected is great. But I still what to work locally. I still want some control over my data. That control piece may actually be what concerns me the most. I have always taken responsibility for backing up my own data. Sure I have worked on commercial systems where formal and regular backups were taken. But I have always also done my own backups. I still have copies of programs from college – over 30 years ago. I trust me. not that I haven’t ever lost anything but nothing I haven’t been pretty sure I didn’t need anymore. Well mostly. :-)

Do people – thinking students really – think about and discuss the pros and cons of heavy apps against light apps? I’m not sure too many programming courses really teach light apps. most web-based development I see done in high schools and early years in university are heavy apps. That concerns me a bit. I guess some web development courses cover simple web applications with some database access. That’s great as far as it goes. But I’m not sure it teachers the complexity of building the sort of web applications that many in industry are moving to. While it is true that I am not a huge fan of that sort of thing I recognize that for the near future they are the future. Students need to know about creating them. At the very least they should be exposed to the discussion and presented with the issues to think about. The sooner that happens the sooner they can build applications that old school people like me will be comfortable using.

Or maybe they’ll see the pros and cons differently and the pendulum will swing back to locally run applications. Stranger things have happened.

Thursday, May 28, 2009

Computing at School Working Group

What did I learn about on Twitter today? The UK based Computing at School Working Group is what I learned about. From their home page:

The Computing at School Working Group is an informal group that aims to promote the teaching of computing at school. Our membership is broad, and includes teachers, examiners, parents, university faculty, and employers.

CAS was born out of our excitement with our discipline, combined with a serious concern that our brightest students are being turned off computing by a combination of factors that have conspired to make the subject seem dull and pedestrian. Our goal is to put the fun back into computing at school.

They have a conference and regional support groups called hubs. So if you are a pre-collegiate computer science teacher or a university faculty/lecturer with an interest in helping support such education in the United Kingdom you will want to look into this program.

In the US there is still the Computer Science Teachers Association which, while is largest in the US, is really international in scope and membership.

Speaking of the CSTA, they just released the draft of a model curriculum (Level I Course: Foundations of Computer Science) that covers K-8 computer science. They are looking for comments and opinions on it so take a look.

ADE Team Member Blogs

Hilary Pike & Diane Curtis Springboard from Mortarboard to Onboard (RSS)

Clint Rutkas BetterThanEveryone (RSS) & Coding 4 Fun (RSS)

Sam Stokes on Research in your life and studies (RSS) & on Game Programming using C#, Lua, XNA, XML, Zune, XBox and World of Warcraft (RSS) & on Building games based on Silverlight and Expressions (RSS)

Randy Guthrie MIS Laboratory - Resources for Information Systems Faculty and Students (RSS)

Alfred Thompson Notes for High School Computer Science Teachers

Thursday, May 21, 2009

Revisiting the GoTo Statement

In yesterday’s post I named the “GoTo” statement as basically a bad thing. To my surprise this started a short Twitter discussion and also came up in the comments. So I did a bit more research. I found this fairly balanced article called “Using gotos” by Steve McConnell. And Mark Guzdial twittered a link to an older post he wrote titled “Plea to Language Designers: Bring Back GoTo!” Wikipedia also covers the issue fairly well with a bunch of external links. So clearly  there are multiple sides in this issue. I made the comment in Twitter that this issue is far from settled science.

By settled science I mean that there is still a lot of discussion going on. Arguably there are cases where GoTo statements have a place. One of the things that Mark Guzdial pointed out in twitter “When non-programmers define processes, they use goto's. GoTo is natural.” There is a lot of truth there. Of course one could argue either for or against what is “natural” and people do. Another thing to consider is how an understanding of GoTo helps with understanding other concepts. Ian Bogost (@ibogost)Twittered “GOTO made understanding machine branches easy.” Let’s face it most assembly languages could not function without the equivalent of a GoTo statement!

Most programming languages do include a GoTo statement of some form. Why? Well the discussion comes up every time and people ultimately decide to include it and yet at the same time hope people will not use it. Even the venerable Programming Proverb 7 says “Avoid unnecessary GOTO's” and not avoid all use of the GOTO. I suspect that this is a debate that will go on for ever. Not that there is anything wrong with that. I think I learn something new every time it comes up.

Friday, May 15, 2009

A First Computer Science Course

Starting back this past winter I started hearing about a National Science Foundation (NSF) project to create or perhaps promote might be a better way of putting it a new three course computer science curriculum for high schools. This is part of the Broadening Participation in Computing  (BPC) program at NSF. I heard some of it at TCEA and more still at SIGCSE. It sounds pretty interesting. Clearly, in my opinion and in that of many others, we need to expand computer science education. We especially need more diversity in the field. Only some 20,000 high school students take the APCS A exam these days. That compares pretty poorly with over 80,000 in statistics which is a fairly new and still small (in AP terms) exam. Would a good course before the APCS course help matters?

What I have been specifically thinking about lately is this so-called first course. Some people refer to it as a pre-AP course but others see this as a course for far more students than just those who are headed for the Advanced Placement Computer Science course. I tend to agree. While it might be nice to have a lot more kids take the AP course – ok yeah it would be nice – I keep coming to the idea that what we need to do most in high school is:

a) get students interested in computer science and

b) give them some basics so that when they get to college/university they are ready to start if they have the interest

I’ve seen a number of my own students over the years take just one computer science course in high school and then do just fine as CS majors in college. Not taking APCS did not stop them because they had interest and some basics. So the question is – what should that first computer science course be like?

Should it have some programming in it? I’d have to say yes. But it doesn’t have to be boring or especially difficult programming. Start with Alice, Scratch, squeak/eToys or something along those lines. Then move to something a little more “real” like Small Basic, Visual Basic or perhaps Python or a functional language like F# or Scheme. Personally I’d avoid curly bracket and semi-colon languages but for some people C#, Java or even C++ will work out just fine. The important thing I think is to give teachers some choices. Let people teach with what they are comfortable with. If they like the tools teachers are much more likely to spread enthusiasm to their students. That to me is a key piece.

I think you also have to be concepts focused more than tool focused. I think that the activities at Computer Science Unplugged are great for that. its not just that they are fun and interesting it is that they move some of the focus from the physical computer and to the concepts themselves. That’s a big plus.

I’d like to see some computer history covered as well. I know. Everyone tells me history is boring. But maybe that just means we are teaching it wrong. We’ve got some real characters in the history of computers and we should play that up. There were some out of the box inspiring people like Grace Hopper for example. Let’s get some creative people to tell those stories in the best way possible. And stories are the way to do it – no dry recitation of facts and dates. That would be boring. But talk about the things that made change and innovation necessary. World War II and everything from code breaking to simple cannon trajectory calculations. Why was computing necessary for just in time inventory? And there are lots more we could come up with after a little brainstorming.

What else do we need? What concepts are key? Remember that in a single semester or even year course we can’t cover it all. Loops and decision structures? Absolutely! Right? What about object oriented design/programming? Is the first course too soon? Or should we use objects even if we don’t teach how to create them? Is recursion in or out?  Can we use games as projects? Why or why not? What are good projects that build interest while teaching concepts?

Do you have or know of a scope and sequence document (or more complete package) for a first computer science course? Please send me a link at alfredth (at) microsoft.com or add it to the comments on my main blog? Strong opinions about what this course should look like? Let me know in the comments, by email or write about it in your own blog and let me know about it. This is something I think needs a broad background of ideas and support.

Friday, May 08, 2009

Learn Programming with XNA: Curriculum Available Now

I get asked about curriculum available for XNA on a pretty regular basis. I’ve been linking to a lot of stuff that is available in parts and pieces and even more complete things like Brian Scarbeau’s great XNA educational resource page. And Kelvin Sung’s Game-Themed Introductory Programming Project.  Microsoft just added another piece at the puzzle with a curriculum titled Learn Programming with XNA.

Overview

"Getting Started Making Games with C# and XNA Game Studio" is a programming course for senior high school or undergraduate students with no prior programming experience. It is intended to engage students with the craft of programming by the creation of gameplay using the XNA game framework.

Whilst the students will learn how to create games, the course should really be regarded as one which teaches programming. All of the issues that are explored are also applicable in the wider scheme of software development.

Presentations are provided as part of the learning materials. The presentations are grouped into a number of topic based parts with a practical session to underpin the taught content. Each presentation is interspersed with demonstrations and annotated with speaker notes, as well as content review sessions.

The material is intended to foster a dialogue between the presenter and the audience; in some places the presenter is given some discussion points to further this. There are also some "interactive development" sections where presenter and audience use what they have been taught so far to solve a particular problem. These attempts (and their occasional failure) lead to more detailed exposition of the material and hopefully remind those present that having things not work is actually part of the software development experience.

The whole package includes demos, labs/projects, PowerPoint presentations and teacher notes. Lots of stuff in there. If you are thinking about a game development course take a look.

And there are more curriculum resources available on a variety of CS  topics at the Pre-Collegiate Faculty Connection site including a dynamite standards-based Web Design curriculum. Take a look around.

Monday, April 13, 2009

Links Twittered April 13 2009

Once again I have found myself Twittering a lot of links in the course of the week. Here, in hopes you will find one or more of them interesting and or useful, is the most recent collection. If you want to see these in a more timely fashion I invite you to follow me at http://twitter.com/alfredtwo.

Before I start though let me remind people that there has been a lot of conversation on two of my blog posts from last week. I would seriously welcome more comments on both. And if you have a blog and could link to one/both of them to seed more people my way I would really appreciate it. Or Twitter about them – lots of new traffic coming to my main blog from Twitter lately. They are:

From @NCWIT: I found this article about Computer Science majors not lacking for jobs. One interesting quote from the article is a professor who says "I have more recruiters here than I have seniors"

From @NCWIT @ghc  and @anitaborg_org I found out about an African-American Women in Computing Science (AAWCS) scholarship program.

From an email from a friend (thanks Brian) I found out about some interesting looking tutorials for developing games using XNA.

A lot of people were talking about this Wired Campus article from Chronicle.com  Professor Encourages Students to Pass Notes During Class -- via Twitter Would you do things this way in your classroom? How about in a business lecture/meeting? 

Microsoft Learning has released 2 courses for Windows 7 early adopters. Perhaps something for school IT people who have to think about when (or if but I hope when) to upgrade to Windows 7.

From @alexbarnett and @dhinchcliffe  I found a link to something called The Programmer Competency Matrix It looks really interesting and gives one something to think about in terms of where students are compared to where, perhaps, they need to be some day.

Discovery Education is running a contest. You can enter to win a wireless lab for your school!http://cdwg.discoveryeducation.com/1208/enter.cfm

An interesting video from ZDnet (found on TechRepublic) about deciding on the proper IT Tech support to user ratios. The video talks about a ratio of between 60 and 120 users to 1 tech support person in business. Most schools seem to be more like several hundred to 1 How about yours? Perhaps this is a video to show you school board while they do budget planning? :-)

Friday, April 10, 2009

Teacher Tech Tuesday Erin Gruwell of the Freedom Writers Foundation

Teacher Tech Tuesday: LIVE Webcast with Erin Gruwell, Founder and President of the Freedom Writers Foundation

Join Microsoft Education for a LIVE webcast with Erin Gruwell, Founder and President of the Freedom Writers Foundation, as she discusses her upcoming book Teaching Hope: Stories from the Freedom Writer Teachers launching later this year. Erin will discuss how she and 150 teachers across the US wrote and collaborated on the book using Microsoft and HP technology.

Teacher Tech Tuesday: LIVE webcast with Erin Gruwell

• April 14th, 2009 at 4:00 PM Eastern

• May 5th, 2009 at 4:00 PM Eastern

Register for the webcast at: http://www.microsoft.com/education/events/teachertech.aspx

Sunday, March 29, 2009

A Little Link Love

I have a number of friends and co-workers who are blogging for higher education students (and to some extent higher ed faculty) who I really should give a shout out to. If you are looking for some interesting people to follow these people are worth checking out – especially if you are or know someone in college/university.

Hilary Pike and Diane Curtis blog at Springboard from mortarboard to on board. Recent posts include installing Windows 7 from USB onto a netbook, Technical Book Club (some great recommendations for CS related books to read) and Hilary’s Ada Lovelace Day – Women in Technology – Jennifer Marsman interview.

Clint Rutkas is one of the bloggers at Coding4Fun but also blogs as an individual at his own site - http://betterthaneveryone.com/ You may want to check out his latest project – Webcam Software – Image Processing Edition

Sam Stokes tends to write at a high level but covers some interesting things. Recent posts include Programming languages: C# versus F#, building AI and Physics, FUN: Use UML to map your great game idea design processes and Back to the finite state discussion. And if you are “into space”, MCO: More thoughts on the Martian Climate Orbiter.

Dan Waters has gotten back on the blogging horse after being tied up writing his new Zune game development book. Recent posts include videos such as Doing Homework in Windows 7 and Win7 running on my Eee PC. He also has a video on IE8 Web Slices & Accelerators.

Of course don’t forget that my primary blog and the one most updated is Computer Science Teacher - Thoughts and Information from Alfred Thompson

Saturday, February 07, 2009

Five Year Blogging Anniversary

Today marks five years of blogging for me. That day was a Saturday as well. Funny how things work out.

I have to say that time does fly when one is having fun. My first blog post was at a blogging/community site called the Spoke. I wrote about business travel that day. It was the start of an experience that has made me friends and acquaintances all over the world. And broadened my thinking on many topics.

Today the Spoke has been closed but I have moved my blogging in more directions. I blog about social computing and other more random topics at by blog on Live Spaces – my Alfred Thompson the Cyberspace People Watcher  blog. I blog about computer science and education topics at blogs.msdn – my high school Computer Science Teacher - Thoughts and Information from Alfred Thompson blog. I blog about random stuff at  Mr T's rants and ravings – a blog hosted by a former student. And I micro-blog at http://twitter.com/alfredtwo Perhaps I should consolidate into one blog somewhere. Perhaps one day I will. But for now this is working for me.

So to all who read my blogs, link to my blogs, comment on my blogs and those who have participated in blogging with me for the last five years – Thanks!

Wednesday, January 28, 2009

Useful Web Links for Computer Science Teachers

I keep doing sets of links to hand out at various conferences. It seems like every time I do the list comes out a little differently. Some new things. Some things have new addresses. And the order of things changes for the audience. This list is from a pair of handouts I have put together for a high school curriculum panel at Stevens Institute of Technology and for TCEA. Since I’m been working on this I haven’t has as much time to write for the blog. So here’s hoping this serves as double duty.

K-12 Faculty Community Site http://www.microsoft.com/education/FacultyConnection/precollegiate 

A source for curriculum resources, teacher forums, and program announcements

Programming Languages for Beginners

Alicehttp://www.alice.org  – A 3-dimensional, drag and drop programming language from Carnegie Mellon University

Kodu - http://research.microsoft.com/en-us/projects/kodu/

A graphical programming tool for younger students.

Scratchhttp://scratch.mit.edu  – a light weight 2-dimensional, drag and drop programming language from MIT

Small Basic - http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx

MSDN Academic Alliance http:// www.msdnaa.net

A Microsoft program for schools to get Microsoft Development software for labs, teachers, and students.

DreamSpark for High schools https://www.dreamspark.com/HighSchool/Default.aspx

DreamSpark High School provides professional-level development and design tools to students enrolled in an accredited, secondary educational institution at no charge.

XNA Game Studio Express http://msdn.microsoft.com/xna

Software for developing games for Windows, the Zune and the XBOX 360. Also links to the XNA community with sample code, tutorials and support forums.

Visual Studio Express Editions http://msdn.microsoft.com/Express

Free development tools (IDEs) for Visual Basic, Visual C++, Visual C# and Visual Web Developer

Beginner Developer Learning Center http://msdn.microsoft.com/en-us/beginner/bb308754.aspx

A web site for people of all ages who want to learn programming and web development. Tutorials, videos, projects and web casts

Microsoft Robotics Studio http://msdn.microsoft.com/robotics

Visual Programming Language for robots, runtime libraries for higher level programming, a 3-dimensional robot simulator with sample simulations, tutorials, and videos

Coding 4 Fun http://blogs.msdn.com/Coding4Fun 

A web site for hobbyists and computer tinkerers - sample projects and information for doing fun and interesting thing with programming; often combined with interesting or unusual hardware

Alfred Thompson’s Blog http://blogs.msdn.com/AlfredTh  Which is of course my real official blog.

Sharing of resources, links, and information of interest to K-12 Computer Science Teachers

Tuesday, January 20, 2009

The 2009 Alice Symposium – Call For Papers

Just passing this along in hopes that people interested in Alice will see it an take advantage of this opportunity. I have no connection to the conference or the Alice Project. I’m just a fan.

Deadline: March 15th, 2009

The 2009 Alice Symposium

Duke University

Durham, NC

June 17, 2009

Symposium website:

http://www.cs.duke.edu/csed/aliceSymposium2009

The one-day Alice Symposium is June 17, 2009. This symposium is for Alice teachers at levels of instruction ranging from Middle school and High School to College and University.

Note: Two-day workshops will be available before and after the Alice Symposium.

June 15-16: Alice 3 workshop focusing on Alice in AP and CS1 courses

June 15-16: Alice 2.2 workshop focusing on Alice in pre-AP, pre-CS1 and non-majors courses

June 18-19: Media Computation

You are invited to submit a paper or an abstract for the symposium.

All accepted papers will be published in the conference proceedings. We have requested "in-cooperation" status with SIGCSE. If this status is granted, papers will also be made available for publication to the ACM Digital Library.

TOPICS

  • Studies involving the use of Alice
  • Experience papers
  • Nifty Alice teaching ideas
  • Interdisciplinary use of Alice
  • How to teach with Alice
  • Alice use outside of the classroom
  • Alice and computing concepts
  • Alice and animation
  • Other Alice ideas
  • There are two types of submissions: Abstracts and Papers.

ABSTRACTS

If you wish to give a presentation, but do not wish to submit a full paper, you may instead submit a 250 word abstract describing what you wish to present. Presenters will have approximately 20 minutes for their presentations, including questions and answers. (Please note that abstracts, while available in the conference proceedings, will not be made available to the ACM Digital Library.)

PAPERS

Papers will undergo a blind reviewing process. Papers must not exceed five pages. Authors will have approximately 25 minutes for their presentations, including questions and answers. Papers submitted should follow the ACM SIG Proceedings format. Information is available from the symposium web site.

Windows 7: To the Beta and Beyond

Something for the IT people at your school or district.

Date: Thursday, February 12th

Time: 11:00am Pacific Time

https://ms.istreamplanet.com/springboard

Join Mark Russinovich and a panel of subject matter experts for a live discussion of what's in store for IT pros with Windows® 7. Learn about the evolution of features like Group Policy, BitLocker™ To Go, DirectAccess, BranchCache™, and Software Restriction then get tips on troubleshooting, deployment, and application compatibility. Bring your questions—Mark and the panel will answer as many as they can during the hour-long event, then publish the rest in a Q&A after the event.

Find answers to your Windows client OS deployment and management questions with resources, tools, monthly feature articles, and guidance from subject matter experts and early adopters. To learn more, visit www.microsoft.com/springboard.

As part of the “virtual” experience, you may submit your questions about Windows 7 Beta to the panel live during the event—or submit questions in advance to vrtable@microsoft.com.

Springboard Series: The resource for Windows desktop IT professionals

Monday, December 22, 2008

One More Reason to Be Proud of Working For Microsoft

Microsoft named top U.S. company for community investment in survey of peers Interesting article about “a survey of major corporations [of which companies are] doing the best job of investing in its community. The survey was part of a study published by the U.S. Chamber of Commerce and the Center on Philanthropy at Indiana University.”

IBM and Dell were 4th and 5th. Google and Intel were tied for 6th (although I think that should be seventh but what does it really matter.) Lots of the giving of all five companies is for education. This is not surprising as all of these high tech companies really require not only educated employees but customers.

I’ve been really pleased to be a part of a lot of work that Microsoft has done to support education over the past several years. There is a clear indication at all levels of the company that Microsoft has to support education. For the good of the students, society and Microsoft itself. I’m glad that other companies including those that Microsoft competes with feel the same way.

Friday, November 28, 2008

What are you?

Just for the fun of it I was taking a series of poll questions at Microsoft’s Microphone application on Facebook this afternoon and all of a sudden this question came up and I was stumped.

Do you consider yourself primarily a:

  • Gamer
  • Programmer
  • Computer Scientist
  • Artist
  • Technology Hobbyist
  • IT professional

And I didn’t know. Clearly not gamer or artist. IT professional? What does that even mean today? I work for a computer company but not really in an IT role. And while I have done that it never defined me. So that’s out.

These leaves technology hobbyist which feels ok but not quite. And then programmer and computer scientist. I want to say computer scientist. I really do. But do I reach that bar or am I “just” a well educated programmer? I think I would have to answer computer scientist but admit that this is as much aspirational as actual. And I have to think about how I define computer scientist.

So where do you see yourself?

Thursday, November 27, 2008

Thanksgiving Reading

Why post anything on Thanksgiving? I mean people are all spending time with family or sleeping through football games on TV and generally staying away from the Internet for a couple of days.  Well maybe not. I get bored and I don’t watch TV and my wife loves me enough to let me stay home while she enjoys “Black Friday.” Honestly she loves it. So typically some time over a long week end I get online hoping to find something to read. And lo and behold the Internet is closed. OK not closed but there is far from the typical amount of stuff out there to read. So clearly I should do my part for those of you who are like me. If any …

Here is an interesting article on games. The Army is spending $50 million over 5 years to develop games to train solders. That’s a lot of money. But even more than as something to train solders I think (hope) it might inspire a lot more people to look at other sorts of educational games. Especially those that are more customizable. [Hat tip: Brian Scarbeau for the link.]

Teamwork in searching? Interesting article in the NY Times (free subscription required) about a Microsoft Research project that allows several people to research together using different computers. The product is now available for free and is called Search Together. It seems like this might be a very helpful tool for students doing group research projects. Maybe you want to use some time this long weekend to try it out?

Functional Programming? Ever wonder about it? It’s getting a lot of attention in many higher education computer science circles. Sure you can use a special functional language like F# but what if you want to learn in a different context? Eric White has a blog post that introduces a set of tutorial information that uses Visual basic as the language for functional program. You may want to start out at Introduction to the FP Tutorial which makes the case for functional programming.

Study: Math Teachers 1 Chapter Ahead of Students – This is a typical problem in computer science education as well. I taught a course where I was only 1 chapter ahead of students once and still feel guilty over it. How can we fix it? I don’t know. If you have ideas I’m interested in hearing them.

Leigh Ann Sudol has a post titled Numb3rs and Trains and CS with a bunch of interesting links and a discussion on the TV show and how it relates to making computer science mean something to people.l

Friday, November 21, 2008

IT Challenge 2009 Worldwide Competition for High School and College Students Ages 16 and Over

Attention all high school students 16 and over. Are you interested in information technology?

Microsoft Imagine Cup Announces the IT Challenge 2009 Worldwide Competition for High School and College Students Ages 16 and Over. This worldwide competition is focused on finding solutions to real-world issues. We need you...to imagine a better world, and then make it happen. 

COMPETITION DATES
You can still compete, but don't delay there's only 5 quizzes left!

Infrastructure 11/23/08
Application    12/9/2008
Application    12/20/2008
Management     1/14/2009
Management     1/31/2009

Sign up today: http://imaginecup.com/Competition/mycompetitionportal.aspx?competitionId=23

=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.

Why should you participate?

  • You can further develop your IT talent by participating in a global competition.
  • You get a chance to compete with peers from other countries.
  • You have access to Imagine Cup forums to network with other students with similar technology interests.
  • The IT Challenge adds value to your education. The online quizzes are like mini-certification exams. You can use them as practice exams or see what it's like to take a Microsoft certification.
  • Eligible students who move on to round 3 have the potential to win up to US$8,000 in the WW Finals plus an all expense trip to the Imagine Cup World Wide finals in Cairo, Egypt, in July 2009.
  • There are no fees to register for the IT Challenge competition and guess what, you can compete online!
  • And better yet, you get access to virtual labs and 100+ hours of premium technical e-learning and e-books to prepare for the competition.

Check out past competitors http://channel8.msdn.com/Tags/ImagineCup08finals

=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.

What’s the process for signing up?

The IT Challenge is an individual competition based on four themed online quizzes (client, infrastructure, application, and management technologies). Competitors are challenged to demonstrate proficiency in the art of developing, deploying, configuring and maintaining IT systems that are efficient, robust, and secure.  In addition to analysis and decision-making processes, this invitational challenges students to demonstrate proficiency in the science of networks, databases, and servers.
Remember, you are only required to participate in (and pass) one of the quizzes in Round One to move onto the round 2.  Every eligible entrant that receives a valid score of 50% or higher on any single Round One quiz as determined by Imagine Cup will advance to Round Two. Here are four easy steps:

Step one: Register for the IT Challenge
Step two: Compete in Round 1 online* (feel free to try practice quizzes before the “real thing”)
Step three: Eligible winners compete in Round 2 online.
Step four: Eligible students who move on to Round 3 have the potential to win up to US$8,000 in the WW Finals plus an all expense trip to the Imagine Cup World Wide finals in Cairo, Egypt, in July 2009!

For a complete description and information about eligibility and judging criteria, visit http://imaginecup.com/Competition/Rules-Regulations.aspx

Sign up today: http://imaginecup.com/Competition/mycompetitionportal.aspx?competitionId=23

=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.

ABOUT IMAGINE CUP: The Imagine Cup brings together more than 200,000 students from over 100 countries around the world where they compete to help find the answers.  And no matter who comes up with the best solutions - everybody wins!

In 2009, the Imagine Cup challenges the world's most talented students to "Imagine a world where technology helps solve the toughest problems facing us today." Some might use technology to help a brother or sister get an education. Or find entirely new approaches for medicine.  Or discover ways to counter the inequalities that exist between genders around the world.  These students might ensure the sustainability of our planet or help deliver universal primary education.  Yeah, it's that important.

The United Nations has identified some of the hardest challenges in the world today in its Millennium Goals. This year the Imagine Cup uses these ambitious challenges as a guiding light to inspire change all over the world. Learn more about the eight Millennium Goals by visiting http://www.un.org/millenniumgoals.

=.=.=.=.=.=.=.=.=.=.=.=.=.=.==.

Have you heard about Academic Second Shot? If you are planning on taking a certification exam, you get two shots at passing a Microsoft 072 (academic series) certification exam, and the first exam is offered at a student discount!

Register now for an academic discount on your first exam www.microsoft.com/learning/2ndshot 

For more information, please contact Lani Fraizer at lani (at) synergiesinsync.org or call (916) 458-6460.

=.=.=.=.=.=.=.=.=.=.=.=.=.=.==.

Are you already participating in the Imagine Cup's IT Challenge or Academic Second Shot?

Please take a few moments to share your feedback with us: lani (at)synergiesinsync.org.

Thursday, October 23, 2008

Announcing Small Basic From Microsoft DevLabs

Do you remember the old days of learning how to program with a simple, easy to use, uncomplicated version of BASIC? A lot of people including a lot of teachers (and more than a few professional developers) do. But in general companies are working on more and more powerful version with added complexity. Here now is step sideways. Not all the way batch to the command line but not so far forward that it takes a trained professional to use Small Basic is a new development tool for beginners. For over a year Small Basic was a part-time project by a software developer at Microsoft. He had a small number of people who experimented with it, tried it with their kids, and provided feedback. Today Microsoft released it into “the wild” as part of the new DevLabs portal. (Nice video there with Microsoft engineers talking about innovation and inspiration.

A little more information from the Small Basic portal site:

Small Basic is a project that's aimed at bringing "fun" back to programming. By providing a small and easy to learn programming language in a friendly and inviting development environment, Small Basic makes programming a breeze. Ideal for kids and adults alike, Small Basic helps beginners take the first step into the wonderful world of programming.

  • Small Basic derives its inspiration from the original BASIC programming language, and is based on the Microsoft .Net platform. It is really small with just 15 keywords and uses minimal concepts to keep the barrier to entry as low as possible.
  • The Small Basic development environment is simple, yet provides powerful modern environment features like Intellisense™ and instant context sensitive help.
  • Small Basic allows third-party libraries to be plugged in with ease, making it possible for the community to extend the experience in fun and interesting ways.

You will find a getting started guide at the Small Basic Portal BTW. Check it out and send me you feedback or discuss it in the Small Basic forums or the Small Basic Blog hosted my the developer behind it.

Cross posted from my main high school computer science teacher blog which is updated more regularly.

Tech Talk Tuesday For Teachers

I got a lot of “T” words in that title. What I found this week was a whole calendar of videos and presentations created by the “Microsoft in Education” team that are aimed at teachers, Tech Coordinators, and others involved in using computer technology in schools. Some of the talks are under the “Teacher Tech Tuesday” banner and are aimed specifically for teachers. Some of the talks are yet to come and can be joined live when they are being presented. Others have already happened but can be viewed on demand. A few of the upcoming talks are listed below (borrowed from Mike Tholfsen‘s blog which is worth you checking out as well.)

Here is the schedule for upcoming Teacher Tech events