1/122
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Data
Consists of raw facts and figures without context or meaning.
Information
What exists when data has been given context or meaning.
Variable
Space for a single piece of data, each variable has a data type. You can change variables once they have been set.
Constant
Space for a single piece of data, each constant has a data type. You cannot change constants once they have been set.
Boolean
A data type, can be either true or false and requires only one bit of storage.
Character
A data type, a single letter, number, punctuation mark, space etc. - requires one byte.
String
A data type, stores any number of characters, such as a person's name, address and postcode.
Integer
A data type, whole numbers, such as a person's age or how much stock a shop has.
Real
A data type, decimal numbers, such as distances and fractions.
Boolean Operator - AND
If you see AND between two Boolean expressions, the whole expression is true only if both of the smaller expressions are true. For example: age <= 16 AND age >= 5
Boolean Operator - OR
If either of the expressions either side of the OR is true, then the entire expression is true.
Boolean Operator - NOT
Adding NOT to an expression simply makes it the opposite of what it was before. For example: NOT (age <= 11). This covers all other ages, 12 and up.
The meaning of the following operators:
>=
<
=
!=
>= Greater than or equal to
< Less than
= Equal to
!= Not equal to
Array
An array is a space in memory reserved for more than one item of the same data type.
Two Dimensional Array
Table of items and elements, with columns and rows. Data stored in this way can be considered as if it were in a spreadsheet, where each row and each column stands for something.
Record
Records can combine different data types, and each record would be about one person, or one building or one book.
Why we use Data Structures
Using data structures instead of lots of individual variables can reduce the amount of code you need to write in order to solve a problem. Arrays also reduce the likelihood of errors occurring, as there are fewer places in the code in which errors could exist.
When programs are designed, why are they broken down into smaller tasks and each task is addressed individually?
For large programs, different tasks can be assigned to different programmers, with clear understanding of who is to code what.
Each component can be tested separately as it is coded, which means the complete program, when all the parts are assembled, will possibly contain fewer errors.
If the program needs updating later, the individual component can be updated, leaving the rest of the program unchanged.
Why Computer Programs are Written
To solve a problem.
Algorithm
A step-by-step set of instructions to allow a computer to solve a problem in a finite number of steps.
Structure Diagrams
Shows how a program, or a potential program, is broken down into individual processes.
Flow Charts
A way of showing, within a program, what tasks are to happen in what order. This is done using shapes and arrows.
Terminator (Flow Chart)
Used to mark the start and another is used to mark the end of a flowchart.
Input (Flow Chart)
Input boxes show data entering the system, possibly typed by the user.
Arrows (Flow Chart)
Shows which instruction should take place next. --->
Process (Flow Chart)
Each process contains a single instruction, so complex tasks usually incorporate several processes.
Decision (Flow Chart)
Asks a question, determining which path the program should next take. It is in the shape of a diamond.
Sequence (Flow Charts)
When instructions in an algorithm each need to be executed only once, and in the order in which they are written.
Selection (Flow Charts)
When one sequence of instructions or another, but not both, is executed. The sequence that is executed will depend on what happened in earlier instructions. Words such as IF or CASE mean that selection is taking place.
Iteration (Flow Charts)
Takes place when one or more instructions are executed more than once. Also known as repetition. It is taking place when program code contains the words LOOP, FOR, WHILE or REPEAT.
Function
Carries out a subtask of a larger task for which the program is responsible. It then returns a value. It also has a data type.
Procedure
Carries out a subtask of a larger task for which the program is responsible. It does not return a value.
Parameter
A piece of data that is needed in order for a procedure or function to run. (Input)
Argument
What a piece of data is called as it is passed to a function or procedure.
Built-In Functions
Functions which have been written by other people, you can call them without even seeing the code.
Modular Programming
Breaking your program into separate procedures and functions. It can simplify your coded solutions in two ways:
You get to choose the name of your procedure/function, which helps you to create code that makes sense.
If a particular task is required multiple times, the code for that task can simply be placed into a procedure or function, which can be called multiple times.
Since calling a function or procedure only requires a single line, this reduces the amount of code needed, which reduces the likelihood of errors in the code.
Scope
The visibility of a variable, constant, function or procedure in a program. When you are writing code you can see or alter some variables and constants, but not others. You can also call some functions or procedures, but not necessarily all of them.
Local
Variables and constants can be local. Only visible within the function or procedure in which it was declared. As soon as the function or procedure ends, the variable/constant is gone.
Global
Variables and constants can be global. They are visible throughout the entire program. This variable/constant is only gone when the program has finished running.
Private
Functions and procedures can be private. This means it can only be called from within the form, or class in which they exist.
Public
Functions and procedures can be public. They can be called from beyond their own form or class.
Syntax Error
Happens when you do not follow the rules of the language you are writing in. If your code contains a syntax error, it will either not compile or it will crash when the erroneous line is reached.
Logic Error
Does not cause the program to crash, although it does cause the program to do something it shouldn't. It might, for example, produce an incorrect result to a calculation. They are harder to find than syntax errors and they are only usually identified by detailed testing.
Run-Time Error
Might or might not cause a program to crash at some point, but it will not prevent it from running. The error will not become apparent until the program is executing.
Trace Tables
A tool used for checking that a program will behave as you intend it to by examining the value of each variable as it changes. They are usually used to resolve logical errors.
Try Catch Block
The program is told, rather than to execute some code, to try to execute some code. This would then provide an alternative set of instructions to be followed in case the attempt fails.
Bug
In a piece of software, is a fault or error of some kind that prevents the software from working as it should.
Debugging
The process by which bugs are removed. There are tools available to developers to help identify bugs, break points and variable watch. Trace tables and the use of try catch blocks would be used alongside these tools.
Break Points
Inserted at a line of source code at which execution will pause (break). The developer can then examine the state of the program at this particular point in execution. Multiple break point can be set throughout the code, which is a useful feature as it allows the developer to view the execution of the program in something resembling slow motion.
Stepping
Moving from one break point to another, essentially watching program execution in slow motion.
Variable Watch
This feature allows the developer to keep track of a variable or expression. This tool allows you to track the life of a variable expression to see if it is correctly manipulated by the program.
Computer System
A combination of hardware (physical components) and software (the programs) working together to provide a solution to a problem. They are important because they play a part in almost every aspect of human life: in commerce, health care, education and communication. It is important that they are reliable (do what is expected of them) and robust (provide resistance against failure and remain available).
Four Key Elements Computer Systems Consist of
Input devices - Are used to get data onto the system, Keyboard, mouse, magnetic tripe reader, light pen, OMR, scanner, OCR, sensors.
Output devices - Which present data in a human-friendly form, Monitor, speakers, printer, servomechanism.
Storage devices - Used to contain data.
Processor - Follows instructions and performs calculations.
Hybrid Devices (Both Input and Output)
Touch screens because you input data by touching the screen and the device outputs data by displaying it on the screen.
Games controllers, you input by using the controls and they output by vibrating.
The CPU and the Two Main Components
A component that performs calculations and fetches and executes program instructions. There are two main components: The Arithmetic Logic Unit (ALU) - carries out calculations and numeric functions such as comparing two numbers together to see which is the largest.
The Control Unit - Responsible for retrieving data and instructions from the correct location in memory and executing those instructions.
Buses
How the processor communicates with other parts of the system. Buses are wires or collections of wires that connect components together. Signals pass between these components which may contain data or instructions.
Clock Speed
The clock speed of a CPU is measured in Hertz (Hz). One Hz means one operation per second.
Factors which can Influence the Speed of a CPU
The speed of other components, the CPU might be waiting for a hard disk or printer to perform some task before the next instruction is addressed.
The size of the cache, the larger the cache, the more it scan store, and the faster the CPU appears to work because it is not waiting as long to receive data or instructions.
The number of cores, each core can fetch, decode and execute. More cores mean a faster CPU.
Cache Memory
High-speed memory that stores frequently needed instructions or data. Stores copies of data or instructions from the RAM that are accessed very regularly.
RAM
Random access memory. The RAM is volatile, when the computer is turned off or subject to a loss of power, the content of the RAM is lost. When a program is loaded from a computer hard disk, its data and instructions are loaded into the RAM.
ROM
Read-only memory. Means that the content cannot be edited or deleted. It stores data or instructions that will not need to be updated.
Flash Memory
Uses electronic chips as storage but, it is non-volatile. This means it continues to store data without a source of electricity. Flash drives are portable and are often used to transfer data from one computer to another.
Virtual Memory
Sometimes a computer does not have enough RAM to run programs as it is required to. In these circumstances, the operating system will treat some part of secondary storage as if it were the RAM. This is called virtual memory.
Magnetic Storage Devices
Include the internal hard disk as well as floppy disks, which are no longer widely used.
Optical Storage Media
CDs, DVDs, Blu Ray Disks are written to and read using lasers. The surface of the disk will have billions of locations where holes can be either physically burned by a laser, or not burned, to represent either 1 or 0. Capacity: CDs 700MB, DVDs 4.7GB, Blu-Rays 25GB. Speed is highly variable. Small and light but not as easy to carry as a USB flash drive. Sturdy, although the surface can be scratched and make the data irretrievable. Useful for posting data from one location to another.
Solid-State Storage Devices
Use electronic circuits and no moving parts to store data electronically. Ranges from 1GB to 64GB. Transmits data at a rate of 5 million bits per second. Very small and light, designed to be moved between computers. Sturdy. Used by students who always need to access work on different computers.
Cloud Storage
Refers to data being stored away from the computer it is accessed on, typically accessible over the internet. Capacity, virtually unlimited. Speed, depends on the internet connection speed but it is generally slower than storing data on the computer which will be used to access it. You can access your data anywhere in the world. Data is backed up multiple times so durability is not an issue.
Internal Hard Disk
Keeps programs and data stored when the computer is turned off. Capable of storing more than its main memory. Capacity, variable, data transfer is usually far quicker than from any external device. Difficult and time consuming to move an internal drive from one machine to another. Well protected inside the computer. Most programs are stored on here.
Units of Data
(Size and Example of Storage)
Bit - Single binary digit. Either a '1' or '0'.
Nibble - A sequence of four bits. A whole number between 0 and 15.
Byte - A sequence of eight bits. An individual keyboard character such as 'k' or '#'.
Kilobyte - Approximately 1,000 bytes. A paragraph of text.
Megabyte - Approximately 1,000 kilobytes. Around one minute of MP3 music.
Gigabyte - Approximately 1,000 megabytes. About 90 minutes of video.
Terabyte - Approximately 1,000 gigabytes. Several hundred hours of video.
ASCII
ASCII characters, requiring only seven bits, need less storage space but can only store 128 different characters.
How Dates can be Stored
As a sequence of ASCII characters, every individual character can be stored using its ASCII code.
As a series of numbers.
There are more commonly stored as numbers, because this requires less storage space and two dates can easily be compared to see which is earlier or later.
Images
An image is divided into pixels. A pixel can only be one colour at a time, and when a picture is saved, the colour of each pixel must be stored in binary. The more bits that are used to store each pixel, the more colours are potentially available.
Sound
When converting sound to digital format, two things influence how much storage space is needed:
Sampling rate - Refers to how often the computer takes a measure of the sound, including the volume and frequency. A higher sampling rate results in better sound quality, but requires more storage space.
Bit rate - How many bits are used to each sample and this can vary widely. Again, higher bit rates result in higher quality of sound but also higher storage requirements.
Software Development Life Cycle
Spells out what steps take place in the process of developing software and the order in which they take place. There are several models of the life cycle.
Cyclical Model (Definition, Advantages and Disadvantages)
The processes happen repeatedly, and in the same order during each cycle.
+ It is easy to arrange subtasks and set milestones.
+ Clearly defined stages make management straightforward.
- A testable program is not available until late in the cycle.
- It is difficult to accommodate change once you have passed the relevant process.
Waterfall Model (Definition, Advantages and Disadvantages)
Each process takes place, from top to bottom, to completion before the next process begins.
+ It is easy to manage, as the whole process is readily divisible into smaller processes.
+ It is easily understood and used.
- Unsuitable for larger projects or projects with changing requirements.
- Not all projects can be so easily broken down into processes like this, some processes may overlap.
Spiral Model (Definition, Advantages and Disadvantages)
Similar to the cyclical mode, except each process is visited multiple times in that sequence. Each time a process occurs, it occurs in a more developed way than the last time it occurred.
+ Good approach for larger projects, as changes can be implemented throughout the project.
+ A working prototype can be made available fairly early.
- Each spiral model approach will be different, meaning less reusability.
- Not appropriate for smaller projects where multiple passes may be unnecessary.
Feasibility Study
The main purpose of this is to examine an existing system to find out whether or not it is worthwhile replacing it with a different system. Replacing a system has certain costs:
Money for software developers, hardware etc.
Time, designing and installing the new system is time consuming.
Human resources, specialist staff are needed to design and install the system and existing staff would need to be retrained to operate it.
Benefits of replacing a system:
May be possible to do a job faster.
May be cheaper to operate, requiring less staff.
Analysis
The main purpose is to understand the existing system as well as the requirements of the proposed system. The following steps may be taken:
Using the current system as a current user might use it.
Studying system documentation.
Interviews/questionnaires of customers/staff to seek their opinion.
Observing the current system in use.
Exploring data requirements.
Producing diagrams showing processing and entities.
Design
Designing a new system is split into a number of sections. A design is simply a detailed plan for the proposed system.
Designing algorithms - They must be well designed otherwise it can affect the speed of a process, such as searching or sorting.
Designing HCI - Involves the design of how the computer and human will interact with each other, involving hardware and software.
Designing data structures - Records, arrays, variables etc. need to be decide upon.
Testing
Is the point at which the program is checked to address two main questions:
Does the program do what it was intended to do?
Does the program function correctly?
Changeover
Is the point where at which the user moves from the old system to the new system. There are several ways in which this can take place:
Direct - Where the changeover is sudden and complete.
Parallel - Both systems run at the same time for a while, this is beneficial because in the event of a problem, the old system is still available for use.
Phased - Elements of the new system as introduced one at a time.
Pilot - A single department may change to the new system in a company, and then the rest of the organisation would follow later.
When choosing, it is important to consider the cost of implementing it and the disruption that could be caused.
Maintenance
When the changeover is complete, the work of the developer is not complete. Maintenance means ensuring the product continues to be beneficial to the customer.
Perfective maintenance - Making the system easier to use or adding new features, making the system as good as it can be for the purpose.
Adaptive maintenance - Making changes to the system as the needs of the customer change.
Corrective maintenance - Solving problems that occurred during the creation of the new system that wee not discovered at the time.
Documentation
At various points during the life cycle, documentation needs to be provided by the developer for a variety of purposes:
Design documentation, of the interface and the processes, are needed by the end user as soon as possible to check what is going to be produced is what is required.
Program documentation, including annotated code and design of data structures, must be available to the developer during testing and maintenance.
During testing, a log of results will be produced in an ongoing cycle, until the system is deemed to be working correctly.
User manuals must be available to the customer to provide details on how to operate the system.
Technical manuals are also needed to detail things such as security procedures, backup procedures and system recovery procedures.
Prototyping
One way of developing solutions in which a basic version of the finished product is created quickly.
End user uses prototype --> Feedback from end user is obtained --> Prototype is updated.
+ Because the end user is always involved, time spent on unnecessary features is minimized.
+ There are multiple opportunities for errors to be detected, so they are usually detected sooner.
+ Testing of the solution can begin far sooner than in the cyclical development model, allowing more time to find errors.
- It is quite easy for the solution to become more complex than initial plans.
- Beginning the process by producing a prototype might mean the analysis stage is not completed as thoroughly as it should be.
- Lots of opportunities exist for the end user to change their minds, which can result in higher costs in terms of money and time.
Unit/Modular Testing
Solutions can be broken down into modules. This makes the solution easier to understand and allows straightforward distribution of tasks among a team of programmers.
Alpha Testing
Carried out by the developer. Individual algorithms tested, with the values of variables being traced through the program, often line by line. This type of testing makes use of trace tables, where expected variable values are compared with the actual outcome.
Beta Testing
Carried out by prospective purchasers of the finished product. Users use it as they would normally use such a program, reporting any errors back to the developers.
Acceptance Testing
Carried out by the end user. This type of testing is intended to answer the question 'does the program do what I wanted it to do' rather than 'does the program work'.
Network
Collection of computers and other hardware that has been connected together in order to allow communication and sharing of resources. Also, networks allow software to be installed and controlled across the network from a single computer, rather than individually on every machine.
LAN
Local area network, which might occupy an office or building.
WAN
Wide area network, the largest of which is the internet.
Advantages of Networks
Communication - Email, instant messaging and the transferring of files is possible across a network.
Sharing of resources - Files on one computer can be accessed by others, multiple computers on a network can share a single printer and within a LAN, a connection to the Internet can be shared.
Network management - You may be able to log onto any computer within a LAN and have access to your own files, which is particularly useful in schools and colleges.
Disadvantages of Networks
Viruses and other malware can only move from computer to computer via shared disks or through a network. A network computer is more likely to become infected compared to a stand alone computer.
Failure of a single resource can impact upon all computers on a network. If a logon server fails, it may be nobody can access their account.
Bus Topology
All devices are attached to a common connection medium, known as the backbone. Any communication must travel through this medium. A server may be attached, or a printer or a router if the network needs to provide access to the internet. At either end of the backbone is a terminator, which marks the end of a network.
Star Topology
All devices are connected to a single central device, such as a switch or a hub. Communications must go via this central device. Servers, printers and routers would also be connected to this device.
Ring Topology
Each device is connected to two other devices, so that the devices and connection media make up a shape of a ring. To communicate with a particular device, a signal often has to pass through several other devices en route.
Advantages and Disadvantages of a Bus Topology
Very cheap, as it requires minimal amount of cabling.
Easy to add or remove computers.
Failure in the main cable will cause failure of the network.
The network can be significantly slowed by high network traffic.
Advantages and Disadvantages of a Star Topology
If one cable fails, only the device attached to it is isolated from the network.
Faults are easy to find.
It is easy to add extra devices.
The system is secure, as data is only sent to devices that need that data.
Lots of cable, which means more expensive to install than other topologies.
Advantages and Disadvantages of a Ring Topology
No collisions, as there is typically only one batch of data allowed on the network at any one time.
Very high rates of transmission are possible.
Failure of a single cable can bring down the entire network.
Failure of a single device can bring down the entire network.
Security is not ensured, as data passes through other devices en route to its final destination.