Sunday, 25 January 2015

Flowcharts

Flowcharts

Here is a selection of basic flowchart symbols:


Decision are used for when there is a choice, for example: is JohnJoe amazing y/n.
Process is for when something happens, for example: JohnJoe opened the door.
Input/Output is used for when something needs to be imputed. For example if you made toast the toaster would output a beeping noise when the toast is done.
Arrows are used to connect the various symbols in a flowchart.

Examples

Here is some pseudo-code for a program:
age = input;
if(age > 18)
print("Cool, you can buy a knife!");
else
print("Uh oh, no knife for you.");'
END
Now here is that represented with a flowchart

Here is that pseudo-code as a flowchart:


Great isn't it?

Problem 1


Problem 2


Problem 3

Monday, 5 January 2015

Software

Software


What is software?


Software is a collection of instructions that enable the user to interact with a computer or have it perform specific tasks for them.

Operating System

An operating system, sometimes called a platform is a collection of programs that control the hardware in a system or device.
Examples of operating systems:
  • Windows - a powerful multi-tasking operating system, created by Microsoft. It provides a graphical user interface(GUI).
  • UNIX - a robust and stable operating system used in servers and workstations. Traditionally a command line interface, but there are many user interfaces developed to run on top of UNIX such as:
  • MacOSX - Apples own proprietary OS, based on UNIX and IOS used on their MAC computers.
  • Linux - A fully open-source kernel, although often not supported by many programs, is very popular because it is free and is easier to use for certain tasks related to programming. Also, there is not one Linux OS, instead there is "distros" which are all based on Linuxs kernel but are different in some aspects. Most notability their UI.

Kernel

The kernel is a program that looks after the hardware operations. For example: checking if the mouse is moved, if a key is entered, or if any new hardware is connected to the PC etc. Essentially it manages communication between the hardware in a PC.

Multitasking



Multitasking allows the PC to manage multiple tasks. For example if the CPU is busy waiting for data to be loaded from the RAM it can work on other tasks.
Programs will have several states in a multi tasking operating system.

Running- The CPU is currently dealing with this process and others must wait.

Runnable- These processes are in the queue and ready to go, and just need the running process to finish or be interrupted to run.

Waiting- These processes are not even in the queue, and may not even be in the RAM. They are waiting for space to be available in the queue. 


   UI

Command-line:  The command line used to be the most popular for of UI, only because it was the only one available due to computers not having enough power to generate graphic images. You navigate the file structure and perform tasks with commands that you type in. Such as typing in run "file" would run the file.
Some die hard programmers still use the command line because the believe it is faster and easier to use (one thing to note is that for application developers it is a lot easier to create a program that only uses the command line than one that has a GUI). In some modern operating systems IE Linux you need to use the command line to perform many basic tasks. Such as installing software and unpacking files.

GUI: A graphical user interface is now the most popular form of UIs simply because it is easier and nicer to look at for most people. A GUI is (usually) navigated with a mouse, to click on icons and navigate etc, and a keyboard, to input data. 
A GUI is used by nearly every computer user.





Monday, 22 September 2014

Computer Systems

Computer Systems


A computer system at its most basic is something that takes in an input, processes it and then outputs it. An example of this simplicity is a calculator. You input a number, then a mathematical sign, such as a +, input another number and then hit the equals sign. The calculator takes these three inputs processes them and then outputs them.      



Embedded System

An embedded system is a system that is part of a larger system or machine. For example a washing machine or microwave but not a PC or IPad. This is because the system in the IPad or PC is the machine where as an embedded system is part of a machine. An example of an embedded system in a microwave could be you putting it on defrost for 15s. You input 15s and defrost and the embedded system then tells the microwave generator to generate a certain amount of microwaves for 15s.


Reliability

Reliability in computer systems is extremely important. Being reliable is the system doing the exact thing that it is meant to do. Such as in an airplane the altitude sensor would be reliable if it measured an altitude of 15000 feet while it is at 15000 feet. It is very dangerous if a computer system is not reliable. Imagine if the sensors on a roller coaster registered the roller coaster as stopped and safe to get out when you were in the middle of a loop. It would then command the seats to open dropping you off. Computer systems are kept reliable by lots of testing, frequent maintenance and testing.
Here is a paper I wrote on a recent computer systems failure.




There are many standards for computer systems. For external data transfer the most common way of transferring data is via USB, when using USB2 an older version but much more common version of USB data speeds are slow but fine for small files. Whereas USB3, which is slowly becoming more common place you can reach much faster speeds, that come close to SATA6. A rarer way of transferring external data is via Firewire which is only commonplace on mac and is on nearly no Windows PC's. A very rare method of external data transfer is ESATA which is as fast as SATA6.

For internal data transfer (inside the PC) the most common method is SATA either SATA3 or SATA6 these are fast ways of transferring data and are on nearly every hard drive. An older method is via IDE which was common place before it was replaced by SATA.

For transfer of video (from a pc to monitor) there is many ways avliable. For HD video one of the best standards is HDMI, which is common place on most game consoles, DVD/Blu ray players and graphics cards. An older standard is VGA but this is only useful for less than HD content. Display port is another standard that is nearly only seen on pcs. Display port is mostly used for multi-monitor setups.

There is also standards for pc parts. The most common standard for add in cards(video cards, extra USB ports and LAN cards) is PCIE. PCIE is very fast and is used where things need to be moved in between 2 things very fast. 




 Software Standards

Software standards are mostly standards for different file types that are used. The way software filetypes become standards vary with JPEG (.jpg), one of the most common photo file standards, was created by a group of experts who decided that their file type was the best. Other file types become standards due to common use such as HTML and PDF. Nobody said that these file types should be standards they just became standard due to so many people using them. One way that a file types have become standard is a combination of both. Microsoft decided that all word files created would be created as a .doc because Microsoft word became the most common way to create word documents .doc became the standard.