Tuesday, 16 January 2018

Difference Between Software Engineer, Computer Programmer, Application Developer etc

You can watch the video of this explanation hereVideo
Many person in the field of IT don't get as productive as they should be because they don't consider the differences between related professions.
This is especially true in the field of IT where some organization use same employee to perform different job roles simply because the roles are related under the ICT field
In this brief article, I would focus on difference between Software Engineer, Computer Programmer, Application Developer and related roles, beginning with Software Engineer.

Who is a Software Engineer
A Software Engineer is someone in the Engineering profession involved in the Computer Software related functions.
A Software Engineer just like every other engineering profession has quite a tasking requirement. First you need to undertake year of formal education and then you need to meet up certain requirements imposed by the engineering body in your location. In Nigeria, the regulating body is Council for Regulation of Engineering in Nigeria(COREN).
The irony is that someone may be a Software Engineer without being able to write computer programs or develop computer software, but he still could qualify to be an engineer.

Who is an Application Developer
An application developer is an ICT professional involved in one or more of the phases of the Software Development Life Cycle(SDLC).
Remember that the software development process is made up of a number of phases, some of which may be iterative.The number and specification of these stages, though depends on the particular software development model. For example the Water Fall model has the following phases:
  • Requirements Phase
  • System Design
  • Implementation
  • Integration and Testing
  • Deployment
  • Maintenance
So to be a software developer, you must be involved in one or more of these phases. (Not as a user though!).

Who is a Computer Programmer
A computer programmer is an ICT professional involved in the programming phase of the Software Development Process. Simply put, a computer programmer, develops computer programs. Note that I did not say, 'writes computer programs'. The reason is because, there are procedures involved in developing a program. This included, writing the algorithm, the pseudocode, drawing the flowchart and then writing of generating the program codes. A good number of programming softwares allows the programmers to specify certain parameters and then the application can generate the program codes.

Which one is Better?
Granted, how much earnings is involved for each of the professionals depends on the organization and the tasks involved. But I would say, that a professional computer programmer that is vast in a number of programming languages have some edge over other roles. This is because a programmer is normally paid by hour. Added to that, a programmer can take up a number of contracts and work on them from home. But more importantly, one can become a good programmer without having to pay for any education or training. This ones are called 'Self-taught Programmers'.

Final Notes and Recommendation
I would recommend that if you are a beginner start by taking tutorials on some programming languages. I suggest starting with Java due to its viability and availability of tools. If you are in a different field altogether, but want to learn programming, you can also start wit these series of simple tutorial you can get from this link:

Monday, 15 January 2018

Best Short and Easy Java Tutorials - 2018(Learn Java Today)

This  is a list of the very best Java Tutorials  I've had to make. The reason I rate this tutorials high compared to other tutorials is because they are very easy to follow tutorials. Also they are practical tutorials such that you have to work on the hands-on part as you move along.

Object Orient Programming (OOP) Lessons
Part 5: Object Oriented Programming(OOP) - Polymorphism

Try it Sample Programs(Tutorials)
Part 2: How to Build a Simple Calculator in Java Using Netbeans - Step by Step with Screenshots
Part 1: How to Build a Simple Calculator in Java Using Netbeans - Step by Step with Screenshots

Beginner Lessons
Java Progamming For Beginners Lesson 1: Introduction to Java and Installation of Netbeans
Java Progamming For Beginners Lesson 2: Write Your First Java Program
Java For Beginners Lesson 3: Structure of a Java Program

Check from time to time for more free tutorials on Java as this list is updated every week

Sunday, 14 January 2018

What is the Difference between Confirmatory and Exploratory Research

Today we will understand the concept of Confirmatory and Exploratory Research.  In other words, we can say Confirmatory and Exploratory Data Analysis
We begin with Confirmatory.
Confirmatory Research Data Analysis
Confirmatory research are research that test the validity of already made hypothesis, known as a priori hypothesis. This means that possibly some previous studies have been carried out on the subject matter and some results have been presented. This research method is normally based on previous studies, to confirm an existing result or theory
The benefit is that it makes the results more more meaningful.

Example: Providing evidence for existing hypothesis.

