3 Computer Science Predictions that Aged Like Milk (and what we can learn from them)

Computer Science Education Week has come around once again and this year, the focus is on the modern applications for computer science that surround us on a day to day basis. For us, that involves every part of life from working to relaxing. But this was not always the case. As little as 80 years ago the impact computers could have on modern life had not been realised.

Nothing illustrates this quite like some incorrect - and funny - quotes from the past.

1) ‘I think there is a world market for maybe five computers.’ - Thomas Watson, chairman of IBM, 1943.

At the time this was said, Watson may have been right! Computers were huge, expensive and required a great deal of expertise to operate. This means that they just weren’t that useful for a whole lot of people.

ENIAC (Electronic Numerical Integrator and Computer) was the first fully programmable computer. Built in 1945, it weighed 30 tons and took up a whole room. (Source: Wikipedia)

2) "Computers in the future may weigh no more than 1.5 tons"  - Popular Mechanics Magazine, 1949.

This quote is paraphrased from a section of the magazine that describes how it may be possible to create a computer that can accomplish everything that ENIAC does at one twentieth of the size. This may be impressive for the time, but not since the invention of transistors and circuit boards enabled much smaller devices to be built.

3) "There is no reason anyone would want a computer in their home" - Ken Olsen, president and founder of Digital Equipment Corporation, 1977.

1977 was the year that 3 major personal computers were released; including the Apple II which was a huge success and proved that the computer did belong in the home. Out of all of the quotes shown this one was proven to be incorrect the fastest although you could argue that personal computers were not a staple in the home until the invention of the internet a few years down the line. 

Conclusion

It’s easy for us looking back to see how wrong these quotes ended up being, but it's important to remember that with the information available at the time, these were all perfectly valid viewpoints that many other people shared. Such is the reality of the world we live in, and one day in the not so distant future we’ll find ourselves in a future that no one could possibly have predicted.

These quotes serve as a reminder for us not to focus on what is possible in the modern day, but to look to what may be possible in the future. Instead of limiting yourself to a world where there is ‘a world market for maybe 5 computers’, dare to think what a future with millions of computers may look like.

What Is X3D Modelling? And How To Do It?

What is X3D modelling and why should we care?

3D object visualisation has a reputation of being expensive, time consuming and some of the formats do not work nowadays. Having a computer that was able to support viewing and creating 3D objects was necessary. Extensible 3D modelling left all of these problems behind, it is royalty-free, relatively fast loading and highly portable because it is XML integrated which makes it transferable and easier to preserve.

Model of a building created using X3D modelling.

Model of a building created using X3D modelling.

Anyone with a computer or even a mobile device and a browser is able to view and interact with 3D objects but it may not run on older versions of the browsers. User interaction is fairly simple performed by dragging the mouse.  X3D modelling can be used for educational purposes, architects, engineers. Furthermore, in the future we are likely to see extensions of 3D models that will support 3D printing. 

Printer visualised thanks to X3D modelling. Source: web3d.org

Printer visualised thanks to X3D modelling. Source: web3d.org

All in all, X3D modelling can be the future for many disciplines such as architecture, engineering, and the educational sphere. It is accessible on most devices with an exception of the devices that run on older browser versions. User interactivity, portability are benefits of X3D. Designing is much less time consuming and less of an expense. In other words, it is easy to learn and people are easily impressed by it.

How to do it?

You only need a simple text editor and a web browser to create 3D models using these technique.

Want to learn more - enrol into our javascript course today

Google - Where Does It Use Python?

Some people may be under the impression that just because Python is a beginner-friendly language, that experts won’t use it - this simply isn’t the case. Python is used by beginners and experts alike; it is a dynamic, short and flexible language which can be written and read by anyone. Today I’ll be covering some real world examples of Google applications using Python.

Google App Engine

An app engine is a cloud service which is a platform that allows the hosting of modern web applications and mobile back ends. Google App engine was originally developed for Python but now offers a range of languages such as Go, Ruby, Java and many more. Despite this, it still allows the usage of Python’s many libraries and tools for hosting web applications.

Google Data Libraries

Google has developed many client libraries for developers to use. For example, Google Data Python Client library is a popular choice for application development in many Google data services. Alternatively, other libraries include libraries for Google Adwords Python Client libraries for accessing Google accounts or many more examples which can be found here.

Youtube

youtube.png

