• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Internet
    • Browsers
    • Cloud Computing
    • Online Video
    • Search Engines
    • Web 2.0
  • Mobile
    • Android Apps
    • Apps
  • Software
  • Funny Stuff
  • Social Networks
  • Web Tools

Daily Bits

  • Home
  • About
  • Archives
  • Contact
  • Advertise

General

The Basics of Programming

January 22, 2008 by Loki 1 Comment

Programming – the process of creating a source code for a specific software (or simply a solution to a problem), became a common skill nowadays especially since people tend to become more aware of virtual existence. It stands as a means of communication and interaction between a machine (which only “knows” ones and zeros) and a human (who practices a more complex language), the latter being the master of the former. Further, it is a phase in the software development cycle where you employ all data gathering and analysis output into the project.

When programming, one has to learn specific skills. I have divided them into four categories for better understanding.

1. Requirements of the Program

A programmer, both amateur and professional, first has to discern the problem or set of problems he wants his program to solve. He has to pinpoint each involved process in the problem so that it will be given enough attention (and corresponding codes) later on.

Let’s take the Fibonacci number sequence problem for example. During my college years, our class was given this exercise where we need to create a Fibonacci number sequence. The number of identities to be added and the limit of numbers are defined by the user. For example:

If the user wants two identities added limited to seven numbers, then the sequence would be:

0 1 1 2 3 5 8

where there are seven output numbers, and, starting from the first two numbers 0 and 1, the program adds two consecutive numbers, the product of which becomes the next number of the sequence.

However, if the user wants three identities added limited to nine numbers, then the sequence would be:

0 1 1 2 4 7 13 24 44

with nine numbers, the first three numbers (0 1 1) starting the sequence before the addition pushes through.

Breaking down the Fibonacci sequence problem, a programmer should basically:
a. be able to generate the first zero and a preset number of ones based on how many identities the user wants to add;
b. be able to determine the time when the program starts to add identities of the sequence;
c. store and output the number after the above process is finished; and
d. count the number of output numbers in such a way that it meets the limit of the user. Upon determining those, I was able to determine the requirements of the Fibonacci problem posed by our professor.

2. Understanding of Algorithms

After addressing the problems for which a programmer will be designing a solution program to, he should do some planning. In the field of computing, this is done through algorithms, a defined set of instructions for a specific programming problem. Algorithms loosely determine what goes on during the start of the program, the processing of data into information, and, of course, the end of the program.

The two commonly used forms of algorithms are flowcharts and pseudocodes. Flowcharts are graphic representations of a program that utilize shapes like ovals and parallelograms for a certain process phase within the program, and arrows for the program flow after a specific process finishes. They simply define the program content and flow, letting the programmer visualize and evaluate the processes involved in a program with ease.

On the other hand, pseudocodes are descriptions of a computer program in a very informal language. A pseudocode uses simple, worded descriptions very close to the human language as compared to a syntactical programming language. However, pseudocodes usually follow the format of programming statements like conditional and looping structures. Programmers only describe what triggers a condition and what happens within a loop instead of actually putting in variables, values, and arguments.

Algorithms are often neglected by programmers in the sense that programmers are bound by deadlines, and algorithms take some time to create. However, despite the time waste, programmers can easily put algorithms into code since algorithms themselves are loose descriptions of the code. It will actually save more time if programmers are to flowchart or pseudocode than practicing the faulty trial-and-error programming style.

3. Knowledge on Programming Structures

Programming structures define a great part of programming. They actually compose the greater bulk of programming in the sense that output-yielding processes are usually the byproducts of any of the following simple structures: concatenation, selection, and repetition (as identified by Edsger Wybe Dijkstra, a Dutch computer scientist).

Further, a programmer can also use the more complex, object-oriented form of computing using objects, classes, and methods. These three are then bound by several concepts for interaction: inheritance of behaviors and attributes, encapsulation of classes and of objects, abstraction of certain classes or objects to handle a specific segment of the problem, polymorphism of parent and child class members, and data passing that triggers methods.

I remember the time when I had to study mathematical logic as a prerequisite of computational logic and programming structures. A great way to understand mathematical logic is by learning its basic form, symbolic logic, from where it is derived.

Symbolic logic studies the properties of, you guessed it right, symbols. The simplest area tackled in this field involves the five logical operators: conjuction (AND), disjunction (OR), implication (IMPLIES), equality (EQUALS), and negation (NOT). The first four are binary operations requiring two values, while negation needs only one. Let’s check the yields of two propositions of differing values based on the first four operations:

Table of Symbolic Logic Operations

Now, let’s look at a simpler table of negation:

Table of Symbolig Negation

These tables can help determining results of logical operations, one of the widely used values in programming, the other being stated or assigned values.

4. Expertise on Programming Languages

Programming languages are the means for a human to communicate with a machine. Compared to the human language that is used for interaction, programming languages are often constrained to yield results. They are meant to instruct machines to perform specific tasks. Also, they can manipulate and influence programs and applications via data sent and received.

There is a great variety of programming languages out there, and they can be classified based on use. The succeeding paragraphs detail some of the programming languages I was able to use.

Common languages like C++, COBOL, and Java (often used with compilers or translators, programs that interprets high-level computer language to low-level language understandable by machines) are used for “behind-the scenes” programming. They inspired the birth of other languages, and are best used for studying the ins and outs of programming.

Languages like Prolog and Jess, on the other hand, are better used for problems that require activation of rules to function.

Further, languages like Turbo Assembler or TASM and GNU Assembler or GAS are nondescript interpreters of machine languages, working mainly for instructing machines at low-level communication.

Although not strictly classified as programming languages, scripting languages like PHP and JavaScript are still used for creating programs, but they are better used in defining applications. They slowly invade web designing too, since they can provide wider functionality and can accommodate client-based processes.

There are many other languages that one can use for a specific type of problems too, so exploring different languages and their functions and applications isn’t a bad idea. Actually, with a vast virtual world, there is a multitude of programming languages to choose from. One shouldn’t be limited to one or two programming languages since problems can exist from as small as a Fibonacci sequence generator (as shown above) to a creation of a complex system that manages contents of, say, Daily Bits.

Filed Under: General Tagged With: algorithm, Fibonacci, language, Programming, pseudocode

Top 10 Ubuntu Linux Games

November 24, 2007 by Admin 2 Comments

Many Windows users are reluctant to switch to Linux because they like to play games once in a while. While this theory holds true to hardcore gamers (the Windows platform does have some exclusive and popular titles), the same cannot be said about casual gamers.

The open source community has being busy developing a myriad of games for the Linux platform, and most of them are as fun as their PC counterparts. Recently I came across an article titled “Top Ubuntu Linux Games,” which listed the most popular ones. Here they are:

  1. Tremulous
  2. Grid Wars
  3. VDrift
  4. World of Padman
  5. Nexuiz
  6. Scorched 3D
  7. Glest
  8. Battle for Wesnoth
  9. Urban Terror
  10. BZFlag

Filed Under: General Tagged With: 10, Games, linux, top, ubuntu

Free Linux eBooks

November 13, 2007 by Admin 2 Comments

A couple of months ago I made the switch from Windows to Linux, and I doubt I will ever look back. Sure, sometimes business endeavors force you to use Windows applications, but other than that Linux gets the job perfectly done.

If you are considering to migrate to Linux as well, or if you have already been using it for a while but want to improve your knowledge, you might want to check the free Linux eBooks library on Homelinux.org.

You will find pretty much everything you need, from tuning the performance to shell scripts and kernel programming. Below you will find my favorite ones:

  • Easiest Linux Guide Ever
  • Linux in a Windows World
  • Migration Guide
  • Practical Linux
  • Ubuntu Hacks, Tips and Tools

Filed Under: General Tagged With: ebooks, free, homelinux, linux, ubuntu, windows

Welcome to Daily Bits

November 12, 2007 by Admin 1 Comment

Back in 2004 Google carried out its initial public offering of shares, for a price of $85 a piece. A couple of weeks ago these same shares broke the $650 mark, shooting Google’s market capitalization to over $150 billion.

That is more than three times the value of General Motors and Ford combined. Even more interesting is the fact that Google does not sell products. It does not produce anything you can touch. It simply collects and organizes information. All the information.

What can we learn from this? Many things, but perhaps the most important one is the fact that the Internet is revolutionizing the way we communicate, live and work.

Mind you that Google is not an isolated case. Think about Facebook, Digg, Youtube. Better yet, think about how many people are starting to make a living with personal websites. Blogs that are competing head to head with mainstream media.

That is what Daily Bits is about. From software to Web 2.0, from online marketing to social networks. In simple words, your daily dose of Internet and technology.

Filed Under: General

  • « Go to Previous Page
  • Go to page 1
  • Interim pages omitted …
  • Go to page 113
  • Go to page 114
  • Go to page 115

Primary Sidebar

Privacy Policy

Copyright © 2022 · News Pro On Genesis Framework · WordPress · Log in