{ "@context": "https://schema.org", "@type": "Organization", "name": "Brainscape", "url": "https://www.brainscape.com/", "logo": "https://www.brainscape.com/pks/images/cms/public-views/shared/Brainscape-logo-c4e172b280b4616f7fda.svg", "sameAs": [ "https://www.facebook.com/Brainscape", "https://x.com/brainscape", "https://www.linkedin.com/company/brainscape", "https://www.instagram.com/brainscape/", "https://www.tiktok.com/@brainscapeu", "https://www.pinterest.com/brainscape/", "https://www.youtube.com/@BrainscapeNY" ], "contactPoint": { "@type": "ContactPoint", "telephone": "(929) 334-4005", "contactType": "customer service", "availableLanguage": ["English"] }, "founder": { "@type": "Person", "name": "Andrew Cohen" }, "description": "Brainscape’s spaced repetition system is proven to DOUBLE learning results! Find, make, and study flashcards online or in our mobile app. Serious learners only.", "address": { "@type": "PostalAddress", "streetAddress": "159 W 25th St, Ste 517", "addressLocality": "New York", "addressRegion": "NY", "postalCode": "10001", "addressCountry": "USA" } }

Component 1 Flashcards

(114 cards)

1
Q

Describe the disadvantages of using a procedural language to write a program. [4] p

A

-Difficult to maintain for large program
-Low reusability of code
-Poor representation of real-word entities
-Debugging and testing is more difficult

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Identify two components that should be included in program
maintenance documentation, other than annotated listings and algorithms. [2]

A

Variable list
Data dictionary
Class diagram
List of sub routines
Entity Relationship Diagram

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe the disadvantages of using an object-oriented paradigm. [2]

A
  • OOP is difficult and not as ‘logical’ to some developers, it is complex to create application in.
  • Software can become larger – more code - than procedural programs.
  • OOP programs can run slower than PP as there is more code to execute.
  • OOP cannot be used for all types of software application such as machine learning and AI.
  • OOP can be difficult to debug.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Explain the nature of procedural languages [5]

A

Procedural languages are used in traditional programming based on algorithms or a logical step-by-step process for solving a problem
They obey (ordered) instructions
They carry out actions / calculations etc.
A procedural programming language provides the programmer a way to define precisely each step when performing a task
Allows tight control over the underlying operation of the hardware
Used in (large complicated) programs where similar operations may be carried out at varying stages of the program execution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Explain, giving a suitable example, translation error [3]

A

Translation errors occur during the compilation/interpretation of source code into machine code.
Translation errors include syntax errors and logical errors.
Syntax errors occur when there is incorrect syntax or spelling mistakes in the source code.
For example, in Python, forgetting to add a colon at the end of a function will cause a syntax error.
These errors can be mitigated using inbuilt IDE features such as autocomplete and linting.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Describe a queue data structure. [2]

A

A queue data structure operates on the first in first out principle (FIFO) or the last in last out (LILO) principle.
Data items are added at the end of the queue and removed from the front.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explain how RIPA impacts on private data and what measures can be taken to protect this data. [3]

A
  • Internet and communications companies such as internet service providers and mobile telecommunications providers retain customer browsing history for up to one year. This data can be accessed by a range of public bodies including British security services and the police, upon issue of a warrant.
  • Allows the GCHQ, MI6 and MI5 to collect bulk personal datasets including NHS Health Records. When information is bulk collected, it will not only contain information on persons of interest but will also contain information on innocent members of the public.
  • Allows the GCHQ, MI6 and MI5 to carry out equipment interference also known as ‘hacking’ personal digital devices upon issue of a warrant. These devices include personal computers and mobile phones. If there is encryption on the devices the service provider will have to comply in bypassing the device security to access any personal data.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe the purpose of MOD in algorithms. [2]

A

The MOD (modulo) operator is used to find the modulus when one number is divided by another.
The modulus is the integer remainder (right part of a decimal number) after division.
e.g. 9 MOD 2 = 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Describe the types of software tools used to assist in version management. [2]

A

Program version management software is store, record and analyse different stages of code development.
Version of software can be submitted through a VCS (version control system) to an online repository hosting solution to track and record the changes in projects and files.
Version management software is useful when multiple developers are working on a single project, it ensures one develop does not overwrite another developers code.
Version management software can also be used to roll-back software if a program becomes corrupt during the development process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Using examples describe the differences between translation and execution errors. [4]

A

Translation errors – usually identified by a compiler where the
instructions given cannot be translated to machine code due errors.
Syntax error
e.g. IF without ENDIF or punctuation error or spelling error if correct words given
Linking error
e.g. calling a standard function where the correct library has not been linked to the program
Semantic Error
e.g. Variable declared illegally

Runtime errors – Even though a program will compile and execute it could unexpectedly crash or produce incorrect results.
Logical error
e.g. division by 0 or use of incorrect logical/comparative operator
File handling e.g. When an attempt is made to write to a file that does not exist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explain how current legislation impacts on freedom of information. [4]

A

The FOIA gives individuals the right to request information from public authorities.
Public authorities include government departments, local authorities, and the National Health Service (NHS).
The FOIA sets out a process for requesting information, including a requirement for public authorities to respond within 20 working days.
There are exemptions to the FOIA, such as information that would threaten national security or breach someone’s privacy.
Failure to comply with FOIA can result in legal action and fines, and imprisonment for individuals who destroy or fail to disclose information.
Transparency and accountability of the act should increase the openness and accountability of government authorities
Information Commissioner’s Office (ICO) plays a crucial role in ensuring compliance, providing guidance and handling complaints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Explain why a compiled program takes more time to debug than an interpreted one. [2]

A

Errors are reported after compilation has finished.
One error may cause many related/spurious errors
Recompiling after fixing an error adds time to the process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Explain the characteristics of a hash table data structure. [4]

A

A hash table stores data using a key/value pair.
A hashing algorithm is used to generate a key to identify at which location the data can be stored.
The MOD operation is commonly used in a hashing algorithm to generate the key.
Data can be retrieved using the key to return the value.
If the hashing algorithm generates a key that is already present in the hash table problems can occur such as data collision.
One solution would be to use separate chaining where a linked list is used to store values of the same key.
Overall table linked list
Separate chaining could slow the down the overall retrieval of data.
Linear probing is another solution that could be used to store the data in the next available location and assign a new key.
A good hashing algorithm distributes keys uniformly across the hash table to avoid collision.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Describe two advantages of non-recursive sorting algorithms. [2]

A

Non-recursive algorithms are useful when a data structure is fixed in size like an array.
Non-recursion can reduce time complexity in sorting algorithms if implemented efficiently.
Non-recursive solutions require less memory than recursive solutions reducing the demand on resources.
Non-recursive solutions are easier to write.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Explain, giving a suitable example, execution error [3]

A

Execution errors occur when a program is running and cause unexpected results.
Execution errors include runtime errors and system errors.
Runtime errors occur when the program is running, and an unhandled exception occurs.
For example, if a program tries to divide a number by zero, it will crash or display an error message,
These errors can be mitigated using erroring handling such as try catch blocks and testing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Describe pre-order traversal and give an example of how it could be used in a file system. [3]

A

Pre-order traversal is applied by visiting the root first, then left subtree and finally the right subtree. This method could be used to create a copy files in the file system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Giving examples, explain the term data compression and describe how data compression algorithms are used. [6]

A

Data compression is reducing the amount of memory a file uses.
The level of file compression is measured using a compression ratio. A compression ratio is the size of the compressed file divided by the original file size.
Compression algorithms are used to employ different methods to reduce file size depending on the type of file.
There a two main types of file compression algorithms lossy and lossless.
Lossy compression algorithms reduce a file size but some data is lost during this process and cannot be retrieved.
Lossless compression algorithms reduce a files size without the loss of any data and the original file can be retrieved.
JPEG is a lossy compression method for images.
PNG is a lossless compression method for images.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Identify the main objectives of the optimisation process. [4]

A

Achieve the required output of the program.
Increase the speed of the program
Decrease demand on resources.
Not delay the overall compilation process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Describe four procedures for backing up data giving reasons why they are used. [8]

A

External hard drive or memory sticks can be used to store back-up files through copying and pasting.
This method is useful of backing up small personal data such as documents and photos. Data can be overwritten with new backups.

CD / DVD can be used to store back-up files but are limited to the amount of space that is available. This method of back-up can be used for archiving data due to its read-only nature. Can be used for archiving files and documents.

Magnetic tapes can be used to store and routinely back-up network data. This method is used for backing up user network data and shared data including roaming profiles and intranet services.

A dedicated back-up server could be used to either mirror a main storage server or routinely back-up network data.

Cloud storage solutions can be used to routinely back-up data online and allows for synchronous version management of online files. This method for backup can be used to back up personal files that need to be access from many different devices.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Describe the use of alpha testing. [2]

A

Conducted in-house by developers and occurs before the customer agrees to accept the final program.
Alpha builds are not shared with either the end user or with the customer.
Alpha builds are not final piece of software and often include limited functionality and many bugs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Explain the purpose of procedures in algorithms. [4]

A

Algorithms/programs can be broken down in to smaller parts.
These are named reusable pieces of code that can be called any number of times within an algorithm/program to perform a specific task.
Procedures are used to avoid the duplication of code.
Procedures are used to make an algorithm/program more efficient and secure.
Each procedure can be individually tested / debugged

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Explain the need for a design review. [2] e

A

A design review checks that every element of the design meets the original specification
It ensures the requirements, performance, robustness, cost and usability are fully addressed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Describe the advantages of using a visual paradigm. [2] p

A

*It provides a graphical interface that is often more intuitive and easier to understand
*Allows rapid development by dragging and dropping components, speeding up prototyping

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Describe the use of acceptance testing. [2]

A

Acceptance testing occurs is the final phase of testing during the software development life cycle.
Acceptance testing is undertaken by the actual end users of the system with real data.
The purpose of acceptance testing is to ensure the system has met the original requirements and specifications of the customer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Describe appropriate diagrammatic methods to show the flow of data and information processing in a system. [4]
Data Flow Diagrams are a graphical representation of the flow of data through a system. Data flow Diagrams use symbols and other notation to show how data moves from one process to another and how that date is stored. Flow charts are a graphical representation of a process or algorithm, including the flow of data. Flow charts use various symbols to show the different steps and decisions in a process and also shows the movement of data through the process. UML is a diagrammatic visual language used to model software systems. UML includes diagrams such as activity diagrams and sequence to show how data flows through a system.
26
Describe agile approach to analysis and design. [4]
Incremental approach to development Developers start with a simple project design and requirements. Iterative approach as analysis and design relies on each other. Analysis informs design and the design informs further analysis to be undertaken. Changes can be made after each phase of development, analysis can be revisited, and designs changed. Strong communication between the client and the developer should be regular Clients are involved during all stages of development.
27
Describe a tree data structure. [5] p
A tree is hierarchical data structure consisting of nodes The topmost node is called the root node Each node can have from 0, 1 or 2 children They are used for efficient searching and sorting They take up more memory than an array as each node consists of the data itself and than up to two pointers to its children
28
Explain the purpose of verification. [1]
Verification is a means of checking to see if the data being entered is consistent. Verification reduces the chance of incorrect data being entered into a system.
29
Describe how a system could handle data for two items which hash to the same disk address. [2]
Use progressive overflow, if the location is occupied use the next available location if the end of the file is reached wrap around and start searching from the beginning again. OR Flag original block and move data into designated overflow area for subsequent linear search
30
Describe the most efficient way to traverse a binary tree when searching. [3]
The most suitable way to traverse the tree is inorder. Inorder traversal starts with the left subtree nodes being visited first. Then visit the root node and finally the right subtree nodes. Inorder allows every node to be visited in sorted order.
31
Identify two methods that can be used to investigate existing systems, other than observations and documentation inspection [2] p
Questionnaires Interviews
32
Describe the processes carried out during syntax analysis. [2]
Tokens are checked to see if they match the spelling and grammar expected, using standard language definitions. This is done by parsing each token to determine if it uses the correct syntax for the programming language. If syntax errors are found, error messages are produced
33
Describe the types of software tools used to assist in system testing. [2]
Quality assurance / control software to test that a solution conforms to internal and external standards. Test environments can be used to test the portability of software on different platforms such as Linux and Windows. Version control repository can be used to report, monitor and analyse code errors, defects and bugs. Built-in automated testing features within IDEs, such as breakpoints, to generate unit and system performance testing.
34
Describe one method of defining algorithms. [2]
Flow charts can be used to define algorithms. Flow charts are a diagrammatic visualisation of the inputs, outputs and processes completed by an algorithm. Pseudocode can be used define algorithms. Pseudocode is a generic programming language than cannot be translated int to machine code but can be are interpretable by a developer. Structured English can be used to define algorithms. Structured English breaks down compiled algorithm into simple English words to help show a step-by-step solution.
35
Explain how Human Rights Act impacts on private data and what measures can be taken to protect this data. [1]
Right to a private and family life.
36
Describe one situation that would require the use of a low-level language. [2]
Device drivers - low level language must be used to directly access memory addresses to fully control hardware. Embedded software – software that runs on simple devices using simple microprocessors such as washing machines and microwaves will need direct access to the hardware Real-time software – simulators or fly-by-wire systems that require precise processing, timings or accuracy could potential benefit from using a low-level language. Assembly language can produce more compact code which can be important when placing on a chip.
37
Describe post-order traversal and give an example of how it could be used in a file system. [3]
Applied by visiting the left subtree first, then right subtree and finally the root. This method could be used to delete all files in the file system.
38
Describe truncation and rounding [2]
Rounding. The result is given to the nearest value Truncation. The approximation of a numeric data item by ignoring all information beyond a given number of significant figures.
39
Describe one situation that would require the use of a high-level language. [2] p
Large applications - abstraction and libraries reduce development times and errors
40
Explain when a reference parameter is preferable to a value parameter. [2] p
Reference parameter is used when you want a subprogram to modify the original variable Or when passing large data structures to avoid the overhead of copying
41
Discuss the possible effects of computers on the nature of employment in the computing industry and wider society. [12]
* Computers now are commonplace in most if not every workplace. Employers now require basic computer skills in almost every job. * With the growth of computing many people have had to acquire new skills to meet the use of technology in the workplace and employment. * Computers are much more cost effective in the workplace. * Skills can be learnt instantly by a computer unlike with a human where skills would need to be trained and developed over a period of time. * Computers are more accurate than humans and could operate with greater precision. * Computers also do not require holidays, breaks and time off and can technically work 24/7. * Robotics has become one of the most widely used aspects of computers in the workplaces. * Robotics are now used in nearly every stage of manufacture such as the car making industry. * The impact this has had is that now manufacturing companies will employ less people to perform jobs than can be easily replicated by robots and computers. * This has led to a redundant workforce in many areas of the workplace. * In addition to manufacturing, less skilled general work such as typists and security have now been replaced with digital technology. * Email has impacted greatly on postal services with the numbers of physical letters being sent reduced significantly leading to further job loss. * However, as the use of computers for repetitive jobs has grown in industry this has meant that people now seek more creative and alternative career paths. * Computers have created a vast industry where there are many job opportunities * Network managers, web developers, software engineers, social media managers for example. * Employees can now work from home more easily allowing for more flexible working patterns.
42
Explain the purpose of a feasibility study. [4]
A study leading to a preliminary report to the end user to advise on Technical practicality Cost effectiveness Time scale Budget To provide information required to support a decision to proceed.
43
Describe Waterfall approach to analysis and design. [4]
Sequential process Developers draft the design of a system up front and it does not change. Once the analysis and design stages are complete, developers cannot go back to a to make any changes. If the analysis or design of the project are inaccurate or incorrect in any way, the project will fail due to the rigidness of the waterfall methodology. Requires less communication between the client and the developer. Client input is only required during analysis and at times the design stage.
44
Explain why it will be important to analyse these requirements using decomposition and abstraction. [6]
Decomposition is the process of breaking a complex problem (requirements / application) down into smaller subproblems. These subproblems are easier to manage throughout the entire software development process. If a complex problem is not decomposed the project will be too difficult to solve and become unmanageable. If a problem is too complex it is prone to errors, bugs and going over its initial costs. An example of a subproblem would be 'To design and develop the back-end database'. Abstraction is the process of ignoring or removing specific information and data to allow developers to focus on the important details of a specific subproblem. Abstraction allows developers to think about a problem in more general terms. This allows developers to identify common solutions to the general problem they have abstracted If a problem is not abstracted the solution can become unnecessarily complicated. An example of abstraction would be identifying "to allow customers to find products.'' as a common searching problem
45
Identify two methods that can be used to investigate existing systems, other than questionnaires and interviews [2]
Observation of a sample of operators as they use the current system. Document inspection, including business documents, user manuals and maintenance records.
46
Explain at which stage of the development each piece of documentation would be produced. [13] e
Feasibility study TELOS report Analysis System Requirement Specification DFDs Data Dictionaries Variable Lists Design System Designs Hardware/Software Specifications Test Scripts Implementation Coded Annotations Technical Documentation Testing Testing Data Change-Over User Documentation Maintenance System Evaluation
47
Explain, with reference to classes, the concept of inheritance. [4]
Inheritance enables new objects to take on the properties of existing objects. A superclass is used as the basis for inheritance. A class that inherits from a superclass is called a subclass. Inheritance defines relationships between classes and organises classes into groups. Inheritance enables classes that are similar to existing classes to be created by indicating differences (rather that starting again) and thereby allows code to be organised and re-used effectively
48
Describe the processes carried out during the lexical analysis. [2]
Comments and unneeded spaces are removed Keywords, constants and identifiers are replaced by 'tokens' A symbol table is created which holds the addresses of variables, labels and subroutines
49
Explain the purpose, and give examples of, programming paradigms. [6]
A programming paradigm is the structure and approach of a programming language. The are many different types of programming paradigms all of which are aimed at solving different programming problems. Procedural programming languages are executed sequentially and are composed a series of programming commands and constructs executed on after the other. Procedural programming is an imperative language as the programmer controls the flow and state of the computer programming. These programming languages include sequence commands such as PRINT and INPUT and sections and iteration constructs such as IF and WHILE. Procedural languages are usually employed when implementing algorithms as they are programmed linearly, they are not suitable for GUI based problems given the event driven nature of these applications. Procedural programming is very easy to learn and implement although it not very suitable for complex problems. Examples of procedural programming languages are C and Pascal. Event-Driven programming is a form of object-orientated programming which contain objects such as buttons, combo boxes and list boxes to create a GUI. Event-driven programming uses event listeners to listen for events such a Click or Hover Over to which code can be attached and executes when a specific event occurs. OOP event-driven programming is very effective when an application needs a rapid development of a GUI. Some languages are known as multi-paradigm languages and are highly versatile and can be used in many different ways e.g. Python. Different programming languages use a variety of different translators to convert programming code into machine code.
50
Explain the ambiguities in natural language syntax compared with computer language syntax. [8]
Natural language can be defined as the spoken and written words humans use to communicate with one and other. In natural language words can be ambiguous, one word can have more than one meaning. An example of an ambiguous word in English is 'break'. Computer language syntax can be defined as the set of rules that program statements must follow. High-level computer language syntax must be unambiguous. Each program statement must have a specific purpose. If there was ambiguity in computer language syntax it would be impossible to translate into machine code. An example would be the statement 'break'. The break statement must force the program leave a construct and nothing else.
51
Describe the effect of the use of a selection construct. [2]
A selection construct will use a logical condition to determine which line of code is to be processed next. If the condition is true then action 1 will be carried out. If the condition is false then action 2 will be carried out.
52
Describe the disadvantages of using a mark-up paradigm. [2] p
*Not suitable for complex logic or computation *Can become verbose and hard to manage in large documents (without proper organisation)
53
Describe the advantages of using a procedural language to write a program based on an algorithm. [4]
-Supports a logical step-by-step process. -Allows the programmer to define precisely each step when performing a task. -Provides close control over the underlying operation of the hardware -Enables similar operations may be carried out at varying stages of the program execution
54
Discuss the importance of promoting professional behaviour given the social changes that have occurred as a result of developments in computing and computer use. [12]
The amount of internet-enabled devices has increased exponentially over the last 10 years. These devices have allowed people to be more connected than ever. People are now connect to each other 24 hours 7 days a week. With this increase more social software applications have been developed including image sharing sites, micro-blogging, dating services and social networks. With the growth of online social interaction has come a growth of online anonymity which has resulted in negative communications such as cyber bullying and trolling. Many social applications profit from user data and advertising. Many services own the content that is uploaded or shared by its users. This makes a users digital footprint (online activity) hard to maintain, track and control. There have been many reports of users who have shared negative content years ago which resurfaces and causes problems in their modern day life. It is important to that users remain professional and polite at all times when communicating through social software applications as they may not know the long lasting impacts of the content they share. Many employers are reported to research potential employees on social and profession networks to get an overview of their online identity. Many businesses now have professional codes of conduct. These codes of conduct outline the acceptable workplace and ethical standards to which employees must abide when communicating and sharing content online. Each employee agrees to act according to the clear guidelines outlines in a code of conduct usually by signing a formal contract or even by accepting the job. If an employee breaks a code of conduct, then action can be taken against them for breaching this contract. Disciplinary proceedings and policies are usually clearly laid out within a code of conduct which outline what action is taken in a breach. Sharing or creating negative/extreme content online can result in an employee dissimal. A person can also face up to two years imprisonment by committing offences outlined in the Malicious Communications Act (1988) if the content they share or create is: * Grossly offensive * A threat * False and known or believed to be false by the sender.
55
Explain how current computer security legislation protects businesses, individual users and national security. [8]
There is different legislation designed to protect computer security including the Computer Misuse Act (1990). The Computer Misuse Act (1990) protects both individuals, businesses and national security. The Computer Misuse Act (1990) legislation protects against unauthorised access to computer material. Unauthorised access to computer systems with an intent to commit further offences. Unauthorised acts with intent to impair or damage the operation of computer systems. The maximum sentence for committing a Computer Misuse Act (1990) offence against business and individuals is 14 years imprisonment. If a Computer Misuse Act (1990) offence is a threat to national security a sentence of lifetime imprisonment can be imposed. The Investigatory Powers Act (2016) allows the government to intercept, monitor and record digital communications to protect national security or against serious crime. These communications can be through mobile telecommunications, user browser history / ISPs data and health records etc. The Investigatory Powers Act (2016) allows government security services (GCHQ, MI5 and MI6) to preform equipment interference (hacking) to protect national security. The Data Protection Act 2018 mandates for secure storage of personal and private data
56
Describe the nature of corrective maintenance. [1] p
To fix faults in a system in use. Making changes to correct bugs or errors that are discovered after the system has been deployed.
57
Describe the nature and use of two types of system maintenance, other than corrective. [4]
Perfective maintenance – to improve a system in use, Making improvements that are not major enough to justify a new system. Adaptive maintenance – to change a system in use. Making changes to suit revised working requirements / OS versions / new hardware
58
Discuss the methods of changeover that could be used in a new computer system implementation. [6]
* When implementing a new solution there are various methods of changeover that can be employed including direct, pilot, phased and parallel. * Direct changeover is the simplest but most risky method of changeover. This method should only be employed where there is not an existing system already in place. * New systems always come with a variety of problems including bug and compatibility issues and directly changing to a new system could have a significant impact on business and productivity if these issues occur. * Pilot changeover is usually employed when a business has the required amount of resources to effectively test a new system by deploying it into one area for example, a new stock management system in one of a company’s many warehouses. * This method allows bugs and other issues to be confined to just one area and when fixed the system can be rolled out on a much larger scale. * Phased changeover is used when a system can be deployed in units or modules. This works well when parts of a new system are being developed independently and upgrading an existing system. * When each module is implemented into an existing system many compatibility issues can occur between the new systems modules and the existing system. * Parallel changeover is used when there can be opportunity for a system to fail. Phased changeover implements a new system alongside an existing system and if one fails the other takes over. * System tasks are run concurrently on both the new system and the existing causing a duplication of tasks. These tasks can be used to ensure consistency between the new and existing systems. * Parallel changeover is employed for critical systems such as those in hospitals and banks where data access and integrity is critical.
59
Giving an example, describe the characteristics of a recursive sorting algorithm. [4]
A recursive algorithm calls itself using a parameter and has a stopping condition. e.g. quicksort.
60
Explain how Data Protection Act impacts on private data and what measures can be taken to protect this data. [8]
* Personal data shall be processed fairly and lawfully. * Personal data shall be obtained only for one or more specified and lawful purposes, and shall not be further processed in any manner incompatible with that purpose or those purposes. * Personal data shall be adequate, relevant and not excessive in relation to the purpose or purposes for which they are processed. * Personal data shall be accurate and, where necessary, kept up to date. * Personal data processed for any purpose or purposes shall not be kept for longer than is necessary for that purpose or those purposes. * Personal data shall be processed in accordance with the rights of data subjects under this DPA. * Appropriate technical and organisational measures shall be taken against unauthorised or unlawful processing of personal data and against accidental loss or destruction of, or damage to, personal data. * Personal data shall not be transferred to a country or territory outside the EU unless that country or territory ensures an adequate level of protection for the rights and freedoms of data subjects in relation to the processing of personal data.
61
Describe the advantages of using a mark-up paradigm. [2] p
*Useful for structuring content and data (for webpages, documents etc.) *Separates content from presentation improving maintainability
62
Explain, with reference to repetition constructs, what is meant by the term nested. [2] p
Nesting is when one repetition statement is contained by another one. This is often used when processing n dimensional arrays.
63
Describe the use of beta testing. [2]
Conducted after alpha testing and later on in the software development life cycle. Beta builds are shared with a limited number of end users to beta test the system with live data. Beta builds contain all the main functionality but will still include some bugs. Bugs reported by the beta testers are corrected by the development team.
64
Explain the use of program version management in software engineering. [8]
Program version management is an approach used to track and save source code throughout the software development process. Program version management tools are commonly integrated into IDEs e.g. Visual Studio. Examples of program version management tools include Git These version management tools create different versions (or commits) of source code to track changes and development. These versions can be stored on a local machine which known as local version control. Or the versions can be stored on a local server which known as centralised version control. Each version can include comments on what has been developed in that particular version and how. Version management tools can also be used to roll-back to a previous version if a program becomes corrupt or an bug is found during the development process. Version management tools also allows code to be reviewed and checked before they committed to a master version. Cloud-based repositories can also be used to provide distributed (cloud-based) version control e.g. GitHub Using cloud-based distributed version control will ensure developers always have access to the most up-to-date versions of the source code. Distributed version control is useful when a software development team are working on different aspects of a single project. Using version control is an essential maintaining quality control and assurance in software development Version control is also essential for tracking bugs and issues in source code.
65
Identify two fundamental concepts of object-oriented programming, other than inheritance. [2]
Abstraction Encapsulation Polymorphism Object Hierarchy
66
Describe what is meant by a class and an object and explain the relationship between them. [4]
A class is a template or blueprint for a specific object. It defines an object’s instance variables (attributes/properties) and behaviour (methods). An object is an instance of a class.
67
Describe the differences between high-level and low-level languages. [4]
High level languages are closer to the semantics of spoken language. Each line of high level language translates in to multiple lines of machine code. Low level languages such as assembly language uses mnemonics. Each line of low level language is translated into one machine code instruction. Identifiers can be long and meaningful They allow use of more powerful commands that perform quite complex tasks Allows the creation of modules that can be re-used and accessed by other parts of the program.
68
Describe the effect and the use of a repetition construct. [2] p
A repetition construct will use a logical condition to determine whether to a block of code should be executed. This block of code will repeatedly execute until a condition is met, like a counter reaches a certain value or an exit condition is met, and then the code following the repetition is executed.
69
Giving suitable examples, describe the typical contents of user documentation. [4]
* User documentation should be straight forward and targeted specially for the end user. * It must contain instructions on how to undertake any task using the system. * It must not contain overly technical information or descriptions and should be user friendly. * It should be an accompanying manual for after the end user has undertaken appropriate training on how to use the system. * Tutorials and step-by-step instructions on how to perform tasks * Referencing manual and glossary * Trouble shooting guide, common errors and problems * Frequently asked questions
70
Describe the types of software tools used to assist in system design. [2]
Using flow chart software or UML software. UX and UI designers use wireframing and mock-up tools for user interfaces and experience. Collaborative code editors could be used to produce pseudocode for review by developers.
71
Define the term algorithm. [2]
An algorithm is a sequential solution To solve a specific problem
72
Describe the advantages of using an object-oriented paradigm. [2]
* Improved productivity when developing software due to the flexible and extendable nature of OOP. * Software is easier to maintain as OOP is modular and reusable. * Development is cheaper. * Development is faster due the reusable code and libraries. * Software can be tested more easily making it more high quality. * Software is easier to design as model the real world.
73
Describe the social and economic changes occurring as a result of developments in computing and computer use, and their moral, ethical, legal, and cultural consequences. [8]
* Computers are prevalent in almost all industries. * Computers have created a massive industry of their own increasing the demand for computing professionals. * Many manufacturing businesses now employ computing equipment not only to manage information but in production through they use of automated systems such as robotics. * Computer have replaced many factory and repetitive jobs in recent years. * This has allowed a massive increase in people pursuing more creative or innovation career paths. * Computers can be less expensive that traditional workers whereby the production and manufacturing costs are decreased increasing profit. * Computers tend to be more accurate and reliable and reduces the chance of human error. * Many jobs have disappeared all together due to computers causing unemployment. * Learning computers for some generations can be difficult and re-training can be impossible. * Many new computer systems or digital solutions can be extremely expensive to design and implement. * Many jobs have been created in the wider industry due to computers many within the internet sector. * These can include jobs in e-commerce and digital marketing.
74
Describe ambiguity and explain why high level programming languages must be unambiguous. [3]
Ambiguity is an uncertainty of meaning in which different interpretations are possible. High level programming languages must be unambiguous so that there is only one way to interpret each program statement and therefore enable accurate translation into machine code.
75
Explain the use of sequence algorithms. [2]
Sequencing is where one line of code is executed one after the other. Sequencing is used in both procedural programming and object-orientated programming.
76
Describe a stack data structure. [5]
A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) / first-in last-out (FILO) principle. It is a limited access data structure - elements can be added and removed from the stack only at the top push adds an item to the top of the stack, pop removes the item from the top. A stack can be used as a recursive data structure. A stack is either empty or it consists of a top and the rest which is a stack Underflow occurs when an attempt is made to pop an empty stack / overflow occurs when an attempt is made to add to a full stack
77
Explain what is meant by parameter passing by value. [2]
Call by value is where a value is passed via a parameter into a subroutine and a copy of the value is created for the duration of the subroutine call. This ensures that the original value passed to the subroutine cannot be changed.
78
Explain the purpose of validation. [1]
Validation is the process of checking if the data entered is sensible in the context in which it is being used. Validation reduces the possibility of entering invalid data into a system
79
Identify IDE tools used in debugging programs [4] e
Break Points Variable Watch Error Diagnostics Stepping Through
80
Explain the characteristics of a linked list data structure. [4]
A linked list is a dynamic data structure as it can grow and shrink in size after declaration. Each element in a linked list is known as a node, the first element is the head node. Each node consists of the data itself and the address/reference/pointer to the next node. Linked lists do not provide direct or random access to elements which makes them less efficient when searching. Linked lists can be traversed in a sequential manner, starting from the head node, and moving through each node until the end is reached. Linked lists are efficient for inserting and deleting elements at any point in the list / with a time complexity of O (1)
81
Describe two advantages of recursive sorting algorithms. [2] p
Simpler and cleaner to write, making code easier to understand Divide the problem into smaller problems, which can be more efficient and fit naturally with the algorithms logic
82
Identify and explain the nature, use and possible benefits of standard functions, standard modules and user defined subprograms. [13] e
Standard Functions Built-in functions provided by a programming language Performs common operations +Reliable
+No need to redefine basic operations Standard Modules Collections of related standard functions grouped into modules / libraries Provides specialised tools not available as single functions +Often more efficient than custom-built alternatives +Encourages modular design User-Defined subprograms Custom-written blocks of reusable code created by the programmer for specific tasks Used when standard libraries don’t cover the task to encapsulate logic, reduce repetition and improve clarity +Makes code easier to read and maintain +Helps in debugging and testing All of them speed up development time
83
Describe what is meant by code optimisation. [2]
In optimisation, high-level general programming constructs are replaced by codes. The replacement codes are very efficient low-level programming codes.
84
Describe in-order traversal and give an example of how it could be used in a file system. [3]
Applied by visiting the left subtree first, then root and finally the right subtree. This method could be when searching for a file in the file system.
85
Giving one example, describe why annotation is important in programs. [3]
* Allows developers to record the development process and logic with the actual code. * This is important as many developers could be working on the one project and each developer needs to understand the logic between one and others code. * An example would be to demonstrate logic such as: o ‘X DIV 2 //calculate if X is even/odd’ o # Use of print()here o /* Person Class @return String name*/
86
Explain the role of IDEs [4] e
Highlighting keywords Indenting the code Allowing annotation Automatic syntax checking Allows the program to be run without being published
87
Describe the disadvantages of using a visual paradigm. [2] p
*Can become cluttered and hard to manage for large or complex projects *It may be less flexible when it comes to detailed control
88
Explain, with reference to selection constructs, what is meant by the term nested. [2]
Nesting is when one selection statement is contained by another selection construct. If a logical condition is true, action 1 is carried out and then a second selection condition will govern whether action 3 or action 4 should be executed next.
89
Explain how current legislation impacts on data protection. [4]
The Data Protection Act 2018 (DPA) is the UK’s implementation of the General Data Protection Regulation (GDPR). The DPA applies to any organisation or individual that processes personal data, which includes collecting, storing, using, and sharing data. The DPA gives individuals several rights over their personal data, such as the right to access and remove their data. The DPA requires organisations to obtain explicit consent from individuals in certain cases. The DPA also requires organisations to protect personal data against unauthorised or unlawful processing, accidental loss, destruction, or damage. Organisations that fail to comply with the DPA may be subject to fines and legal action.
90
Describe the disadvantages of using an event-driven paradigm. [2] p
*Can become complex and difficult to debug due to many possible event sequences *May lead to unpredictable program flow, making maintenance harder
91
Describe the types of software tools used to assist in system analysis. [2]
Using flow chart software or UML software. These pieces of software allow the developers to produce complete planning and design documents for individual cases such as the end use or another developer. Analysis software tools are also available to be used in requirements engineering and management. This software can be used to record and monitor requirements, use and test cases.
92
Explain what is meant by a shortest path algorithm. [2]
A shortest path algorithm will analyse a weighted network to identify the shortest route between two given vertices or nodes.
93
Describe the advantages of using an event-driven paradigm. [2] p
*Programs respond immediately to user actions or system events, making them interactive *Allows efficient management of multiple inputs or task by triggering specific event handlers
94
Describe different procedures for backing up data. [6] e
Full Complete copy of all (selected) data Typically takes the most the time and storage space Differential Back up files that have changed since the last full backup Larger and slower than incremental however easier to restore Incremental Only files that have changed since the last backup are backed up Faster and requires less storage Restore requires last full back up plus all subsequent incremental backups
95
Describe an array data structure. [5] p
Fixed size Data is of the same type Direct access to elements (via its index) Efficient for accessing and updating elements Less efficient for searching or adding / deleting elements (as has to be redeclared)
96
Giving suitable examples, describe the typical contents of maintenance documentation. [4]
* Maintenance documentation should be technical documentation aimed at the person who manages and configure the software or system. * This could include IT technicians who understands all aspects of the system including the software and hardware used. * pseudocode and annotated listings * Diagrams such as UML * Data structure documents * Algorithm designs including flowcharts * Variable lists * Data dictionaries * Design documents * Installation and configuration instructions and support * Hardware and software requirements
97
Describe what is meant by the term method and explain the relationship between object and method. [2]
A method is a programmed behaviour/subroutine that is included in an object of a class. A method can only access data within its own object (encapsulation).
98
Describe the need for standardisation of computer languages, and the potential difficulties in agreeing and implementing standards. [12] e
Portability - allow code to be easily transferred and run on different systems (without modification) Interoperability - Enables systems and software written by developers or vendors to communicate and work together Maintainability - Ensures programs written today will be understandable and maintainable in the future Vendor interest - companies may resist standards that conflict with their proprietary features (as it could reduce competitive advantage) Rate of technological change - standards may become outdated quickly, requiring constant updates - which takes time and consensus Implementation differences - even with a standard, different compliers and interpreters may implement it slightly differently, leading to inconsistencies or bugs
99
Explain how a hashing algorithm could be used to overcome a problem that would arise if the seven-digit numbers were used as disk addresses. [2]
A suitable hashing algorithm will map component numbers onto a smaller range of addresses, by generating fewer digit address references.
100
Explain when a one-dimensional array is suitable for storing data. [2]
When the dataset comprises of single values of the same data type. For efficient processing of the data e.g. sorting and searching
101
Describe the purpose of DIV in algorithms. [2]
The DIV operator is used to preform integer division. Integer division is used to find the integer quotient (left part of a decimal number) after division. e.g. 9 DIV 2 = 4
102
Describe, giving an example of each, two types of translation error. [4]
Syntax error e.g. IF without ENDIF or punctuation error or spelling error if correct words given Linking error e.g. calling a standard function where the correct library has not been linked to the program Semantic Error e.g. Variable declared illegally
103
Describe the main stages in program production that take place between the investigation of an existing system and the carrying out of acceptance testing. [15]
Analysis, descriptions of; -Abstraction / reduce problem to essential features -Decomposition / top down approach -DFD’s / illustration of data flows Design of, -Data structures / data types / variables and constants -Algorithms / pseudo code / flowcharts of processes -Sub routines -HCI / inputs / outputs. -Test data - typical, extreme and erroneous. -Prototyping Implementation; consideration of -Type and level of language and IDE -Translation method and writing / de-bugging of code Documentation -Description of an ongoing process -User instructions, maintenance manuals Testing, when and by whom -Alpha -Beta
104
Describe the use of compilers and interpreters, distinguishing between them. [6]
Compliers translate high-level language into machine code. The compiler produces a standalone executable file or package. A compiled program can be executed without the need for the complier to be installed on the destination machine. The complied application can be distributed to any machine with the OS it was targeted at, it can be run multiple times. Compiled programs give some form of protection of intellectual property as the source code is not distributed to the destination machine. Compilers target a specific platform e.g. iOS or Windows. Once compiled for this platform the executable can only be run on that platform. Compiled programs cannot be compiled if they have any errors throughout any of the source code. This can be difficult to debug without the use of an IDE. IT software needs to be distributed to more than one OS or architecture it will need to be recompiled and possibly reprogrammed. Examples of compiled languages include Java and C++. Interpreters, unlike, compilers translate one line of high-level source code into machine code line-by-line. Each line of machine code is executed before the next is translated. Each time the program is run the code needs to be interpreted again. For an interpreted application to be run you must have the source code, this mean intellectual property is difficult to manage. If an error is found in an interpreted application, it with crash at that specific line meaning it can be easier to debug. Code can be distributed to machine different OS and platforms as long as they have installed an appropriate interpreter. Examples of interpreted languages include JavaScript and Python. One line of compiled or interpreted high-level source code and be many lines of machine code.
105
Giving one example, describe why self-documenting identifiers are important in programs. [3]
* Allows code to be followed and understood more easily. * Reduces the need for additional documentation to be produced such as additional annotation or software manuals. * An example would be using an appropriate variable name such as: o int VAT=20’. o float f = 23.0 1 o String s=“HelloWorld”
106
Discuss the factors that need to be considered when proposing a new computer system. [6]
* The factors that need to be considered when proposing a new system solution include cost, time scale and budget. * A proposed system should be cost effective, in terms of human resources, finances, technology and time. * A proposed system needs to be effective in terms of human resource costs. The proposed system must not over or under utilise developers. When developing a new system, each developer should be allocated roles and development activities. * These activities should be overseen by a lead developer to ensure that human resources are being fully utilised and cost effective. * A proposed project should be financially cost effective. Developers should research and source the most financially cost-effective methods/resources/technologies when proposing a new system. * Technologies sources including hardware and software should be cost effective. * The system should have a specific time scale for development from inception to evaluation. * The proposed system should follow a suitable development methodology with appropriate and realistic deadlines. * These deadlines should follow a suitable plan to ensure an effective time scale for the project. * The system needs to have a controlled budget. This budget should be managed accordingly to ensure the success and economic viability of the project.
107
Explain what is meant by parameter passing by reference. [2]
Value (address) is passed via a parameter into a subroutine and the original value is passed and used by that subroutine. This is used if any changes made in the subroutine needs to be stored in the original value/variable outside the subroutine.
108
Explain the nature of non-procedural languages [5]
Non-procedural programming languages allow programmers to specify the results they want without specifying how to solve the problem Non-procedural languages are to do with rules / making queries / facts Used in database interrogation where retrieving answers are more important than the exact steps required to calculate the result Artificial intelligence, grammar checking and language translation applications are often written in a non-procedural language
109
Describe difficulties programmers have had to overcome to create a natural language interface for a personal computer, other than ambiguity. [4]
Two words that sound the same (two, to) homonyms Dialect / accents Use of proper nouns Words from other languages in common use Voice patterns
110
Describe one problem that would arise if the seven-digit numbers were used as disk addresses. [1]
Storage space wasted as would need to cater for every possible 7 digit component number.
111
Giving one example, describe why program layout is important in programs. [3]
* Allows blocks of code and constructs to be followed and identified more easily. * A consistent program layout helps improve the quality of the software and allows developers to maintain quality and standards. * An example could be correctly using indentation to identify the start and end of constructs such as: o IF statements o Loop / nested loop structures
112
Explain when a value parameter is preferable to a reference parameter. [1]
Value parameter is used in a calculation within a subprogram when you want to retain the original values
113
Describe the criteria used to evaluate computer-based solutions. [8]
Requirements - evaluate the solution against the original requirements. All requirements should be met for a solution to be successful. Cost – evaluate the solution against costs which include financial costs, human costs and resource costs. A solution must not exceed any negotiated costs to be successful. Robustness - evaluate the solutions against its test results. A solution should use error trapping and validation methods to be successfully robust and reduce the chance of system errors and failures. Usability – evaluate the solution against the ease of use for the end user. A solution should use an intuitive user interface suitable for the end user to be successful. Performance - evaluate the performance of the solution, it should be fully optimised to reduce memory usage. A solution should complete specific task within a given time frame to be successful
114
Describe the processes carried out during semantic analysis. [2]
Variables are checked to ensure that they have been properly declared and used Variables are checked to ensure they are of the correct data type, e.g. float values are not being assigned to integers