Probably the most famous example is Youtube. Almost everything about Youtube utilises Python in some way - the API and core functionality. For instance, Python is used to view videos or control the templates for the websites. Although, Python is rumoured to be compiled into Go to make up for its performance issues, Python is used in Youtube for its rapid development time and easy syntax.

These are three prime examples of Google using Python — clearly Python is not just for beginners.

Why not try and learn or improve your programming skills in Educademy? Here at Educademy, we offer an introductory Python summer camp course for kids aged 7-16 and an intermediate one. On top of this, we also teach so many different languages! Read more here!

Author: Sophie Dillon

World Book Day

It may feel quite unrelated - computer programming (also known as coding) and books. However, it is books that allow for all these programming marvels. I’m not writing about printed books of course - it’s all about books - widely referred to as documentation available online.

Video by Elen Lackner from Pixabay

Scratch

You may be surprised, but there is a wonderful collection of Scratch documentation dedicated to more advanced users. While Scratch may seem like a toy coding (pun intended - you can literally program LEGO in it), it is a fully fledged programming language. Here, at Educademy our favourite is Scratch Wiki and in particular Other Tutorials which discuss more advanced techniques to use in Scratch.

Python

Python, being one of the most popular programming languages, has an abundance of great online resources. The one that stands out of the crowd is Real Python. However, if you really want to dive deeper into the language and what it can do in real life, check out opensource.com 

JavaScript

JavaScript, being another of the most popular languages, is also very popular on various websites explaining how things work. The trouble is - as JavaScript evolved, a lot of information about it got a little “outdated”. It’s not like a piece of JavaScript from 20 years ago will suddenly stop working. It’s just - this is not how things are done now. And if you want to find out, how it’s done now, head right to javascript.info 

And one website to rule them all

Stack Overflow is the website that consistently shows up at the top of search results. Wonder why? That’s because if there is a question in computer programming worth answering, it has already been asked there.

Unity Playground - Space Shooter

Making a space shooter

Follow along with the video below to create your very first Unity game. There is no coding so this is a great introduction to Unity. The space shooter playground kit contains everything you need, including a space ship and some asteroids. This tutorial uses Unity 2019.4.8f1 which can be installed using Unity Hub.

Next Steps

  • Using the Patrol script found in the Movement folder you can enemies to move about.

  • Load a new scene to create a new level and switch when all the coins have been collected.

  • Add some powerups, like extra life or speed up.

Bolt

Unity+and+Bolt+-+Product+Thumbnail.jpg

Unity Bolt is a great next step after making a game or two inside Unity Playground. Bolt offers an increase in complexity and control while still having no code. You can view our course for Unity Bolt here.

Python in Healthcare

Python is a programming language typically used for developing applications quickly and securely. Python has many real world usages and big communities dedicated for things like machine learning and web development. Notably, this language is commonly used in the healthcare sector for development.

Roam Analytics

Roam Analytics is a startup business based in Silicon Valley. Their approach is data-driven as their company offers a unique analysis of different patients health journeys through machine learning and natural language processing. Essentially, their approach is structured through a deep analysis of data. This allows doctors to have data which will allow them to make better decisions when it comes to the treatment of diseases as they will know what works best. This company utilises Python as one of their languages to code their healthcare application.

AiCure

AICure is also a startup based in New York. This company is an advanced data analytics company; it offers a platform for AI to monitor patient behaviours relating to a medication which the patient takes, which can be used to identify patterns or trends from the data gathered. For instance, it can gather information about a patient like their level of expressiveness through the camera on their phone. This platform will then provide an understanding of a drugs effectiveness which can reduce costs for drug trials for the patients. Therefore resulting in a very effective smartphone application for the health sector!

The Future

There are many different ways that Python can be used in the future in healthcare but a current relevant example is predicting how on a disease may progress. For instance, it is possible to create a cancer survival prediction model in Python. Python has been used to predict the mortality rate of a patient with a specific disease given electronic health records. These models are highly beneficial within the health care industry and uses methods like machine learning to further benefit doctors, patients and the healthcare sector in general.

python.jpeg

There are many possibilities for Python to be used in the future to benefit the healthcare sector. Machine learning is a revolutionary way forward and could potentially be used to save billions. Python is the go-to language for industry experts in machine learning which can truly be used to make a difference in people’s lives.

If this idea intrigues you, why don’t you consider taking our programming courses? Our Python course covers not only knowledge you’ll gain in secondary school but other topics like artificial intelligence to help you gain the knowledge to make a difference, too.

