Friday, June 28, 2013

CS Educator Interview: Kathleen Weaver

For the second in my series of blog interviews with computer science educators I present Kathleen Weaver from Hillcrest High School  in Dallas Texas. Texas is a big hub of high school computer science education by the way. Here now Kathleen.

Where do you teach? What sort of school is it?

Public high school in Dallas Texas, urban school, mixed demographic -- from free and reduced lunch to massively spoiled rich.  Every religion, every ethic group you can think of, over 50 home languages.

How did you get started teaching computer science?

Needed to make a major change -- either divorce or job change -- decided to ditch the career and keep the husband.  

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

I’m it.  We’ve got PreAp / AP CS which meets together and don’t have much call for.  Robotics is new this year.  Game programming was new last year, widely popular but doesn’t go the way I want it to.  Web design has been around for a long time, again widely popular but doesn’t go my way.  We have an intro course, traditionally was basic, revamped it last year, and well, it’s an intro course.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I try to make things student centered.  However their ambitions are a lot bigger than their will power.

What is the biggest challenge in teaching CS at your school?

See above.  What they want to learn is a larger subset of what they actually want to do.

What is administration’s support (or lack of support) like at your school?

They generally leave me alone, as much as they can.

How do you measure success for your program? For your students?

Success in later life.  I’ve been doing for 21 years and I get a lot of feedback.

What is the one thing you like to talk about regarding your program that I haven’t already asked?

All the cool things my former kids are doing:
  • Network support -- kid was raised to be homeless, I swear.
  • Flying tourists around the Denali National Park -- web design got him there
  • Supporting hardware for Bing
  • Came back and paid to refurbish the baseball field ($20,000 worth)
  • Recently gave my classroom $50 through Donor’s Choose because I help her understand her husband.

More of Kathleen on the Internet

For a full list of interviews in this series please see CS Educator Interviews: The Index

Thursday, June 27, 2013

Computer Science Education Act (CSEA)

This looks like a very good piece of legislation. The basic idea is not to create new programs or additional spending but to reduce barriers to creating more computer science programs. More information at About the Computer Science Education Act on the Computing in the Core website.
The Computer Science Education Act (CSEA) is a piece of legislation that has been introduced in the US House of Representatives that would make important changes to federal education laws to remove barriers to computer science in K-12 classrooms nationwide. Read a summary of the issues the bill addresses and what the bill does here.
Code.org, Computing in the Core and its members, and K-12 computer science education advocates support this bipartisan legislation.
The Computer Science Education Act would:
  • Amend the statutory definition of “core academic subjects” to add computer science
  • Define computer science
  • Add computer science to the academic subjects addressed by federal teacher professional development programs
This is something we can get behind by telling our Congressional representatives that they should co-sponsor and support this bill. My rep has already heard from me. Has yours heard from you?

CS Educator Interview: Garth Flint

One of my summer projects is to collect stories from different computer science teachers. There are many teachers in many types of schools and many of them often feel like they are alone; that they are the only one in “their situation.” While all schools and all teachers are different (which is not a bad thing) there are usually similarities if you know where to look for them. That is the purpose of this series. I have asked a good number of teachers to answer some questions for me so I can post the result as a sort of interview.
Garth Flint from Loyola Sacred Heart High School in western Montana is one of the first teachers I approached. Garth is a regular blogger (Garth Flint’s blog) and frequently comments on my blog. The result is that I learn from him. So without more wasted time here is Garth’s response to my questions.

Where do you teach? What sort of school is it?

I teach at a private Catholic High School in a town of about 60,000 in western Montana.  This is a poor Catholic School so close to half of our students are on some kind of scholarship.

How did you get started teaching computer science?

When I interviewed for my first teaching job as a math teacher in ’83 the superintendent was giving me the school tour. We walking into the classroom and he pointed to two TRS-80 computers and asked if I know how to use them.  Apparently they had just bought them and nobody in the school know what to do with them.  I lied and said “Yes”.  I had some Apple IIe experience from college so I figured I could fudge a little on the answer.  That fall I started using them in my math classes and the kids wanted to learn how to program.  So I said to myself “I can figure this out.”  I have been saying that ever since.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

Our curriculum is very flexible but the usual is:
  1. Computer Apps (freshman usually) – the usual Office, Photoshop and odds and ends.
  2. Computer Technology (9 – 12) – hardware, a little networking, viruses and malware, troubleshooting, ethics and a mish mash of other stuff that is happening in the world of technology.
  3. Programming I (9-11) – Typically Scratch and Small Basic.  Just a intro to the concepts and idea of programming.
  4. Programming II/III (10-12) – Mostly Corona but usually 2 or three other languages.  These courses are somewhat driven by the students in the class.  I like to show them a variety of languages with the intent of making them learn something from the beginning.  I try to teach them to learn, not teach them a language.  If I teach them language X then sure enough the college of their choice will use language Y.
  5. Programming Research (11-12) – Whatever I think is cool.  Again the focus is on learning a language from the beginning and not building Christmas trees with asterisks.  This fall I think we are going to look at TouchDevelop and some C++.  One of the students is in a robotics club that uses C++ so I figured it would be a good direction.
  6. Computer Technology II (10-12) – Offered when I have enough kids interested.  Setting up computers from scratch, building a domain, networking, Active Directory, Group Policy, routers, switches, troubleshooting weird issues, etc.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I try to teach my students how to learn.  I taught math at the local university for 10 years and have friends teaching in the CS department.  College and high school students can learn by rote but they cannot seem to troubleshoot, develop a good trial and error strategy or locate learning resources.  My teaching philosophy/goal is to fix that as much as I am able.  One of my favorite assignments is “Draw a house using a turtle in language X.  You have two weeks.”  The students reply “But we do not know language X”.  My reply is usually “Bummer.  You better get to looking for resources then.”  One year I gave “Draw a house using a turtle in three different languages.”  One girl drew the house in Python.  I do not know Python.

