Novacky then proceeded to demonstrate a rudimentary program in Python on an iMac, displaying the screen image on an overhead projector. He started the Python interpreter within IDLE (Interactive DeveLopment Environment for Python, freely available at python.org). He entered 3**100 to show 3 raised to the 100th power. The 48-digit result displayed instantaneously: 515377520732011331036461129765621272702107522001.
I nearly did a fist pump, realizing how much effort would be required in managing precision and formatting to calculate the result and display it in languages such as Fortran, C++ and Java. I looked around the room for other signs of jubilation and saw my classmates sitting poker-faced, as if this calculation were as routine as 2 + 2.
Next Novacky presented a mini-lesson in output describing the print statement. The print statement is one of the conundrums of programming languages—common to most languages but sufficiently different syntactically to trip you up when you switch from one language to another. Once Novacky typed:
print(, the IDLE editor magically completed the Python syntax displaying:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
This type of auto-completion has been a feature of programming editors and IDEs (Integrated Development Environments) for the past 15 years or so. I’m now glad to see that the pre-auto-completion-errors-galore days are largely behind us. Prior to the advent of IDEs, the next best thing was involved lifting your arm to bookshelf in a reflex reaction, grasping programming reference book, flipping to dog-eared page 391 and gleaning technical minutiae for print statement. This process worked seamlessly—except on those occasions when the arm grasped thin air because some unidentified coworker borrowed your book.
At this point, my Python programming experience had yet to rise to the threshold of fun in the sense of the fun of riding a roller coaster at the amusement park or the fun of sneaking a BSOD (Blue Screen of Death) screen saver on someone’s Windows computer. In its favor, Python did eliminate some of the drudgery that typifies other programming languages. I was far from saying “Let’s have fun this weekend and write some Python code,” but I could see the CHLOC rate (curses per hundred lines of code) being lower in Python.
On that initial classroom foray into Python land, there was one of those technical mystifiers that one encounters when you spend more than a few minutes at the keyboard of a computer. Part of the IDLE/Python start up messages that scrolled by on Novacky’s monitor included: WARNING The version of Tcl/Tk (8.5.9) in use may be unstable. Visit http://www.python.org/download/mac/tcltk for current information.
I later researched python.org to learn that Python's IDLE depends on the Tk GUI toolkit, which is not part of Python itself and must be installed separately. Specific versions of Python require specific versions of Tk.
Herein lies a key computing lesson rarely covered in the textbooks: If you choose a career in computing, you will spend many waking hours and just as many half-wake hours upgrading and updating software to achieve a stable system, for which the duration of stability will be measured in a period of time expressed as milliseconds.
The flip side of striving for this stability and mastering computer science is the career itself, something that is far from guaranteed for many college graduates in today’s economy. Novacky’s 50-seat classroom was nearly filled to capacity because many of the students were undoubtedly aware of the job opportunities related to computer science. In an article entitled The Best Jobs of 2013, U.S. News & World Report ranked computer systems analyst, database administrator, software developer and Web developer in the top 10. Computer-related jobs took 7 of the top 25 rankings.
For 2013 graduates, CNN Money predicted that the highest demand for bachelor’s degrees would be finance, followed by computer and information science, accounting, business administration/management and mechanical engineering.
Novacky anecdotally related that many of the Pitt senior computer science majors had job offers in hand before graduation. And a course section was added to his teaching load this semester due to higher than expected registrations.
The career prospects mirror enrollments in computer science programs. In its most recent Computing Degree and Enrollment Trends report, the Computer Research Association said majors in undergraduate computer science programs were up by an “astonishing 29.2 %” for the 2011-12 academic year. This increase is the fifth straight annual enrollment gain.
So if you’re considering going back to school to brush up on your programming skills or launch a computing career, I highly recommend it. You may be enticed by the new programming languages taught at your local college or university. And if you find the course “Introduction to Computer Programming with English,” let me know.
Edward J. Joyce, a software engineering manager at CA Technologies, is looking forward to the winged version of Python for programming the Cloud.