How startup weekend, outrigger canoe racing, and Crossfit inspires a new approach to software engineering education
I have a confession to make. For over 20 years, I’ve been teaching “cubicle” software engineering. This does not mean that I teach students to use punch cards, COBOL, and the waterfall lifecycle model. To the contrary, my curriculum appears quite modern: agile development processes, a “flipped” classroom, and modern tools and technologies including GitHub, CloudBees, Bootstrap, and the like.
Users of Git, particularly with cloud-based services such as GitHub, CloudBees, and Heroku, must have a very basic understanding of public key authentication and encryption. This article provides a minimal introduction along with a few use cases.
The University of Hawaii Information and Technology Services (ITS) department provides hosting services to faculty and staff. This has many advantages, including:
- No cost to you for hardware.
- No cost to you for backups, network, UPS, and OS administration.
- Energy savings, due to: (1) virtualization (because at ITS, multiple sites run on a single server); (2) reduced A/C (because shared, co-located servers at ITS require much less A/C ); and (3) green computing (unlike ITS, most departments run old, energy hogging, A/C demanding servers). With electricity costs accounting for almost 25% of tuition, energy savings maybe the most compelling reason to switch. But I digress.
For the past 20 years, the State of Hawaii has pursued the development of a high tech industry to counterbalance our economic dependence on tourism, with mixed results. Proponents of software-based companies note that these products are environmentally friendly, can be developed in any location, and bring in highly-skilled, highly paid jobs to the State.
These advantages are all true, and there are some notable high tech success stories. Unfortunately, while Hawaii is well-suited to high tech, high tech may not be well suited to Hawaii. The location-independence of software development means that it is just as easy to migrate high tech jobs out of Hawaii as it is to move them here, as is demonstrated by the frequent relocation of locally started high tech companies to California.
A couple of weeks ago, fresh on the heels of the Molokai crossing, I thought it might be fun to sign up for the Kahala Challenge, which is a sprint triathlon that substitutes paddling for bicycling (thus, an 800 meter swim, 2.4 mi run, and 2.5 mi paddle. For the paddling portion, you can choose an outrigger canoe, standup paddle, or paddleboard). I figured I was in great shape and didn’t need to train for what couldn’t be more than 90 minutes of exercise, even though I’ve never actually done a triathlon before. Plus, the event takes place at Kailua Beach Park, so it would be very convenient.
Several times per semester, local companies contact me to ask if I know of any good students who might be interested in working with them on a project. I am always delighted to receive these emails and want to facilitate these kinds of interactions. In general, even if I happen to know of a student, I will always suggest that they send me a short email that I can resend to our internal student mailing lists. With hundreds of students in our department, there may well be an ideal candidate who I have not had the opportunity to get to know personally.
Here are some hints that you can use to help maximize your chances of connecting with a good candidate:
Since I founded the Collaborative Software Development Laboratory in 1991, I have provided research positions and internships to students from across the world, including Germany, Italy, India, China, Japan, Australia, Iceland, and Indonesia. Providing these opportunities to students, and learning from their differing cultural backgrounds is one of the great pleasures of being a professor.