Computer Science

¡Supera tus tareas y exámenes ahora con Quizwiz!

3.1.15.2 Connecting to databases from web applications and web based apps - What led to distributed applications - What are the - Web based software - Client-server software - Client server advantages

By storing data in web-based databases, new web technologies have led to 'distributed applications'. Distributed application programs have many parts that are stored on different virtual machines. The different virtual machines can be on the same or even different systems, allowing smartphones to access the same resources as desktop computers. Web-based software is usually paid for on a subscription or usage basis, allowing companies to pay only what they need and to grow into the system without large upfront costs. Client-server software is usually paid for upfront and the initial cost of the system can be high. Client server applications have advantages over web-based applications. • You are in control of upgrades. • You have to manage your own systems and pay for technical support. • Applications tend to run faster when they are local to the user's computer.

3.1.9 Algorithms

Explain what an algorithm is: • A series of instructions • That solves a problem • In a finite number of steps that always ends

3.1.8.3 CPU + motherboard - CPU definition (CPU, cycles, cores, clock speed, hertz) - Fetch execute cycle - Characteristics that can improve performance (7) - Performance of CPU can depend on these factors (3) - Main differences between between mobile and non-mobile processors. (3) - Motherboard (Buses)

The CPU undertakes instructions it receives from programs in what is called a cycle. The CPU has a number of cores. The speed of a CPU is measured in how many cycles it can perform in a second. This is regarded as clock speed. The name given to one cycle per second is a Hertz. A CPU's control unit performs the following instructions: The instructions are held in memory; Loads instructions from secondary storage to memory; Instructions are stored in a contiguous format; The processor fetches an instruction from memory; The processor decodes the instruction; The processor executes the instruction; The result may be stored back into memory; The process is repeated continuously//cycles; This is known as the processor cycle. The characteristics that can improve the performance of CPUs are shown below: * the cache size * the type of cache memory * the number of cores/processors * the processing clock speed * the bus width * the word size * the architecture of the processor/CPU The performance of a CPU can be explained by the following factors as well as others: Clock speed This is the speed at which the a microprocessor (meaning contained on one chip) executes instructions A higher clock speed means a process will be completed quicker However increased clock speed means increased heat produced and more power consumes Number of cores A computer can have CPUs with multiple cores. When you have multiple CPU cores on a single chip, they are called multi-core processors The multiple cores can run multiple instructions at any given time which is they are effective when the user is multitasking. However, software must specifically written to cater for multiple cores so an increase in speed may not be obvious for some applications. Cache Cache stores recently used data so that it can be quickly accessed at a later time Processor caches are small data stores which contain regularly used instruction that can be accessed quickly by the CPU when required When the CPU finds stored data in the cache it is called a 'cache hit', so a larger amount of cache means that these are more like, so the processor will operate quicker. The main differences between mobile and non-mobile processors are described below: * Clock Speed: Lower clock speeds mean the amount of heat produced is less. Therefore phones have lower clock speed processors. * Due to less space in portable devices, other components are integrated with the processor, like the wireless networking components. * Mobile processors are also optimised for low power consumptions. A motherboard links the CPU and PU's to the memory and other hardware. The CPU uses the motherboard to receive and send signals to components, such as the hard drives (storage). Motherboards have buses (circuits) that connect one part of the motherboard to another. The speed of the bus is measured in Megahertz. The more data the motherboard bus can handle at any one time, the faster the system.

3.1.11 Software development life cycles - Three models - Advantages and disadvantages

