Y1 Flashcards
1What is a variable?
A variable is a named container, held by the computer in a memory location
What is variable scope?
The block of code where the variable can be declared, used and modified
What is a local variable?
variable that is given local scope. A local variable reference in the function or block in which it is declared overrides the same variable name in the larger scope
When should you use local variables and when should you use global variables?
If you feel that a certain variable will take multiple values by passing through various functions then use local variables and pass them in function calls. If you feel that a certain variable you need to use will have constant value, then declare it as a global variable
Why do computers use binary to store data?
Easier to manufacture, therefore cheaper and it is more reliable
Examples of ways to store data using binary?
RAM, hard disk, optical disk and flash memory
What is a data structure?
A way of storing and managing data
What is a data type?
A classification that specifies which type of value a variable has and what type of mathematical, relational or logical operations can be applied to it without causing an error
What is an array?
A set of data items of the same type grouped together using a single identifier. Each of the data items or elements are addressed by the variable name eg myArray and an index. It is static - size is fixed when the structure is created/size cannot change at runtime.
What is a dimension?
The dimension of an array is the number of indices needed to select an element. A one-dimensional has one index. A 1D array is like a column of data. A two-dimensional has two indexes, one for the row and another for the column. A 2D array is like a table of data.
What is a list?
Ordered set of data accessed by index, not fixed size
What is a record?
think database, a record comprises multiple, related attributes (fields/columns) of different data types
What is a tuple?
immutable list (cannot be changed)
How do you declare a 1d array pseudocode(first way)?
array names[3]
names[0] = “Ahmad”
names[1] = “Ben”
names[2] = “Catherine”
How do you declare a 1d array pseudocode(second way)?
array names[3] = [“Ahmad”, “Ben”, “Catherine”]
Show the pseudocode for a linear search
array names[6] = [“Dave”, “Richard”, “Astrid”, “Dima”, “Charlie”, “Paul”]
found = false
for i = 0 to names.length - 1
if (names[i] == “Roberto”) then
print(“Found at index “ + i)
found = true
break // stops the for loop
endIf
next i
if (found == false) then
print(“No matching item is found”)
endIf
First way to declare 2d array
array scores[2][2]
scores[0][0] = 14
scores[0][1] = 80
scores[1][0] = 20
Scores[1][1] = 82
Second way to declare 2d array
array scores[2][2] = [[14, 80],[20, 82]]
Example of data that could be stored in a 2d array?
Scores for a class of students for multiple tests
How many elements would be in the array chores[3][3]
9
Pseudocode for bubble sort?
array myNumbers[6]
for (i = 0 to myNumbers.length-2)
swapped = false
for (j = 1 to myNumbers.length-1-i)
if (myNumbers[j-1] > myNumbers[j])
temp = myNumbers[j-1]
myNumbers[j-1] = myNumbers[j]
myNumbers[j] = temp
swapped = true
endif
next j
if (swapped == false) then
break //breaks out of loop
endif
next i
Disadvantages of bubble sort
In standard form, it’s inefficient as it may continue to makes passes even though the list is sorted (this can be overcome by setting a swaps variable – if swaps are made continue, otherwise stop)
Advantages of bubble sort?
Easy to implement
Good for small data sets that are almost sorted
Thinking concurrently?
What can be done at the same time
Thinking abstractly?
Hiding details and identifying and highlighting key elements
Thinking ahead?
What inputs / outputs will you need
Thinking procedurally?
Order of events / subproblems
Thinking logically?
Decisions to be made
Reason for abstraction?
Reduces complexity of a program / easier to read and understand
Reduces time to find a solution
Reduces design and programming time
Reduces computational resources eg memory, processing power
The above therefore reduces the cost of designing and building the program
Focus on the main purpose of the program
What are the two types of abstraction?
Data abstraction and problem abstraction
What is data abstraction?
Variables: represent real-world values (4.56, “Anna”, “21/01/2019”)
Objects: in Object Oriented Programming (OOP) a class is an abstract representation of something with certain properties (attributes) and operations (methods). (chair, car, dog, person)
Data structures: arrays, linked-lists, stacks and queues.
What is problem abstraction?
When faced with a problem deciding which factors are relevant to the problem and solution
(networks, database systems (E-R diagram), operating systems (device drivers, flight simulator, map, weather system, GPS)
What is primary storage?
Means memory. This is made up of RAM (volatile) and ROM. It is directly accessible by the CPU.
What is secondary storage?
Storage that is non-volatile. It is not directly accessible by the CPU.
What is virtual storage?
Storage that appears to be local but is physically located elsewhere
What is top down design?
Solved by breaking it down into smaller sub-systems
What is top down design an example of?
Decomposition
Advantages of top-down design ?
the problem is easier to understand, program, test and maintain.
Shows clearly how different parts of the problem relate to each other
Division of labour - different teams working on different parts of the problem independently
May make code more modular as it broken into smaller subroutines.
Disadvantages of top-down design
It assumes that the whole solution to the problem is knowable in advance.
Poorly understood programs are hard to decompose.
Not every problem can be broken down in this way, for example event driven programs like GUIs
Symbol for an and gate
upside down v
symbol for an or gate
v
symbol for a not gate
line above or top right corner of a rectangle
What rule are stacks built on
Last in first out
What is adding items to a stack called
push
What is removing items from a stack called
pop
What are some uses of stacks
Back/forward button on browsers
What is a systems development lifecycle?
A framework defining tasks performed at each step in the software development process.
What is the waterfall lifecycle model?
A linear, sequence of stages. Each stage is completed before the next stage begins. Good for small, simple projects where requirements are clear and do not change.
What are agile methods?
Agile development is an umbrella term for a set of methods and practices based on the values and principles expressed in the Agile Manifesto.
What is xp(extreme programming)
An agile methodology for software development that is iterative, focussing on high quality code and customer involvement / feedback.
What is iterative development?
Iterative development is a process, or a method, in which a software product is developed after breaking it down into smaller, easily developable “chunks”. Each chunk is analysed, designed, developed and tested in repeated cycles (iterations).
What is a prototype?
An original or first model of something from which other forms are copied or developed. Early prototypes will likely have reduced functionality.
What is risk analysis?
The process of identifying and analyzing potential issues that could negatively impact a software project. Risk factors in software development include inadequate estimation of time, cost, scope and resources.
What is a methodology?
A system of methods and principles for doing something,
What type of model is the waterfall mode?
Sequential/linear
What is the first stage of the waterfall model?
System and Software requirements. Documenting requirements gathered from questionnaires, observation, and structured interviews. Acceptance tests often paired with requirements.
What is the second stage of the waterfall model?
Feasibility – is it technically viable, economical, legal? How effective the project will be in solving the problem? Can it be done in time?
What is the third stage of the waterfall model?
White/black box, alpha/beta, performance etc
What is the final stage of the waterfal model?
installation, migration, support, and maintenance e.g. corrective, perfective, adaptive maintenance (to keep a software product usable in a changed or changing environment)
Positives of the waterfall model?
Lots of documentation
Easy to schedule and arrange tasks and judge progress
Simple and easy to understand model
Does not require a lot of customer involvement
Negatives of the waterfall model>?
Lots of documentation
No new ideas can be included during development.
Users not involved until testing
Cannot accommodate changing requirements
No working software is produced until late during the life cycle.
Efficient code is not prioritized
What are the 4 values of the agile methods
1.Individuals over processes
2.Working software over documents
3.Customer collab
change
What is xp
Extreme type of agile methodology
Positives of xp
Quality of code should be very high
Testing is continuous which will result in fewer bugs/issues
Sustainable pace - less chance of tired programmers!
Negatives of xp?
Programmers need to be based in same geographic location
Customer needs to provide a representative to work with the development team
When might xp be used
Early implementation is important
When requirements are changing
Can’t be used on a project with a huge staff
When code must be of high quality eg critical systems perhaps in health care
When might the waterfall method be used?
Straight forward projects where requirements are known and understood at the beginning and do not change
When there is no benefit to the customer of having parts of the system available early.
Short projects
What is a queue?
a data structure which uses the operations enqueue() and dequeue()
What type of structure is a queue?
First in first out
What are the error conditions of a queue?
A queue’s error conditions are isEmpty and isFull. If the queue is full you cannot enqueue anything on to it. If it is empty then you cannot dequeue anything from it.
How do queues use priority?
Different items in the queue have different priorities
Is a queue dynamic or static?
Dynamic
Is a queue linear or circular?
It can be either
What are the uses of queues
Printing and cpu processing
What does enqueue(item) do?
add an item to the end of the queue
What does dequeue() do?
remove and return an item from the front of the queue
What does peek() do?
gets the element at the front of the queue without removing it
How many pointers does a queue use?
2 (one at front and one at back) as oppose to a stack which uses 1
What is an entity?
A single object, person, event or thing eg customers, appointments, products about which data is to be recorded. Several tables may relate to a single entity.
What is an atribute?
A specific type of data representing a particular characteristic of each data record. Also known as a field or column.
What is data integrity?
The overall accuracy and completeness of data
What is referential integrity?
A foreign key must refer to an existing primary key. Referential integrity is violated when the primary key to which a foreign key refers no longer exists. A measure of the consistency of the data in a database.
What is a field?
A part of a record that holds data of a specific type about one characteristic of the subject of the record.
What is normalisation?
The process of structuring the data in a relational database according to formal rules, in order to avoid problems of data redundancy which leads to inconsistency and inaccuracy.
Pros of flat file database?
Easy to set up - no knowledge required
Easy to use in code - e.g. CSV files are easy to process
Easy to share, e.g. email attachments
Cons of flat file database?
Duplication of data (data redundancy) which take more time to update eg if Miss Read moves house you have to update her address in multiple rows, can lead to inconsistency eg you forget to update Miss Read’s details in every place they are stored.
Take up more space so more storage is required.
Everyone can see everything (not good if some data is sensitive)
Inefficient – have to have all fields for every record
Can’t perform complex queries as easily
Pros of relational database?
Reduces duplication of data meaning easier to update, accurate, better consistency, less storage space
Can set different access rights for each user for each table
Can index fields for quicker searching
If implemented with DBMS, it will allow concurrent access to the database allowing multiple users
Complex queries can be carried out
Cons of relational databases?
More difficult to correctly set up (normalization is the process of structuring the data in a relational database according to formal rules to avoid problems of data redundancy which leads to inconsistency and inaccuracy (incorrect) and inconsistency (between different fields).
What is secondary key?
is a non key field which is indexed
What do secondary keys do?
Speed up searches however it slows down inserts, updates and deletes as the computer has to write the data and the index
What does using secondary keys do to storage?
An index needs space on hard disk (and much more important) in RAM
What does the insertion sort do that is different?
It does not swap values. (Bubble sort swaps, insertion sort shifts)
Where does the insertion sort begin?
It begins at the second item (index 1) since the first item is already sorted (a list of length 1 can’t not be sorted)
What is the pseudocode for an insertion sort?
for i = 1 to A.length – 1
key = A[i]
j = i - 1
while j >= 0 AND A[j] > key
A[j + 1] = A[j]
j–
endWhile
A[j + 1] = key
next i
Explain how an insertion sort works? on 10,95,5,33,67
Repeat the following for each item in the list, excluding the first
Remember the current item as the key
On the first pass the key will be 95
Move every item before the key that is bigger than it forward
On the first pass, none need to be moved
Place the key item before these larger items
On the first pass, 95 doesn’t end up moving
What are the advantages of an insertion sort?
Easy to implement
Good for small data sets that are almost sorted
Insertion sort generally performs quicker than bubble sort and is therefore preferable.
What are the disadvantages of an insertion sort?
Does not scale well so is not good for large data sets
What is caching?
the process of storing previously used data in a location (cache) so that it can be quickly accessed to speed up retrieval if it is needed in future.
What is pre-fetching?
data is fetched and stored in a cache or buffer before it is needed. For example when streaming a video file, successive seconds/minutes of stream data are buffered. Algorithms must be able to correctly predict what will be needed.
What is a library?
A collection of reusable subroutines that a programmer can “call” when writing code so that the programmer doesn’t have to write this code.
hat are reusable components?
use of existing assets in some form within the software product development process including code eg subroutines, designs and documentation.
What is the other reason accessing cache is quicker than accessing ram?
cache uses SRAM which is faster rather than DRAM which is used for main memory
Cons of cache?
Small size, SRAM is expensive and fixed size which means to upgrade you would have to buy a new cpu
What does the processor do when it needs to read or write a location in memory?
it first checks for a corresponding entry in the cache. If the processor finds that the memory location is in the cache, a cache hit has occurred and the processor immediately reads/writes to the cache. If not, a cache miss has occurred and the data is copied from main memory into cache and the request fulfilled from cache.
What is hard drive cache also known as?
Disk buffer
What are the cons of hard drive cache?
small size (will never hold everything), fixed sized (can’t be increased)
so same as normal cache
Pros of web browser cache?
Faster load time, reduced network traffic ie fewer HTTP requests
Cons of web browser cache?
cached resource may be out of date
What does web browser cache store?
frequently used web pages/style sheets/scripts to reduce the number of requests that go to web server.
What are proxies?
Proxies act as intermediaries between the client and the origin server.
What does a cache server (proxy server) do?
Cache server (proxy server) saves previously requested web pages or other content.
Pros of caching a proxy server?
Faster load time as HTTP request does not have to go original web server, reduces network traffic
Cons of caching a proxy server?
cached resource may be out of date
What does a domain name system do?
A DNS, short for domain name system, is used to resolve a particular domain name to its IP equivalent
When is DNS cache used?
When a DNS server responds to a DNS request, the operating system may store these results in a local DNS cache
Pros of DNS cache?
reduced network traffic ie fewer DNS requests.
Reduced network traffic as there will be fewer DNS requests to remote DNS servers
Cons of DNS cache?
resources may be out of date, if a web page has changed the location of its server an error may occur
pros of caching in general?
Speeds up retrieval
Cache miss normally would not result in error
Cons of caching in general?
Algorithms for caching can be very complicated. When the cache is full, the algorithm must choose which items to discard to make room for the new ones.
Wrong data may be cached then it has to be removed and the correct data loaded.
Cache does not have the required content (cache miss) so time is wasted checking it.
What is normalisation?
the process of organising the data in a database into multiple related tables to minimise data redundancy.
What is the aim of normalisation?
The aim of normalisation is to minimize data redundancy and maximise data integrity
What do you do for first normal form?
Each record (row) is unique
i.e. it has a primary key
Each field (column) has an unique name
There are no fields with repeated or similar data
e.g. choice1, choice2, choice3…
Each field cannot be broken down any further
e.g. addresses should be broken up
What does first normal form do?
Makes all the data atomic
What does atomic mean?
Atomic means each item of data is distinct and you can’t separate the data any more or break it up any smaller without losing meaning.
What does second normal form do?
Non-key fields must depend on every part of the primary key
In other words, if a field that isn’t the primary key depends on only one part of the primary key (i.e. a partial key dependency) then it isn’t in second normal form.
When would you not need to do anything for second normal form?
If you don’t have any composite primary keys
Do the normal forms have to be done in order?
Yes
What does third normal form do?
There are no non-key fields that depend on another non-key field
If you can find a field that isn't the primary key which depends on another field that isn't the primary key then it's not in third normal form
What is the slogan for third normal form?
All fields must depend on the key, the whole key and nothing but the key!
What is a network?
consists of two or more computers that are linked in order to share resources (such as printers and CDs), exchange files, or allow electronic communications.
What is a protocol?
A protocol is an agreed-upon format/set of rules for transmitting data/communication between two devices.
What does transmission control protocol do?
the type of error checking to be used
data compression method, if any
how the sending device will indicate that it has finished sending a message
how the receiving device will indicate that it has received a message
type of encryption used
packet size
What does IP do?
he Internet Protocol is a set of rules for communication over the internet, An IP address identifies a network or device on the internet
What does user datagram protocol do?
a communications protocol that is primarily used to establish low-latency and loss-tolerating connections between applications on the internet. UDP speeds up transmissions by enabling the transfer of data before an agreement is provided by the receiving party. No error checking which makes it good for gaming and streaming but bad for sending over important documents as if data is lost it cannot be retrieved due to no error checking
What does simple mail transfer protocol do?
an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail
What does http do (hyper text transfer protocol)?
It was designed for communication between web browsers and web servers, sends and receives access to things such as web servers
What does the s at the end of https mean?
Secure, it encrypts the data to keep it safe and secure
What is a standard?
standard is a definition or specification that is an agreed way of doing things. Standards make it easier to build software or hardware that will run (is compatible) on different systems (in different countries). Without standards most devices would not be able to communicate with each other.
What are the two categories of standards?
De jure (by force of law) and de facto standards
What are dejure (by force of law) standards?
These are regulated by official bodies. For example, ICANN provides effective regulation of the names and numbers that are used across the internet
What are defacto standards?
ones that arise through popular use but are not managed or regulated. For example, it may be standard to use sans serif fonts for web pages but no one will stop you if you go wild with Garamond.
Why are standards important?
Standards form the fundamental building blocks for product development by establishing consistent protocols that can be universally understood and adopted.
Standards are important in the computer industry because they allow the combination of products from different manufacturers to create a customized system.
Without standards, only hardware and software from the same company could be used
For example, ASCII A (01000001) is recognised on all devices using the ASCII standard. HTML is a WWW standard recognised by all browsers.
Why are protocols important?
Set of rules that allow transmission between devices.
Allowing devices to communicate
By ensuring all devices follow the same rules
So they interpret data/signals in the same way
What is a LAN?
Geographically small area e.g. buildings or several buildings on the same site (schools, universities, offices etc)
Equipment is generally owned by the company using it
What is a WAN?
Geographically remote area e.g. across a country, between continents
Connects LANs together using third party telecommunications equipment (the servers owned by ISPs, he telephone/cable/satellite connections owned by telecommunications
companies such as BT, China Mobile, Vodafone, AT&T etc).
What is a hub?
Hubs are a piece of hardware used to connect computers on the same network together
What is a switch?
are devices within a network that forward packets within the network itself. They allow multiple computers to connect to a network through a single node and therefore reduce the wiring requirement. This is especially important in larger networks.
Difference between a hub and a switch?
A hub is a networking device that connects multiple PCs to a single network, whereas a Switch connects multiple devices on a single computer network
What is a repeater?
A repeater is a network device that retransmits a received signal with more power and to an extended geographical or topological network boundary than what would be capable with the original signal
What is a network interface card?
a hardware component, typically a circuit board or chip, which is installed on a computer so it can connect to a network
What is a router?
A router is a networking device that forwards data packets between computer networks
What is a wireless access point?
In computer networking, a wireless access point, or more generally just access point, is a networking hardware device that allows other Wi-Fi devices to connect to a wired network
What is the spiral model?
A software development methodology that defines four quadrants (objectives, risk, develop prototypes, planning). It is iterative, focussing on risk and the iterative development of prototypes. Good for risky, complex, long projects.
What is RAD
rapid application development
What is RAD in simple terms
It is now used to refer to methodologies for developing software which use prototyping (a model with reduced functionality) and iteration (repeating cycles).
Positives of RAD
Helpful when requirements are unclear as they do not all have to be specified at the start
Should result in excellent usability due to feedback from customer
Changing requirements can be accommodated
Reduced development time due to minimising planning
Time boxing can help keep projects on track
Negatives of RAD
Good code is not prioritised (focus is on accelerated development of front-end focused prototype)
Demanding on customer’s time for feedback
When might RAD be used
RAD should be used only when a system can be modularized to be delivered in incremental manner.
When the customer is unsure of their requirements.
RAD projects are typically small scale and of short duration
How many phases is the spiral model split into?
4
What is there a high emphasis on with the spiral model
High emphasis on risk identification and resolution.
Prototypes are created in each cycle.
What are the positives of the spiral model?
Ideal for risky and complex projects. If risks are too high, the project may be stopped before prototyping.
Changing requirements can be accommodated
Users see the system early - likely to result in a solution which better matches user’s needs
Focus on alternatives encourages software reuse
Focus on eliminating unattractive risky alternatives early on. Risks could be personnel shortfalls, unrealistic schedules and budgets, developing the wrong software functions eg functionality that it not needed)
What are the negatives of the spiral model?
Management is more complex so could be more expensive
Process is more complex than other models
Good risk analysts are expensive
Efficient code is not prioritized
No continuous customer interaction.
When might the spiral model be used?
Significant changes are expected in the product during the development cycle
Customer is not sure of their requirements which is usually the case.
When risk is high
Should be used only when a system can be modularized to be delivered in incremental manner.
What is a pre conditions
A condition that must always be true prior to the execution of code.
What is computational thinking?
A condition that must always be true prior to the execution of code.
What are the 5 aspects of computational thinking?
Abstractly, ahead, procedurally, logically, concurrently
What is thinking ahead?
a) Identify the inputs and outputs for a given situation.
b) Determine the preconditions for devising a solution to a problem.
c) The nature, benefits and drawbacks of caching.
d) The need for reusable program components.
What is thinking procedurally?
c) Determine the order of the steps needed to solve a problem.
What is thinking logically?
c) Determine how decisions affect flow through a program.
What is thinking concurrently
a) Determine the parts of a problem that can be tackled at the same time.
What is an IDE?
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development.
What does an IDE consist of?
An IDE normally consists of a source code editor, build automation tools and a debugger.
What is a translator?
A program that converts code written in one programming language into functionally equivalent code in another language. Assemblers, compilers and interpreters are all translators.
What is artificial intelligence?
Artificial Intelligence is the study and creation of computer systems that can perceive, reason and act.
What is a turing test?
Devised by Alan Turing (mathematician) in 1950. Measures whether a computer could be described as intelligent. A human asks questions and gets both the human and computer to answer them. If the human cannot tell which response comes from the human and which from the computer then the computer is seen as showing ‘intelligence’.
What can we do to ensure data integrity?
Not allow null values(presence checks), archiving(removing old data), record locking(preventing simultaneous access to a database to prevent inconsistent results) and backing up
Similarities betweeen ROM and RAM?
Both primary storage/main memory
Both allow random access
Both can store programs
Connected to CPU via buses
Which is quicker, ROM write/ read speed or RAM write/read speed?
RAM write/read speed
Does ROM or RAM have a larger chip with more capacity?
RAM
What is RAM used for?
Buffers
What is DRAM
dynamic RAM and it is used for main memory
What is SRAM
Static RAM and used for cache memory (shorter access time than dynamic RAM)
What is the first step of the BIOS
Power On Self-Test (POST) runs to determine if hardware eg processor, RAM, storage devices and other interface cards are working correctly
What is the second step of the BIOS
Load configuration settings eg clock speed, boot device order, enabled and disable interfaces
What is the third step of BIOS
Find and load the bootloader program from secondary storage, which starts the initialisation of the operating system.
What are computational methods?
- strategies, techniques or approaches that help to formulate a problem and express a solution in a way that is computable.
What does computable mean?
A problem is computable if there is an algorithm that can solve it in a finite number of steps.
What does heuristic mean?
a technique designed to solve a problem more quickly. This is achieved by trading optimality, completeness, accuracy, or precision for speed.
What is performance modelling?
Testing or simulating how well a solution scales to larger data sets and loads
What are reusable program components
Use of existing assets in some form within the software product development process including code
What is divide and conquer?
A rapid way of finding a solution by successive subdivision of a data set
What is procedure identificication
Recognising how the sub-problems can be implemented as procedures
What is caching?
the process of storing previously used data in a location (cache) so that it can be quickly accessed to speed up retrieval if it is needed in future.
What is data mining?
earching for patterns in large data sets that are not obvious by simple comparisons
What is heuristics
A best guess solution to a problem that reduces computation time whilst sacrificing accuracy
What is pipelining?
Breaking a process into chunks that can be run concurrently (Concurrent Processing: Starting one or more task before another task has completed)
What is back tracking?
A method of testing options and returning back up to earlier options as required
What is application software?
Program designed for users rather than the computer. Categories include general purpose, bespoke and special purpose.
What is an application?
Any program that can be run on a computer system
What is system software?
Program(s) that is needed to run the computer’s hardware and application programs
What is open source software?
The program’s source code is freely available to view/edit by anyone. Open source software is made by many people and distributed under licenses that comply with the Open Source Definition.
What is bespoke software?
Custom software specially developed to suit the needs of a particular organisation or client. Examples might include software for the military, missile/UAV operations, software for hospitals and medical equipment, software being written inside banks and other financial institutions.
What is closed source/proprietary software?
A program that legally remains the property of the organisation, group, or individual who created it. The organisation that owns the rights to the product usually does not release the source code, and may insist that only those who have purchased a special license key can use it.
What is utility software
programs designed to help analyse, configure, optimize or maintain a computer eg system clean up, defragmenter, firewall, Task Manager, compression. Often built into OS
Example of general purpose software
Applications that are not designed for a particular business
Examples of special purpose software
CAD, calculators
Pros of open source software
The source code can be compiled to work on different platforms eg Windows, macOS.
Potentially a community of developers continuously improving the source code
Potentially a community of users to learn from
Can modify the source code to adapt to your needs rather than starting from scratch (saves time and money)
Could be copied and sold for profit since source code is available
Potentially less vulnerabilities as lots of people can view the source code (but do they and are they sufficiently knowledgeable?)
Cons of open source software
Risk of abandonment eg community decides not to maintain the code
Potentially less support compared to closed source
Does open source software cost money?
Likely no, however opens source does not mean free of charge
Pros of closed source software
Usually professional support comes with the software
Potentially a product that has been more robustly developed and tested
Cons of closed source software
Usually a financial cost
Can not modify the meet your needs
Fixes to proprietary code rely on vendor rather than community so potentially slower.
Does closed source software cost money
Likely yes
Example of closed source software
Microsoft word
Example of open source software
SQLite
RIPA
Regulation of investigatory powers
When was RIPA instroduced
2000
What is internet censorship?
The deliberate control, suppression (preventing something from being seen) or prohibition (banning) of what can be accessed or published on the internet.
What is piracy?
The unauthorized use, copying, distribution and selling of works under copyright.
What is copyright infringement
is the use or production of copyright-protected material without the permission of the copyright holder. (Not all copyright infringement is piracy eg a public viewing of a film you own infringes copyright but is not piracy).
What is plagiarism?
the practice of taking someone else’s work or ideas and passing them off as one’s own.
What is a troll
online person who actively seeks to fuel an argument by posting offensive / abusive material and replies to comments
Name two factors that increase piracy?
Increased internet download speeds
Availability of illegal content sharing sites
Two factors that decrease piracy
Digital watermarking
Software product keys
Operating System
System software that manages computer hardware and software held in secondary storage.
Paging & Segmentation
Paging and segmentation are two different techniques for making optimum use of memory by splitting memory (RAM) into blocks. With paging, RAM is divided into fixed sized blocks. With segmentation, RAM is divided into varying sized blocks representing logical parts of the program.
Interrupt
An event external to the currently executing process that causes a change in the normal flow of instruction execution eg printer out of paper.
Interrupt Service Routine
A particular routine that is run to service an interrupt
Memory Management
Recording how memory in the computer is divided and identified so that memory is allocated efficiently between processes that are running.
Process Management
(CPU) Scheduling allows multiple processes to run in turn using a scheduling algorithm.
File Management
Enables files and directories to be moved, copied, deleted and renamed on secondary storage devices
Network management
Sharing resources of a remote computer such as files or printers.
Security
The OS supports the security of a device by ensuring that resources are protected from unauthorised access through the use of permissions and passwords, e.g user access rights, user authentication, file permissions.
User Interface
to provide an interface between the user and computer (ie, CLI, GUI)
Virtual Memory
A means of apparently extending main storage by using backing storage (such as a hard disk) to store contents of RAM to free up space in RAM
#