Skip to main content

Think, Code, Solve: Programming as Career Skill

English: Flowchart example of calculating fact...
English: Flowchart example of calculating factorial N ( N! ). (Photo credit: Wikipedia)
Visalia Direct: Virtual Valley
Aug 4, 2014 Deadline
September 2014 Issue

Think, Code, Solve: Programming as Career Skill

“Until I had to code it, I didn’t understand how many perspectives there are.”

This spring, a group of my statistics students attempted to model the return on investment for various degrees at several colleges. To develop their model, they had to ask themselves what is “value” and how would they measure “return” for those students not seeking financial wealth. Developing their computational model, they learned more about what college provides society.

Creating variables and functions, collecting data and creating output, the task of creating a computer program opened up new ways of considering the question these students sought to answer. Was a degree from one college better than the same degree from another school? Was one degree better than another?

If you want to earn a lot of money, study petroleum engineering or computational finance. That’s a simple statistical analysis searching for the highest median salary. But, not every student is rushing to earn a degree in one of the high-paying science fields. Clearly salary is only one measure of return on investment. What the students came to recognize was that users of their software might want to adjust the output based on personalized criteria. The resulting model the students developed was more like a dating service than a single answer.

That was when the group leader observed that he hadn’t understood the problem clearly until the team tried to develop an application to match students to their optimal school and degree. It turned out, some people get the best return by pursuing vocational programs based on their interests, location, family situation and other variables.

Computer programming teaches students to break problems into smaller blocks, converting every few steps of a problem into a line of code. When we teach programming, we teach one way to approach quantitative problems. The problem solving skills learned by young programmers offers them a valuable approach to analyzing the world.

I would never suggest that programming skills are the only way or the best way to address all problems, but I do argue that learning to code develops a logical thought process.

When I mentioned the need to improve math and science education in our public schools, a colleague suggested doing so would necessarily cut the humanities. This dichotomy troubles me.

Computer programming need not be a cold, heartless pursuit, apart from artistic expression. If we teach applied technology courses as nothing more than memorized approaches to math problems, then that is a human failing, not a problem with the machines.

Art is mathematics, as we witness when we study color or sound as waves perceived by our senses. When we dance, it is biology and physics at work to express emotion. The movements of bodies can be analyzed and turned into simulation software. The animators at Pixar and Dreamworks rely on careful studies of the physical world to program amazing works of art.

It does not matter if we teach “real” programming in Java, C, C#, Python, Ruby or some other language. I’ve taught students introductory programming skills in JavaScript, Visual Basic and AppleScript. Although languages approach problems differently, many of the skills transfer from one language to another. Whatever language students learn, it might be out of favor in a few years. As a Web developer, I’ve had to shift from Perl to PHP to Ruby. Apple is shifting from Objective-C to Swift. Languages go out of style, but the underlying coding skills do not.

In the 1970s and 80s, the LOGO programming language enabled students in classrooms to create complex geometric art, as if they had Spirographs behind the screens. If you learn how to construct programs in LOGO, the same skills transfer to more complex programming languages.
Programming LOGO, available as StarLogo TNG (http://education.mit.edu/projects) and Scratch (http://scratch.mit.edu), still offers a fun mix of computing skills and artistic creativity.

For more advanced students, the Alice Project (http://www.alice.org) offers three-dimensional game programming. You can’t program a realistic game without appreciating concepts from physics, such as what happens when a ball hits a wall at an angle. Creating a virtual world requires creativity and problem solving skills. The object-oriented concepts behind Alice transfer to most current programming languages. Game programming cannot avoid being educational in unexpected ways.

Game play can also introduce programming and analytical concepts. One of my favorite games in the 1990s was SimCity. As a professor, I find much of what my students explore reminds me of this classic game. My economics and statistics students use math and computer programming skills to study social problems: agriculture planning, water usage, transportation efficiency and epidemic patterns. Taking complex social concerns and analyzing the related data via computer programming represents what I consider the noblest application of technology.

Optimizing resource allocation involves a specialized form of math and programming known as integer theory. If you consider a hospital with beds, the admissions desk can only assign one patient to one bed; there are no fractions of a person or fractions of a bed. Approaching health care as delivering the best care to the greatest number of people is a statistical problem best solved with programming skills. The same is true for any allocation of limited resources.

Just as requiring students to write essays won’t turn every student into a professional writer, requiring that students code won’t create a legion of software developers. I want my students to write essays and write code that communicates their ideas to readers and users, as best they can.

My students are pragmatic programmers. They use the computer the way I used a calculator in school. The programs they write solve problems that couldn’t be solved on paper in hours or even days. Software students surely write more efficient code, but that’s not the point of asking my students to develop programs.

A computer cannot tell a person what to ask or why, and no program can tell us if we are using data for good purposes. Those questions are beyond technology. But, once we do know what we want to ask, computer programing becomes an invaluable skill. Those with that skill have an advantage in the job market.

Comments

Popular posts from this blog

Comic Sans Is (Generally) Lousy: Letters and Reading Challenges

Specimen of the typeface Comic Sans. (Photo credit: Wikipedia) Personally, I support everyone being able to type and read in whatever typefaces individuals prefer. If you like Comic Sans, then change the font while you type or read online content. If you like Helvetica, use that.

The digital world is not print. You can change typefaces. You can change their sizes. You can change colors. There is no reason to argue over what you use to type or to read as long as I can use typefaces that I like.

Now, as a design researcher? I'll tell you that type matters a lot to both the biological act of reading and the psychological act of constructing meaning. Statistically, there are "better" and "worse" type for conveying messages. There are also typefaces that are more legible and more readable. Sometimes, legibility does not help readability, either, as a type with overly distinct letters (legibility) can hinder word shapes and decoding (readability).

One of the co…

Let’s Make a Movie: Digital Filmmaking on a Budget

Film camera collection. (Photo credit: Wikipedia) Visalia Direct: Virtual Valley
June 5, 2015 Deadline
July 2015 Issue

Every weekend a small group of filmmakers I know make at least one three-minute movie and share the short film on their YouTube channel, 3X7 Films.

Inspired by the 48-Hour Film Project (48hourfilm.com), my colleagues started to joke about entering a 48-hour contest each month. Someone suggested that it might be possible to make a three-minute movie every week. Soon, 3X7 Films was launched as a Facebook group and members started to assemble teams to make movies.

The 48-Hour Film Project, also known as 48HFP, launched in 2001 by Mark Ruppert. He convinced some colleagues in Washington, D.C., that they could make a movie in 48 hours. The idea became a friendly competition. Fifteen years later, 48HFP is an international phenomenon, with competitions in cities around the world. Regional winners compete in national and international festivals.

On a Friday night, teams gathe…

Edutainment: Move Beyond Entertaining, to Learning

A drawing made in Tux Paint using various brushes and the Paint tool. (Photo credit: Wikipedia) Visalia Direct: Virtual Valley
November 2, 2015 Deadline
December 2015 Issue

Randomly clicking on letters, the young boy I was watching play an educational game “won” each level. He paid no attention to the letters themselves. His focus was on the dancing aliens at the end of each alphabet invasion.

Situations like this occur in classrooms and homes every day. Technology appeals to parents, politicians and some educators as a path towards more effective teaching. We often bring technology into our schools and homes, imagining the latest gadgets and software will magically transfer skills and information to our children.

This school year, I left teaching business communications to return to my doctoral specialty in education, technology and language development. As a board member of an autism-related charity, I speak to groups on how technology both helps and hinders special education. Busin…