The software development life cycle is a structured procedure used for developing new software products: • Step 1 - Requirement Analysis o At this stage the programmers, designers and the clients discuss the needs of the user so it is clear what is required • Step 2 - Design o Here the solution is planned, using the specification discussed in the previous section • Step 3 - Implementation o In this section the designs are turned in code o This is usually the longest phase • Step 4 - Testing o During this phase the code written during the implementation section is tested against the specification, to ensure the code written really provides a solution to the problem • Step 5 - Evolution o These are changes/upgrade that the software goes through after it is delivered to the client o This stage can only occur if the programmers bear this is mind during the design and the implementation stages, as the software needs to be coded to allow future changes to be made There are several lifecycle models that can be used. Some of these are cyclical, waterfall, and the spiral model. Cyclical Model: This model is explained above and it is more of a generic model. • Advantages: o Clear defined stages. o Simple to understand and use. o Well understood milestones. o Easy to arrange tasks. • Disadvantages: o It's difficult to measure progress within stages. o Cannot accommodate changing requirements. o No working software is produced until late in the cycles o Risk and uncertainty is high with this process model Waterfall Model: In a waterfall model, each phase must be completed in its entirety before the next phase can begin. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. Unlike what I mentioned in the general model, phases do not overlap in a waterfall model. • Advantages: o Simple and easy to use. o Easy to manage due to the rigidity of the model - each phase has specific deliverables and a review process. o Phases are processed and completed one at a time. o Works well for smaller projects where requirements are very well understood. • Disadvantages: o Forward moving: Adjusting scope during the life cycle can kill a project o Can be difficult to go back a step if needed. o Poor model where requirements are at a moderate to high risk of changing. o No working software is produced until late during the life cycle. o High amounts of risk and uncertainty. o Poor model for complex, object-oriented and long projects. Spiral Model: The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral. • Advantages: o High amount of risk analysis o Good for large and mission-critical projects. o Software is produced early in the software life cycle. o More client consultation o Ability to return and fix problems. • Disadvantages: o Can be a costly model to use. o Risk analysis requires highly specific expertise. o Project's success is highly dependent on the risk analysis phase. o Doesn't work well for smaller projects.

3.1.1: Constants and Variables - Definition of variables - Types (2)

Variables are used in computer programming to store specific values within a program. They are assigned both a data type and a value. Some values are stored permanently; the data is constant. Other things are always changing; the data is variable. Variables are data entities whose values can be altered. Constants are data entities whose values cannot be altered.

3.1.13 Networks - What is it? - Advantages (8) - Disadvantages (6) - Different topologies and there disadvantages and advantages

What is a computer network: • Two or more computers, that have been connected together and that can communicate with one another. Advantages of using a computer network: • Users can share software stored in a main system. • Site (network) licences for software are less expensive than several standalone licences. • Files can be shared between users. • Users can communicate via email, instant messenger and VoIP. • Security is of a high standard. • It is much more straightforward to back up data to a file server. • Data can be transmitted to remote areas. • Users can share common peripheral resources such as printers, fax machines, modems etc. and therefore saving money. - Enables users to work from multiple physical locations. Enables computers to communicate with one another. Creates more resilient systems (than when you are reliant on just one computer). Enables processing to be distributed. May enable access to web services. Easier monitoring of all users. Centralised back-up is possible. Easier to maintain multiple devices Disadvantages of using a computer network: • Cabling and file servers can be costly. • Management is complicated, requiring training and a specialist network manager. • If a file server breaks down, the files contained on it become inaccessible. • If a virus gets into the system, it can easily spread to other computers. • There is a risk of hacking, particularly in wide area networks. • Rigorous security measures are required. Additional hardware is required. Networks can be organised in different formats. These formats are called network topologies. Bus topology: In this network configuration all of the clients, servers and resources are connected to one cable (the bus). When a device communicates, the message is transmitted down the bus that all devices receive, but only the intended recipient accepts and processes the message • Advantages of the bus topology: o It is easy and cheap to install as a consequence of requiring only a small quantity of cable. o It is suitable for small networks. • Disadvantages of bus topology: o The cable length is limited. This restricts the number of devices that can be connected to the network. o As more devices are connected, the performance of the network becomes slower as a consequence of data collisions. o All workstations see all data - so there is a security risk. Ring topology: In this topology, each device is connected to two other devices which forms a ring for the messages to travel around. When a message is sent in a single direction it is received by each device until the intended recipient receives it. • Advantages of the Ring topology: o Data is transferred quickly as data only flows in a single direction so there are no data collisions • Disadvantages of Ring topology: o Workstations often see data not intended for them - so there is a security/privacy risk o If any of the cable fails or a device is faulty then the whole network will fail. o Alterations or maintenance to the network nodes can impact the performance of the while network. Star topology: Most home network use this topology as it has a central connection point that could be a hub, switch or router. • Advantages of the Star topology: o They are reliable as if one cable or device fails then the other devices will be unaffected o They are high performing as no data collision occur. o Changes to one client do not affect the others. • Disadvantages of Star topology: o Expensive to install as lots of cabling is required and extra hardware (the central device) o If the central device fail, then so will the whole network. Basic components of a computer network: • Servers are powerful computers that provide services to other computers on the network. • Clients are computers that use the services that a server provides. • Communication media like cables or a wireless signal. • Peripheral devices include printers and fax machines etc. • A user is a person that uses the client machines. • The protocols of a network are rules for the network communication. • A network adapter is a circuit board that can send and receive data