What is the biggest challenge in teaching CS at your school?

My biggest challenge is keeping up with the kids.  I give these broad assignments then I have to find time to do them or at least be able to give the kids some help when they hit a bump.  Having learned all my CS on the job leaves some huge gaps in my knowledge base.  It also does not help when a good number of the kids are smarter than I am.  I think for any CS teacher the lack of formal education in methods of teaching CS is a massive handicap.  As a math teacher I have had multiple courses in math pedagogy and learning techniques.  There are a huge number of studies on why kids struggle or succeed in math classes.  CS not so much.

What is administration’s support (or lack of support) like at your school?

I get all the support my administration can afford.  Our graduation requirement is two semesters of computer technology.  We pride ourselves on offering more CS that the public schools.  Private schools can end up a little geek heavy demographically so my administration realizes a good percentage of our kids are going into computer intense fields.  We strive to be a tech school on a poor man’s budget and we do a pretty good job of it because the administration is behind the CS.

How do you measure success for your program? For your students?

I measure success by talking to the college students that come back to visit.  When they come back and say their first year of college CS was boringly easy I know I am doing OK.  My graduates are consistently hired to be tech aides at their universities.  Not because they know a lot of computer tech, but because they know how to troubleshoot and know how to learn.  I also measure my success by the way the students that take my CS courses are not absolutely turned off by CS or programming.  They may not go on in the field but they are no longer adverse to learning about computer technology or programming.

What is the one thing you like to talk about regarding your program that I haven’t already asked?

I get to build my own courses which allows me to pick up a new direction as CS changes.  Since we have not spent big money on a textbook or on some “program” we are able to introduce something new in the time it takes me to figure it out.  CS is not like math.  Math has been pretty much the same for a long time.  Euclid did the geometry we teach today.  CS on the other hand can change last week.


For a full list of interviews in this series please see CS Educator Interviews: The Index

Monday, June 24, 2013

Interesting Links 24 June 2013

Second year in a row I am not at ISTE this week. I understand that there are twice as many computer science sessions this year than last. That’s a good thing and something I believe that ISTE really needs to continue.  I hope to go to ISTE next year in Atlanta though. In the mean time I do have links to share with you all.

Ken Royal @kenroyal wrote a great post on Mobile Learning: Top 7 Recommendations  Digital-aged Instructional Technology tips.

Microsoft's innovative Project Spark to let users create, share games on Xbox One, 360, and Windows 8. Will this be the big new thing in game creation? Check out the Project Spark FAQ.

Teacher Education, not AP CS Good comments from Garth Flint on the need for more teacher education in computer science.

Partners in Learning Global Forum 2014 Celebrating the best of education in Barcelona! from Microsoft in Education

REACHING OUT TO CSTA's INTERNATIONAL MEMBERS http://feedly.com/k/14N8oFM Good read on the CSTA blog Looking for CS teachers around the world

Learning Scratch (playlist): is a great series of videos on using Scratch created by Laura Blankenship @lblanken

From @NCWIT: Learn How to Celebrate Girls in Computing in Your Region.

"Learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript" Good read from Channel 9.

Have you seen the new http://Code.org Check it out. 

6 Tips To Integrate Coding In The Classroom has a lot of great ideas. via @teachthought

Peter Beens@pbeens Sent out a link to  pynguin - a Python Turtle Graphics Application. Well worth checking out if you are using or thinking about using Python in your classroom.

Friday, June 21, 2013

Teaching Computer Science: Profession or Craft

A recent report on the quality of teacher training has stirred up a lot of discussion about how teachers should be prepared. With the ongoing shortage of qualified computer science teachers (putting aside the discussion of what being a qualified computer science teacher actually is) this has some relevance for CS education. I was struck by one set of comments by Arthur Levine in Inside Higher Ed.

“We don’t know how to prepare teachers,” said Arthur Levine, former president of Teachers College at Columbia University and author of a scathing critique of teacher preparation. “We can’t decide whether it’s a craft or a profession. Do you need a lot of education as you would in a profession, or do you need a little bit and then learn on the job, like a craft? I don’t know of any other profession that’s so uncertain about how to educate their professionals.”

Full article at University programs that train U.S. teachers get mediocre marks in first-ever ratings

I know another profession that is that uncertain about how to education their professionals – software development! We get hit with a double whammy. On on hand we don’t really know how to train our teachers and on the other we don’t really know how to educate our future professional developers. It’s a mess.