Exploratory Research Data Analysis? 
Exploratory research is one that aims at generating new hypothesis, known as a posteriori hypothesis.
This research method tends to generate new knowledge by examining a data-set and trying to find trends within the observations.
In Exploratory Research, the researched does not have any specific prior hypothesis.
The benefit of this research method is that it tends to adopt less stringent research methods.

Relationship Between Confirmatory and Exploratory Research
A number of studies includes both exploratory and confirmatory hypothesis. Sometimes, the exploratory hypothesis may not affect the analysis of the confirmatory hypothesis. In some other cases, both are carried out together. An example would be when a two-way ANOVA may have exploratory hypothesis for one of the factors and confirmatory for the other factor.

Table 1 presents a summary of the difference between confirmatory and exploratory research.
Table 1: Difference Between Confirmatory and Exploratory Research

Linear Models for Regression(Linear Basis Function Models)

This article discusses the Linear Models of Regression with focus on Linear basis function model.
Other discussions can be found in this link: Best 23 Easy Tutorials on Machine Learning and Artificial Intelligence(Easy to Understand)

Remember that Regression is of the technique under Supervised Learning. The other is Classification. The objective of the regression model is to determine the value of one or more of a target variable t, given the value of a D-dimensional vector, x of input variables. In other words, you need to find the function that relates the input and the output. This can be done using Linear Models.
One of such modes is the polynomial curve fitting which gives a function that is a linear function of a particular parameter.
A better model is the Linear Basis Function. This is discussed next.

The Linear Basis Function
Given a set of input dataset of N samples {xn}, where n = 1, ... , N, as well as the corresponding target values {tn}, the goal is to deduce the value of t for new value of x. The set of input data set together with the corresponding target values t is known as the training data set.
On way to handle this is by constructing a function y(x) that maps x to t such that:
y(x) = t
for a new input value of x.
Then we can examine this model by finding the probability that the results are correct. This means that we need to examine the probability of t given x 

Constructing the Linear Basis Function
The basic linear model for regression is a  model that involves a linear combination of the input variables:

y(w,x) = wo + w1x1 + w2x2 + ... + wDxD

where x = (x1, x2, ... ,xD)T

This is what is generally known as linear regression.
The key attribute of this function is that it is a linear function of the parameters w0, w1,..., wD. It is also a linear function of the input variable x. Being a linear  function of the input variable x, limits the usefulness of the function. This is because most of the observations that may be encountered does not necessarily follow a linear relationship. To solve this problem consider modifying to model to be a combination of fixed non-linear functions of the input variable.

If we assume that the non-linear function of the input variable is φ(x), then we can re-write the original function as :

