6 good things about being a programmer | ITworld

No doubt about it, I’m a glass-is-half-empty kind of person. Ask my wife, ask my kids, ask my friends and they’ll tell you that I love to complain. It’s one of my favorite hobbies and, dare I say, skills. Always Look on the Bright Side of Life is agreat song, but advice that I’ve never chosen to follow. Nothing beats a good bitch session, I say.

Not surprisingly, then, when I look back on my career as a programmer, I focus on the negatives. That leads me to write posts like the one I wrote last week, 7 frustrating things about being a programmer. It’s the annoying things that I remember most.

As they say, though, it’s never too late to change, right? So, in effort to be one of those eternally positive people (the ones most of us want to throttle), at least for a few minutes, I thought I’d follow up last week’s post with one that focuses on some of the things about being programmer that I actually liked (yes, there were some such things):

via 6 good things about being a programmer | ITworld.

Computer Science Student Network

The Computer Science Student Network (CS2N) is a collaborative research project between Carnegie Mellon University and the Defense Advanced Research Projects Agency (DARPA) designed to increase the number of students pursuing advanced Computer Science and Science, Technology, Engineering, and Mathematics (CS-STEM) degrees.

via About Us | Computer Science Student Network.

Using This Website | Computer Science Circles

The purpose of this website is to teach the basics of Python programming in a semi-interactive fashion. It contains a series of instructions, mixed with exercises that you can use to test your progress. Anyone can use this website for free. You can register by creating a free account, if you want to save your progress. You don’t need to install anything on your computer to use this website.

The exercises and writing are aimed at people who have no prior experience programming. If you have some experience programming in other languages, then going through all of the lessons should be a bit easier. Both adults and students can go through all of the lessons at their own speed.

There are automatically-graded exercises to build up your skills. There are several types of exercises, including programming, short answer, multiple choice, and code scramble. In most cases there is more than one way to get a correct answer.

via Using This Website | Computer Science Circles.

Object-Oriented Programming – Scratch Wiki

Is Scratch OOP?

Whether or not Scratch is Object-oriented is disputable. It definitely uses objects, namely sprites; however, you currently cannot dynamically generate sprites. In Scratch 2.0, however, cloning will be supported. This will allow for dynamically generated sprites.

Arguments against Scratch being OOP are:

  • Scratch does not support custom objects
  • Scratch does not support dynamic generation of sprites

Arguments for Scratch being OOP are:

  • Scratch supports sprites, which are objects.
  • You can access properties of sprites from other sprites.
  • Scratch 2.0 will support cloning, so dynamic sprite generation will become possible.
  • Lists can be used to create pseudo-objects

Object-Oriented Programming – Scratch Wiki.

Can Obama Convince High Schools To Teach Kids To Code? – Forbes

Anthony Wing Kosner, Contributor

Monday night, President Obama made time in his State of the Union Address to address our national deficit in STEM education:

“Tonight, I’m announcing a new challenge to redesign America’s high schools so they better equip graduates for the demands of a high-tech economy.  We’ll reward schools that develop new partnerships with colleges and employers, and create classes that focus on science, technology, engineering, and math—the skills today’s employers are looking for to fill jobs right now and in the future.”

For those in the learn-to-code movement, this was a welcome validation of their efforts. Codecademy’s digital literacy advocate Douglas Rushkoff tells me, “Honestly, as I listened to Obama speak I thought the words Codecademy were about to come out of his mouth!”

via Can Obama Convince High Schools To Teach Kids To Code? – Forbes.

Learn To Code #2: The Many Reasons Why We Must Program (And The Few Why Not) – Forbes

Anthony Wing Kosner, Contributor

So, do you really have to learn to program to participate in 21st century society? Absolutely not, you can be as analog in your life as you can get away with and still put food on the table. But the significance of code literacy in contemporary culture is about more than personal lifestyle choices. We are all now immersed, if not in code itself, then in the effects of code on everything around us.

We have even reframed our conception of the analog vs. the digital. Are our “codes” just simplifications that attempt to describe nature, or is nature itself the playing out of “codes” that are complex beyond our understanding? It’s an important philosophical question, but in practical terms, we manipulate our abstractions through programming at whatever level of approximation we are working at.

via Learn To Code #2: The Many Reasons Why We Must Program (And The Few Why Not) – Forbes.

Learn To Code #1: Does Everybody Really Need To Program? – Forbes

Everywhere I turn, there seems to be a new way to learn how to program online. There are free resources like Codeacademy, Udacity, Coursera, Mozilla’s P2PU, Google Code University, and MIT Open Courseware. There are also more and more high-quality paid resources, both online and off, like General Assembly, Treehouse or Bloc, not to mention local continuing ed classes across the spectrum of relevance and quality

via Learn To Code #1: Does Everybody Really Need To Program? – Forbes.

MUDEE

When working my students through the problem solving process I ask them to evaluate their plans and programs against five adjectives:

Unambiguous – This is most essential for the plan stage of the problem solving process. Plans for a program must be clear, concise, readable and understandable by those following the plan.

Efficient – Are there extra steps? Can the same goal be accomplished in less time or using less code?

Documented – This ties in and helps support unambiguous. Does the program have notes in each section of the program? Can a reader of your code understand it with out having to execute it? Are the variable names descriptive?

Modular – Are sections of code repeated or are they packaged into recallable blocks? Can the code sections be used in other parts of the program or other programs? Are the variable names so descriptive that they only make sense in this program?

Elegant – This is tying together of all the other adjectives. Have the right coding choices been made? Sometimes things like modularity trump efficiency. Is the program beautiful to look at? Are indentation and spacing used appropriately to make the program easy to read? Here experience helps to inform the evaluation.

I keep trying to work these together into an acronym but nothing seems to work MUDEE, MEEDU, DEEMU?

 

The Beauty and Joy of Computing

The Beauty and Joy of Computing (BJC) is an introductory computer science curriculum developed at the University of California, Berkeley, intended for non-CS majors at the high school junior through undergraduate freshman level. It was one of the five initial pilot programs for the AP CS Principles course being developed by the College Board and the National Science Foundation. We offer it as CS 10 at Berkeley.

via The Beauty and Joy of Computing.