The debate over software being a profession or a craft (or an art to really mess things up) is one of long standing. I’ve been hearing it throughout my almost 40 year career. Google reports (In Head-Hunting, Big Data May Not Be Such a Big Deal) that something around 14% of their engineers are not college graduates. Google is pretty fussy about who they hire so that means something. Any discussion of development of software professionals will include loud voices declaring that formal education is somewhere between useless and downright harmful.

I lean closer to the craft idea both for teaching and for software development. Now software development is not all or even most of computer science. I think there is a lot of science and profession in CS. Developing software though remains something of a craft. It is something that is best taught through mentorship (think apprenticeship) rather than just rote learning. As someone who entered teaching though non-traditional path I think the same about teaching BTW.

Now be aware that most modern apprenticeship programs include a pretty fair amount of classroom teaching. It is not all on the job. I like that mix. I think that computer science and software development can benefit from a mix of classroom and apprenticeship theory. This is why I am a huge fan of project based learning.

Projects open the doors to out of the textbook thinking. They allow students to move in their own directions while at the same time taking clues from an organized and well thought out plan for learning. My problem with purely self teaching is that with pure self teaching the student has an unprepared teacher. There is a tendency to narrow ones focus on the particular project that one has taken as a learning platform.

A good teacher expands options rather than limits them. I see this as especially important in K-12 computer science. Our goals should be to help students expand the range of possibilities. Let them get focused later. Point them in directions they are not aware of themselves. Give them projects that both get them excited and motivated but that also force them to learn how to learn and move in different directions. It has been said that education is not about filling a bucket but starting a fire. Projects are fire starters.

Thursday, June 20, 2013

Your GPA Doesn’t Mean Anything Useful

A recent interview in the New York Times with Laszlo Bock, senior vice president of people operations at Google had some interesting things to say about the value of GPAs and standardized tests. Google, to no ones surprise, looks at data for everything. This includes what works or doesn’t work in hiring. The insights on grades was particularly interesting to me.

One of the things we’ve seen from all our data crunching is that G.P.A.’s are worthless as a criteria for hiring, and test scores are worthless — no correlation at all except for brand-new college grads, where there’s a slight correlation. Google famously used to ask everyone for a transcript and G.P.A.’s and test scores, but we don’t anymore, unless you’re just a few years out of school. We found that they don’t predict anything.

Full article at In Head-Hunting, Big Data May Not Be Such a Big Deal

It’s been 35+ years since I graduated college. More than half my life ago. It’s hard for me to see how anything about my career could have been predicted from that GPA. I’m surprised anyone thinks they are good predictors of anything other than an ability to get good grades. This got me to thinking about how we grade in schools though. Are the grades I give my students any indication of anything of real value? If not, how do we fix that?

Generally I see evaluations as being good for two things. 1. Understanding what students do or do not know 2. Providing objective grades for transcripts

The first I see as very valuable as long as it is used as a tool for improving how the material is taught. Grades? Not so impressed with the whole idea. Administrators love them. Students like them when they support the idea that they are smart or that they know something. If you notice though most professional development events for industry professionals don’t include grades. Online training I used to take at Microsoft used to give quizzes but they seemed mostly designed to see if you were paying attention. They were easily “gamed” as well. The real proof was if you were actually able to apply the information to your job. The real evaluation was on how you used the material and not how well you did on a quiz.

The real value of what you learned in college (or high school) is not what grades you received but how you are able to apply that knowledge. Of course you have to learn and retain that knowledge. Testing, to a large extent, the way we do it encourages non-retention. Once the test is over students feel free to forget the material because they see its value only for getting that test score. It is a mentality that we encourage by the way we grade.

The value of a comprehensive end of course test/exam/evaluation is problem only that it forces students to retain more information longer than they might otherwise. On the other hand too many students think they can cram enough into short term memory in the days before the exam to get by and then forget it again.

One of the things I used to say to students in my APCS course was that anything I taught them at any time in the year as well as anything they were taught (and should have learned) in the courses preparatory to taking APCS was fair game for testing at any time. I took that seriously. Did it help? Hard to tell but I hope so.

What I surely believe is that we have to make it clear to students that the goal is not good grades but the acquisition and application of knowledge. It’s a little abstract especially for high school students. In the end though education has to be about a lot more than the GPA or its utility is marginal at best.

Wednesday, June 19, 2013

Two Sides: APCS Principles

CSPrinciplesLast week there was an announcement of a multi-year $5.2 million grant from the NSF to fund creation of a new Advanced Placement Computer Science course called (working title at least) AP CS Principles. This is based on the work done by many over the last several years to create a new college level computer science course that would be accessible to more students and teachable by more teachers. (See the CS Principles website) Exciting news for many people who see a lot of potential in this course. But not everyone is excited.

A blogger and college professor who posts under the name of Gas Station Without Pumps took on the question on his blog with a post titled Millions for a fairly useless new test. He is skeptical that the course is really college level. I’ve heard the same thing expressed by others. Now the course, or some variation of it, is being taught at a good number of colleges and universities but as this blogger points out there are other courses offered that we don’t have AP level courses for because they are, perhaps, not such high level courses in the first place.