3.1.1: Understanding different data types Name the 5 most common types

A data type determined the actions that can be performed on data when it is held within a program or field of a database or a spreadsheet. The most common data types are called primitive data types. The different primitive data types are explained below: Integer: An integer data type deals with whole numbers. A member of the set of positive whole numbers, negative whole numbers and zero. Real/Float: A real data type contains numeric data in a decimal Boolean: The Boolean data type represents values of true/false or yes/no. The primitive data type of a Boolean is logical. There are arithmetic tests that can be used to create Boolean values. They are <, <=, ==, !=, >= and > String: A string is a data type that can contain a set of characters, numbers and spaces. Character: A character type may contain a single letter, digit, punctuation mark, symbol, formatting code, control code, or some other specialised code.

3.1.12 Application Testing - What is it, why is it needed, what does it ensure - What are test plans - Different types of tests (5)

Application testing is using the application in controlled condition to see how it works • Rigorous testing is essential for coded solutions as it determines whether or not the developers have met the specification outlined at the start of the software development life cycle • It also ensure that the end user's (those who will operate the software) experience is not affected by bugs and errors, which make the evolution phase easier as less has to be done Test plans • These are documents created before the testing phase of the software developmental life cycle outlining what tests will occur and how they will be conducted • They should show the methods used and the anticipated results • The details outlined in these plans must be quantifiable and measurable Types of tests: • Unit Testing: Unit tests or modular tests are performed by the programmer as they are developing the program. They test the correctness of small blocks of code in isolation. o Advantages of unit testing: ▪ Problems are discovered early. ▪ Integration testing is easier. ▪ Acts as documentation of the system. ▪ Extremely accurate unit test coverage. ▪ The unit test itself is used to verify the design. o Disadvantages of unit testing: ▪ Time consuming. ▪ Does not show absence of errors. ▪ Hard to set up realistic, useful tests. ▪ Integration errors or system errors can be missed. ▪ May be necessary to use a version control system. ▪ Need to have a review process for test case failures. ▪ Test program cannot be run in actual deployment environment. ▪ Test code is likely to be at least as buggy as the code it is testing. • Integration Testing: Integration testing is performed when all of the different parts of code, such as functions or modules, are complete. This tests whether the units of code work together correctly. o Advantages of integration testing: ▪ o Disadvantages of integration testing: ▪ • System Testing: System testing takes place after the code has been individually tested and is done without having to have any knowledge of the code itself. This tests that the entire system functions correctly Advantages: - Doesn't require specialists - Works with full program - Could find problems undetected by unit testing Disadvantages - Additional expense - Takes time - May not find all problems • Non-functional Testing: This tends to reflect the quality of the product, particularly the suitability of the application from the point of view of the client. A load test investigates software behaviour during increasing system loads and a performance test is carried out to investigate the processing speed and response time for specific scenarios. • Functional testing: This is testing in normal conditions. This tests to ensure that the software is in line with all of the specifications outlined by the client. Usually, the software should have been built for this type of data.

