Wednesday, March 27, 2013

Relearning Math

One of the problems with teaching students how to tell the computer how to do calculations is that they have to learn a new way of expressing formulas. For example one of my students tried a formula similar to this in in Excel.  =6(5+2)

Excel didn’t like it very much. It just sat there doing nothing but displaying =6(5+2) while the student complained that the computer wasn’t working. Why was it not displaying the answer 42? Those of us who have been around for a while know that there is an implied multiplication operation that is supposed to be taking place. The computer, or rather the Excel software, is not so smart and has no idea what to do though. It wants to see something more explicit like =6*(5+2)

In programming classes students, early on anyway, frequently try to write code like Balance * Rate = Interest and become confused when that gets an error. After all in math class they learn that the way formulas work is that one side of the equal sign has the same value as the other. We have to teach them that in programming the equal sign is an assignment operator that moves the value on the right to the variable on the left. Not the same thing at all. Error messages are frequently less helpful than we’d like as well.

doanythingWe teach math for people not for computers. I’m not sure that is wrong or even bad but it does make for more work for computer teachers. As I was thinking about this this morning I asked myself – why don’t we program the computers to understand things the way we humans understand things? Of course part of the reason is that computers are not as smart as we are. Or perhaps I should say that we have to be more literal and more exact with computers than with people. People can and do do things without being consciously aware of it. Computers can’t really do that. Let me give another example of this.

I recently asked students in my Visual Basic class to create a loop to calculate how long it took for an amount to double using compound interest. They were to create a loop that ended when the new balance was double the initial balance. About half the class tried to use code that asked if balance was equal to balance times two. This doesn’t work of course. But if they were doing this themselves in their heads or on paper or even with a calculator they would automatically (probably without conscious thought) save the initial balance and compare it with the newly calculated balance. The computer on the other hand needs to be told to save the initial balance. Stupid computer. Smile

These are the issues we struggle with when teaching students how to “do math” with computers. In programming it may be more obvious but many of the same problems exist when teaching spreadsheet or other mathematical software tools. I wonder if eventually a generation of math teachers will start teaching math differently. Maybe there is some sort of common ground that we can get to so that the way we communicate math with people and computers gets closer together. Or will there always be reteaching in some class or another?

Tuesday, March 26, 2013

Turtle Graphics–Some Student Images

Earlier this week I introduced a simple Turtle graphics program. The program itself (written in Visual Basic) was created by one of the teachers I work with. It implements some of the Logo turtle graphics commands. I showed this to the students in my applications course (a break from learning Microsoft Office) and after showing them a subset of the commands (Forward, Right, Repeat) I asked them to play around with it to see what turned up.

Students reacted differently. Some jumped in right away, tried a lot of options or asked about more commands. Others took what I had demonstrated and played with the numbers – some randomly and some with more understanding. Others just sort of wondered what to do. The ones who fearlessly tried stuff had more fun than most BTW.

I learned more than the students did though. I learned that I need to explain what is happening better than I did this time for one thing. I also learned that freshmen high school students don’t all have the same grasp of the relationship between angles and shapes that come second nature to me. Of course you move 72 degrees for a pentagon. A what? So I need to explain more about what is going on. I am going to revisit programming later this semester (this was a teaser of sorts) and we’ll see what happens then.

Still I think some had some fun and they did at least get the computer to do something creative. I have a few of the interesting images posted below.

Related post - Math, Physics, Art and the Spirograph

image

image

image

image

Monday, March 25, 2013

Interesting Links 25 March 2013

I’ll getting my feet under me again lately.  I’m catching up on grading for one thing. And lesson planning and trying to have a life away from the computer. Having a snow day this week didn’t hurt. So that’s good.

In fact I am sort of looking for more stuff to do. I’m running for the CSTA Board for one thing. You can read my “why I’m running and why you should vote for me” guest post on the CSTA blog. I do hope you’ll all vote for me and ask your friends who are CSTA members to do the same. I do have other links to share though so don’t worry about that. Smile

Interested in a fun programming competition for beginners aged 9 through 18? Check out the  Imagine Cup Kodu Challenge 2013