He also has some concerns that this “easier” AP CS course will eventually push out the more strenuous AP CS A (what I like to call APCS Java) course. I’m not so worried about that. I suspect that schools who  teach APCS A now will use APCS P as a feeder course in hopes of expanding the total number of students learning computer science. This new course may help a lot of schools that currently only get to teach one CS course (APCS A) to expand to two courses.

Overall I continue to have mixed feelings about AP courses in general and AP CS courses in particular. On one hand AP courses give a subject a sort of legitimacy that they don’t always have without an AP course at the top of the scale. The states that allow for an AP course to count as a graduation credit in either math or science only allow the AP CS course to count. Will this new APCS course count in the same way that APCS A does now? One hopes so but nothing is certain.

It seems unlikely that in the current political climate we could get states to set a standard for a course that counts outside of the AP curriculum. This is something I believe needs to happen. We don’t see only AP courses counting for graduation in many (any?) other subjects do we? Schools with no AP courses at all manage to give out state backed diplomas as far as I can tell. This makes CS still very much a second class subject.

So there is good and bad in the APCS program. I think we will not really know if the new course is really college level until we see the way it is evaluated. For that we largely have to trust the people who develop the test and than see what universities decide to with with the results of the test. It’s a multi million dollar gamble for computer science education. NSF and other outside money (Google is spending some to support this as well) the College Board is largely getting a free ride. They have little to lose and much to gain.

Two Sides: Putting Industry Professionals in the Classroom

Logo Linked ListMark Guzdial is one of the people I most respect in the area of computer science education so when he says something is good or bad I tend to take it very seriously. Not that I always agree but I have to think long and hard about it before I disagree. So I have been thinking a lot about some recent comments he has made recently abut the TEALS program. (Most recently in  a post titled It’s time for Teach For America to fold: The lesson for computing education) In brief Mark says:

[…] why TEALS is not a useful strategy for the long-term health of computing education in the United States.  We need to build up our corps of veteran computer science teachers.  Using professional IT workers as stop-gap measures means that there’s no incentive to develop those veteran teachers, and means that we’re not spending our efforts in teacher professional development that will pay off over the long-term.

Now before we go further, Kevin Wang who started and runs the TEALS program is someone I know from my time working at Microsoft. He’s a good guy and his heart, in my opinion, is definitely in the right place. And of course I have had many good things to say about this program over the last couple of years. So I am conflicted a bit.

I understand Mark’s points. I can see schools and school districts taking the easy way out and letting these volunteer teachers take over. It saves them money and it means they don’t have to do (or pay for) a lot of training of new CS teachers. It is a short term fix though as people move around quite a bit in industry and someone who may be able to take a course one year (or several) may suddenly become unavailable leaving a school high and dry. Not a risk that is good for stability and continuity. In fact it really takes a couple of years for someone to become a good teacher so swapping in new people every few years (the Teach For America problem) is not a good thing. In fact it is arguably pretty wasteful.

In fact I would go one step further than Mark and ask if perhaps all programs run outside of schools are making it too easy for schools to avoid teaching computer science. Summer camps, after school programs at YMCAs and Boys & Girls Clubs and many more. If we have “enough” programs outside of school (by someone’s definition of enough) do schools have to teach computer science at all?

On the other hand can we wait for schools to develop enough teachers? There is not much indication that they see the need or have the desire. Is a so-so short term solution better than no solution at all? Depends on your point of view. If you have a child in high school right now you may want a teacher there right now. If you have a third grader then maybe hoping for an optimum solution that will be ready when they get to high school may very well seem like the way to go. Though I think you have to be a real optimist to expect that to happen. Or maybe I’m too pessimistic.

I really want to see computer science in the main stream of education. I really want to see people who are trained as computer science educators in the classroom. I don’t want schools to be dependent on volunteers or highly educated non-educators for what I see as an important subject that every student should have some exposure to.

One possibility I see is that having more schools offering computer science, even with volunteer professionals as instructors, may give the field more visibility. Perhaps schools in areas without high densities of professionals will see this as an indication that they need to develop their own programs using “real” teachers in order to make their students competitive with students from other areas.

I jokingly tweeted last week “Please don’t teach CS to your students. I want my students to have an edge.” It’s one of the most retweeted things I have ever tweeted. Somehow we need to make schools (and school boards both locally and state-wide) see that they need computer science programs to make their students competitive in the world today. I’m not sure how we do that but the attention that programs of all sorts that are outside of school may get the message that the world outside of school sees some value may help.

Monday, June 17, 2013

Interesting Links 17 June 2013

First Monday of “summer vacation” and my grading is done and have been submitted. You know what that means! Yep, working on my lesson plans for August. Two brand new courses to teach and I am determined to be ready for them. OK, yeah, maybe I have some fun planned as well. Since it is Monday I do have links to share. I hope you’ll find some useful.

First off, if you are going to ISTE 2013 you really want to take advantage of a free Microsoft Surface RT that is available to eligible attendees. You need to bring some paperwork so go to the Windows in the Classroom Surface Experience Project site, read the details and get the paperwork done before your central office clears out for the summer.

