ACM Inroads » programming https://blog.inroads.acm.org Paving the Way Toward Excellence in Computing Education Sun, 18 Oct 2015 12:13:35 +0000 en-US hourly 1 https://wordpress.org/?v=3.9.34 CS Resources Abound But There’s Still a Crisis in CS Education https://blog.inroads.acm.org/2013/05/cs-resources-abound-but-theres-still-a-crisis-in-cs-education/?utm_source=rss&utm_medium=rss&utm_campaign=cs-resources-abound-but-theres-still-a-crisis-in-cs-education https://blog.inroads.acm.org/2013/05/cs-resources-abound-but-theres-still-a-crisis-in-cs-education/#comments Tue, 07 May 2013 02:40:49 +0000 http://inroads.acm.org/blog/?p=181 Continue reading ]]> Late last week I attended and spoke at the Wisconsin Mathematics Council Annual Meeting at Green Lake.  They allowed me to speak twice about computer science.  In fact, we are lucky enough to have a math organization that encourages a group of us current and former CS teachers from around the state to put together a strand of sessions.  We were able to pull together 4 other individuals to talk on a variety of CS topics.

One of the topics I explored with 10 interested attendees was entitled “Resources Supporting Computer Science and Information Technology” with the description “In recent years, many useful resources have become available to both support schools developing computer science curricula and for teachers to teach these courses. We’ll explore materials available from CSTA, NCWIT, ACM, ISTE and other groups. The resources address a range of activities including creating a program, recruiting students and supporting and enhancing quality curriculum for high schools

My intent was to talk about resources from the four groups mentioned and then move into more specific resources including languages, language environments, curricula available, videos, mobile app development and a bunch of other stuff.  As it turns out we spent nearly all of the time on the NCWIT and CSTA resources.  Fortunately, I had a number of the resources to give to the attendees. I have a wiki on which I have all of the highlighted resources referenced with links.  At the top of the wiki I also have the set of slides I pulled together for this part as well as the second part.  If you go to http://ncwitcstaresources.pbworks.com you can get both parts of the presentation and the set of links.  This will also lead you to the second part http://csitresources.pbworks.com for all of the many items I culled from the monthly newsletter I write for ISTE/SIGCT (SIG for Computing Teachers).  Actually, if you want to get at those issues, you can click here http://sigct.iste.wikispaces.net and find not only the issues to this school year but a link to the previous 5 years of newsletters.

How’s that for unabashed self-promotion.  All free all of the time.

The next day I did a session with the more evocative title  “A National Crisis: The State of Computer Science and Information Technology in Schools and Future Workforce Projections”.  The description for the session was “This session will explore the trends in the workforce for computing specialists as defined by the U.S. Department of Labor, and look at the pipeline to fill the nearly 1.5 million positions that will be coming available over the next six to eight years. Then we’ll look at approaches to deal with this problem along with resources available.”

I opened the session with the slides developed by Cameron Wilson from ACM which highlight the incredible needs for Computing Specialist (US Dept of Labor term) individuals and the continued bad though slightly improving state of CS in middle and high schools (again I had about 10 attendees, some from the previous session, others new).

Aside from raising some eyebrows with the information, part way into this session I asked the attendees to sit in pairs and either take one of the CSTA posters available for them and come up with a lesson around the poster; or they could take the policy brochure and begin planning an advocacy event for a parents’ council or school board meeting.  During that time I heard and shared some incredible stores of schools just eliminating all CS courses because they thought it was enough for the students to learn to use Word and PowerPoint and, oh by the way, most programming jobs are overseas anyway!!!

Hard to believe that we still hear those kinds of statements and beliefs, but I guess that only means we have a bunch more work to do.  As an anecdote to ponder, I did point out that I sit on an IT Advisory Board for a large community college and one of the large employers of software developers announced that they’re moving all of the mobile app development back here from overseas because of much higher cost than earlier thought.  More of that is coming.

If you’re interested in the presentation slides and the wiki, you can go to http://expandingcswisconsin.pbworks.com  for that information right at the top of the wiki.  There’s other stuff there too which you might find interesting.

Onward and Upward!

 

 

]]>
https://blog.inroads.acm.org/2013/05/cs-resources-abound-but-theres-still-a-crisis-in-cs-education/feed/ 0
Examining failure https://blog.inroads.acm.org/2013/01/examining-failure/?utm_source=rss&utm_medium=rss&utm_campaign=examining-failure https://blog.inroads.acm.org/2013/01/examining-failure/#comments Fri, 18 Jan 2013 23:44:58 +0000 http://inroads.acm.org/blog/?p=90 Continue reading ]]> I had an interesting experience recently on my personal blog that started me thinking about failure and computing education.  I’m teaching a new class, and I wrote a blog post in which I discussed my preparations for the first lecture and my expectations about the quarter.  Recognizing that teaching a new class inevitably involves setbacks I titled the post ‘Poised for Failure.’  I certainly recognized in advance that this was a dramatic title, but it conveyed both my readiness and my expectation that I would have unsuccessful attempts along the way.  The reaction to my post, and particularly to its title, surprised me a bit.  People admonished me to be more positive, seeing failure as a term that I shouldn’t have used.