A look into Vietnam's CS curriculum. Neil Fraser, from Google, visited Viet name recently and wrote this trip report on his view of computer science education in Viet Nam.  One interesting meta post was this one suggesting that students in Viet Nam could pass a Google interview. But don’t miss Ben Chun’s CS in VN Errata post. Ben’s is the school that Neil Fraser visited in the US and there is more to the story.

Applications for Girls Who Code for the summer of 2013 are now live! Programs in the NY, Detroit, and Bay Area (CA) http://www.girlswhocode.com/applynow/ This is a great program that had wonderful results in New York last year. I’m thrilled that it is expanding to two more locations this coming summer.

Doug Peterson (@dougpete) tweeted me a link to an interesting article on  Five common programming mistakes

Mark Guzdial @guzdial makes the important point that  Colleges and Universities should require or recommend CS for all applicants. This is probably the single best way to motivate schools to add more computer science courses to their curriculum.

Facebook U for current first year college students Do you know first year college students who are looking for a killer internship for the summer? This Facebook program will be competitive but a wonderful experience for those who make it in.

Changing Face of Education and Computer Science   Nice post by @dave_burkhart running (against me) for the CSTA board. No matter who wins we’ll still be friends.

Windows 8 Development Part 3 of 9: Design Aesthetics is the latest in a series from Lindsay Lindstrum  @LindsayInPhilly  I link to all the posts in the series (and some other related series) at Computer Science Teacher: Windows 8 Game Development Links 

Carnegie Mellon seeks high school hackers for a special program. Check it out.

The latest Kinect for Windows SDK is here. Some cool new features.

Fun look at how a Microsoft engineer solved "attachment embarrassment." 

Students...need an easy-to-follow guide to DreamSpark and WindowsStore sign-up? Edwin Guarin @edvangelist shows how: http://blogs.msdn.com/b/edvangelist/archive/2013/03/14/series-get-your-app-or-game-in-the-windows-store-part-1-generation-app-and-dreamspark-account-creation.aspx

Sunday, March 24, 2013

HTML and Computer Science

It started innocently enough as Twitter conversations are want to do. Eric Williams, a school superintendent in Virginia, posted a tweet about computer science and linked to an article about teaching HTML as important for internet literacy.

image

As Internet conversations (in 140 characters or less especially) often do we went into a little bit of a different direction – that of discussing if HTML was or was not computer science. It may have been my fault with this Tweet. Please pretend not to notice the typo.

image

In any case Eric brought up the confusion about what is and is not computer science and that is an important question. Mike Zamansky, computer science educator from New York’s Stuyvesant high school, added his two bits with this Tweet linking to an article on why HTML is not a programming language.

image

And off we go in another tangent because while programming is an important part of computer science it isn’t the end all and be all of it either. People often do think that programming is computer science rather than a part of computer science. (I doubt Mike is in that category but it is important that HTML is not a programming language.)

So circling back to the beginning. Yes there is a lot of confusion and disagreement over what computer science is and is not. The Computer Science Curricula 2013
(CS2013) (Ironman v1.0 draft is now available here. ) for undergraduate computer science education runs some 376 pages describing what should go into a computer science curriculum. Though no one expects anyone to learn it all in just four years of university education.

HTML is not listed as a required topic anywhere. In fact it shows up only in an elective area as one of several web programming languages as HTML5 along with CSS, PHP and others. So clearly, according to the ACM/IEEE CS2013 (full disclosure – I’m on the task force), a university can have a solid computer science curriculum without teaching HTML.

That’s at the university level so what does that mean for high schools? Well that depends on what the purpose of your curriculum is. Web development and design is a critical skill and knowledge set today. If you are a career/technical school one could reasonably argue that you had better be preparing students for web design and programming. In my opinion a solid understanding of HTML, HTML 5, CSS and more is critical there.

If you are preparing students to further academic student in computer science HTML, CSS etc. is still useful but it is hardly as one person suggested in Twitter as important as arrays. I do think students should have some exposure to markup languages as a topic though. What markup language they use can vary from XML (for SQL and databases for example), XAML (for Windows 8 and Windows Phone development), HTML for the web or any of several other widely used markup languages. The concept is important and becoming more so all the time.

Does web development belong in the computer science department in a high school? Probably. Can you have a solid academic computer science program without HTML and web development? I would say yes. The field is huge and programming is a lot more important (today) than web development using HTML.

