Computer Programming For Beginners – Integral Parts of Programming Languages

Are you new in the field of computer programming? Then it is very important to know and understand the common concepts and principles involved in such field. While computer programming for beginners comes with a certain level of difficulty, it is still achievable especially if you are equipped with the basic principles and concepts.
Writing a program involves storing data as well as manipulating it by means of a series of instructions. Included in the data are time and countable factors such as names, dates, and descriptions. By means of data types, you’ll be able to find out how a data must be stored and used.
Most programming languages such as C, C#, C , Visual Basic, and Java have integral parts which novice programmers need to get acquainted with. Among such parts are:

  • Variables

Wannabe programmers have to understand that variables provide them with momentary storeroom for any information needed while the program is used. Variables also play a great role in moving information from one section of the program to another. There’s also the so-called local variable which can be accessed or modified by a specified portion of a program and global variables which are accessible to any part of the program.

  • Data types

Any computer language comes with data types because they help maintain information contained in the program. However, programming languages have some restrictions on the data types they provide. Among the popular data types are characters, pointers, numbers, and strings. Numbers come in either floating points or integers. String data conceals internals that can be manipulated via exposed functions. Additionally, character data type stocks up numbers, symbols, letters, and spaces while the pointer means a piece of memory which can also be utilized for storing arrays.

  • Output

Since it is an important part of any programming language, it is advisable that you have a good understanding of the various types of outputs in majority of the computer programming languages. One of the popular types is text output, which provides a simple means of revealing the result of a particular computer program. Graphical output is a bit difficult and it needs higher resolution.

  • Testing conditions

These allow you to find out the path through a program by implementing a code with value as the basis. This value, which can be variable, another expression, or constant, is compared against an expression. One example of a testing condition statement is “if”. In case the validations became unsuccessful, many computer languages let you define a chunk of code that needs to be executed using “else” statement.
Aside from the indispensable elements of programming languages, computer programming for beginners also requires you to be familiar of the different language categories which include compiled languages, mark-up languages, and programming languages. It is also wise to have full understanding of the general principles and concepts behind each and every programming language. All of these factors are very much useful in helping you become an expert in a particular programming language or in computer programming in general.

Introduction to Computer Programming and Programming Languages

Since computer science was recognized as a distinct academic field in 1960s, it has made great strides especially in making things a lot easier for humans. One of the issues it has solved is the way problems that need to be addressed have been translated into a code or format computers can understand. There are various ingenious and great solutions used in such problems. Here’s an introduction to computer programming that will give you a greater understanding of this exciting discipline.
In order to pass on instructions to computers, programming languages are used. These languages, which are designed by humans, are based on the so-called rules of syntax and semantics. These days, a wide range of languages have been made, employed, discarded.
Programming languages usually don’t last that long. They come up but after just a few years of stay in the industry, you will feel that the language needs some improvement or you need something your chosen language can’t provide. It won’t be long until that particular language is replaced by a more flexible successor.
Programming languages do evolve because there’s a continuous search for efficient transformation of human language into machine code. Languages produced usually start with ideas, which conceal hardware and employ representations that are more convenient to human programmers. Another crucial facet of language design is dealing with the program’s complexity. As programs become bigger and more refined, developers have come to realize that there are language types that are easier to support in huge systems. Because of this, event-driven and object-oriented languages became widely used.
Types of Programming Languages: An Overview
Since this field is evolving, there is no set standard in categorizing programming languages. One way to characterize them is through programming paradigm. These classifications include:
o Object-Oriented
Object-oriented programming isn’t just the newest; it is also the most powerful among the paradigms. In programs that are object-oriented, the designer indicates the data structures as well as the categories of operations that can be done on it. The combination of data and operations that can be carried out is dubbed as an object.
o Procedural
Procedural programming involves a list of actions a program needs to accomplish to be able to attain certain goal. This is a simple paradigm wherein a program is divided into a starting phase, list of operations that needs to be done, and ending stage. Also called imperative programming, procedural programming involves the idea of procedure call.
o Structured
A unique type of procedural programming, structured programming offers additional tools that can be used to deal with the issues produced by larger programs. In structured programming, the program is split into small codes that can easily be understood. Oftentimes, structured programming is associated with top-down approach which starts with an overview of the system.
Computer programming languages are artificial and are made to manage computers. To come up with new and better language, the developer needs to spend hard work and long working hours. With this introduction to computer programming, you’ve become familiar with the various types of languages based on paradigms.