I’m not going to be at ISTE this year and I am very disappointed about that. Looks like more computer science sessions than they have had in years. And do stop by the Microsoft booth. I may not be working at Microsoft anymore but a lot of good people who care about education are.

Peter Beens ‏@pbeens tweeted a link to pynguin - Python Turtle Graphics Application. Turtle graphics really seem to be coming back in a big way to introduce students to programming. (See also my TouchDevelop Demo: Simple Turtle Graphics )

AP CS Principles Course Moves One Step Closer with millions of dollars in new funding. Good read from the CSTA blog

Should All High School Students Learn Programming? While an obvious YES to me not everyone agrees.

Coding Is Coming To Every Industry You Can Think Of, Time To Start Learning It Now for the pro learning coding from  @FastCoExist

Computer Scientists Get Wet talks about the way computer science is getting deeply involved in all the other sciences. 

A reminder that I keep a list of computer science educator blogs is available at Computer science education blog roll Looking for any I have missed.

Computer Coding Lessons Expanding for K-12 Students via @educationweek

Biggest EdTech Question: How? Good read from @KenRoyal about how many schools struggle with how to get and maintain education technology

Interested in CS education? It's worth taking 40 minutes to learn from one of the field's top researchers – Mark Guzdial. What We Know About Teaching Computer Science ("What does Guzdial do, Anyway?")

A recorded session from TechEd 2013 - Building Apps with the Kinect for Windows SDK – is available. yet one more thing I will be looking at for ideas to use in class next school year.

Friday, June 14, 2013

Free Computers For ISTE Attendees

Wow! Free computers. Hard to ignore that one. gIf you are heading out to San Antonio for ISTE 2013 Microsoft has a deal for you. They are giving away free Microsoft Surface RT computers to attendees from eligible schools. There is a some simple paperwork to make sure no ethics violations take place. The computer is for the school and for academic use after all. But what a deal!

You must register online and have your school official and/or ethics officer sign a gift acknowledgement letter provided to you by Microsoft, and adhere to all the other Windows in the Classroom Surface Experience Project terms. Offer ends June 25, 2013. Please see for project details and full offer terms and conditions.

fThe project is called the Windows in the Classroom Surface Experience Project and it seems like a pretty good deal to me. If I were going to ISTE I would sure take advantage of it. I don’t actually have a Surface RT myself.  But I’d like one. I have a Windows 8 Slate and I  like it but a Surface would beh better for what I want a slate for.

The Surface RT doesn’t have the ability to run traditional Windows Apps and I’d still use my Samsung for developing using Visual Studio but the Surface should be ideal for TouchDevelop work and with a great web browser and the RT versions of Office I’d be pretty well set for everything else I do. Especially with that cool keyboard/cover that my Samsung doesn’t have. So this would be great for travel.

theteachercollectionlogoI think it would be great in the classroom as well.  There are some apps I was looking at using in the fall already at The Teacher Collection Apps site. Seating charts, lesson planning, essay grading and more.

This is a big risk for Microsoft BTW. They are spending a ton of money on it (I assume – I have no inside information since I’ve been gone from Microsoft for 9 months or so). I suspect that they believe (hope) that once teachers get these in their hands and start using them they will find them as useful if not more useful than iPads. If teachers give them a fair chance that may be true. If if does it will help Microsoft combat the “oh its an Apple isn’t that wonderful” attitude that seems to be pervasive in education. If Microsoft is smart these Surfaces will come pre-loaded with a bunch of apps so that teachers don’t have to do too much looking for them on their own. Lucas Moffitt’s Teachers Collection or other apps like that would be a good start.

Ray Fleming in Australia has a good list of Windows 8 Education Apps and of course the Windows 8 Store shows many as well. So it should not be too hard to find something useful.

Wednesday, June 12, 2013

They Just Don’t Seem To Get It

An article was published yesterday with the very optimistic title of Computer Science May Become Mandatory Part of Mass Public School Curriculum. If you read the article though the work “may” could be defined as “when hell freezes over.” OK maybe that is too far in the other more pessimistic direction so let me start over talking about the article. basically a coalition of high the companies including Google, Microsoft, Oracle. and Intel have formed the Massachusetts Computing Attainment Network, or MassCAN to lobby for more computer science education in Massachusetts.

There is more information at the Boston Globe article Tech firms call for mandatory computer classes Want computer science taught but I don’t know more than what is in those articles. The companies are willing to put their money where they mouth is to support curriculum development and teacher training. The response from the state Department of Education has been anything but enthusiastic as far as I can tell. That is why I see any of this happening as unlikely.

For example Mitchell Chester, commissioner of the Massachusetts Department of Elementary and Secondary Education:

While Chester agrees with tech executives that Massachusetts graduates should be better equipped to pursue computer science careers, he said a better approach would be to incorporate computer teaching in existing course work, or to work with individual school districts to develop their own specific curriculums.

The first approach, incorporating computer teaching into existing work, is a great idea. In theory. The problem is that few teachers know how to do this. Many seem unwilling to learn because they just want to teach the way they always have. Getting real computer science into the curriculum rather than just computer applications is a whole lot harder still. I wonder if the apps is what he thinks of as computer teaching?