That being said a course that included more than just HTML and CSS with some real code behind the front end could be a powerful and unarguably “real computer science” course. Including HTML/web development as part of a larger computer science course (as the Exploring Computer Science curriculum does) can make the course more relevant and useful to more students. There is no question that web fluency includes HTML and that we need a lot more web fluency in our population.

And oh yes, real computer science should be required for all high school students. In fact starting in high school is really too late. We should start earlier.

Thursday, March 21, 2013

Math, Physics, Art and the Spirograph

imageWhen I was a kid there were a number of spirograph toys available. Some, like the ones available today, had gears and circles with sprockets. One very old toy that belonged to some people my father knew also incorporated moving “arms” that held the pen. Either ways we were able to create interesting drawings using a mix of colors. This was an interesting mix of physics and art. And I suppose Mathematics as well. The Wikipedia article has a whole section on the mathematical basis of the Spirograph so let’s say math as well. Smile These days we can have a lot of this fun with programming though.
Last week I posted about a little project I built using Turtle graphics in imageTouchDevelop. (TouchDevelop–This is Cool! ) Someone replied to that with a link to their post (Teaching Coding: Where Do You Start?) that focused on drawing using Logo. One of my teaching colleagues has written his own simple turtle graphics program to introduce his students to programming. Small Basic also supports Turtle graphics and I have had fun with that. Obviously (?) there are more ways to do it these days.  Any way you look at it turtle graphics is a simple way to get students creating interesting and often unexpected “art work.” At the same time they learn about programming.
Back when I was in college a number of my more mathematically inclined friends experimented with graphing different equations and variations on those equations to see what showed up. Some of them were very interesting visually. Add in a mix of colors, offsets in the location of “0,0” and some outstanding images appeared. Math and art is a lot more closely related than we often think they are and graphing equations can bring that idea to light.
A friend, Doug Peterson, was saying to me last week that the spirograph got him thinking about physics mixed with art as a young person. There is a lot of art mixed in with the sciences for sure and people are talking more about STEAM (Science, Technology, Engineering, ART, and Math) these days. I think that is how it should be. I enjoy mixing some art and math in with my computer science these days. Spirograph programming for everyone.
FWIW the images here are from some sample Small Basic demos I’ve used and had laying around.

Wednesday, March 20, 2013

Imagine Cup Kodu Challenge 2013

Kodu-Splash-Screen.png-500x0

I wasn’t sure if this sort of event would happen again but it has. I saw the announcement yesterday. If you have students looking for a challenge and they are aged nine through 18 this may be just the thing to get their creative juices going.

Imagine Cup Kodu Challenge for students worldwide ages nine to 18. This new contest uses Microsoft Research’s Kodu Game Lab, a Windows PC software package that enables even young kids to create their own video games. Available for free and translated into a dozen languages, Kodu includes a complete kid-friendly programming language and tools to sculpt landscapes; decorate them with trees, buildings, lakes and other objects; and populate them with interactive characters, gameplay, scoring systems and more. Kids can program real game logic using nothing more than an Xbox game controller (or a mouse and keyboard). To date, kids around the world have created more than 16,000 video games with Kodu, which are available for free download from KoduGameLab.com.

For this contest we have two age brackets: 9-12 and 13-18. Within each age bracket we are awarding 1st, 2nd, and 3rd prizes of $3,000, $2,000, and $1,000. You can submit your project whenever you're ready up until our deadline of May 17.

We also have a theme: Water & People. Water is our world's most precious resource and it can both give life and take it away. To explore this theme we've partnered with Mercy Corps, a fantastic organization based in Portland, Oregon, that works with people in crisis zones all over the world. With their help we will be bringing you some great new videos exploring real Mercy Corps projects involving the role of water around the world and giving you some jumping-off points to create games inspired by their work. Stay tuned for these to start turning up in April!

And just to get you going, we've collaborated with the Kodu team in Microsoft Studios to bring you a brand new version of Kodu Game Lab! You'll find new features and new characters created specifically for this contest, including Octo, water-current generators, and more. We've even added Windows 8 touchscreen support! As always, Kodu Game Lab is a free download for your Windows PC. It's been a real pleasure to work with Scott Fintel on the Kodu team to bring this new version of Kodu to the world.