y(x,w) = w0 + w1φ(x1) + w2φ(x2) + ... + wDφ(xD

Summing it up, we will have:

where φ(x) are known as basis functions.

The total number of parameters in this function will be M, therefore the summation of terms is from j = 1 to M.
The parameter w0  is known as the bias parameter which allows for a fixed offset in the data. 

(Quiz: Can you remember any other topic the word bias appears? Leave it in comment on the left of the page!)

Final Notes
The topic for linear models of regression covers much more than what is presented here. But what we have discussed is the basics of the Linear Basis Function Model and I have decided to keep it simple and clear so that you can easily understand it and possibly pass an oral exam.
But if you  are a Math student and want to delve further, I would recommend reading chapter three of the book. 'Pattern Recognition and Machine Learning', by Christopher Bishop.

Best 23 Easy Tutorials on Machine Learning and Artificial Intelligence(Easy to Understand)

I have made a list of the best 20 easy lessons of various topic of Machine Learning, Pattern Recognition and Artificial Intelligence.
Why I rate these tutorials high is the ease to understand as well as the clarity in the explanation of the concepts. With this tutorials, many students have come to easily understand fir the first time the concept of Perceptron, Clustering, Supervised vs Unsupervised Learning, Dimensionality Reduction, Neural Networks etc.
So check them out below. You can bookmark this page as you will find it helpful.

Key Concepts in Machine Learning
  1. Introduction to Machine Learning
  2. Difference between Classification and Clustering in Machine Learning
  3. Maximum Likelihood Estimation (MLE) in Machine Learning
  4. Outlier Detection Techniques in Statistics and Machine Learning
  5. Introduction to Recommender Systems
  6. Difference Between Supervised Learning and Unsupervised Learning
  7. Bias/Variance Trade-off in Machine Learning
  8. Introduction to Support Vector Machines (SVM)

Supervised Learning Concepts
  1. What is the Difference Between Classification and Regression
  2. Linear Models for Regression(Linear Basis Function Models)
  3. What is Overfitting in Linear Regression and Machine Learning
  4. Difference between Classification and Clustering in Machine Learning

Artificial Neural Networks
  1. Basics of Neural Networks in AI Artificial Intelligence
  2. What is Activation Functions in Neural Networks
  3. Basics of Backpropagation  in Neural Networks
  4. A Simple Explanation of Multilayer Perceptron
  5. What is Gradient-Decent in Neural Networks
  6. What is Perceptron? How Does Perceptron Work?

Unsupervised Learning Concepts
  1. What is K-Means Clustering in Machine Learning?
  2. Dimensionality Reduction and Principal Components Analysis(PCA)
  3. Basics of Decision Theory in Machine Learning
  4. Difference between Classification and Clustering in Machine Learning

Other AI Topics 
  1. Sophia the Robot is not Who She Claims to be
  2. Intelligent Data Analytics Questions and Answers Summary (2017)

Saturday, 13 January 2018

All You Need to Know About Cryptocurrency(How it Works)

I have done a little research on cryptocurrency recently and I would like share the outcome with you. The area I looked at included: the technology behind it, projections on the future of cryptocurrency, expert advice on whether to invest int it or not.

My research findings are summarized below:
I do think that this these explanations helps you understand clearly the concept of cryptocurrency.

If you have questions, or you want to know some specific facts,  please leave it in the comment box below or by the left of the page. Currently, I working on the financial trends on individual cryptocurrencies and would make available the results in subsequent posts.

Friday, 12 January 2018

What is the Difference Between Classification and Clustering in Machine Learning

Today we will discuss the difference between two important topic that appear similar in machine learning.
  • Classification and
  • Clustering
I have decided to create this article because of the confusion the name of the topics may pose. Is clustering not the same as classification, like having to separate the data into different classes or clusters? It seems to make sense, right?
But, in the world of machine learning, the two are completely different concepts.

Let's start the discussion with classification.

What is Classification?
First classification is a supervised learning technique that has to do with learning and training an algorithm using a set of labeled  training input dataset.
In classification, the goal is to assign each input vector to one of a finite number of discrete categories.

Real life application of classification is spam detection. In this case, there are finite number of discrete categories an email can belong to: spam and non-spam. The input data set in this case is incoming emails.

Theory of Classification
Assuming that we are given a training set comprising of N observation of random variable X which can have values  of x1, x2, ... ,xn.
Then we also have corresponding observations of the values of t,  which can take values t1, t2, ... ,tn.
The first step would be to find the function of x that maps the input x to the corresponding t.
To do this we can use the polynomial curve fitting which is of the form:
We would not go further than this since we are only considering difference between classification and clustering.

Find a detailed discussion of classification on:
Introduction to Machine Learning
Difference between Classification and Regression

What is Clustering?
Clustering is an unsupervised learning technique whereby the input dataset is unlabeled.
In clustering, we use a finite set of input data, and to goal is to discover, groups(or clusters) within the data that have similar characteristics.

Theory of Clustering
Assuming we have a set of observations {x1, x2,... xn} which consists in a set of N random variable x (x is a D d-dimensional real vector). The goal is to partition the data set  into some number K of clusters, where the value of K is known.
A cluster is a group of data points whose inter-point distances are minimal when compare with distance to points outside the cluster.
The first step is to find the mk, for k = 1,..., K, in which mk is the mean associated to the kth cluster.
We now assign each of the data points to clusters, such that the sum of squares of the distances of each data  point to its closest mean mk is  minimum.This particular case is known as k-means clustering.
Find detailed explanation on: K-Means Clustering.

Summary of differences between Classification and Clustering is given below: