IB Computer Science Paper 1

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/46

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

47 Terms

1
New cards

Changing Software Systems(Considerations)

-Extent of change

-Limitations of new system

-Context in which the system will be used

-Change in User Roles

-Organizational issues

2
New cards

Changing Software Systems(challenges)

-Resistance to change

-Some features may be omitted

-Compatibility with existing systems

-Old systems may be faster

-Training requirements for users

-Impact on workflows

-Data loss

-Price

3
New cards

Changing software systems (Methods)

Direct Changeover - Old system stopped, then new started.

Pros: Changeover swift, new system available immediately

Cons: No backup in case of failure

Parallel - Old and new system run concurrently - new data entered into bothand compared for discrepancies.

Pros: Provides backup, allows for gradual transition

Cons: More costly due to maintaining two systems and can lead to confusion if not managed properly.

Pilot - new system tested in a small section of the organization and bugs fixed before full implementation.

Pros: Identifies issues early in a controlled environment, allows for user feedback. If program fails, only affects small part of organization

Cons: May not fully represent organizational needs if only tested in a limited scope. No backup for pilot group in case of failure

Phased - new system is implemented in stages, rather than all at once.

Pros: Reduces risk by allowing evaluation of each stage before proceeding, minimizes disruption. Training can be done in stages.

Cons: Can be time-consuming, may lead to inconsistencies across the organization during the transition. If system fails, no backup for that part of the system

4
New cards

Data Migration(Problems)

  • Moving data from one system to another

  • Can be huge process depending on sizes of systems

  • Necessary when transitioning to new system

  • Possible problems:

    • Incompatible file formats

    • Data structure differences

    • Validation rules

      • Different rules for what constitutes as valid data

    • Incomplete data transfers

      • Data transfer is interrupted

    • Different data, currency, or character conventions

      • Different languages can use different characters in their systems.

5
New cards

Legacy Systems

  • Old technology, computer system or application

  • No longer suported/available for purchase

  • Modernization may be expensive or time-consuming

  • EX. Floppy disks, Windows XP

6
New cards

Local vs. Remote (SAAS) Software

Local Software: Runs on your computer

  • One time fee

  • Installation

  • Update may not be automatic

  • users may be using different version depending on update status

  • can be used on one computer

Remote: Accessed through a web browser

  • Subscription fee

  • can be used on any number of computers via web borwser

  • Automatic Updates

  • Users always using the same version

7
New cards

SAAS (Software-As-A-Service) Pros/Cons

Pros:

  • Accessibility from any device

  • automatic updates

  • Reduced IT costs

  • scalable usage,

  • enhanced collaboration.

Cons:

  • Users have no control over availability of system

  • Users have no control over security

  • If SAAS provider gets acquired, user has not control over system

  • Large-scale data corruption is possible

8
New cards

Static Testing

A form of software testing that involves reviewing and evaluating the code, documentation, or requirements without executing the program, often using tools or manual inspection to detect errors early in the development process.

9
New cards

Dynamic Testing

A testing technique that involves executing the software to validate its behavior and identify defects during runtime.

  • Code is executed to make sure it produced the required result

Uses Validation, which makes sure the software operates as usual.

10
New cards

Alpha Testing

A type of software testing performed by internal teams before the software is released to external testers or users. It aims to identify bugs and issues in the early stages of the development cycle.

11
New cards

Beta Testing

A phase of software testing that follows alpha testing, where a version of the software is released to a limited group of external users to gather feedback and identify remaining defects before full release.

12
New cards

Black Box Testing

A testing method that focuses on examining the functionality of an application without peering into its internal structures or workings. Testers provide inputs and observe outputs, ensuring that the software behaves as expected. No programming knowledge required.

13
New cards

White Box Testing

A testing method that involves examining the internal structures, code, and logic of the software. Testers understand how the system works, allowing them to create test cases that ensure all paths and conditions are tested. Programming knowledge required.

14
New cards

User Acceptance Testing

A phase of software testing where end users test the software to ensure it meets their requirements and is ready for deployment. This testing is conducted in a real-world environment and typically occurs before the software goes live.

15
New cards

Automated Testing

A software testing technique that uses automated tools to execute test cases, compare actual outcomes with expected results, and identify any discrepancies. This method increases efficiency and allows for repetitive testing without manual intervention.

16
New cards

User Documentation

Manual(Paper manual, booklet, or pamphlet):

  • Pros: Doesn’t require installation, computer, or internet connection

  • Cons: Can be damaged or lost, cannot be updated

Online(PDFs, website, video):

  • Pros: Can be much longer than manual, can be updated, search capabilities, can be updated easily

  • Cons: Internet required, can be difficult for inexperienced users to access