Tuesday, March 19, 2013

Apply to be a Pilot Site for the AP CS Principles Course

As you may know a new Advanced Placement Computer Science, usually called AP CS Principles, is being developed by/for the College Board. The College Board is now looking for new schools to pilot this course as part of the development process. This announcement came through my inbox recently.
Dear Computer Science Teacher,
The College Board’s AP Program and the CS Principles (CSP) project team is happy to announce we are moving forward with the next phase (CSP Phase II) of the project, making the CSP course an official AP Computer Science Principles course and exam by academic year 2016-17.
For Phase II, we will be recruiting a cohort of 50 pilot schools to continue piloting the course and exam items over the next three years (2013-2016).  We’d like to extend an invitation for you to complete the College Board CSP Pilot Institutional Survey for the selection of Phase II schools. The institutional survey will be made available within the next couple of weeks (or sooner).
The following is some information that will be collected in the institutional survey for your consideration:
  • School characteristics (including the AI school code, type of institution and number of students enrolled)
  • Information about the computer science program at your school (number of CS teachers, number of CS courses offered, number of sections per course)
  • Individual information (a description of your teaching experiences with implementing portfolio or project-based assessments) and a CS Principles course syllabus matching to the learning objectives.
  • Recruiting plans (a qualitative description of your goals, a selection of potential strategies, and the numbers of different types of students in your ideally diversified classroom). Be prepared to provide the number of students you expect to recruit in your CS Principles course categorized as female, American Indian/Alaskan Native, Black or African American, Hispanic or Latino, and mixed ethnicity.
Please note that selected pilot instructors will be asked to attend a professional development meeting on July 17-20, in Las Vegas, NV.
More information is available now at collegeboard.org/csprinciples and csprinciples.org.
If you have any questions, please contact Lien Diaz at ldiaz@collegeboard.org.
Thanks so much for your continued support and advocacy for this course.

Monday, March 18, 2013

Interesting Links 18 March 2013

Posting this a bit late today. I had a very busy weekend which included some snowboarding. That means I was much too tired and sore yesterday to get this ready. But I do have a bunch of links to share so I guess we should get to it.

New on the CSTA blog (They’re on Twitter at @csteachersa BTW) K-8 Take Aways from SIGCSE if you are interested in K-8 computer science and missed SIGCSE like me this is worth a read. 

2013-03-14-logo-2Teaching Coding: Where Do You Start? via @EdSurge promotes a return to a simpler and perhaps better proven time in teaching students to code. Think Logo. I like Turtle graphics a lot myself. These days there are a number of teaching tools that include it (Small Basic for one) including some versions of Logo that are modern and current.

Scaling Computer Science Education is a good article on the Google Research blog. Google is one of the companies that is doing the most (Microsoft being up there as well) to promote computer science education and they clearly see it as important.

My friend Edwin Guarin (I used to call Edwin my “work son”) has started a new series with  Get your app or game in the Windows Store– Part 1– Generation App and DreamSpark Account Creation This is a step by step set of directions for getting started with Windows Store development for students. BTW I have links to a number of series for student Windows Store developers here.

Martin Schray ‏@mschray had a new Imagine Cup related post last week.  - Imagine Cup: How do I register, pick a competition and form a team? It’s not too late (yet) to sign up for and enter this international software competition.

This new xkcd cartoon on sorts is something for all you APCS teachers teaching sorts. Great conversation starter and comedic break.

Have you taken part in the 2013 CSTA National Survey on High School Computer Science yet? Please help. Information is power.

If you are involved in FIRST Robotics and on Twitter this Twitter list of First Robotics Team Twitter accounts from @FRCTeams will be of interest to you. Send a tweet to @FRCTeams if your team is missing from their list.

Friday, March 15, 2013

TouchDevelop–This is Cool!

