Python and its Data Structures

Thursday, 11 February, 2016

Python and its Data Structures

Overview of Python

Python, a programming language that was developed in the late 1980s, is named after its developer, Monty Python. One of the advantages of using Python is that a program can be written using fewer code lines, as compared to other programming languages, such as C++ or Java. In addition to this, other advantages that Python provides is it is freely available, is open-source software, can be used on different Operating Systems, is Object-Oriented, and has automatic Memory Management.

Overview of Data Structures

Each program has some variable values that need to be stored during the execution of a program. Data structures can be defined as containers that are used to store these variable values having same methods for manipulating the available data.  Some of the reasons to use data structures are:

  • Efficient problem-solving
  • Focus on main problems without getting into detail
  • Consistent way
  • Information is securely stored
  • Sorted data

Types of Data Structures

Different types of available Python Data Structures are:

  • Strings: Most commonly used data structure that is written using either single or double quotes. Further, using the built-in strings, many operations can be easily performed. You can also index and extract program slices by using the subscript notation.
  • Lists: The most systematized, generalized, and schematic data structures. Using a list, various different types of Python objects, such as numbers, functions, strings, can be stored in a sequenced manner. Some of the common list data types are:
    • list.append: Adds item to end of the list
    • list.insert: Inserts an item in the list
    • list.remove: Removes an item from the list
    • list.extend: Extends the list by appending it
    • list.sort: Sorts the list according to the requirement
    • list.count: Returns the number a particular type appears
  • Dictionaries: These are one of the important data types that are been used in Python. Data in a Dictionary values are entered in the key-value pair enclosed within the {} braces. Dictionaries are used in cases of a logical association, fast data lookup, or when constant data modification takes place.
  • Sets: These are the data structures that are used for storing an unordered collection having no duplicate values. Primary function of creating sets is to perform membership testing and eliminating duplicate values.
  • Tuples: These are the data structures that are defined as immutable lists in which data values are separated by commas. Immutable represents that you cannot delete/ edit/ add the tuple value.

Getting Acquainted with a Java Thread

Monday, 8 February, 2016


Multithreaded programs can be developed using the Java Programming language.  By a multithread program, it means a program comprises of two or more actions, where each action performs different tasks simultaneously. Multithreading can also be said as a synonym for multitasking where each thread corresponds to each task. The benefits of multithreaded program are that multiple activities run parallel and use the same program.

What is a Thread?

A thread in a Java program in its simplest definition is a sequential flow of statements that defines an execution path for a program.  A Java program should contain at least one thread that is the main thread, which is invoked by the main () method.

Ways to Create a Java Thread

The Thread class is one of the main classes in Java that is written as java.lang.Thread class. This class, along with the Runnable interface, is used to create threads in Java. A thread in Java can be created in either of the two following ways:

  • Extending the java.lang.Thread class


  • Implementing the java.lang.Runnable Interface

Life Cycle of a Java Thread

A thread in a Java program goes through different states, as shown in the following flowchart:

Screen Shot 2016-01-22 at 8.54.54 PM

A brief description of these states is as follows:

  • New:  Refers to the state after an instance of the Thread class gets created but before the invocation of the start () method. This state marks the beginning of life cycle of a thread.
  • Runnable: Refers to the state where a thread executes the task for which it is created. The thread comes into this state after the start() method is invoked.
  • Running: Refers to the state where thread is selected by the scheduler for the execution purpose.
  • Not-Runnable (Blocked): Refers to the state where thread is alive; however it is not eligible to run.
  • Terminated: Refers to the state when a thread gets terminate and is in a dead state.

Familiarizing with Thread Priorities

We are aware of the availability of multiple Java threads in a program. But the question that arises is how a program knows which thread to run first or sequence of execution order for all threads. The solution to this can be given by scheduling thread execution. Each thread in a Java program has a priority. By default, priority of a thread is inherited by its parent thread and is in between numbers 1 to 10, where number 1 denotes that thread is at the minimum priority level and 10 denotes the highest priority level for a thread. Further, thread priority can also be changed according to the requirement using the java.lang.Thread.setPriority () method.