Help Files(Locally accessible programs that display text):

  • Pros: Easily accessible in software program, contain general instructions for use, easier to access for inexperienced users

  • Cons: Requires installation first, which can be difficult for inexperienced users, lacks search capability

17
New cards

User Training(Methods)

In-Person Classes:

  • Pros: Cheap(many students one instructor)

  • Cons: less personalized, student may become bored, lost, or lose pace

Online Training:

  • Pros: Can be more personalized, focuses on needs of students via online instructor

  • Cons: Can be more expensive if individual

Self-Instruction:

  • Pros: Low-cost(no teacher needed), flexible timeline, users can choose what to focus on

  • Cons: No guidance, users may feel lost, lack of structure means that users may not learn everything they need to

18
New cards

Data Loss(Causes)

  • Hardware/System Malfunction

  • Human error

  • Software Corruption

  • Malicious Software(Viruses, etc.)

  • National Disasters(Power cuts = Equipment damage)

19
New cards

Data Loss(Ways of Prevention)

Failover Systems - there is a secondary system that can be switched to if the primary system fials

Redundancy - a duplicate of a system’s components and data are duplicated so that a backup is present

Removable Media - removal storage device can be used for data backup

Offsite/Online Storage - data is backed up at a different location or in the ‘cloud’

Physical Security - protecting hardware from theft or damage through locks, surveillance, and secure environments.

20
New cards

Stakeholders

Individuals or groups with an interest in the outcome of a project, including clients, users, developers, and managers.

21
New cards

Stakeholders(How to get requirements for Software Functionality)

Gathering requirements through user interviews, surveys, focus groups, and observation to understand needs and expectations for software functionality.

22
New cards

Prototypes

  • A plan or abstract representation of the end-product

  • Usually not fully finished

  • Displays functionality of one or two key aspects

  • Used to get feedback from stakeholders

23
New cards

Iteration

  • Cyclical process that ends in a finished product

  • Process of prototyping, testing, analyzing test results, and refining product until requirements met

  • Allows constant improvement based on user or client feedback

24
New cards

Software Deployment

Release - Process of launching a new product

Update - software file that fixes a problem found after release

  • Bug

  • Security Vulnerabilty

Patch - Temporary fix between full releases

  • Bug

  • Security

  • Upgrade capability

  • Upgrade Driver

25
New cards

Usability

How effectively and efficiently a product can be used

26
New cards

usability Problems(Examples)

Laptop - Battery life too short

Phone- Screen size too small, not waterproof

Digital Camera - buttons too small, software buggy

27
New cards

Accessibility

How easily people can use software

28
New cards

Accessibility(Examples of how to Improve)

  • Braille Keyboard

  • Touch Screen

  • Voice Recognition

  • Text Dictation

29
New cards

CPU(Central Processing Unit)

-”The Brain”

Process all instructions as binary code

Code is execute here

Arithmetic, logical, input out put rections

Directly connected to RAM(Random Access Memory)

30
New cards

Fetch-Decode-Execute Cycle(aka Machine Instruction Cycle, Von Neumann Model)

  • Address to be checked comes up in PC

  • PC sends the next address to be checked to the MAR

  • MAR sends address to RAM

  • Data at the address is sent to MDR

  • MDR sends data to the CIR(Current Instruction Register) for decoding

  • CIR passes the decoded instruction on to the ALU, which does everything that needs to be done

  • ALU gives address to MAR for any further instructions

FDE = Fetch-Decode-Execute

PC = Program Counter

MAR = Memory Address Register

RAM = Random Access Memory

MDR = Memory Data Register

CU = Control Unit

ALU = Arithmetic Logic Unit

31
New cards

Primary Memory

  • RAM(Random Access Memory)

    • “Short-term Memory”

    • consists of units of data, each with a hexadecimal address

    • Volatile - data lost when electricity is cut off(non persistent storage)

  • ROM(Read-only Memory)

    • Used to store permanent instructions necessary to boot computer

    • Holds BIOS(Basic Input Output System)

    • Instructions written in factory

    • Non-Volatile (Data persists without electricity)

32
New cards

Cache

  • Stores frequently used instructions from RAM

  • Processer checks cache first

  • Increases speed of FDE cycle

  • Cache memory more expensive, but faster

  • Closer to CPU than RAM, which contributes to speed

  • L1(Fastest) and L2 Cache

33
New cards

Secondary Memory

  • Hard Drive, Removable Storage(USB Drive, CDs)

  • “Long-term Memory”

  • Persistent storage

  • Holds all data not currently in use

  • Data for running the program transferred from secondary to primary memory

  • Slower and cheaper than primary

  • Not directly connected to CPU

  • Much larger amounts

34
New cards

Virtual Memory

  • When primary memory overloaded, data sent to secondary

  • Slower

  • Temporary

  • Returned to primary memory as needed

  • Stored in units called ‘Pages’

35
New cards

Fundamental operation of a computer -requires one machine instruction cycle/do not require the processor to go through many machine instruction cycles to reach a result

  • Input(read) values

  • Processing/execution of values (eg. calculate, decode, fetch, delete, evaluate, sort, transfer, transmit)

  • Output data

  • Compare values

  • Store values in memory or secondary storage

36
New cards

Complex operation of a computer

An operation that involves a number of other (fundamental) operations to reach the result. It requires multiple machine instruction cycles and may involve tasks such as input, processing, output, and data storage.

37
New cards

Operating Systems

“set of software that controls computer’s hardware and resources and provides services for computer programs”

  • 5 roles

    • User interface

    • Memory Management

    • Peripheral Management

    • Multitasking

    • Security

  • User Interface

    • Link between user and hardware

    • 4 types of UI

      • GUI(Graphical User Interface) - menus, point and click

      • CLI(Command Line Interfcae) - type in commands

      • NLI(Natural Language interface) - speak to computer(Siri)

      • MBI(Menu Based Interface) - Like CLI, but no commands, only menu option

  • Memory Management

    • Keep track of storage devices(HDD, Flash Drive)

    • Allocate memory (RAM) to programs

    • Modify memory locations

    • Sort data on disk drives and RAM for efficiency

    • Organize data into folders

    • Copy and Delete files

  • Peripheral Management

    • Peripherals - keyboard, mouse, monitor, etc.

    • Coordinate with BIOS (basic input output system)

    • Use device drivers to interface with peripherals

    • Device drives translate peripheral signal

  • Multitasking

    • Allocates CPU cycles to concurrent programs based on priority and time

    • Each program given a slice of time, or a ‘turn’ to use CPU

    • Slices vary in length of time

  • Security

    • Username and password

    • User permissions

    • File permissions for reading and writing

38
New cards

Programming Languages

  • Features

    • Consistent gramar

    • Consistan syntax

    • Provide a way to define basic data types and operations on those types(ability to write functions/procedures)

    • Provide ability of input and output handling

    • Provide some kind of loop that can be stopped / conditional statement/ branching(conditional and unconditional branching)

    • Has to run on/ be able to be processed by a computer(ie it must have a compiler/interpreter)

39
New cards

High-level vs. Low-level Programming Languages

  • Abstractions - High-level languages provide greater abstraction from the hardware, using human-readable syntax, whereas low-level languages often require direct interaction with hardware specifics, such as memory addresses and registers

  • Ease of Use - High-level languages are generally easier to learn and use because they are closer to natural human language and automate many programming tasks

  • Performance and Control - Low-level languages offer finer control over system resources and potentially faster performance due to their proximity to machine code

40
New cards

Compiler

Translates code written in a high-level programming language into machine code(object code) that a computer’s processor can execute

41
New cards

Interpreter

directly executes instructions written in a programming language (line-by-line) without requiring them to be first compiled into machine code

42
New cards

Differences between High-Level Programming Languages

  • Method of translation- whether by compiler or interpreter(or both)

  • Loosely/strongly typed - refers to whether data types are specified

  • Compatibility with different environments - Java with virtual machine can run on all OSes, but some languages are OS specific

  • Syntax differences

43
New cards

Application Software

  • Word Processors

  • Spreadsheets

  • Database Management System (DBMS)(MS Access)

  • Email Client(Outlook)

  • Web Browser

  • Computer Aided Design(CAD)

  • Graphic Processing Software(Photoshop)

44
New cards

Units of Data Storage

  • 1 byte = 8 bits

  • 1 kilobyte = 1024 bytes

  • 1 megabyte = 1024 kilobytes

  • 1 gigabyte = 1024 megabytes

  • 1 terabyte = 1024 gigabytes

45
New cards

Binary

  • Language of CPU and computing

  • 1,0 only possible digits

  • Base 2 - each digit corresponds to a value with a base of 2

46
New cards

Hexadecimal

  • More efficiently represents large binary values

  • Uses

    • Displaying colors

    • Memory addresses (esp. in assembly)

    • MAC Addresses

    • Base 16

47
New cards

Conversion to know

  • Binary to Decimal

  • Decimal to Binary

  • Hexadecimal to Binary

  • Binary to Hexadecimal

  • Hexadecimal to Decimal

  • Decimal to Hexadecimal