Computer Science, Education, Innovation, STEM

The Art of Writing (Swift) Code: Learning the languages of innovation

Recently, Apple announced that scholarships will be given to students from age 13 on up to attend this year’s World Wide Developer Conference (WWDC), which promises to unveil the future of iOS and OS X operating systems and development environments.  For those who apply and are accepted, this will pay the $1599 registration fee with potential to have travel and lodging paid for as well.  The STEM organizations that are eligible include Girls Who Code, the National Society of Black Engineers, Black Girls Code, Blacks in Technology along with sixteen others listed here. If you are eligible, I encourage you to apply for this excellent opportunity to learn how to write code from the Apple engineers that invented the programming languages, frameworks, and devices that millions of people around the world use every day.

But what if a teenager has never coded before, especially for an iPhone or a MacBook?  This is not an easy feat but with the right, motivation, coaching and instruction, a teenager can learn how to program Swift for iPhones, iPads, and the Apple Watch.  First, they need to know that they need an Apple computer that is capable of running Xcode 6.3 .  Then they need to learn the basics of Apple’s new programming language, Swift.  Believe me, as a computer science and computer engineering professor, Swift, can be a lot easier and more flexible than learning Objective-C, the original programming language for the iPhone.  Apple produced this five minute short video that explains how to create a cool app using Xcode plus they have a list of resources to learn it on your own.  There is a lot to learning involved in how to make your own code.  Depending on what you can do,  it can take minutes depending on what tool you are using (e.g. many fun ones for kids can be found on or in fact, learning to become an expert coder can be a journey that can take a decade according to Peter Norvig, a noted Stanford computer science professor and Google scientist. Note that Swift is only one of the languages that are used to program computing machines and devices that are worth learning. Others include Java, C++, Objective-C, Python, C#, and a host of others.

During this year’s National Robotics Week, through our National Science Foundation funded program, Co-Robots for CompuGirls we taught our local Milwaukee Chapter of Girls Who Code how to program humanoid robots to dance in just two hours (and they replied by writing us some cool thanks you cards card 1 and card 2, in Scratch, a graphical computer programming language developed at MIT to teach kids to learn how to code in a visual, block-based development environment). When people learn how coding can be done to create art, games, or things that will help people, such as health care apps, they have the first ingredient of a self-taught programmer: intrinsic motivation. If you are motivated to learn something because its fun or does something that is important to you, you have the key component when learning something new. This internal motivation drives you to keep persisting in your discovery of something new, which is more powerful than having to do something because it’s an assignment.

In future blog posts, I will write more on what I call the “Art of Writing Code” that will emphasize the creativity, concepts, connections, communication, and collaboration involved in writing code. After all, it is code, or software, that drives innovation in new hardware (cars, smartphones, robots, tablets, search engines, smartwatches etc.) and learning how to program code is learning the language of innovation.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s