3.1.8: Systems - Define a computer system - Define hardware and software - Why they are important - Reliability and robustness definition - Why they are important, consequences - solutions for reliability

Computer system: It is hardware and software working together to create a working solution. In its very basic form, a computer can be looked as nothing more than: - an input, - a process, - some storage - an output. Hardware is the machines, wiring, and other physical components of a computer or other electronic system. Software is the programs and other operating information used by a computer. Computer system are integral to our modern world as: *They allow people to contact and work with those all around the world *They allow people to access their data securely from anywhere *They improve quality of life, e.g. those without limbs can have then replaced with bionic *They help save lives, e.g. emergency response teams can coordinate rescues quicker Reliability in computer systems is vitally important. High reliability is when a computer system can be depended on to work almost all of the time. Robustness is also vital. Robustness is the ability of a computer system to cope with execution errors or abnormalities. Both are important as high reliability and robustness mean that the computer system can be depended on at all times without any chance of failure If a system is not reliable or robust then the user may not be able to use the program when required, which, depending on the situation, could have severe consequences. One way computer systems are made reliable is the duplication of each component in a system or the whole system itself, so that if there is an error, there is always a backup to replace them in case they stop working.

3.1.10 Data representation - What is binary - Bit, nibble, byte, kilobyte, megabyte, gigabyte, terabyte - How is sound produced - How are images produced - ASCII - Why is hexadecimal the best (6)

Computers use the binary alphabet to represent all data and instructions. Binary code consists of two digits: 0 and 1. They symbolise voltage with 0 being off and 1 being on. Binary code could represent different types of data such as text, image, sound, string, integer, date and real number/float A bit has a value of 1 or 0. A nibble is four bits A byte is eight bits. A kilobyte (KB) is 1000 bytes. A megabyte (MB) is 1000 kilobytes. A gigabytes (GB) is 1000 megabytes. A terabyte (TB) is 1000 gigabytes Sound: - Microphone measures change in air pressure - Microphone translates air pressure into electrical voltage - Analogue to digital converter digitises the electrical voltage to bytes of information - Computer displays the digitised sound for manipulation - Digital sound is broken down into thousands of samples per second. Each sound sample is stored as binary data. Higher the sample rate the better quality the sound file, but also larger. Images: - The image is represented as a grid or sequence of pixels. • Each pixel is represented by one bit. • White is represented by a 0 • Black is represented by a 1 • White and black are represented using different bit patterns. • Same bit pattern used for black and white. • Metadata about the image is also stored. ASCII (No longer used, unicode is however used and uses the ascii values) Characters are represented in binary using ASCII or other character conversion systems. ASCII has some limitations. The total number of characters that can be encoded in ASCII is 128 Characters. Explain the possible limitations of using ASCII character set for global communication: • ASCII is a 7-bit character set so can include at most 128 different characters • These 128 characters represent mainly just the Latin alphabet • And so this means that the characters of many other alphabets/languages cannot be represented. Advantages of using hexadecimal over binary: • Hexadecimal is easier (for humans) to read than binary • Hexadecimal is easier to convert to binary than denary. • Numbers are displayed in a more compact way in hexadecimal than in binary. • It is quicker to type in hexadecimal numbers than binary numbers • Less memory is also used to store hexadecimal than binary. • Easier to remember as they are shorter.

3.1.1: Data and Information - Data definition - Information definition

Data can consist of facts or statistics out of the context and used for analysis. It can be numbers, characters, symbols or images that are processed by a computer. Information can be a sentence of words, a sequence of number or a series of images that have been put into a context, which is what gives the data meaning.

3.1.14 Use of external code sources - What are they - Advantages - Disadvantages

