No order over here
Differences between words
Implementation:
Can refer to
a) the specificacion of a specific solution to a problem. (usually in a method or subprogram)
b) The deployment of a solution or a system (remember that systems can also include Hardware or even people) in an organization.
Stages: phases. In the development cycle there are several ways to separate it. For example, design (finding a solution), implementation (writing the actual solution), deployment (applying the solution to the real context), production (regular running of the solution).
Compatibility issues and legacy systems
Legacy systems: old existing systems (they can work properly or not, they can be updated or not)
Compatibility issues:
The company lends the right to use the software and even the infrastructure to use the software.
Software as a Service. Example: Clickedu, Teams, WoW (World of Warcraft). Microsoft 365. Wix (website builders). Antivirus (some).
Netflix/disney + is different since you're not renting a "media video player on the web" but the access to the content (The data). Also the GamePass and Playstation + programs are in the middle.
The online service of Nintendo is SaaS. You're lending the software to use the servers of Nintendo.
Examples of software that is not SaaS
All the Open Source Software (FOSS) is not SaaS.
Comercial in the case that you only need to buy it once.
For example Zelda Tears Of the Kingdom.
Hades or Open TTD: not sofware as a service.
If we use the Pilot instalation. Then, for instance, the Early Years use it while the rest still use clickedu. Once it's proven that it works. Then the rest of the school uses it.
Clickedu still works, but now everybody use isams to take registers (not clickedu), then once we are used to the software, we use more features on isams and less on clickedu. These are the "features" or "modules".
Transfer of information from one place to another. Usually between formats, storages types or even systems.
Problems that may arise
Testing is to check if our program works as intended. If the program does whatever we want to do we call it feature if we don't want to do it that way we call it an error or a bug and we usually want to fix it. The process of finding the problem that we need to fix in a bug is called debug
Normal data
Data at the limits
Extreme data
Abnormal/illegal data
Example. "Percentage of people wearing gloves at the opera"
Normal data 5, 6, 8.5
Data at the limits 0, 100
Extreme data -2, 105, 3500
Abnormal/illegal data: "three" "
(Usually asked in the exams)
Alpha testing: internal from the software developer
Beta testing: open to some (or all) final users.
User acceptance testing: Determines if the software works or not usually to end the contract. (can be a beta test or not)
Dry-run testing. Pen and paper.
Unit testing. One "component" of the code is tested separatedly from the others.
What is a component or a module is a part of a bigger code, for example in many projects the backend(DB) and the frontend are different components)
Also other projects can have other components or subcomponents. For example a website can have different webpages to test independently
Integration testing: the entire testing is tested at the same time so we can verify if all the components work together as intended.
In big projects there is an especific enviroment to this kind of integration testing.
In context of data input
In the context of software development
I like to use the difference between technical documentation as the documentation that the technician that installs your HVAC needs to use
And the user documentation as the documentation that you need to use to operate the system
Other ways of support
What is user training?
The way we instruct users how to use the program. For example tutorials or systems of how to use iSams.
this is always on the exam
Data lost or destroyed for several reasons.
Reasons:
Ransomware is a type of malware that tries to create a data breach, copy the data somewhere else (usually where the hacker can have access to but not the user), then delete the data from the source.
Usually they ask for a ransom for give the data back (hence the name)
Consequences of data loss.
Depending on the context but can be very severe.
Methods to prevent data loss
Less efficient _(don't answer these)
_:
Redundancy: duplication of data
Failover system: Computer system that can come online in the case that the main system fails.
Deploy is when we actually put the software on practice (production enviroment) or we deliver it to the public (release). Nowadays we are used to software deployments that are online.
When we change significantly the system (sofware, etc) we have to deploy the new version. We can have different levels of change.
From the smallest to the biggest are these:
(they ask about this)
Remember that for these kind of questions we need to think in the context of computer science.
Remember that ethical/social issues are not things like "efficency" or "profit"
The idea is to talk about possible human ethical issues
This comes from the RGPD, the European legislation.
Usually the structure of a question like this is "To what extent A or B?" (usually 4 to 6 marks)
And the answer should be usually something like "A is [definition of A], B is [definition of B]" then pros of A and cons of A, pros of B, cons of B and a conclusion that is tied to what you have said.
Stakeholder: someone that has interest in a system or is going to be affected by the system. Can be the client, the user or somebody affected by it. Can be individuals or groups or the society as a whole even.
Some of the stake holders ar the end-users
Common in the exams
Punching them until they say something
This question seems very similar to the previous one but they are asking about something else. Using the IA this is about the solution and the previous is about the Scenario in criterion A.
Online processing happens with an input of the user. It's not related to the internet. It's related to the user interaction.
Notepad++ is an online processing program
Realtime processing happens whether the user does something or not.
Security cameras use real time processing.
Some videogames use real time processing (like GTA V)
Batch processing is programmed to happen without any input. And it happens in batches
(Batch of cupcakes)
Examples are payrolls or receipts.
Online doesn't mean that is through the internet!
Types of flowcharts
This is something that is rare to be seen in exams. But, sometimes they ask questions about general algorithms that work with software.
Tipical question of this type is
Let's supose that we have a brand with different stores in different cities. In one of them they are celebrating a new opening. We, as a brand, they want to send to our customers from that city an invitation to the event.
Supposing that we have a sequential file where we have the records of all the clients and their data. Describe the process of sending the invitations.
solution would be something similar to what you have in the spoiler
We're going to loop through the sequential file checkingeach record and seeing if the record of the client has an address of the city that we want to send the invitations. In that case we're going to copy the relevant information (name, address) into a template of a word processor and once we have finished the loop we're going to send to print the letters already filled with invitations.
Preliminary versions. Can be working or not working or can be just a demo, or even a mock-up
A mock-up is usually done in design to see how it would something look like without even actually doing it. An example is with t-shirt shops that they usually have mock-up files where you input the image of a t-shirt and you have the result of how it would look like
But as you can see in the image there is no actual model posing for all the t-shirts.
Purposes of prototypes
Iteration has 2 meanings in context of CS
Flowcharts of algorithms is something that is more common to be seen in topic 4 buuut sometimes you need to do a structure chart. Better seen with an example:
From what I have seen in past papers, I have seen some questions about diagrams where the student given a certain scenario has to draw a diagram of what is happening.
Something like "Describe what is the flow of a program of a supermarket where the casher has to use a peripheral to know what is the code of the purchase, is going to be consulted in a database that is in a central computer in the store and then processed so it can be displayed in a screen and later into a ticket" (3-4 marks)"
The answer can be something like the following chart. In this case you can remember that DB are usually represented with a cilinder.
If you don't remember the shapes and you draw something like this.
probably is perfectly acceptable and you will get if not all the marks all but 1 mark
Potential of people that can use it fully. If you can use the system but your grandmother can't is not because is not usable, but because is not accessible enough.
They usually ask about accessibility solutions.
Usability refers to effectiveness and full potential.
They usually ask "usuability problems of a phone"
Ergonomics is the science of designing to human scale. Refers to hardware.
Concepts of input, process, storage and output
Primary memory that can be accessed directly by the CPU. Main types are RAM and ROM
Cache can occurr in CS in different contexts
In software is some data that is hold somewhere temporarely to have it at hand. For example browsers have a cache of the images that you have visited so if you visit the same page you don't need to download again the same image.
The other context is the same concept but in hardware
Cache in RAM
Cache in RAM is going to store the most common instructions so if they're needed again they are in a place that is easier to access. Static RAM is an example of Cache. Is a more expensive and faster type of ram and it's saved for just a small caché of common instructions.
Dynamic RAM is slower (but bigger an cheaper) RAM.
L1 caché is placed in the CPU
L2 caché is placed in the RAM
they usually ask about this
You need to understand the steps.
Secondary memory. Not accesible directly by the CPU.
Types of secondary memory
An Operating Systems (OS) is a set of software (can be one program or one set of programs) that controls the computer's hardware resources and provides services for computer programs (the applications that we put on them). It acts as a middle-person between the applications and the hardware.
Also is called a layer in the software.
Services (things that an OS does)
Examples of OS
MacOS
Windows
Linux
FreeBSD
Android
iOS
The OS usually is stored into secondary memory. (Usually a HDD or a SSD). When booted (initialized) it's stored in the primary memory (RAM).
In some cases when the OS is so little that can be directly manufactured into the microcontroller is written on the ROM. Not the case usually.
For these you need to understand that the software that you use can be set in certains categories. "word" or "google docs" are "Word processors". You should remember what are they by their names.
Word processors. Creates written documents. Example: word, gdocs, iPages.
Spreadsheets. Organize and clasify data in rows and columns. Example: Excel, gsheets, OpenOffice Calc
Data Base Managment System (DBMS): A program to manage DB. For example Access and some clients of DB
Email client: A program that ask an email server for email (send and recieve). For example outlook or thunderbird. Also Gmail aplication.
Browser: A program that interprets HTML pages and process also http requests. For example, Chrome, Edge, Firefox, Opera, Safari
not to confuse Browser with Bowser from Mario
CAD: Computer Aided Design. Programs to draw/design. There are a lot of subtypes
Graphic Processing software. Also manipulating images using software. The line with CAD is difficult.
Usually we use this names for applications that are downloaded. Not for applications that are directly on the browser
GUI: Graphic User Interface (the menus that we see)
CLI: Command Line Interface (when you can type something to control the program)
Pros and cons of CLI and GUI
Need to be able to pass numbers from one to another.
byte: 8 bits. 256 possible values.
Data representation
They sometimes ask questions about languages, characters in Strings and the student should write about the different types of encoding.
Strings: array of characters
Colours.
Colours are represented in monitors through pixels. Each pixel has 3 LEDs one with one primary colour that can have values from 0 to 255 (256 different values)
#FFFFFF this kind of coding
And, not, or, xor, xnor, nand
Write truth tables, symbols, venn diagrams
Pin. Copper wire that connects 2 elements with only one conductive element.
Bus. Pins that go in parallel from one place to another. USB is a type of Bus (Universial Serial Bus)
Cable. Physical element that includes one or mor conductive elements protected usually by plastic. (Usually they have buses inside, a USB cable has inside a bus (of the standar USB))
Topology (or bus topology). How are the elements connected between them. Mathematical field.
Gateway: Link between computer networks. Usually is a also a router. The common networks that are linked together are the local (wifi or LAN) and the internet but can be others.
Handshake: Exchange of predetermined signasl to signifay that a connection has been established between 2 systems. Example with SOUND the handshake of old 56k modems.
https://www.youtube.com/watch?v=vvr9AMWEU-c
nowwadays these handshakes are silent but they still happen. TCP/IP has a handshake. UTP doesn't.
In IB are fond of asking about packets, packets switching and elements that are inside.