Learning Linux V7 Essentials

Thursday, 4 February, 2016

Learning Linux V7 Essentials


Linux is an application enabling operating system that helps the user to access the devices on the computer system to perform various operations. In fact, it manages the communication between the computer’s hardware and software.

Features of Linux V7

Linux has now come up with additional features through its V7 version to enable scalability, reliability and security in its applications. This version has a very user friendly environment with improved operational efficiency. Features include

  • Linux Containers having enhanced application development, delivery, portability and isolation.
  • XLS as default file system having a scaling to 500 TB.
  • Application runtimes and development, troubleshooting tools which are container- ready and are more powerful and secure.
  • For modernizing the management services and security, an innovative infrastructure component system is provided.
  • Linux V7 has optimized performance and easy scalability as it comes with built in performance profiles, tuning and instrumentation.
  • In order to ensure a streamlined administration and system configuration, it is equipped with Unified management tooling and an industry-standard management framework with OpenLMI.
  • Enhanced application isolation and security to counter unintentional interference and malicious attacks.
  • In order to enable secure access for Microsoft Access Directory users, it is equipped with a cross-relam trust.

Advanced Features

  • Web Control- This is a new simpler front-end graphical interface. It configures and monitors one or more FAHClient slots through an easy to use webpage.
  • FAHControl – This is an optional advanced front-end graphical interface which configures and monitors one or more FAHClient slots on one or more computers.
  • FAH Slot- The FAH slot facilitate interconnectivity between GPUs and CPUs. Each slot can download, process and upload results independently.
  • FAHViewer- This is a newly modeled work unit viewer which offers various options like ball and stick, space fill, zoom, rotation etc. It also has snapshot capture and cycling feature.
  • FAHClient- This client software is a backend feature and runs behind the scene. It manages the work assignments for each and every client slots.

Learning basic Linux commands

One essential in order to master Linux V7 is to master the basic commands of Linux. Copy commands, disk duplicate commands and file commands are very much the same in all Linux versions.

Programming in Linux

In order to learn Linux and especially Linux V7, the user must be familiar with general programming basics. Linux distribution supports various programming languages like Ada, C, C++, Go and Fortran. Several programming languages like PHP, Perl, Ruby, Python, Java, Rust and Haskell support Linux. The Linux version includes specific purpose programming languages targeted in scripting, text processing and system configuration like shell script, awk, sed and make.

Future of a Java Professional

Monday, 1 February, 2016


Present Scenario

Java programming is one of the most renowned platforms where an individual can choose to work. With the advent of technology, this programming domain has experienced an exponential rise and hence provides an individual with many opportunities. Java programming jobs are in abundance in today’s word and many people choose it as their career path.

In the present scenario, the scope of professionals in this domain is high and people with expertise in Java get hired without delay. However, professionals must follow a strategy in order to survive in this ever evolving Java environment.

Future of Java

The concept of Java programming will keep on evolving with time and a professional in this domain has to upgrade his knowledge on a regular basis in order to cope with the programming requirements. The Java programming language will continue to exist, however with time there may be further change in forms, styles and frameworks used to write codes.

The explanation is simple. As new programming languages continue to evolve, Java has to upgrade itself regularly in order to survive the competition. Thus, the strategy that a Java professional should use is ‘future proofing’ himself against all odds and keep himself upgraded with each and every version of Java that evolves in the market on a regular basis.

Future Proofing Strategy

Take an example of the latest version of Java: Java 8. It is the latest release of Java that contains new features, enhancements, greater bug fixation capabilities and improved efficiency. Since this has come up recently, professionals who are experts in previous versions should make themselves familiar with this environment as soon as possible. This will improve their chances of getting hired in the future in several organizations which will use Java 8 functionalities. 

Will Java Survive?

As Java is a very established programming language, people can rest assured that it won’t go obsolete all of a sudden. Programming languages may continue to emerge, but the strong platform that Java has created will remain unharmed even 10-15 years from now.

There will always be jobs available for Java programmers no matter what the situation is. However, in order to survive in this evolving Java environment, which is getting more sophisticated and modern day by day, professionals must also evolve their skill-set in order to excel.     