Working with individual school district to develop specific curriculum seems like a way to say “go fight the same fight as many times as there are school districts.” That is a huge drain on resources and highly unlikely to be very successful. This strikes me as a huge failure in leadership.

Paul Reville, a former secretary of education in Massachusetts and now a professor at the Harvard Graduate School of Education:

[…] suggests the companies should start on a smaller scale, selecting a few schools as a pilot for a more focused approach to the skills gap in technology. If those proved effective, Reville predicted, computer science courses would spread rapidly.

This makes no sense to me. There are schools doing good things with computing education in and around Massachusetts. Some in public schools, some in private and some in charter schools. They could take a look at the program at the Advanced Math & Science Academy (AMSA) for one. Computer Science from middle school up through high school. Their CS students win awards. 

Having an effective program is far from enough to get things to spread. Computer science has to have value to the schools and to the students. If computer science stays an elective that doesn’t “count” towards graduation schools are going to continue to give it short shrift. Students are likewise going to avoid it unless already very interested in it.  Eleven states (Indiana last week made it 11) accept APCS as a math or science credit for graduation. Massachusetts needs to do the same at a minimum.

Parallel Processing And Data Analysis And Chocolate

544671_10151387081954607_1370783220_nWe’re working on a new course for next year. It’s based to some extent from the Exploring Computer Science course but with some modifications to fit our school and time frame. In short we have a lot to cover in a short period of time. This means that I want to mix some topics. Or rather have some learning exercises that let us talk about a couple of things. So I think we may count M&Ms.

My wife has been doing Excel projects with her middle school students around things like counting the number of chocolate chips in different brands of cookies for a while. Recently she did an exercise where she used M&Ms and that gave me the idea. I don’t want one child to count all the M&Ms in a big bag because that would take too long. My thought is that we can talk about the difference between single threaded work and parallel processing. We’ll split up the M&Ms and have each student sort and count their pile. They will put the results “in the cloud” perhaps using some cloud app. Then we will analyze the results using Excel or some other spreadsheet. We’ll do the whole totals thing, create some charts, and discuss why different colors are more frequent than others (if as I believe they are.)

So we’ll get data for a spreadsheet project, talk about parallelism and use “the cloud” which is becoming so important for students to know about. Three birds - one project. Oh and kids get candy which seem to motivate them. I just have to make sure the teachers who have them in following periods don’t find out I am sending them kids hopped up on chocolate. Smile

What do you think? What would you add? Or is this a bad idea?

Tuesday, June 11, 2013

TouchDevelop Demo: Simple Turtle Graphics

My latest TouchDevelop video demo. In this one we use a simple turtle graphics program to demonstrate: Turtle graphics, a basic loop, and some TouchDevelop editing features that you will find useful.

Creating our first turtle graphics program using TouchDevelop

I found the mark function which I demo here to be very useful. It allows one to cut or copy sections of code very easily. Perhaps even more useful it lets you select some code and then surround it with other code such as a loop or an if block. This makes improving code very easy. You will see one example here as I first remove some duplicated code and then surround the remaining code with a loop making the program more simple and more powerful/useful at the same time.

Monday, June 10, 2013

Interesting Links 10 June 2013

Finals today and tomorrow. Wednesday is last day for faculty and I’m done with school for the summer. Big plans though. I want to make a lot of videos, create all of my speaking PowerPoints, get projects ready and generally be ready to hit the ground running when the new school year starts. Oh and take some time to relax as well. I’ll be posting the videos as I make them over the summer. Maybe that will get me some feedback to make them better. And I’ll try to collect useful links like the ones below.

Choose Computer Science  Nice video to encourage students to study CS.

Communications of the ACM highlights some software for  Automatically Grading Programming Homework from MIT and @MSFTResearch. Not sure how I feel about this. IF grading is the only goal fine. If understanding what students know and don’t know is the goal will this help? I guess I need more data. More on this at MIT’s web site Automatically grading programming homework

The nice people at Hewlett Packard who run the huge HS programming competition posted sample solutions for HP CodeWars 2013 problems. Now available at http://ow.ly/lJXd6

AMA: Interview with Cryptographer, Computer Security Expert Jon Callas I met Jon when we both worked at Digital Equipment. Some years ago when I had a student who wanted to learn about cryptography as an independent study Jon was very helpful. This interview is an interesting read.

Tips from an AP Reader Good suggestions for APCS students. Read them, save them, and share them with your AP students in the future.

From the @koduteam: It's time to announce the arrival of additional Kodu curriculum materials for instructors!

The Challenge of Teaching Computer Science (in Brazil) By Steve Cooper, president of the CSTA, on the CSTA Blog.

How Kids Can Learn to Code About a Codecademy Kids for the iPad app to help more kids learn how to code. We’ll see how it develops.

The latest CS Bits & Bytes from NSF CISE with a focus on Multi-core processors.

Teknoteaching: programming in the classroom   An interview with Alan O’Donohoe, aka @teknoteacher, a computing teacher by @twistedsq

