Additional profile information on Alfred Thompson at Google+
This was quite the controversy when it all started. Today some people go through a whole programming course without even learning that the language they are using even has a GOTO statement. An unconditionally GOTO statement barely exists in most programs today. It wasn't that way 40 years ago though.
Edsger W. Dijkstra really brought a lot of clout to the discussion with his classic paper "Go To Statement Considered Harmful." Dijkstra actually argued that the statement should be removed for modern programming languages. Every language design group since then has had that as part of there design discussion.
There isn't a lot of reason for unconditional GOTO statements these days. We've got great ways to organize code using loops, tight little module, class methods and many more. In fact today I'd say you'd be hard pressed to define a section of code that requires a GOTO statement for efficient code.
There used to be one time when a GOTO did (more or less) serve a good purpose. Older versions of BASIC used an ON ERROR GOTO statement for error handling. Generally the error handling code was placed at the end of the module. The last line before that code would be a GOTO that sent the code to the final END statement. Each section of error handler would include a GOTO at the end to also send execution to the final END statement. The idea was to have a single point of exit for any routine. That's still a good idea but requiring brute force methods to get there are not always a good idea.
Today a lot of teachers debate the idea of teaching their students about the GOTO statement. I pretty much avoided it most of the time. Sometimes I talked about it early in the course. I think it was valuable to discuss the ways GOTO was used and what problems it cost. Hiding things seems like a bad idea What do you think?
This is the seventh of a series of posts based on the book Programming Proverbs by Henry Ledgard. The index for the series is an earlier post and discussion of the list as a whole is taking place in the comments there. Comments on this "proverb" are of course very welcome here.
The following are reprints of announcements that were sent to the Advanced Placement Computer Science teacher mailing list by Tom Cortina and Don Slater of Carnegie Mellon University. Following the CMU announcements are a few other summer workshops I have come across.
As a high school CS teacher I attended several AP CS workshops at CMU and found them invaluable. They are taught by CMU faculty and top high school teachers who are also involved in the design and grading of the AP CS exam. I highly recommend these workshops if you are teaching AP CS.
I attended part of last year's CS4HS workshop at CMU and only regret that I wasn't there for the whole thing. They are having CS4HS events in Southern California, Washington State and Pittsburgh PA (CMU main campus) this summer.
The Alice workshop is probably the premier training event for teachers interested in using Alice to teach introductory programming. Alice is of course being developed at CMU so this would be a chance to learn from the people behind the project.
CS4HS: SUMMER WORKSHOPS FOR HIGH SCHOOL TEACHERS "EXPLORATIONS IN COMPUTER SCIENCE"
Carnegie Mellon University, the University of California - Los Angeles, and the University of Washington will be running summer workshops for high school teachers to help teachers develop new material to use in their classes to introduce their students to the major principles of computer science beyond computer programming.
Computer science leaders from industry and academia will provide three days of instruction and hands-on activities for high school teachers, assisting them in the development of additional curricular material that will expose students to the broad and ubiquitous nature of the field.
The workshops will also offer panel discussions featuring nationally recognized leaders in computer science education who will examine the latest trends in computer science pedagogy, their potential applications in the high school environment, careers and social responsibility for computer science students and strategies to increase participation in computer science by women and underrepresented minorities.
CS4HS is part of the new CS4ALL initiative sponsored in part by a generous donation from Google. Registration is limited. Specific registration information and fees are listed on each workshop website. Workshop dates and websites are listed below:
OPEN TO TEACHERS IN SOUTHERN CALIFORNIA
University of California Los Angeles - Wed, July 11 - Fri, July 13 http://www.cens.ucla.edu/portal/education/cs4hs.html
For more information, contact: Joe Wise, email@example.com
OPEN TO HIGH SCHOOL TEACHERS NATIONWIDE
Carnegie Mellon University, Pittsburgh PA - Fri, July 13 - Mon, July 16
CAMPUS HOUSING IS AVAILABLE For more information, contact: Tom Cortina, firstname.lastname@example.org
OPEN TO SCIENCE, MATH AND C.S. TEACHERS IN THE STATE OF WASHINGTON
University of Washington - Fri, July 20 - Sun, July 22 http://cs4hs.cs.washington.edu/ For more information, contact: Julie Letchner, email@example.com
The 2007 Alice Summer Institute
Dates: Monday, July 16 (arrival day and opening dinner) through Sunday, July 22.
This Institute will explore the Alice programming environment for all teachers looking for an effective and engaging tool to introduce students from middle school through college level to programming and Computer Science. Working with nationally recognized experts in Alice, a tool developed here at Carnegie Mellon, teachers will develop an understanding of Alice, and teaching methods suitable for presenting Alice in their own unique environment.
For more information, go to the following link:
2007 Summer Workshop for Advanced Placement Computer Science Teachers
Dates: Saturday, July 7 (arrival day, and opening dinner) through Friday, July 13, 2007.
This workshop will explore topics from the Advanced Placement Computer Science AB curriculum for experienced Java teachers. Through lecture, demonstrations, and lab assignments, participants will work with experienced Computer Science instructors developing an understanding of these topics, and teaching methods for presentation in their own classroom setting. There will also be an extensive exploration of the new Advanced Placement Computer Science Case Study, "GridWorld".
Registration will start March 19, 2007
Maria Litvin (a friend and really great teacher) is giving seveal workshops for AP CS teachers this summer. One in Toronto Canada and the other in St Johnsbury VT. More information at her web site. I hear a lot of good about Maria's workshops.
There will be an AP Summer Institute at the University of Texas at Dalls this summer. More than half of the workshop will focus on the GridWorld case study that is part of the AP CS exam.
The Women in Computer Science students at Shippensburg University in Pennsylvania have created a series of computer science podcasts on Computer Science topics. So far they have podcasts on topics such as genetic algorithms, zip code encoding, encryption, searching and sorting in MySpace, and malware.
The series is called "Where is the Software" and each podcast runs between 7 and 15 minutes. These podcasts are targeted at the high school level and would probably be useful in a lot of Computer Science classes.
[Thanks to the CSTA blog for the link.]