Online Computer Programming Degrees – How to Find an Accredited School With a Solid Curriculum

An online computer programming degree can help prepare you for a career as an applications consultant, applications programmer, database programmer, java programmer, lead programmer, mainframe programmer, systems consultant or programmer, web developer or systems analyst.
Although job growth in this field is expected to decline for the 2008-2018 decade, employers are still in desperate need of programmers with strong technical skills, language skills, and proficiency in English. Employers need English-speaking programmers and workers who are knowledgeable about the way U.S. businesses operate in order to meet the company’s specific programming requirements.
To get started on your career, you should enroll in an accredited online computer programming or business degree program with a technology focus. If you prefer to complete only a portion your degree online and the other on-campus, choose the blended format (online and on-campus). Most traditional colleges and universities offer both options, as well as specialty colleges, business schools, and some technical schools.
Before enrolling in any degree program, whether traditional, blended, or online, you should check to make sure the program is accredited by an agency recognized by the U.S. Department of Education (Ed.gov). The top accrediting bodies for business schools, technical schools, and traditional colleges and universities include:
-Association to Advance Collegiate Schools of Business (AACSB)
-Association of Collegiate Business Schools and Programs (ACBSP)
-Council for Higher Education Accreditation (CHEA)
-Distance Education and Training Council (DETC)
-The National Association of Schools of Art and Design (NASAD)
-Middle States Association of Colleges and Schools (regional)
-New England Association of Schools and Colleges (regional)
-North Central Association of Colleges and Schools (regional)
-Northwest Commission on Colleges and Universities (regional)
-Southern Association of Colleges and Schools (regional)
-Western Association of Schools and Colleges (regional)
In addition to verifying accreditation, spend some time reviewing curriculum and admissions requirements. If you are considering an online computer programming degree program, it is important to note that the traditional computer programming curriculum is still the standard in the academic world. Required major core courses for accredited computer programming degrees are as follows:
-Computer Science I
-Computer Science II
-Assembly Language Programming
-Data Structures and Algorithms
-Operating System
-Programming Languages
-Analysis of Algorithms
-Automata and Formal Languages
-Systems Architecture
-Computer Engineering
-Software Engineering
-Digital and Computer Analysis and Design
-Technical Writing
Algebra (abstract and linear), mathematical statistics, mathematical modeling, probability, differential equations, and discrete mathematics are also on the menu.
When reviewing admission requirements, check to make sure the school requests a completed admissions application, official test scores, official transcripts, recommendation letters, and an application essay. Most accredited computer programming degree programs require no less than a 3.00 GPA.

Computer Programming – A Career Overview

Computer programming training is considered by most employment forecasters to be one of the best educational tracks with regards to career outlook in the future. An education in computer programming, whether through a traditional college degree program or a certification class, can open up many doors for job-seekers looking to secure employment in this rapidly changing field.
What is Computer Programming?
The science of programming – and it IS a science – involves developing and inputting the set of instructions that computers use to function, as well as resolving problems and conducting logical tests within the system. Every company utilizes some type of computer system these days, and although the role of the computer programmer is largely dependent on the type of company that he/she works for, the position is always a professional one due to the enormous amount of responsibility.
Over the years, computer programming has changed drastically as technology evolves, and computer programmers have been at the very forefront of that change. In essence, computer programmers are charged with instructing computers how to think by inputting a series of algorithms and other data, and making changes to those formulas when problems arise.
What Are the Requirements for Computer Programming?
Different types of programming require varying levels of time and expertise. Simple programs can usually be written within a matter of hours, while more complex programs can take years to complete. Either way, the computer programmer must be proficient in the language of programming and be able to resolve problems “on the fly” using logical thinking and sequencing.
According to one of the more popular career sites, most computer programming positions require at least a Bachelor of Science in a computer-related field, but there are some professional programmers who have learned and perfected their skills through work-related experience only, instead of a formal degree program. Regardless of entry-level educational requirements, however, most programmers find they need to consistently seek out new training and certification opportunities in order to stay abreast of the current technology.
If you’re a creative, logical person who enjoys working as part of a team to solve problems, computer programming can be a fantastic way to earn a great living.

