Posts

The NP vs P issue

Image
By McDonald, T. | Last updated: 7/9/2017 We face problems every day; subsequently, we spend a lot of time attempting to find a reasonable solution even if we do not realise it.  Solving problems is a big part of computer science.  In fact, problems are so important that computer science separates them into different classes including P, NP, NP-complete and NP-hard, but what does it all mean and can NP =P? Computer scientists have developed a way of measuring how long it takes to compute a problem. This is not as easy as it sounds since we cannot just time how long it takes.  Think about it for a minute, if timing an algorithm by looking at the clock, the timing run on different computers would be different each time because different computers could have different hardware such as processors and memory.  Even if running the same algorithm several times on the same computer, the time spent running the algorithm would depend on the other operations the computer was running

Is everything computable?

Image
By McDonald, T. | Last updated 30th of November   Do you think your computer is amazing? It can do so much and reasonably quick most of the time, yes?  Perhaps you are beginning to think it will not be long before a computer can accomplish any task especially with knowledge of Moore’s law whereby the number of transistors per square inch on an integrated circuit doubles every eighteen months.  Nevertheless, some problems are not just difficult they are impossible to solve. For some problem to be computable, it would need to be possible to solve it in a finite number of steps for every instance of that problem; we call this effective procedure.  Alan Turing came up with the idea of a machine that could solve a problem if given a set of precise instructions called a program, which he called a Turing machine.  In addition, he theorised of a universal Turing machine that could take the state of any other Turing machine.  It is important to remember that at the time, modern day co

What is computer science?

Image
By McDonald, T | Last updated 30th of November 2017 What a computer scientist actually does remains a source of mystery for most people. Computing is a general term for many fields involving a computer. However, computer science is more specific. In the past, computers were people who made calculations using a set procedure known as a program. Nowadays, the word computer conjures up the image of an electronic device. Subsequently, I feel it important to say what computer science is not before I say what it does involve. What is not computer science? Although a computer scientist will have an understanding of how a computer works, they are not a computer repair person. If you think a computer scientist deals with networking you would be wrong again, that is a network engineer: who keeps the Internet working. Even so, a computer scientist will have some knowledge of networking. Network engineers are more about solving different problems such as connection on diffe

What can I do with my life?

Image
By McDonald, T. | Last updated 30th of November 2017 What do you want to do with your life must be the most famous open-ended question ever asked.   It usually strikes fear into the hearts of people while they desperately try to think of something cool to say.   Sadly, some people never find an answer.   Deciding on a future is perhaps one of the most important decisions a person will ever make.   Before deciding on a great future, be honest about what you want out of life, realise the value of education and decide on a suitable educational root while making sure you have the right grounding.     In order to decide successfully on a great future, you will need to be honest about what you want out of life first.   This is a more straightforward task than you might think.   Look at it this way, do you want to do something exciting like volcanology where people collect lava samples among other things or spend your time watching soaps?   In other words, why settle for a job in

How to get started with Python programming

Image
By McDonald, T | Last updated 02/12/17 In this world of technology something is needed to make it all run.  This something is programming languages such as Java, C# and Python just to name a few.  Subsequently, the programming industry is a great place to be a part of with new opportunities opening up all the time.  If you are new to programming, Python is a great place to get started since it is relatively easy to learn and has extensive libraries. Getting started  The following will be required in order to get started. Python 3 (Free) Software to right the code (Free) Python 3 is different to Python 2.  The difference is in the syntax, so for now i will just keep to Python 3 since it is the newest.  Installing Python 3 is easy just follow the instructions in the video and then install Pycharm.  Pycharm is software for writing code.  You will need to install the latest version of Python for your operating system and the Community Edition of Pycharm. Altern

How to download and install Debian 8.7.1 to Parallels Desktop.