imageI finally decided to get serious about learning TouchDevelop this week. I have sort of toyed with it from time to time and I’ve seen the development team do demos several times. But I never really focused my attention on learning it for real until now. Let me tell you I have having a blast. I should have done this a long time ago.
For those of you who are not familiar with TouchDevelop it is a programming language and environment designed from the ground up to be used in a touch environment such as a modern smart phone. So there is minimal typing and a lot of selecting from a contextual menu of options. TouchDevelop was originally only available for Windows Phone and the Windows Phone app still gives a programmer a lot of access to phone features such as all the sensors. But recently they created a web based version that runs on most modern web browsers so that people can create and run programs on Windows, iOS, Android, Mac and even Linux. (See here for a list of supported platforms and what is supported on each.)
So what am I playing with? I am planning on doing some applications with Turtle graphics with the students in my Office Applications classes to introduce the idea of programming and computer science. So my first task was a simple program.
CodeSample

SpinSample
 
 
 
 
 
 
I created this on the PC/Web version and published it to a web app. You can use this link to try it out on the web. Next I fired up the TouchDevelop app on my Windows Phone and logged in. My app was available there as well and I was able to not only run it but edit it on my phone. Cloud based programming and sharing for the win!
I will continue to look through the large collection of TouchDevelop videos, the TouchDevelp curriculum samples, and all the other resources for teaching with TouchDevelop. There is a lot ot learn but a lot of online help towards learning it.
I’ll let you know in a week or two how it goes with my students.







Thursday, March 14, 2013

Real Life Is …

One of my favorite sayings is that “real life is an open book test.” I don’t remember where or when I first heard it but it is something I repeat rather regularly. I was thinking about this and other things that the real world is and decided to ask search engines what “the real world is”. The image below is from Google. The one from Bing was similar.

realworld

We talk about preparing students for the “real world” without really talking about what the real world is. To our students school IS the real world. As real as any they know. The real world is a lot of different things to a lot of different people though. So how do we prepare our students for the real world? Or more accurately the world after the relatively safe boundaries of school and home. I’ve been thinking particularly about two things that I believe “the real world is” but that we don’t always prepare students for in schools.

The real world is an open book test.

As a professional software developer I was never expected to know everything. I was expected to know a lot to be sure but it was always expected that I could and would refer to the documentation to learn new things. Looking things up though is a bit of an art. You’d be amazed at the sorts of things I have heard students say isn’t in the book or even not on the Internet that really was there.

Recently I have been letting students in my applications classes use their textbooks for chapter quizzes. This does not seem to help grades very much. In fact many students spend so much time looking things up that they run out of time early. I have some ideas of why this is but short of closed book tests (which I am considering) I’m not sure how to fix it. Teaching how to look things up is not exactly in the curriculum. Forcing them to memorize more may help in the short term but will it be as useful preparation for life? There is a balance to be found between knowing what information one has to have at their finger tips and what can be looked up when needed. That balance if different for everyone. How do we help students find their balance?

The real world is collaborative

Schools struggle with collaboration. Our big problem is that we want to make sure that students are learning. This is hard to do if we can’t easily distinguish their original work from that of their peers. The problem we have with plagiarism is that it means that students are not learning and if we don’t catch them we don’t know that they are not learning. And yet we know they have to work together in the real world. Another issue of balance.

I listened yesterday as a group of students worked out a problem together. Each of them understood a piece of the puzzle and shared their piece with their peers. At the end they all had a solution (in this case some working code) but the code still represented their unique interpretation of “the answer.” A success to my way of thinking. But how to keep it that way?

These are things I struggle with. I know that students learn well from each other. I know that they learn better from teaching each other. And yet I have to grade them and to make sure they are doing their own work. Not as easy as anyone would like.

Figuring out how to help students find the balance between knowing and being able to look things up and how to collaborate without copying. These are two big issues I am struggling with now. How do you deal with them? Looking for ideas.

Wednesday, March 13, 2013

Lecturing or Conversing

I was reading one of those articles about Bill Gates talking about education again. I should stop that. The man is a genius in many areas but education is not one of them. He was talking about recording the best lecturers again. Seems to be a common thread. The problem I have with that is that I don’t think bad lectures are the real problem. The problem is too much lecturing and not enough conversations.

Now I confess to loving to hear myself talk. Give me a platform and an audience of one or more and I’ll talk as long as people will let me. I just love to lecture. But what I find is that lectures only go so far and that so far is not very far. The real learning comes from conversation with students. Asking questions, calling on people who raise their hands, and then commenting on their reply is sort of like conversation. Like a small lake is like the Atlantic Ocean. We like to call it “engagement” but its really not that great.

Generally one or a few students do all the answering. If a teacher calls on someone without their hands up one often has to call on several people before getting the answer they want. And that, having a specific answer in mind, is sometimes a problem, call it a limit on learning, as well.

Increasingly I find myself trying to engage in a conversation with students. I need to do it more and that is a goal for me. I’m lucky in that I have small classes. My programming classes are 12 and 15 students. I taught at a private boarding school a few summers where that was considered large but for most schools that is pretty small. It gives me a lot of chances to talk to students in groups of a few or even one on one. I need to get the larger group conversing as well though.

People think when they are having a conversation. While just listening to a lecture it is far too easy to stop thinking. Trying naïvely to absorb the information without really looking for context or how the information might be used seems to work for many who are just interested in remembering things for the test. That is hardly learning in my opinion. On the other hand with active participation one has to think about what is being said. Information has a far better chance of being moved to long term memory.

In programming classes I find these conversations easier around projects than bare concepts. Context matters. Having a problem to apply a tool to matters. It drives asking questions and it drives understanding concepts. More of that is my goal over the next few weeks. Indeed over the rest of the school year.

How does it work in your classroom? Are conversations the rule or the exception? Can conversations happen in a large classroom? What about an online course? Or a MOOC with 20,000 students? Is the value of a classroom conversation what is going to prevent MOOCs from taking over? Or does it even matter?

Tuesday, March 12, 2013

2013 CSTA National Survey on High School Computer Science

The Computer Science Teachers Association is conducting their annual computer science survey right now. CSTA members should have received notice in our email. I hope that all computer science educators will participate however. This information is very useful for understanding the state of HS CS in the US at a time when we need that information to help promote more of it. Thanks.

Across  the U.S. there are growing concerns about computer science in high  schools. While there are many anecdotal reports about dropping  enrollments and state-level teaching certification battles,  the  Computer Science Teachers Association (CSTA) National High School Computer Science Survey is the definitive and ongoing source of information on trends and needs and so we need your voice to be heard.

The  purpose of the 2013 survey is to collect and disseminate useful  information regarding the current status of high school computer science  education across the country. This data will be used to support teachers and teaching in the field of computer  science, which we define broadly as follows:

“Computer  science is the study of computers and algorithmic processes, including  their principles, their hardware and software designs, their  applications, and their impact on society.” (CSTA K-12 Computer Science Standards).
For your convenience, you can access the survey online via Survey Monkey at:
http://www.surveymonkey.com/s/CSTA2013
You can also find a direct link from the CSTA website at: csta.acm.org

Please  note, the data you are providing is for research purposes. It will not  be sold or distributed to any third party directly or indirectly.

Sincerely,
Chris Stephenson
CSTA Executive Director
PS: You can find the results of all previous surveys on our website at
http://csta.acm.org/Research/sub/HighSchoolSurveys.html

Monday, March 11, 2013

Interesting Links 11 March 2013

It’s Women’s History Month and last week was International Women’s Day. Not surprisingly that there was a lot of talk about women in computer science in particular and women in STEM fields in general last week. In fact let’s start there today.

I get all sorts of announcements in email these days. This one from L’Oreal USA FGISLogoFor Girls In Science came in last week and I thought it worth sharing.

At L’Oreal USA For Girls In Science we celebrate strong women in Science, Technology, Engineering and Math (S.T.E.M.) every day through our biographies of female leaders in S.T.E.M, video profiles and our NEW blog roll, authored by a variety of amazing women and girls.

We would love for you to check out our site at www.forgirlsinscience.org and learn more. Please help spread the word and help young girls get interested in S.T.E.M.

The mainstream media continues to take notice of CS education including this article on the New York Times last week - Computer Coding: It's Not Just for Boys

Those great people at Carnegie Mellon behind the Alice project announced new Alice 3.1 curriculum resources last week in time for SIGCSE.

Jesse Freeman, a Technology Evangelist at Microsoft focusing on Windows 8 and HTML5 Gaming, announced free game art for a Windows 8 game called Jetroid 

The latest ISTE SIGCT Newsletter for computing teachers (pdf) is now available. Worth checking out.

Teaching Computer Coding in K-12 via @usedgov talks about the videos from Code.Org that I wrote about last week. See What Most Schools Don’t Teach for more from me.