External code sources are sources that are not designed specifically by a user, but has a generic purpose. These can be free or even cost money. The advantages of using external code sources: • The programmer may not have the expertise to develop that particular piece of code themselves. • It could speed up the development of their own projects by reducing the amount of developing and testing that developers would have to complete. • The libraries could be updated by an external body (to more efficient code for instance) thereby increasing the efficiency of the developers' own code. The disadvantages of using external code sources: • Relying on the correctness of someone else's program takes control away from the developer. • You may need to become familiar with how to use the external code source (the API). • The external code source may cost money to use. • There is a risk of shoe-horning the project if the external code sources do not do exactly what the developer would like them to.

3.1.8.2 Hardware - Definition - 6 components - Developements (Smartphones) - Input and output devices

Hardware is the machines, wiring, and other physical components of a computer or other electronic system. The fundamental pieces of hardware required to make a functioning computer system are stated below: * CPU: The 'central processing unit' undertakes instructions it receives from programs in what is called a cycle. * Motherboard: This links the CPU to the memory and other hardware. * Graphics Card: They contain a processor like the CPU and can be used to process the graphic portion of the processing load. * Hard Drive: This store the majority of your data. The hard drive unit houses the hard disk, where the data is physically stored. * ROM (read only memory): ROM is non-volatile. The computer's BIOS/ Initial instructions/bootstrapping instructions are stored in the non-volatile memory in a computer's main memory. * RAM (random access memory): RAM is volatile. When a program is opened, it gets loaded from the hard drive into the RAM, because reading data from RAM is much quicker, making the program's use quicker. It is important that you know how developments in different hardware technologies (including memory and processor) are leading to exciting innovative products being created, like in the mobile and gaming industries. Generally, the size of the hardware is decreasing, allowing them to fit inside smaller cases. This means that phones, tablets and games consoles can use hardware that is almost as powerful as home computers. Developments in hardware have made smart phones possible include: * More power efficient processors * Smaller form memory * Solid state memory * Affordable touchscreens In all computer systems there are also input and output devices. These are essential for computer systems to work well with a user.

3.1.16 The use of computer technology in science - Role of social media - Medical - Devices - Software applications - Ethical issues - Divide

Our lives are fully integrated into a computer science world of mobile devices, tablet computers, desktops and laptop computers. Every day social media is changing the way we communicate and interact. It even plays an important motivational role in getting people involved in political and social debates. The advances in technology have also revolutionised medical treatments, and microprocessors can now even be used to control artificial limbs. Most devices are becoming web enabled, which means that they are connected to each other by the internet. Even software applications are becoming cloud based. The growth has led to many benefits and drawbacks including ethical issues and digital divide. Ethical issues of advances in technology: • Stealing software • Plagiarising • Making illegal or unethical use of ICT facilities • Damaging, destroying, stealing and illegally using ICT facilities and files that belong to others. • Cyberbullying • Hacking • Piracy The term digital divide is the gap between people who can access technology and people who cannot. This could be as simple as a person being able to buy things cheaper online than someone without the technology but also refer to countries that have no easy access to the internet and all it offers in terms of education and knowledge.

3.1.4: Procedures and functions - Definitions of both - Definitions of each - Two types of functions - Reasons programmers use these (9) - Parameter and return value

Procedure and functions are subroutines that feature in all programming languages. They are named blocks of code that can be used and re-used to perform specific tasks. Their purpose is to allow the repetition of certain sections of a program or calculation many times. A procedure is a block of code that performs a task without returning a value. A function is very similar to a procedure except that it returns a value. There are two types of functions; * User-defined functions are created by the user for a program. * Built-in functions are part of the programming language. Built-in functions are very useful and save a lot of effort in writing code to preform common tasks. Reasons why programmers use functions and procedures: It reduces repetition of code; It is easier to test; It is easier to maintain/update the program; It makes code more reusable; It reduces error It makes code more elegant/understandable; It makes it easier for code to be developed in teams/Sharing It allows use of pre-written routines; It can speed up development time; A parameter is used in a subroutine to refer to one of the pieces of data provided as input to the subroutine. It therefore allows the passing of values to the procedure or function for use inside it. A return value is the information that comes back from the actions performed from the subroutine.