Girls left out of tech revolution at (New York) city schools. Pretty sad and all too common. 

Vicki Davis (@coolcatteacher) wrote about me on her blog at  How we can teach computer science to every age  with a link to a podcast interview we did together.

My blog post on Programming With Blocks continues to get a lot of traffic. I recently updated it with with two more programming tools.

We're Not Ready To Teach Kids To Code is about one of the huge problems in computer science education – untrained teachers.

With support from @google: K-12 educators: Learn how to program w/ Scratch in a free, online Creative Computing course.

Why more women in IT would benefit everyone Something I’ve been saying for a while.

Friday, June 07, 2013

Speaking Hello World – TouchDevelop

Regular readers know that I have been learning TouchDevelop in my spare time. I really hope to find some concentrated time over the summer to really dig in but for now I am discovering features as I need them. One of the sample apps I looked at had speech to text capability. That is awesome. Everyone wants their computer (or phone to talk to them right?) I decided to create a talking “Hello World” just as a taste of how TouchDevelop programming works. BTW there is a video of me creating a basic Hello World at http://youtu.be/rTiD-7klHRg if you want some more active help.
First thing I did was to log in. All projects are stored in the cloud so you can get to them from anywhere you have a web browser. There are several options for signing in as you can see below so you may very likely be able to use an existing account that you have. I use my Microsoft (Hotmail) account but use what you want.
clip_image002clip_image004
Once you are logged in you can select previous scripts if you have any (I do) or you can select “Create Script: as we will for this exercise. Our next step is to pick a script template. We’ll use the blank template for now. But be sure to look at the other templates. The Turtle one is great for starting graphic projects using Turtle graphics for example.
clip_image006
Obviously we need a name. Try to select something meaningful.
clip_image008
We’ll see a screen that looks something like this:
clip_image010
When we click on “do nothing” the editing options for a statement show up for us. Remember we can do pretty much everything with a mouse or a finger if we have a touch enabled device.
clip_image012
Selecting the var box (see it there on the top right of the blue boxes?) lets us create a new variable (called x by default – we can change it or leave it Leave it for now.).
clip_image014
We then click to the right of := and select first the “wall” option followed by the “ask string” option. You will see that the available options are sensitive to the context. You are shown legal options which helps avoid syntax errors. We’ll get something like this. Yes, it did change the name of the variable to s since it now knows we are getting a string. You can change it now if you really want to but let’s leave it.
clip_image016
Clicking on the quotes will bring up some options that include the very helpful “edit” to allow us to change the string in our query. Now we can add our own text.
clip_image018
The dismiss button returns us to the main edit window. clip_image019
The Add buttons (look like plus signs) allow us to add lines of code above or below our selection.
clip_image021
We’ll add a line below to build our message. We’ll select “s” as the variable now shows up as an option whenever available is permissible. Then to the right of := we’ll add a quote mark which opens a box to enter string text. In this case “Hello”. The concat option (short for concatenate) will allow us to build up a string that includes the original value of s as returned from our query. We should have something like this.
clip_image023
Now it is time to display the message and have the application speak it for us. The post to wall command displays text for us. We add a new link and select the s option followed by the post to wall option.
clip_image025
One more line and we’re done! The clip_image026 option may be required to get to the languages clip_image027 option. We’ll find that one and select it on a new line and look for the speak text option. clip_image028 Now we need to tell it what to say.
clip_image030
We’ll need to replace the first empty string with “en” for English – the language we want to speak. And the second empty string we’ll replace with s – our variable that holds what we want the computer to say. It should look like this.
clip_image031
Now it is time to run our app. Press the run button. clip_image032 and get our query on the wall.
clip_image033
Enter your name in the white box and click the OK button. You should see a message with your name and hear the computer say “Hello” to you.
clip_image034
The back arrow will return you to the app edit window while the play button clip_image035 will run your app again.
Next time we’ll talk about publishing your app for Windows Phone, Windows 8 or as a web app. In the meantime experiment a little. There are also a lot of helpful videos and documentation at the Touch Develop site.

BTW if you want to try different languages the following codes seem to work just fine for me.
  • Ar  Arabic
  • nzh-CHS  Simplified Chinese
  • nzh-CHT  Traditional Chinese
  • NI  Dutch
  • En   English
  • Fr  French
  • De  German
  • It Italian
  • Ja  Japanese
  • Ko Korean
  • Pl Polish
  • Pt  Portuguese
  • Ru  Russian
  • Es  Spanish

Wednesday, June 05, 2013

How To Video: Hello World in TouchDevelop

I’ve decided that a tool as visual and touch enabled as TouchDevelop lends itself to video instructions more than text based ones even with a lot of pictures. So here now is “Hello World” TouchDevelop style in a video.
Creating Hello World using TouchDevelop

Tuesday, June 04, 2013

Side by Side Programming Language Comparisons

For fun this week I am working on a side by side programming language reference for Alice 3.1, C#, Scratch 2.0, TouchDevelop, Small Basic and Visual Basic. Keeping it simple. Variable and array declarations, Assignment statements, For and While loops, and If and IF/Else statements. What else is really that basic?