Author: Sophie Dillon

Why Consider Tutoring?

My Experience With Tutoring

When I was younger, I always wanted a tutor. The approach of 1-to-1 teaching really appealed to me!  I loved the thought of being able to ask as many questions as I wanted, and really ‘broaden my horizons’.

When I was 17, that is exactly what I decided to do. During my A-Levels, I worked a part-time job for pocket money which would go towards maths tutoring for one hour per week. My expectations were indeed correct! My calm, collected and intelligent tutor worked me through any problems I had, any content I wanted to cover and absolutely any questions I had. I had never found something so beneficial, especially because I was always so keen to really solidify the knowledge that I had gained.

Weeks passed, and the lessons quickly stacked up. I was learning comfortably at my own pace unlike in a classroom where I felt a pressure to learn things rather quickly. If I didn’t understand, I felt no judgement. Before this, I had always felt judged if I didn’t understand quickly which would not enable to me to reach my full potential. My tutor would always push me in the right direction which encouraged me to learn more about mathematics in my free-time.

In the end, I secured myself an A-grade in my mathematics A-Level! Although this was thanks to my own hard-work, tutoring certainly helped to contribute to my success as it helped me to solidify my knowledge. Here at Educademy, we’re all keen to deliver the same exact experience to children.

Why Consider Tutoring at Educademy?

  • Practical and Theoretical – we understand that no child learns the same. Therefore, we’ve structured and developed our courses around providing as many fun projects alongside learning the fascinating theories behind Computer Science.

  • Content for the entire year. You won’t have to worry about your child running out of things to do. Our tutors offer content that lasts the entire year whether that be for our Scratch course, Python course or Unity/C# course. We’ll ensure that your child leaves the lesson having learnt something.

  • A unique approach. We understand that learning the secondary school syllabus is certainly important. However, we also offer a view at the world of artificial intelligence and the variety of things it offers. For instance, in one of our Python lessons, we cover what chatbots are, what they were like and how they developed!

  • A comfortable pace. Our tutor will get to know your child and tailor their approach to the child’s benefit. Whether your child has no knowledge or lots of knowledge – we cater for all ability.

I – and every one of our other tutors – want to make sure that your child learns something each and every week.

I know exactly how nerve-wrecking it can be at first when first receiving tuition. You don’t know what to expect, whether it will be bad or good; luckily, Educademy currently offers a FREE trial lesson to give you a small snippet of what’s to come in our courses. Why not come and try?

Feel like you can become a tutor? Have a look at our vacancies and maybe one day you’ll add to the above story…

Author: Sophie Dillon

 

Celebrating Programmers Day with free Hour of Code

Today is 256th day of the year. Why does it matter? Because 256 is the number of different values you can store in one byte. And because on this day we celebrate coding (programming).

hour-of-code-logo.png

To celebrate Programmers Day and all the children, who would like to become programmers we launch today our Hour of Code initiative. If you are an individual, you can book for your child (completely free) an hour of fantastic coding experience, be it in Scratch, Python or JavaScript. If you represent a school or a local community, please get in touch and we’ll do all we can to help.

Preparation for making a discord bot

Developing a Discord Bot requires quite a bit of setup, but you only need to do this once and then you can create many more JavaScript projects.

Node JS

Download and Install Node from: https://nodejs.org/en/

NodeDL.png

Node Packet Manager

Once installed, create a folder for your project. Call it what your bot will be named or just call it DiscordBot for now. Next up we need to install Discord.js, this is done using Node Package Manager (NPM). We need to open a command prompt to do this, hold down Shift + Right Click and then select open command prompt. If you cannot see the option, open the start menu and search for cmd and hit enter. Then type cd <PATH TO YOUR FOLDER> for example if my folder was located on my Desktop I would type: cd C:\Users\Dan\Desktop\DiscordBot. Replace “Dan” with the account name on Windows.

Installing discord js

Type “npm init” in the command prompt. This will then ask a series of questions. Fill them in as you see fit. If you are not sure on any, just leave them blank.

PackageSetup.png

Once complete, it’s now time to install Discord.js. Type into the command prompt: “npm install discord.js”

npminstall.png

Setting up a linter

You can program your discord bot using Notepad or Notepad++, however these don’t offer syntax highlighting. I am using WebStorm to develop in, however, this is a paid product. You can download Visual Studio Code which is a light weight editor for multiple languages.

vscode.png

Next download the Linter for Visual Studio Code: npm install eslint