3.1.3: Program Flow Control - Definition - Advantages (3) - Representing through flow charts (Shapes) - Representing through algorithms

Program flow control can be defined simply as the order in which a program is executed Advantage of using it when designing programs *It decreases the complexity of the task at hand, as everything is completed in a logical manner and so the program should take less time to code *This logical structure also means that the code has increased clarity and so faults can be recognised quicker and more easily *It also means that many programmer can work on one program, as the structure has already been planned and is fairly standards. This also means in an increase in productivity. Representing structure: Flow charts can be used to plan programs and represent structure The four main symbols used in making flow charts are shown below: Start oval : Shows start of a process and has only one output Rectangle : Process. Must have one input and one output Diamond : Decision. Represents a question with only two answers so it is always a boolean value. Must have one input and two outputs. End oval : Opposite of start symbol, must have one input. Representing through algorithms: On the other hand, algorithms can also be used. An algorithm is a series of instructions that solves a problem in a finite number of steps that always ends. The basic building blocks of coded solution are sequencing, selection and iteration. They are explained below: * A sequence is a set of instructions acting in order, meaning that each action follows the previous action. * A selection control structure involves a choice. Usually, a program's execution path is determined by statements. * An iteration control structure involves repeating actions. It involves a statement that is executed in a loop until its criteria are met.

3.1.15 Database concepts - What are relational databases - Possible situations where a text file is better - Features of relational databases (field, FK, Index, PK, record, relationship, column, search criteria)

Relational databases consist of more than one table that are linked using key fields. A relational database has three main components; a store, a method of creating and retrieving data, and a method of ensuring that the data is logically consistent. Flatfile: Whereas a relational database uses multiple tables, a flatfile database contains all of its information in one place. Example would be a spreadsheet. Normalisation: Process of creating related tables in a database. Its purpose is to group related fields into tables. Tables will be connected using primary and foreign keys. Possible situations when a text file would be a better choice than a relational database: • When the data can be edited by users • When the data to be stored does not need the overhead of a relational database. • Could save memory space if data is not large. The tables of a relational database have the following features: • Field: It is the smallest piece of information that can be retrieved from a database and it is at the intersection of a row and a column in a database table. • Foreign Key: The foreign key is a column identified to establish a connection between the data in two tables. In the context of relational databases, a foreign key is a field (or collection of fields) in one table that uniquely identifies a row of another table • Index: used to speed up searches • Primary Key: uniquely identifies a row of data • Record: a row of data within a table • Relationship: links between tables • Column: A column within a table contains all the information of a single type. • Search Criteria: In databases you use search criteria to find records, using logical operators if there is more than one part to the criteria.

3.1.5: Scope - Definition of scope - Types of scope - Types of variables

Scope is the area in the code where a variable can only be accessed and changed. Trying to access a variable in other parts of the code that do not fall in this area will not work. There are two types of scopes. Local scope which is within a function, and global scope which is anywhere in the program. The different types of scopes mean there are two different types of variables. These are local variables and global variables. The scope of a local variable is the procedure in which it is declared. The scope of a global variable is the whole program.

3.1.8.5 Secondary Storage - Definition - 2 Examples of three types - Descriptions of each - Advantages of Solid state media over Magnetic Media:

Secondary storage is non-volatile memory that is used to store large amount of data permanently. It is also known as auxiliary/external memory. Example are: • Flash memory o Solid State Memory o USB Memory sticks • Optical media o CDs o DVDs • Magnetic media o Hard disk drives o Floppy disks How do they store data? Optical media: - Store binary data as microscopic variations in the height of the discs surface: pits and lands - To read the data an infrared laser is beamed through the CD's material. - The light that bounces off the mirror-like reflective backing is then measured. - Because pits and lands pass different amounts of light, an opto-electric sensor can read the stamped pattern by detecting fluctuations in the reflected beam as the laser scans the groove. - - - These measurements can then be translated back into the original ones and zeros. Magnetic Media: Magnetic storage media and devices store data in the form of tiny magnetised dots. These dots are created, read and erased using magnetic fields created by very tiny electromagnets. In the case of magnetic tape the dots are arranged along the length of a long plastic strip which has been coated with a magnetisable layer (audio and video tapes use a similar technology).In the case of magnetic discs (e.g. floppy disc or hard-drive), the dots are arranged in circles on the surface of a plastic, metal or glass disc that has a magnetisable coating. Solid State: Flash memory is solid. There are no moving parts. A SSD uses microscopic electronic switches to store data. Millions of transistors are either on or off and remain so as long as electricity is applied to the system. SSDs use switches called floating gate transistors. These create a special cage (the gate) that traps the electron flow within it. This gate effect continues whether there is electricity in the system or not, and so storage remains when the power is removed. Advantages of Solid state media over Magnetic Media: No mechanical parts: Mechanical parts do not function during movement and are less robust during movement. Speed of read access higher in solid state drives. Data can often be read more quickly from solid state media than magnetic media. Solid state media can be more compact than magnetic media. The smaller size enables better mobility The battery will last longer. Solid state media uses less power. Less heat generated when using solid state. Utilising the power more efficiently//allows for more miniaturisation. Solid state is silent. Makes it more attractive to use

3.1.13.2 Web application concepts - Server side programming definition - Client side programming definition - Server side programming details - Client side programming details