I should probably include Python and Java and I may add them later. JavaScript was also suggested as worth including. That could bring my set up to 9 languages. Seems a bit much. On the other hand the OCD in me thinks I need a tenth.

I know I need Visual Basic and C# since I will be teaching C# next fall to students who already know some VB. I'm also going to be teaching a course called Exploring Computer Science and thinking I would like to use several languages for that. My thought is three languages. A block language like Alice or Scratch. TouchDevelop as a middle ground. And then a high level (conventional) language like Visual Basic or C#. Still deciding what to use though but what ever I use I am thinking that comparisons would be a good thing. rather than confusing students I think this can work to help them focus on concepts ahead of specific syntax.

If you want to see my first draft it is on SkyDrive at sdrv.ms/10LYIuf I would be trilled to get some feedback and suggestions. Leave a comment or send me email at act2@acthompson.net

Monday, June 03, 2013

Interesting Links 3 June 2013

Finals start later this week. The school year is winding down and what a whirlwind it has been for me. I hit the ground running. Stumbled a bit here and there but I think we all do. Now that I am back in the groove I am looking forward to some serious planning time for next year. We’re creating two new courses to replace some that have just gotten dated. Lots of fun. But here now some links for you to look at.

First off a couple of articles I found that may be of interest for having discussions about “why computer science?”

Vicki Davis has a podcast series - Every classroom matters That is well worth taking a listen to. Yeah, I’m one of the people she has interviewed but there are a lot of other great people as well.

'A is for Array,' a kid's alphabet book for programming! Looks like a fun idea. I may have to pick up a copy.

Microsoft hints at replacement for XNA for Xbox One indie game creators  I'll be looking for more at this. Ever since XNA stopped updating (see XNA is Dead (or will be soon) I’ve been concerned that game development was taking a step backwards in terms of Microsoft support. Maybe there are good things ahead? I hope so.

Games4Learning Kinect Games v4 released (Word, Math Mages get AR, new NoNeed4Green and more)

Did you see my interview last winter on Anthony Salcito’s blog? " using computer science in ways that support learning other disciplines pays off in big ways.”

There is a follow up of sorts there more recently “Today, students want some context for their computer science. It has to have meaning to them.’ http://dailyedventures.com/index.php/2013/05/26/thompson/

Saturday, June 01, 2013

How To Overcome Silicon Valley

There seems to be an endless stream of articles these days on two closely related topics. The shortage of people in technology who are not white or Asian males and the overall shortage of people in technology. It seems clear that if we had anything like the percentage of women and non-Asian males learning computer science and looking for jobs in the field we wouldn’t have any shortage at all. The big tech companies wouldn’t be asking for more H-1B visas and we’d have a greater diversity of people and thoughts in the field.

So I have a theory that the geographic area that first gets a good handle on training these demographics will have the best chance of becoming the new center of the tech universe. Here’s my logic. The businesses go where there is the right combination of talent and money. Sometimes the money moves to find that talent and sometimes the talent moves to where the money is. But money moves more easily than talent. People move where they are comfortable. Microsoft is in the Seattle area because that is where Bill Gates and Paul Allen felt most comfortable.

Suppose you created an area where really smart creative women and other groups not well represented in technology felt comfortable what do you suppose would happen? I think you’d get something new and exciting. The best way to do that is to grow the talent in place. Personally I think this could happen in New York City. Yeah, I know tech pundits like to put NYC down as a place for technology but hear me out.

New York is home to a large creative population. The arts. The theatre. Fashion. Advertising and much more. As for education, New York City has more college students than Boston has people! It is also incredibly diverse demographically. The current mayor has been a big promoter of bring more tech to the City as well (and this is key) adding it to the school system. There is the Academy for Software Engineering (AFSE)  that is now finishing up its first year. A similar school as well as special new programs in 20 other high schools and middle schools will be starting in the fall. Imagine if all 400+ high schools in the city had a real computer science program? It could happen.

Let’s look at something else. The tech companies that are in the city including local offices of big companies like Google, Facebook and Microsoft and a good many startups are embracing the idea of supporting more CS education locally. This includes in schools with many of these companies supplying mentors to AFSE. Some are starting to send engineers to the classroom though the Microsoft sponsored TEALS program. Outside of schools many of these same companies are looking to help programs like Girls Who Code which ran its first program in NYC last summer. Where may this lead to in a few years? Anyone’s guess but I think it has huge potential for the city.

Could this happen in other places? Sure. And I really hope it does.

To supplant Silicon Valley a geography needs more than just talent and money though. They need a lot of creativity. That is the edge that I think a more diverse set of talent can bring to the table. We have seen research that shows that mixed gender teams are more creative and productive than all male teams. We know that companies of all type benefit from gender and racial diversity. Silicon Valley has a huge male dominated culture that is not going to be easily changed. Companies can work hard (and some are) to recruit more women into the field but it is going to be an uphill battle. The culture that exists and to some extent defines Silicon Valley is not female friendly. Actually its not all that friendly to people who want a life outside of work!

My personal opinion is that the field desperately needs more diversity of people. I think it is critical for the future of technology growth. While things look fine I think a kick provided by a big jump in diversity could really rocket things along. I hope it happens.