The responses led me to think about my attitude toward failure.  While it can be discouraging and disheartening to fail at something, it’s also inevitable.  It is only the most gifted of people who doesn’t experience failure on a regular basis, and those who push themselves experience it more often.  Personally, I see failure as feedback.  It’s a sign that you were doing wasn’t quite right and that you need to try something different.  The only part of failure that reflects on me as a person is my reaction to it.

Since this experience had come about in a work context, I also thought about failure and computing.  It occurred to me that my attitude about failure is particularly helpful in someone who wants to work in a computing-related field.  Problem solving, and the inevitable failure associated with it, is core to computing.  People who are successful in computing are people who handle failure on a regular basis: the program crashes, the network goes down, the algorithm has a problem, the machine dies.  Handling these situations requires a certain acceptance of failure as a natural part of the process.

But my experience teaching has let me see that students don’t tend to develop this attitude about failure until at least midway through their programs.  Students in early classes, typically programming classes, often personalize failure in ways that may not be helpful.  Yes, a student who repeatedly fails at coding probably isn’t going to be a developer, but some amount of failure is part of the process of coding and therefore part of the process of learning to code.  When I teaching CS1/2 I try to convey that failure is natural, as a way of letting the students see that they shouldn’t take their failure personally.  I’m not sure how effective I am at this.

Speaking of effectiveness, all of this led me to consider what the literature has to say about failure and computing education.  In my search I ran across two interesting articles.  In the first, Tony Clear writes about failure in the context of a capstone course, which is a situation on the opposite end of a degree program from CS1/2.  In the second, Klara Benda, Amy Bruckman, and Mark Guzdial examine failure in online courses.  There failure means lack of retention, and I particularly enjoyed their summary of the literature on retention.  It also surprised me how few articles in computing education were displayed in the ACM Digital Library when the keyword failure is provided.  It was a much more common term in the broader computing literature, which is somewhat ironic.

]]>
https://blog.inroads.acm.org/2013/01/examining-failure/feed/ 1
Social scientists who want to program https://blog.inroads.acm.org/2012/12/social-scientists-who-want-to-program/?utm_source=rss&utm_medium=rss&utm_campaign=social-scientists-who-want-to-program https://blog.inroads.acm.org/2012/12/social-scientists-who-want-to-program/#comments Fri, 28 Dec 2012 23:50:13 +0000 http://inroads.acm.org/blog/?p=70 Continue reading ]]> I just returned from a trip to Arizona to visit family, and one of the interesting conversations I had was with my sister.  She is a newly-hired faculty member in the government department at the College of William and Mary.  We were talking about the new Python class I’m going to be teaching starting in January, and she remarked that she’d like to learn to program in Python.  She said that she’d used scripts that other people had written, but that she was interested in trying her hand at writing programs.  I told I was sure she could learn Python on her own, but she said she liked the obligation that a class entails.  I was encouraging about her idea, and I hope she’ll carry through with it.

When I returned I read the article Viewpoint: Computer code frees us to think in new ways by Tom Armitage in the BBC.  In it he very eloquently argues that programming is as much about design as engineering, writing:

A great deal of it is much more like sculpture. Data, technology, code, as a slab of clay, to be manipulated, explored, felt between your fingers, and slowly turned into something substantive.

It’s practically the opposite of engineering. It’s an artistic discipline: beginning with sketching and exploring, and then building on those sketches slowly through iteration, watching a final structure emerge.

He then goes on to argue that everyone needs to know more than just computer literacy, because computers and code are like prostheses for people.  As he says:

The magic of these prostheses – the magic that lies at the heart of true innovation – is not necessarily just doing things faster. It is giving us the ability to think new thoughts.

The convergence of these two things in my life got me thinking about people who aren’t computer scientists, or even identify as programmers, but nevertheless would like to program.  Mark Guzdial has written extensively about this, most recently here, so I won’t rehash a lot of the ideas.  But what strikes me this time is that it’s not just computer scientists who are suggesting that learning to program is worthwhile.  Political scientists, like my sister, recognize that programming would open up new worlds for them, and they want to be a part of it.  I find that to be interesting, since real change only happens when people are ready and embrace it.  The innovation that would arise from social scientists (and artists and others) learning to program makes me excited for the future.

]]>
https://blog.inroads.acm.org/2012/12/social-scientists-who-want-to-program/feed/ 0