Server-side programming is writing code that runs on the server, using languages supported by the server (such as Java, PHP, C#; it is possible to write code that executes on the server-side in JavaScript). Client-side programming is writing code that will run on the client, and is done in languages that can be executed by the browser, such as JavaScript Server-side programming: • Retrieving data from a database. • Populating a page with the latest details. • Checking username and password. • Some forms of validation. • Counting how many people have visited a site. Client-side programming: • Validation rules • Flash games • Cookies • Advertising • Responsive design

3.1.13.1 Client server - What is it - What is a protocal - Handshake

The client-server model is the structure of a computer network in which many clients request and receive services from a centralised server. For computers to work together they have to use protocols. A protocol is a set of rules which governs the transfer of data between computers. When two computers first connect in a network they use a handshake. Handshaking establishes which protocols to use and controls the flow of data between the two or more connected computers. Handshaking process: 1. A request to connect is sent. 2. A connection is granted 3. Protocol parameters are greed. Differences between stand alone and client-server applications Stand alone applications: - Data stored locally (disk or main memory) - No network connection to manage - Single user - Used as needed can be closed between uses - Modular structure less important - Local access rights on host PC is sufficient security Client-sever applications: - Data must be passed between client and server - Must manage a network link and the associated sessions - Multiple clients a server, so must manage a request queues - Must be available all times - Designed and created in modular fashion - Clients have to be authenticated before data is sent to them

3.1.11.1 Prototyping - What is it? - Advantages - Disadvantages

The construction of a simple/incomplete version of the complete program; that demonstrates how the program will work Advantages of prototyping: • It allows the system to be reviewed by the user/client • Developer can compare if the developed software matches the software specification according to which the program should have been built. • Can help find incorrect features or problems • Can help give insight on how to develop • It can offer improvements to the quality and definition of customer requirements and improve the specifications provided to developers. • Making a prototype first often results in faster and less expensive software and less wasted time. • The existence of a prototype enables detailed examination by users, and this prevents the misunderstandings and miscommunications that can occur when each side thinks the other understands what they said. Disadvantages of prototyping: • Prototypes are limited in functionality and may not scale well if they are used as the basis for a final product. • Users can become attached to functionality that was included in a prototype for consideration and then removed from the specification for the final system; this can lead to conflict. • Prototyping is supposed to be carried out quickly. Some developers may try to produce complex prototypes. • Prototyping is expensive. - Prototypes can be converted to final code that is hard to maintain. - Prototypes can be converted to final code of lower quality than a properly analysed solution.

3.1.8.4 Memory - Definition - Volatile memory (example) - Non-volatile memory (example) - ROM - RAM - Why is it important to have enough RAM - Cache memory - Explain why having cache memory can improve the performance of the central processing unit (CPU): - Virtual memory

There are two main categories of chip-based memory: volatile memory and nonvolatile memory. Data and instructions are stored in memory and processed by the CPU in order to produce a desired result or output. Volatile Memory: volatile memory is computer memory that requires a power supply in order to maintain stored data. The moment that the power is turned off the information is lost. The RAM (random access memory) in your computer is a type of volatile memory. The volatile memory cannot store data when the computer device is turned off. Non-volatile Memory: Non-volatile memory is computer memory that retains its information whether the power being supplied to it is turned off or on. An example of non-volatile memory include read only memory (ROM) and flash memory, as well as most types of magnetic hard disks and optical disks. ROM (read only memory): ROM is non-volatile. The computer's BIOS/ Initial instructions/bootstrapping instructions are stored in the non-volatile memory in a computer's main memory. RAM (random access memory): RAM is volatile. When a program is opened, it gets loaded from the hard drive into the RAM, because reading data from RAM is much quicker, making the program's use quicker. Why is it important for computers to have a sufficient amount of RAM? • A large amount of RAM enable more instructions to be loaded from the secondary storage into RAM, so they can be executed by the processor. Cache Memory: Cache memory is the memory closest to the CPU. All the recent instructions are stored in cache memory as it is very fast. A cache memory often has a small access time, whereas the access time from the main memory is larger. Cache memory is very expensive and hence is limited in capacity. Explain why having cache memory can improve the performance of the central processing unit (CPU): • Frequently used data/instructions are stored in the cache • Meaning they don't have to be fetched from main memory. • Therefore data/instructions stored in the cache memory can be accessed faster than data stored in the main memory. Virtual Memory: A section of volatile memory on a storage drive. It is used when RAM is running low, some of the HDD is used as RAM. It is much slower than RAM as it takes up more processing power to move the data around.

3.1.6: Error Handling - Types of errors - Why are logical errors often the most difficult to find? - Ways to detect errors (6)

Types of Errors: There are three types of error that computer programmers encounter when writing software. * Syntax error: They occur when the programmer fails to obey one of the grammar rules of the programming language that they are using. * Run-time error: They occur whenever the program instructs the computer to carry out an operation that is either not designed to do or slow to do. * Logic error: They occur when the program runs successfully but it does not behave in the manner it was designed to. Why are logical errors often the most difficult to find? This is because the program appears to run normally and because it is not obvious where the error has occurred. Ways to detect errors: - Watch (Shows contents on variable relative to current line) - Breakpoints (Breaks code at specified points to test specifically) - Step (Allows programmer to run program line by line) - Syntax colouring - Dry run testing (on pseudocode) - Trace tables (for logic errors)

3.1.2: Data structures (What is it?) (Examples) (Why does it make coding simpler)

What is a data structure? A data structure is a specialized format for organizing and storing data. General data structure types include the array, the file, the record, the table, the tree, and so on. Any data structure is designed to organize data to suit a specific purpose so that it can be accessed and worked with in appropriate ways. Examples of data structures: Array: An array is a series of memory locations which holds a series of items of data. All data in an array must be of the same data type. List: A list is a series of memory location which can hold a series of items of data. All data in an array can be of different data types. Explain why using data structures make coding simpler: A variable holds a single item of data. There may be a situation where lots of variables are needed to hold similar and related data. In this situation, using a data structure can simplify a program by storing all related data under one name. This means that a program can be written to search through the data structure much more quickly than having to write a new line of code for every variable. This reduces the complexity and length of the program which makes it easier to find and debug errors.


Conjuntos de estudio relacionados

Study set Micro Test (Chapters 1-7)

View Set

ACCT 201 Chapter 12 Statement of Cash Flow

View Set

PBS 1 - Emotion - Does affect help or hinder with regard to cognitive processing?

View Set

The psychology that is being investigated in the studies

View Set

Types of insurance policies life

View Set