Current high school senior interested in computer science? Check out this recent blog post about Google’s CSSI program. Looks like a fantastic opportunity for a small number of students. Something for a student you know though? Maybe!

Chatting up your Windows Phone 8 Apps (Channel 9)  via @ch9 read about Speech-Enabling a Windows Phone 8 App with Voice Commands

Friday, March 08, 2013

It’s not lazy – its efficient

Years ago I worked for a company that sold computers, software, terminals and many other things. A terminal salesperson worked out of the same office I did and as a result we often  got the latest and greatest terminals to use. This was the era of “dumb terminals” connected to mini computers or mainframes some distance away. There were no graphical user interfaces. One day we received some new terminals that had keys that were programmable. I promptly programmed them to issue the most common commands that I would otherwise have had to enter letter by letter. My co-worker called me lazy. I told her I preferred to think of it as efficient. I thought of that when I ran into this quote attributed to Bill Gates.
bill_gates_quote
Yesterday one of my students asked me why someone would use Select/Case rather than If/Than/Else. A fair question. Many things can be done using either construct. I suggested that they use which ever one was easier for the specific task. Easier to set up; easier to understand (usually the same thing) and easier for other people to modify. A set of nested If statements can get very confusing very easily. A Select/Case is often ideal for handling a menu of options. If/Than is usually less work to set up for a small number of items.
It also depends on the language. I find the Select/Case options much more powerful in Visual basic than the equivalent structure in C#. Some things that are easier to do with Select/Case in VB are easier to do with If statements in C#. There are few absolutes.
Looking for the easy way to solve a problem is something that comes second nature after a while. For example when debugging I start by asking myself “what is the easiest thing to fix that might take care of this problem.” But it has to go beyond that. We have to look at what is easiest  for most problems we solve with computers.
I remember a bunch of years grading the APCS exam. One student had written about 10 or 12 lines to solve a particular question on the exam. It took me quite a while to figure out what was going on and the student eventually did get credit for a correct answer. The issue was that the canonical solution was one line – a simple return statement with a value was all it really required. I’ve long wondered why the student thought he (or she) required a lot of code. Did they think that perhaps a single line answer was too easy for an AP exam? I’ll never know. But maybe they would have saved a lot of time looking for a simple answer. It’s not lazy – its efficient.

Wednesday, March 06, 2013

ACM/IEEE-C​S CS2013 Ironman-v1​.0 draft released

Those of you interested in undergraduate computer science education will be interested in the latest draft of the ACM/IEEE-CS CS 2013 curriculum recommendations. This is the all but final draft. The final draft will be released later this year and will be based on feedback provided on this draft. Besides incorporating a lot of feedback from the 0.8 draft this release also includes a large number of course exemplars that will, we hope, make it more clear how these recommendations can be incorporated in university curriculum plans.

Just in time for SIGCSE, we are happy to announce the availability of the
ACM/IEEE-CS Computer Science Curricula 2013 (CS2013) - Ironman v1.0 draft.
The draft is available at the CS2013 website (http://cs2013.org) or directly
at: http://cs2013.org/ironman-draft/cs2013-ironman-v1.0.pdf

The Ironman v1.0 draft contains a revision of the CS2013 Body of Knowledge,
based on comments from the previously released CS2013 Strawman and Ironman
v0.8 drafts. The Ironman v1.0 draft also includes additional new chapters
as well as over 50 course exemplars, showing how the CS2013 Body of
Knowledge may be covered in a variety of actual fielded courses.

COMMENTING ON CS2013 IRONMAN v1.0 DRAFT

The Ironman v1.0 draft is the penultimate draft of the CS2013 curricular
guidelines. The final version of the CS2013 guidelines will be published in
Fall 2013. We welcome additional comments on the CS2013 Ironman draft from
the computing community. Information on how to comment on the draft is
available at the CS2013 website. Comments on the Ironman draft will be
addressed in the final released version of CS2013.

CALL FOR EXEMPLARS

The CS2013 Curriculum Steering Committee is continuing to seek exemplars of
courses and curricula from the broader community. This open process will
better connect the CS2013 Body of Knowledge to real, existing approaches
representing diverse and innovative ways to teach computer science. In
Computer Science terms, the topics and learning outcomes in the Body of
Knowledge represent a "specification", whereas a curriculum is an
"implementation" and a course is part of a curriculum. Information on how
to contribute course/curriculum exemplars is available at the CS2013 website
(http://cs2013.org) or directly at: http://cs2013.org/exemplars.html

Warm regards,
Mehran Sahami and Steve Roach
Co-Chairs, CS2013 Steering Committee
CS2013 Steering Committee

ACM Delegation

  • Mehran Sahami, Chair (Stanford University)
  • Andrea Danyluk (Williams College)
  • Sally Fincher (University of Kent)
  • Kathleen Fisher (Tufts University)
  • Dan Grossman (University of Washington)
  • Beth Hawthorne (Union County College)
  • Randy Katz (UC Berkeley)
  • Rich LeBlanc (Seattle University)
  • Dave Reed (Creighton University)

IEEE-CS Delegation

  • Steve Roach, Chair (Univ. of Texas, El Paso)
  • Ernesto Cuadros-Vargas (Univ. Catolica San Pablo, Peru)
  • Ronald Dodge (US Military Academy)
  • Robert France (Colorado State University)
  • Amruth Kumar (Ramapo Coll. of New Jersey)
  • Brian Robinson (ABB Corporation)
  • Remzi Seker (Embry-Riddle Aeronautical Univ.)
  • Alfred Thompson (Microsoft)

Tuesday, March 05, 2013

When Do We Teach Debugging?

I spent some time debugging student code today. Actually I spend a lot of time debugging student code these days. It is not something I mind at all. I see it as taking advantage of teachable moments. I believe that Debugging is Good For Learning as I wrote last October. Somewhere in the last couple of days though I ran into this post - How to Debug – that John Regehr  of the University of Utah wrote a couple of years ago. It would be worth linking to just for the information about debugging that it includes.  But I was also struck by the early point he makes that we don’t really teach debugging in an organized fashion in school.

Oh of course we teach about using debuggers and we have students do a lot of debugging. But there is no course in debugging and few courses would show an actual unit on debugging in their syllabus. Where would it fit?

There are books on the subject. I just discovered this thanks to John’s blog and his recent post Four Books on Debugging. But a course on it? Not so much.

I wonder how much  of teaching debugging happens by an instructor modeling debugging? In large university courses with teaching assistants, lab assistants or other student aids this may not work that well. I suspect that these days, with little to no formal study of debugging, the best debuggers are those with the most experience – learning via the school of hard knocks. This means that student aids will be fine with helping on projects that they have seen before. Beginners seems to mostly run into the same beginner errors in both code and logic. But what happens when students go off the beaten path?

As someone who has been writing code for close to 40 years I have made and seen a huge number of errors. I like to think that gives me an edge in debugging. What I think I need to be more careful about though is showing students how I find the bug rather than just pointing one out. I try to do this to some degree already. When I see more than one or two students making the same error I talk to the class about what I see and why it is happening. Hopefully this makes some of the learning stick. This is easy with syntax problems and basic logic (like setting up a loop or Boolean expression incorrectly) but more difficult with logic errors.

I may have to get more structured with how I help students. Helping them figure out the error is likely to be a better learning experience than me finding it for them.

Monday, March 04, 2013

Interesting Links 4 March 2013

Last week was school vacation week. Like a lot of teachers I spent the week catching up on things around the house. For me that meant spending a coup[le of days installing sheetrock on the ceiling of my family room. I spent far less time than usual on the Internet, ignored a lot of email and fell way behind in reading blogs. So only a few links to share today. Hope you find them useful.

My friend Vicki Davis (@coolcatteacher) was on The Ignite Show talking about the Flattened Classroom recently. Interesting interview. Vicki also recently sent out a link to an interesting infographic  Is Cloud Computing a Fact or Fiction?

A couple of good professional development opportunities came though last week as well.

What educators can learn from Harlem Shake is an interesting look at how some Internet memes can help turn students from consumers to creators by school superintendent Eric Williams @ewilliams65 Does the superintendent on your school district blog? I’m seeing more and more of them doing so. Great way for them to promote their districts.

Andrew Parsons@MrAndyPuppy sent me a link to this nice new (free) engine for cross-platform games: http://waveengine.net/ Andrew is my go to person on game development so this is well worth checking out.