The Latest News in Computer Programming

Monday, 25 January, 2016

the latest news in computer programming

Computer programming has steadily advanced in innovation. Nowadays, the aim of computer programming is to provide user convenience by developing several user friendly and useful software applications. Some latest news from mid November until early December about new software innovation.

Computers Have Now Become Artists (Nov 23, 2015)

Source: Umea University

Could we have ever imagined that machines could understand drawings and paintings and draw images much like humans? This imagination has become real. This concept has been given light by Researcher Bo Li, in his doctoral dissertation at the Department of Applied Physics and Electronics at Umea University. He has named this method “Interest Curves” and recalls that with the help of this method the computer can redraw an image using curve strokes and recognize objects using these curves.

Detecting False Feedback (Nov 30, 2015)

Source: Inderscience Publishers

This innovation is aimed to identify false feedbacks posted at online rating sites. This is aimed at helping consumers who get carried away into purchasing products by viewing false feedback posted at these sites. The research team of Soon Keow Chong and Jemal Abawajy of the Parallel and Distributed Computing Lab at Deakin University, Geelong, Australia has designed an algorithm to identify and block these malicious feedbacks being sent to the site’s management system and thus make it prone to such attacks.

Therapist Rating

Source: University of Southern California

Therapeutic sessions rely on empathy as their foundations. To know whether a therapist is empathetic, researchers from USC, University of Washington, and the University of Utah have designed a machine-learning algorithm which can rate therapists based on speech recognition. The software takes speech as input and generates an empathy rating. Thus patients can know whether a particular therapist will be of convenient to them or not based on is empathy rating.

Software to Detect Reliability of Apps

Source: University of California – Riverside

The problem with apps according to a new study is that the apps downloaded via Google Play almost 9% of them interact with websites which can be a threat to user security and privacy. To overcome this situation, a team of researchers at the University of California, Riverside is now developing a tool called AURA (Android URL Risk Assessor). This tool has been designed to allow users to assess the riskiness of individual apps before downloading them. This system is currently under improvement to make it more robust and user friendly and will be soon released as open source software.

Learning Style Assessment

Monday, 18 January, 2016

Human Vector series. Background composition of  human lines and abstract graphic elements to complement your layouts on the subject of mind, human spirit, poetry, inspiration and philosophy

Every person is different. Each individual learns and acquires knowledge through his or her own unique style. Some individuals are outspoken and tend to acquire knowledge in a lively classroom environment with lot of interactions happening, while other individuals prefer a lonely silent place and do self study rather than a classroom environment.

Based on research done, the ways in which people acquire knowledge have been categorized on the basis of learning styles. According to Walter Burke Barbe, there are three basic learning styles namely auditory, visual and kinesthetic.

Auditory Learning Style

The auditory learning style is based on learning and acquiring knowledge by hearing things. Auditory learners are those who tend to learn using this style. For example, you may have had a student during your school days who would immediately grasp a poetry read aloud by the teacher. That student would be categorized as an auditory learner.

Visual Learning Style

Visual learners are those who prefer to learn by looking at things, reading, or through a practical demonstration. These are the learners whose way of acquiring knowledge is based on self capabilities and they tend rely on themselves in learning matters. For such learners, if a matter is explained by using audio methods, it may lead to problems in their grasping and understanding of the subject.

Kinesthetic Learning Style

This learning technique is based on the sense of touch. These learners tend to acquire knowledge by conducting an experimental demonstration themselves or by writing down a certain material. In other words, they learn a particular activity by doing the activity by themselves. You may have come across the saying “write once, read many”. For these learners, writing down or penning down an article makes them learn the article.

Which One Are You?

Often an individual is not aware about which category he or she falls into. Often many people from their childhood tend to follow a particular learning style that might not be relevant for them. Nowadays with the advent of modern technology, people who are unaware about their style can find out exactly what type they fall into. Various websites pertaining to learning style assessments are available all over the web which can tell you exactly what type of learner you are by assessing you based on a few objective questions answered from your side. Such technology can help people in their future by enlightening them about their own self and if they were following the wrong learning technique they can rectify it immediately.