Finally, install the plugin for Visual Studio code.

eslint.png

Linter Tweaks

Create a file in the root of your project folder. Call this file .eslintrc.json and copy the following code into the file or download it from Github.

{
	"extends": "eslint:recommended",
	"env": {
		"node": true,
		"es6": true
	},
	"parserOptions": {
		"ecmaVersion": 2019
	},
	"rules": {
		"brace-style": ["error", "stroustrup", { "allowSingleLine": true }],
		"comma-dangle": ["error", "always-multiline"],
		"comma-spacing": "error",
		"comma-style": "error",
		"curly": ["error", "multi-line", "consistent"],
		"dot-location": ["error", "property"],
		"handle-callback-err": "off",
		"indent": ["error", "tab"],
		"max-nested-callbacks": ["error", { "max": 4 }],
		"max-statements-per-line": ["error", { "max": 2 }],
		"no-console": "off",
		"no-empty-function": "error",
		"no-floating-decimal": "error",
		"no-inline-comments": "error",
		"no-lonely-if": "error",
		"no-multi-spaces": "error",
		"no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1, "maxBOF": 0 }],
		"no-shadow": ["error", { "allow": ["err", "resolve", "reject"] }],
		"no-trailing-spaces": ["error"],
		"no-var": "error",
		"object-curly-spacing": ["error", "always"],
		"prefer-const": "error",
		"quotes": ["error", "single"],
		"semi": ["error", "always"],
		"space-before-blocks": "error",
		"space-before-function-paren": ["error", {
			"anonymous": "never",
			"named": "never",
			"asyncArrow": "always"
		}],
		"space-in-parens": "error",
		"space-infix-ops": "error",
		"space-unary-ops": "error",
		"spaced-comment": "error",
		"yoda": "error"
	}
}

Gmail Part 3 - Securing Your Passcode

If you have not read this blog post, I would recommend reading Gmail part 1 and part 2. In this blog post I will be covering how to secure your passcode in Python using the previous pieces of code I have made. The previous pieces of code would look like this:

An example image of what my previous script would look like.

An example image of what my previous script would look like.

So, your passcode would be stored out in the open which wouldn’t be very secure. To solve this issue, we are going to make this more secure through the usage of a JSON file. This is a file type that is primarily used for transmitting information which in our case would be suitable for our Python program.

1) DEVELOPING A JSON FILE

To start with, let’s make a JSON file of where we’re going to store the contents of the email and password. The file should look something like this:

An image example of what the JSON file should look like.

An image example of what the JSON file should look like.

Specify the email and password to be in quotes specifically. This is where we are going to store the email and password. So it should be something like:

{ 
    "email": "exampleemailhere@gmail.com",
    "password": "16characterpasswordhere"
}

So instead of your email and password being stored in the clear in the Python file, we’re going to store the email and 16 character password specifically in this file. Save the JSON file in the same directory as your Python file, so that the file knows what JSON file it is accessing. I’ve saved mine as “Json.JSON”. Now we’re going to edit the Python file.

2) Editing the python file

Okay, so we’ve added information to the JSON file. Now we’re going to have to change the Python file. I will be using the example code from my first blog post regarding this

An image of my altered code from my first blog post.

An image of my altered code from my first blog post.

2a) explaining the code

I have added the Json library to my Python file script. Next, I have told my program to open the Json file as a file. Next, I have stored everything that is collected from the file as a dictionary. So what will be stored in this dictionary is an email and a password, as this is how the JSON file was defined. Next, I have defined the variables “PERSONAL_EMAIL” and “PASSWORD” to access the information in the seperate file which is more secure compared to sensitive information being stored in plain sight in the python file. Next, I have edited the code so that I can test if the email will actually send to me and the JSON file method was successful.

3) receiving the email

If you have defined the JSON file successfully, run the program and you should receive a test email like so:

An image example of a test email I have received

An image example of a test email I have received

If the transmission is unsuccessful an error will be thrown. It’s important that the .py files that you have and the .JSON files are in the same directory, otherwise this will not work!

Note for the second script that the IMap Tools library works by reading from the first message ever in your inbox. Therefore if you have a lot of messages that are seen and not deleted, the program will be incredibly slow at generating new files for the messages that you have not already read.

To summarise, having a .JSON file is an easier and more secure way to store your information rather than storing the information directly in a variable. To learn more about .JSON files, be sure to read more here.

Author: Sophie Dillon