Image
Updated 28/05/17 Linux has several distributions with different flavours such as Kali, Red hat, Ubuntu and Mint; nevertheless, most are based on Debian.  Debian itself has different flavours, which means you can choose from one of the many exciting desktop environments.  Before any of this can take place Debian 8, stable edition, or higher will need to be installed.   You will learn how to: Choose the correct image Check minimum hardware   Download Debian Install Debian Install Parallels tools Try out different interfaces Step one Choose the correct image  Minimum hardware  Download Debian Choose the correct image for your architecture. You have a choice of 64 bit or 32 bit.  If you are using a Mac, amd64 bit build will be fine.  The live image is best burnt to a CD or USB stick since it is used to check an operating system out first, but you will not need it for this tutorial.  However, you will still be able to install from the live CD/USB.   Si

Three reasons why I like volunteering for local IT charities.

Image
by McDonald, T. | Last updated 30th of November 2017 You may have noticed the huge numbers of charities in the UK or supported a charity by donating to it, but have you ever wondered what it would be like to volunteer for a local charity? Although collecting money is important in its self, there are many more exciting and potentially life changing roles within most charities. I have volunteered on and off for most of my life because I get so much out of this underestimated experience. I like volunteering for the following reasons: supporting others with their technology needs makes me feel a part of the community; I get to meet interesting people at promotional events; it shows a perspective employer I have a willingness to work and use skills I am learning at university in a positive and constructive way. Firstly, I like volunteering because supporting others with their technology needs makes me feel that I am a part of the community. For instance, in my role as Digital

How to install Linux Kali 2016.1 into Parallels and install Parallels tools.

Image
By McDonald, T | Last up dated 30/05/17 You will learn how to: Install Kali Linux onto Parallels. Install Parallels tools Trouble shooting Note : this will also work for 2016.2 and higher.  Make sure you have updated Parallels to the latest version. Parallels, another virtual machine, can run guest O/S on a host machine.  You will need to install Parallels first before continuing.  If you wish to install Kali onto Parallels, please read on.  After installation you will learn how to install parallels tools, which will allow for more interesting features such as auto adjust for your screen resolution. Before installing any new applications, a hardware survey will need to be carried out.  Subsequently, the applications website will have the minimum specifications listed. Kali Linux minimum specifications Kali Linux website  Install Kali Linux 2016.1 Installing Parallels tools Once you have installed Kali Linux 2.0, you we need to install Parallels

How to install Ubuntu 16.04 into VirtualBox

Image
A virtual machine is an easy way to test out a new operating system; it allows the user to run a guest operating system on a host operating system as if it was any other piece of software.  Furthermore, Virtualbox is free and produced by Oracle. The o/s in the image above is OS X, El Captain, while the guest o/s is Oracle Solaris; it is two o/s’s running together side by side on the same machine.   Many distributions of Linux are available such as Solaris, Mint, Red hat and Ubuntu.  Ubuntu is the o/s i will be using in this example; however, the installation process is very similar for all the Linux distributions and flavours. It is always necessary to perform a hardware survey before installing any new applications to check if you device is able to run the application. First download and install Virtualbox . Before downloading, do a hardware survey to check you have the necessary hardware to run the operating system.  Ubuntu is a linux distribution produced by Cano

How to perform a hardware survey.

Image
For Mac users: Select the apple icon on the left of the toolbar at the top of the screen then select ‘About this Mac’ Look for Processor and Memory To find out if your Mac is 64bit or 32bit Open terminal and type in the command uname -m . x86_64 means 64bit i360 means 32bit This machine has a 64bit processor. To find available space on the hard drive Hold down Shift+cmd+C then select the hard drive and press space The first number is the total capacity while the second number is amount of space free to use For Windows users: Processor, memory and O/S type (64 or 32bit) Hold down ALT+Space .  Alternatively, type ‘system’ into the search bar then click on system control panel. Checking the hard drive for available space Go to the search bar and type ‘This PC’ then click on ’This PC’.  Then look for Win desk For Ubuntu users Processor, O/S type and memory Goto the cog on the right