What Are the Benefits of Pursuing Computer Programming As a Career?

I would like to share with you some of the benefits of pursuing computer programming as a career, but before we explore these benefits let us look at a quick definition of computer programming.
There are indeed many definitions of computer programming, but to keep things as simple and relevant as possible I would define computer programming as that skill which empowers us to communicate with computers in a language which they understand in order that they can perform specific tasks for us.
Everyday examples of these tasks would be the running of a spreadsheet program, a word processor or an email program. For example a spreadsheet program has to be loaded and activated by a computer before we can use it. When it is loaded and activated the computer is said to be “running” the program.
Hence a computer programmer’s job would be to write the instructions which comprise the spreadsheet program in a language understood by the computer. This set of written instructions is commonly referred to as a software application or computer program.
Because computers are a lot smaller cheaper and more numerous than that which obtained a couple of decades ago, we find that there are many more potential clients who need various applications.
More importantly with the widespread availability of the internet a lot of these computers are connected together. This is why a career as a computer programmer is definitely worthy of your consideration.
However having said all this we must remember that computer programming is not for everyone, but if you do fit the bill then a whole new world awaits you and you will find yourself limited mainly by your own creativity and imagination.
Now here are some of the benefits of pursuing computer programming as a career.
1. As a computer programmer there is generally a strong demand and hence a higher likelihood of either getting a job or remaining in employment if you already have one.
2. While working in this space you will generally find that flexible working hours is an option.
3. There is in many cases the potential ability to work almost anywhere rather than having to commute.
4. The computer programming space is generally a results driven environment rather than being politically driven – although we can never completely escape politics because we are human.
5. It can be quite lucrative as a career to pursue.
6. There will frequently be the opportunity to work in a team with other like-minded individuals.
7. You will have the freedom to work on your own for extended periods of time when necessary or desired.
8. You will have the mobility to move around various industries depending on your preference and also where you want to live.
We have only scratched the surface here because there are many more benefits to explore. Actually I will write a few more articles to cover some of these points in greater detail so please watch out for them!

Computer Programming: Chapter: 02 – Know the Basics

In the previous article Computer Programming: Chapter: 01 – Introduction, I spoke about what is programming and ended it by saying that computers do not understand English or for that matter any language we humans speak. I said that computers only understand the language of 0’s and 1’s.
If you have used a computer for any purpose till now, you will not agree with me, since you have been using it mostly in English or any other language that you know. You would have watched movies, listened to songs, created documents, sent e-mails, browsed lot of sites and even you would have read my articles in one of the human readable languages. Also if you have written a program or even seen somebody doing it, you might have noticed that even they have not been using the language of 0’s and 1’s.
Even if you agree that there are people who knows this language of 0’s and 1’s, looking at the second important point I said that “The instructions should be PRECISE”, you might be wondering that it will be next to impossible to even write a simple computer program, if what I am saying is true.
Today, to use a computer you need not know how a computer works or what language does it speak? All you need to do is simply turn on a computer and when it is ready use the mouse and keyboard to point at some little graphical object on the screen, click a button, Swipe a finger or two in case of a touch screen device to get a computer to do what is required of it. An example would be what you need to read this article.
The reason computers are so easy to use today because of the hard work of some programmers who have programmed for it to behave in a certain way. And, here we are not trying to use a computer, but to learn how to program a computer. But the computer doesn’t know anything except 0’s & 1’s called binary language, and remember not all computers speak the same dialect. That is the reason a program on a desktop computer does not run on an iMac and vice versa.
Let me explain with an example of two blind people, where in the first person (let us call him as Person-A) knows only English and the other person (let us call him as Person-B) knows only Sanskrit. Person-A wants Person-B to draw a sketch? Now, how do you expect these two to communicate with each other, isn’t it difficult. Person-A can’t even show in writing since the Person-B being blind. The only way of communicating is through speech in a known language, and by giving precise instructions.
Now, the only way they both can communicate with each other is by having an interpreter. Now when the Person-A speaks in English, the interpreter then translates it into Sanskrit and repeats it to the Person-B. When the Person-B says something in Sanskrit, the interpreter again translates and repeats the sentence in English to the Person-A. Now with the help of interpreter, both are able to communicate very easily.
By using the interpreter solves our language problem. We still have another problem at our hand. That is Person-A is asking Person-B who is blind to draw a sketch. Though this is not something that is impossible, but it is difficult, unless you know how to instruct. Even if Person-A is able to now communicate, he should know the steps in a proper order and very precisely, otherwise he will get Person-B to draw something, but not what he would be expecting. Person-A should know every minute detail very precisely, since the Person-B is blind, he will just follow whatever Person-A instructs. If the Person-A asks him to draw a line of 1.23 cm, from a particular point with a certain degree, Person-B without even questioning anything just does that without even thinking about the outcome. If Person-A knows how to instruct precisely and exactly in the way it is required, then Person-B will draw what he wants in the way he wants.
If we get back to computer programs, and use the same approach as in the above example everything becomes very simple and easy. Replace Person-A with yourself and Person-B with the computer. Now the first thing you need is an interpreter and the second is you should know what you want and the precise steps that is required, so that you can get the work done.
To Read or Write a Binary code or program is unfortunately very difficult for humans. So we have to use some kind of program that can translate something we instruct in English into Binary language and vice versa. These programs which can translate our instructions in English into Binary code are surprisingly called as an interpreter.
Do these interpreters really understand English?
This will be the question that might be running in your mind now. The answer is Yes & No.
Yes, since we use English words programming languages, and No since computers are still not up to that level so as to understand what we speak be it in any language. This type of language is known as high level languages. By using the term languages, I am not referring to various languages such as English, French, etc., but I am referring to the high level languages that we use to write programs, which are then interpreted and converted into binary code so as to make the computers understand it. High Level languages are covered in more detail in the coming sections.

Why Should You Learn Computer Programming?

Computer programming isn’t just about building the next cool app, or about creating a killer web site – it’s about planning, discipline, and problem solving, as well as a good introduction to the wonderful world of logic.
Even for people who are never destined to actually make a career out of telling a computer what to do, there are some great advantages to be had by acquiring the skills needed to actually do it.
Before looking at the three key skills that are common to all forms of programming – planning, problem solving and logic – it’s worth recounting a little anecdote about the misconception that programmers have to be engineers, or at the very least, good at mathematics.
There was a time when computers were the size of a house, and communicated with the programmers using little bits of cards and ticker tape. If they went wrong, someone had to repair the valves (yes, valves), and it saved a lot of time if that person was also the programmer.
Fast forward a few years, and applicants for Universities across the UK wanting to study Computer Science wondered what kinds of subjects they might need to study in order to be accepted onto the course.
Medical students needed a grounding in human biology, those wanting to study astrophysics had better know their mathematics and have at least a basic idea of the more advanced laws of physics.
For computer science students, it was easier. No special knowledge is really required.
Learning Planning through Computer Programming
It is said that the best way to appreciate subject matter is to teach it to someone else. This being the case, the best way to appreciate how to do something well is to break it down into successively smaller steps until the whole process is laid bare.
With knowledge of all the components, estimates of time and cost can then be applied, as well as the various checks and balances that will prove that what has been done has been done correctly, and is the correct thing to have done in the first place.
This is as true of building a block of flats as it is a computer program.
Computer Programming as an Introduction to Problem Solving
Some things just don’t seem possible at first glance. No doubt the idea that every page on the internet could be indexed, and then searched in real time was considered to be a bit of a pipe dream by some.
However, knowing that a computer is just a thing that can interpret commands leads the programmer to be able to find a way to solve just about any problem. And if there aren’t any obvious solutions, the brain has a way of being able to think laterally and at least find a workaround.
The basis of this is known as logic.
Basic Logic in Computer Programming
This is really the only “sciency” bit of programming left. Logic essentially allows you to hand the decision making process over to the computer, and force it to perform different actions depending on the various conditions it encounters.
There are also logic constructs that let the programmer repeat actions, as well as choose actions, and ways that various lists of instructions can be re-used for different tasks, depending on how they are invoked.
Seeing the entire domain as a set of interacting objects in this way is a fundamental transferable skill that computer programming teaches.
In fact, all of these skills are transferable. Computer programming is one big set of transferable skills; and that’s probably the best reason there is to learn Computer Programming.

Learn Computer Programming – You Can Do It!

Almost anyone can learn to program. There are only a few requirements (like having access to a computer), and you don’t have to be a genius. (Well… it helps if you are a genius, I suppose, but you don’t HAVE to be one).
This article addresses some of the motivations you might have for wanting to learn to program computers, looks at some things to consider, and discusses a few different ways to start learning now!
What is it you want to do?
There are a lot of reasons for wanting to learn computer programming, and what you want to do with it can help guide you in choosing your path in learning. Perhaps you are interested in programming as a career. In that case you will want to make sure you are learning things that will make you attractive to those who hire programmers. On the other hand, you might just be looking for a fascinating hobby, and in that case you can let be a bit more casual about what you learn and focus only on things that interest you.
Maybe you need to automate various applications you use at work. For example, perhaps you want to automate a word processor to do mailing labels or a spreadsheet to do customized financial forecasting, or maybe you want to write computer games, or have a cool web site, or… the reasons are endless, just as the things you can do with a computer are.
The languages you learn will be influenced by these things, as well as the approach you will want to take as you begin to learn to do computer programming.
What resources do you have available?
Time, money, people who can help guide you, computers, books, programming clubs, classes, programming forums… these are all resources that will be handy as you are learning to program.
If you have a lot of time and money, a computer, and access to learning opportunities like college classes and developer group meetings, you will probably be able to learn at a rapid pace. If you can only spend an hour or so each day, and you don’t have your own computer, and you can only buy one or two books, you will have to adjust your expectations a bit. However, either way, or somewhere in-between, you will be able to learn to program.
What is the level of your motivation?
This is a very important consideration. This isn’t going to be easy. You are going to need to keep going even when things seem impossible and you can’t find the answers you need. It takes a fair amount of brain power, will power, and the ability to work things out. You will be well served if you can muster a “stick-it-out” kind of attitude.
One of the attractions of computer programming is that there is a lot of problem solving, and you will have to solve a lot of them both while you are learning as well as when you are using your skills to do useful things. It takes a lot of interest and dedication to stick with it long enough to get somewhere – if this still sounds good to you, you will probably do okay.
So, how to get started?
There are a lot of ways to go about getting started. You can get started today, regardless of how you are going to approach this over the long run. Here are a few tips on getting started quickly:
* Learn in baby steps – Start with something very easy, and add to it. There is no advantage to jumping in with both feet unless you have unlimited time and resources.
* The quickest way to start might be to use a language that comes with software you already have. For example, you can do a great deal of programming in Microsoft Word using Visual Basic for Applications. There are numerous commercial software applications that include a way to enhance them using programming or scripting languages.
* Here is another idea for getting started quickly: There are simple languages available with almost every operating system (Windows, Linux, Mac) for automating your repetitive tasks. For example, in Windows you can use VBScript. Again – a simple internet search will get you lots of information.
* Pick a more full featured language that is available free – To get started with the least expense and as quickly as possible, one approach is to download a programming environment for free on the internet. For example, you can download the Ruby language and everything you need to work with it for free. Another example is the Microsoft .NET Express languages (VB.NET or C# are good choices) – again, you can download everything you need for free from Microsoft. A little internet search on either “Ruby Language” or “Microsoft .NET Express” will get you all the info you need.
* Use the internet – You already know this or you wouldn’t be reading this article, but the internet is full of resources to help you learn to program. That makes sense, since the internet has been created and programmed by programmers. A lot of programmers are willing to share their knowledge through free tutorials, forums, tips sites, and articles. You will find links to a lot of good resources just by doing a simple search. One thing is certain, there is no shortage of information.
* Work with what you have, or what you can easily get – To get started quickly, my advice is to do something right away and keep doing something every day. Soon you will be better able to judge what areas are most interesting to you and best fit your needs, as well as where to get the information you need to keep progressing.
* Buy used books – Many of the book sellers on the internet now offer used books through a network of thousands of book re-sellers and private individuals. You can save a lot of money this way.
* Once you get started, write simple programs that help you automate something that is wasting your time. For example, if at the end of every day you make a backup of the files you worked on during the day by copying the files “by hand” to a cd, you could write a program that automatically searches your working folders and copies the files for you – without you having to do anything. The extra time you get from each little helper program you write is time you can use to learn more about programming.
* Find a computer programmers “user group” somewhere near you. Almost all larger cities have such groups that meet on a regular basis – usually monthly. Many of these meetings are free, and usually they provide presentations on “how-to” do various programming tasks. They often also have study groups and beginners sessions. Not all languages are represented in all cites – but anything is better than nothing, so it can be worthwhile to attend any meeting of this sort that you can find that is within a reasonable distance.
* Take a beginners course at a local community college or extended studies program. These classes are usually offered at a very reasonable cost, and will help you get started. I have found a number of these classes available on line – and if you are eligible for entry, it can be very convenient to take a course this way.
It’s time to get started
Programming can be fun, challenging, useful, and profitable. Not everyone has the nature or interest to become a full-time programmer, but almost anyone who can use a computer can learn to do something useful or fun with computer programming. If you think it is something you might enjoy, then I encourage you to give it a try and see what it’s all about. It is going to take time and dedication to become proficient, but it all starts with a single step. So now is the time.

Computer Programming Explained

Computer programming is the process of designing and writing computer programs. That is pretty straightforward, isn’t it?
At its most basic, you can think of programming as giving instructions to a computer to do something you want it to do – which might sound very similar to how you operate your desktop computer. Simplistically, the only difference between what you are doing now as a computer user and what you might do as a computer programmer is that the instructions are saved somewhere so they can be used over and over. As a matter of fact, if you have used macros in a software program like a word processor or spreadsheet (or countless other applications that are macro enabled) you have done computer programming of a sort.
Programs can be as simple as a set of instructions stored in a text file for doing some mundane task, like making backups of all the computer files in a folder, or as complex as something like a word processor, or the operating system that your computer uses which can require millions of lines of code. We need to understand that computers, which are generally just pieces of metal, plastic, silicon, and other materials stuck together in a way that allows them to do some amazing things that seem like thinking, can’t actually think at all. But what they can do extremely well is follow instructions. So what are these instructions, anyway? At the level that a computer understands, these have to be very precise, very detailed, and very complete step-by-step directions, and they must be in a form that the processor and other parts of the computer can understand – and that is as little electrical pulses which humans aren’t capable of emitting (at least not at this time).
In a way, you can think of a computer program like a recipe: a set of instructions that can be followed to produce a result. In the case of a recipe, the instructions are used by a human and can therefore be a bit descriptive, leaving out some of the details. For example, if a recipe instruction is to “pour the mixture into a blender and whip until frothy”, it is assuming that the human knows what a blender is, and where it is, and how to set it up, and how to use it – and also what pour means, and what frothy means, and so on. The human chef is expected to fill in the gaps. A computer can’t do this – it has no idea what anything means, except for a few very simple instructions. So the way we do this is to give the human a way to write instructions that can then be translated into something the computer can understand. The “way to write instructions” is called a programming language.
What a programming language allows us to do is to write instructions for the computer in a more or less human readable form that can then be translated into something the computer can work with. The human readable instructions are typically called (you guessed it) – code! Each line of human readable code translates into thousands of detailed computer instructions. A special program (or set of programs) is used to do this translation – each computer language has its own translators, which are called compilers or interpreters. Once the translation is done the result is stored in some form such as a file or set of files (or in computer memory in some cases), and each time the software is run, the computer will follow the instructions and (hopefully) the program will do whatever it is that it is supposed to be doing.
Although it is often imagined that you have to be a genius to be able to write useful software, almost anyone who is computer savvy and has an interest in becoming a power user can learn to program. Most software is written by average people with specialized knowledge and skills. Mastering computer programming can be a lifelong pursuit, but gathering enough knowledge and skill to be able to do useful things isn’t out of reach for anyone who knows how to use a computer and is willing to dedicate a little time… or maybe a lot of time, but still – it isn’t out of reach.

Should K-12 Schools Teach Computer Programming?

It was once popular in K-12 schools to teach computer programming. Languages like Logo, BASIC and HyperTalk used to be taught widely. With all the pressures that young people must deal with today, how can we justify the notion that programming studies be required in our schools? This article will explore this subject in brief.
One great mistake in the field of human endeavor with respect to computers is to overlook how they can be used to think differently about the world we live in. Because most people are instrumental thinkers, it can be more or less taken for granted that any new tool that is invented will be applied to the kinds of work and ideas that already exist. Certainly the computer certainly has spawned lots of new ideas, but its potential has been largely unrealized. In many classrooms computers are used as way to automate drill and repetition, and not as a medium to help the student learn how to learn better.
In the classroom for various reasons (which may relate to money, politics, ideology, and human nature) computer literacy has been ill-defined and paid lip service to. The ability to turn on a computer and operate various appliances like web browsers, instant messaging clients, word processors and the like without the slightest notion of how they actually work is a potentially harmful form of dependency.
Without being given at least a basic understanding of programming our children will not understand what a computer actually is and how it works, and they will not be truly computer literate. This can result in their subjugation to those who use the computer to run the public and private infrastructure. This is no different than other forms of exploitation within other realm of knowledge. As a simple example, a driver who understands how a car works benefits greatly whether driving on the road, broken down at the roadside, or at the counter at the repair shop.
Possessing a true computer literacy would not be of much value in an industrial age, but we are in an information age and so we are surrounded by computers. They are in our workplaces, our cars, our homes, our appliances and our pockets. We rely on these devices and we trust them to work and to give us good information.
As our children grow up they will need to make wise decisions about how computers are used in critical matters of life. As a real and current example, let’s consider computerized voting machines. There is controversy about whether the convenience of such systems is worth the cost of not being able to able to verify the integrity of their operation. An understanding of how computers really work is crucial to knowing how to think about such things. The people running our own legal and government institutions have not demonstrated a sufficient grasp of the issues, but the next generation could be better prepared if we decide it is important.
Is computer programming helpful for enhancing other kinds of thinking in addition to making people wise about the role that computers play in civil society? Let’s cover a few ways that programming is believed to be helpful to thinking and learning.
Organizational – Programming requires that things be organized. Values, functions, and presentation all must be put in their proper place.
Procedural – Writing instructions for a computer forces the programmer to think and understand procedure. This involves understanding and planning.
Abstract – Once the procedural skills are in place, a more advanced programmer will learn to think abstractly. This involves deciding what the program does (what it really means) and dividing the procedural parts up into general ideas.
Mathematical – Not the simple act of computation (3+4=7) or even algebraic thinking, but a real experience of how numbers can be important in the relationships between ideas.
Critical – To create a computer program it is important to weigh one idea against another, and the act of debugging a computer program requires one to think deductively.
It is important to realize that these ways of thinking can be taught without the use of computers. They can be taught in the course of reading and critical writing, debate, scientific discourse, history, politics, musical studies, and art (does this sound like your school?). Computer programming can enhance the benefits of these other activities.
In summary, given the very pervasive and growing impact of computers in our world we would be wrong not to provide our children with a profound understanding of computers and how their lives will be impacted. What’s more, the other ways in which programming improves thinking are useful and enriching in many wide-ranging ways.