Should I Learn to Program?

Monday, 11 January, 2016

should you learn to program

“Should I learn to program?” This question had been asked to me several times by my fellow colleagues in my last organization. My answer was always “Yes”. I strongly recommend that an individual learn some programming languages in order to survive in the modern competitive environment.

With the advent of the IT boom, those days are gone when work used to be carried out by typewriters or hand written documents. It has been reported by the U.S. that IT jobs will grow by 22% through 2020. Now even the most basic jobs require the use of computers. Computer literacy is essential for any person to find a job and along with it if by chance a person is equipped in any programming language, like Java, HTML, C++, Python etc, he or she can expect an exponential career growth.

Computer technology has advanced rapidly and within the next few years it is going to take a quantum leap. Nowadays, the number of jobs requiring ‘technical literacy’ is on the rise. Such jobs require a person to be well versed in some or the other programming languages.

Thus, if people know Java, HTML or any other programming languages getting into these jobs become very easy for them. One of my colleagues in my previous organization was well versed in Java. He was working with us in an accounting process which was not relevant for an expert programmer like him.

One day, a requirement arose on a different process for a Java programmer and he got selected with a very high salary package. Thus, it can be very well seen that learning to program does no harm, but in fact it opens doors to several opportunities.

Learning to program not only boosts a person’s career but also improves his or her problem solving and decision making skills. Apple’s co-founder and CEO, Steve Jobs had empathized on learning to program to be essential for mental development and quoted, “Everybody in this country should learn to program a computer, because it teaches you how to think”.

Program coding is like playing chess, a person has to decide his code for a particular program that he or she wants to implement by thinking logically. As a result, through programming, he or she develops sound mental abilities, which is the basic requirement for any kind of job.

Learning to program is always beneficial even if a person does not choose programming as his or her career choice.

All About Jean Bartik

Monday, 4 January, 2016

all about jean bartik

Source: Bartik Biography- University of St Andrews (

Early Life

Jean Bartik was born in Gentry County, Missouri, in 27 December 1924, under the name Betty Jean Jennings. Her father, William Smith Jennings, was from Alanthus Grove and was a schoolteacher and a farmer. Her mother’s name was Lulu May Spainhower and she was from Alanthus. Bartik had five elder siblings, three brother and two sisters. She graduated in 1945 from Northwest Missouri State Teachers College majoring in mathematics.


In 1945, she was hired by the University of Pennsylvania as a maths major to calculate ballistics trajectories for the Army Ordinance. She was required to carry out this work by hand as a human computer. She applied and got selected for a project when the Electronic-numeric Integrator and Computer (ENIAC) was developed and became one of its first programmers. ENIAC was programmed by setting dials and changing cable connections. As there was no manual, she and her five other original programmers gained expertise in programming the ENIAC only by reviewing its schematic diagrams and interacting with engineers.

She and a group of programmers worked at a later stage for the conversion of the ENIAC to a stored program computer. Thus she came up with the BINAC and UNIVAC computers by working along with ENIAC designers in the Eckert-Mauchly Computer Corporation. She resigned in 1951, the same year UNIVAC was introduced.

Personal Life

While working for Army ordinance in the University of Pennsylvania, she met an engineer working on a Pentagon Project named William Bartik. They got married in 1946 and later divorced in 1968.

Later Life

In 1967, Bartik returned to the regular job portfolio and became an Editor for Auerbach Publishers. Later she worked for a firm named data Decisions in 1981 as a Senior Editor. However, Data Decisions shut down in 1985 as it got acquired by McGraw-Hill. As a result, she lost her job and started her career as a real estate agent at the age of 61. She died on March 23, 2011 from congestive heart failure.

Significant Awards

She, along with other original programmers of the ENIAC, was introduced into the Women in Technology International Hall of Fame. She also received a fellowship at the Computer History Museum for her contribution in converting the ENIAC into a stored program computer. She also received awards like IEEE Computer Pioneer Award for her pioneering work regarding the ENIAC and Korenman Award from the Multinational Center for Development of Women in Technology (MDWIT).

Highest Paying Jobs in Computer Programming

Monday, 28 December, 2015

heap of dollars, money background

Computer programming in itself is a very specialized domain. In order to get a job in computer programming aspirants must be affluent with software and coding pertaining to the job requirement. As the skill set pertaining to this job domain requires an individual to be well versed with various programming languages and problem solving attributes, the pay scale for jobs pertaining to this domain is high compared to other domains. The highest paying jobs in computer programming have been listed as follows (Source:

Applications Architect

Salary range: $66,000 – $183,000

The requirements of an application architect include project management capabilities, software development experience and broad knowledge of software used within the company. The application architect defines the architecture of the application within an organization and oversees the entire software application development endeavor in an organization along with interacting with various senior level personals pertaining to the same portfolio.

Applications Development Manager

Salary range: $86,000 – $162,000

He or she is responsible for overseeing the software applications that are internally developed within an organization along with interacting with senior level personals for various application requirements. This job requires senior level experience in database designing.

Information Systems Security Manager

Salary range: $115,000 – $160,000

The Information Systems security manager is responsible for overseeing all IT security needs and manage data privacy and security within an organization. He or she is responsible for documenting and implementing policies pertaining to information security.

Software Engineer

Salary range: $61,000 – $160,000

The role of the software engineer varies from software testing to software development roles. The software engineer is responsible for creating, testing or documenting software according to an organization’s requirements.

Network Architect

Salary range: $78,000 – $156,000

The network architect is required to design, test and upgrade networks like LAN, WAN, Internet, VoIP etc and incorporate any new business requirement pertaining to these. The requirement to become a network architect is to have around five years of experience as a network engineer.

Data Warehousing Manger

Salary range: $115,000 – $154,000

This job requires a person to collect business data from internal or external sources and perform data analysis along with interacting with stakeholders to incorporate business requirements.

Quality Assurance Manager

Salary range: $67,000 – $150,000

The quality Assurance Manager is required to manage a team of software testing quality specialists consisting of quality testers, analysts and leads. They are also required to attend project meetings for upgrading software within the organization.

These are the top few of the many highly paid jobs pertaining to the area of computer programming.

Get Your Dream Job by Learning to Program

Monday, 21 December, 2015

there should be signed

In the modern world, computer programming and coding does not land a person to only software programming jobs. In fact, programming has gained huge prospect in several types of jobs to date. In the present day, starting from car designing and sports, to fashion and art industry, everywhere the need to program is prevalent. Due to this vast outlook that the programming field has gained, a person can surely find their dream job, in any career, by learning to program.

Programming is the essence of today’s world. With the IT boom each and every job field has some sort of programming and coding involved in them. In fact, in the UK, according to a survey, it was seen that almost 60% of the population considered coding and programming to be an essential skill set for getting jobs. But sadly, only 10% of the UK adults know how to code or program (Sources: Go ON UK, YouGov and O2).

Get Your Dream Job Through Programming

Apart from software programming jobs, a person can follow his passion and opt for jobs in the following fields if he or she learns to program.

Car Designing 

Nowadays, the best job that a programmer can get is in the field of designing cars. With the help of software, the performance of designs under real conditions can be analyzed. Engineer Jamie Davis used the programming technique to analyze accident test data for designing luxury cars.

Fashion Designing

In the area of fashion designing, artists are creating their design collections using design and stimulation software. Thus, through programming they are able to create the best patterns in the fashion industry.

Art and Culture

Nowadays, artists are moving away from their traditional way of showcasing their works in exhibitions. Instead many have opted to create their own online exhibition store by learning how to program. By learning HTML and other website designing programs, people can pursue their career as artists and exhibiting their work online.

Sports Industry

In this industry, the performance of players are tracked and analyzed by analysts using software. Tom Forrest, a football fan, joined a sports media company in 2012. Using programming he built software to analyze player performance using on screen graphics. Computer programming in the present scenario has spread its wings to almost every kind of job. Those jobs which once had no relation to computer technology are now guided by programming.

With the advent of the year 2020, it has been predicted that almost one million new technology jobs will get filled. There is indeed a vast opportunity in this field in the coming years.