[go: up one dir, main page]

0% found this document useful (0 votes)
382 views9 pages

Z Notes Comp p2

Uploaded by

avisharma01928
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
382 views9 pages

Z Notes Comp p2

Uploaded by

avisharma01928
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

ZNOTES.

ORG

UPDATED TO 2023-2025 SYLLABUS

CAIE AS LEVEL
COMPUTER SCIENCE
SUMMARIZED NOTES ON THE THEORY SYLLABUS
Prepared for Avi for personal use only.
CAIE AS LEVEL COMPUTER SCIENCE

Assignment: an instruction in a program that places a


1. Algorithm Design & value into a specified variable
Sequence: programming statements are executed
Problem-Solving consequently, as they appear in the program
Selection: control structure in which there is a test to
Abstraction: filtering out and concentrating on the decide if certain instructions are executed
relevant information in a problem; allowing a IF selection: testing 2 possible outcomes
programmer to deal with complexity CASE selection: testing more than 2 outcomes
Decomposition: breaking down problems into sub- Repetition/Iteration: control structure in which a group
problems in order to understand a process more clearly; of statements is executed repeatedly
program modules, procedures and functions all help the FOR loop: count-controlled; executed a set no. of
programmer to break down large problems times
Algorithm: a solution to a problem expressed as a WHILE loop: pre-conditional; executed based on
sequence of steps condition at start of statements
REPEAT loop: post-conditional; executed based on
condition at end of statements
1.1. Identifier Table
As for selecting what loop to use, it is best to use FOR loops
Identifier: name given to a variable in order to call it when you know the number of iterations required, and a
An identifier table depicts information about the WHILE or REPEAT loop if you do not know the number of
variable, e.g. iterations required.

Iterate over an array: FOR Loop


Reading a file into a variable: WHILE Loop
Asking for user input: WHILE/REPEAT Loop
A loop that should execute n times: FOR Loop

Rules for naming identifiers: 1.3. Stepwise Refinement


Must be unique
Spaces must not be used Process of developing a modular design by splitting a
Must begin with a letter of the alphabet problem into smaller sub-tasks, which themselves are
Consist only of a mixture of letters and digits and the repeatedly split into even smaller sub-tasks until each is
underscore character ‘_’ just one element of the final program.
Must not be a ‘reserved’ word – e.g. Print, If, etc.
1.4. Program Modules
1.2. Basic Program Operations
This refers to a modular program design
Subroutines: self-contained section of code, performing
a specific task; part of the main program
Procedures: performs a specific task, no value returned
to part of code where called
Functions: performs a specific task, returns a value to
part of code where called

1.5. Logic Statements

WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Avi at undefined on 15/11/24.
CAIE AS LEVEL COMPUTER SCIENCE
Operator Meaning
< Less than An object that stores data, information, settings or
commands
<= Less than/equal
Can be opened, saved, deleted & moved
> Greater than
Transferrable across network connections
>= Greater/equal
= Equal to
<> Not equal to 2.2. ASCII Code
Uses 1 byte to store a character
2. Data Representation 7 bits available to store data and 8th bit is a check digit
27 = 128, therefore 128 different values
2.1. Data Types ASCII values can take many forms: numbers, letters
(capitals and lower case are separate), punctuation, non-
Integer: printing commands (enter, escape, F1)

Positive or negative number; no fractional part 2.3. Unicode


Held in pure binary for processing and storage
Some languages differentiate short/long integers (more ASCII allows few number of characters; it is good for
bytes used to store long integers) English
Unicode allows others, too: Chinese, Greek, Arabic, etc.
Real:
Different types of Unicode:
Number that contains a decimal point UTF-8: compatible with ASCII, variable-width encoding
Referred to as singles and doubles depending upon the can expand to 16, 24, 32, 40, 48
number of bytes used to store UTF-16: 16-bit, variable-width encoding can expand
to 32 bits
Character: UTF-32: 32-bit, fixed-width encoding, each character
exactly 32 bits
A character is any letter, number, punctuation or space
Takes up a single unit of storage (usually a byte).
2.4. Arrays
String:
1-Dimensional (1D) Array: declared using a single index,
Combination of alphanumeric characters enclosed in “ ” can be represented as a list
Each character is stored in one byte using ASCII code
Each character is stored in two bytes using Unicode
The maximum length of a string is limited by available
memory.
Incorrect to store dates or numbers as strings
Phone no. must be stored as a string; otherwise, the
initial 0 is lost
Boolean:

It can store one of only two values; “True” or “False.”


Stored in 1 byte: True = 11111111, False = 00000000

Date:

Dates are stored as a ‘serial’ number 2-Dimensional (2D) Array: declared using two indices,
Equates to the number of seconds elapsed since 1st can be represented as a table
January 1970 00:00:00 UTC, excluding leap seconds.
Usually takes 8 bytes of storage
Displayed as dd/mm/yyyy or mm/dd/yyyy

Array:
Data structure consisting of a collection of elements
Identified by at least one array index (or key)

File:

WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Avi at undefined on 15/11/24.
CAIE AS LEVEL COMPUTER SCIENCE

A FOR loop is set to stop the sort


Setting a variable ‘sorted’ to be ‘true’ at the beginning
Another FOR loop is set up next in order to search
through the array
An IF is used to see if the first number of the array is
greater than the second. If true:
First number stored to variable
Second number assigned as first number
Stored variable assigned to second number
Set ‘sorted’ to ‘false’ causing loop to start again
The second FOR loop is count based thus will stop after a
specific number of times
Pseudocode: Goes through bigger FOR loop ∴ ‘sorted’ remains ‘true’
1-D Array: array = [] This exits the loop ∴ ending the program
2-D Array: array = [[], [], [], …]
Python:
Declaring an array: names = [] 2.6. Linear Search
Adding to an array: names.append(‘ZNotes’)
Length of array, i.e. number of elements: len(names)
Printing an element in a 1D array:
print(names[element position])
Printing element in a 2D array: print (a[row] A FOR loop goes through the array
[column]) It compares item in question to those in list using an IF:
Printing row in a 2D array: names[row] = [new row] If item matches with another then search is stopped
Printing column: Use it for loop, add 1 to the row, and Also the location where it was found is returned
keep the column the same. If not found it exits the FOR loop
Then returns fact that item in question is not in the list
2.5. Bubble Sort
2.7. File Handling
Files are needed to import contents (from a file) saved in
secondary memory into the program, or to save the
output of a program (in a file) into secondary memory, so
that it is available for future use

Pseudocode:

Opening a file: OPENFILE <filename> FOR


READ/WRITE/APPEND
Reading a file: READFILE <filename>, <variable>
Writing a line of text to the file: WRITEFILE <filename>,
<string>
Closing a file: CLOSEFILE <filename>
Testing for end of the file: EOF(filename)
Python:

Opening a file: variable = open(“filename”, “mode”)

Where the mode can be:

WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Avi at undefined on 15/11/24.
CAIE AS LEVEL COMPUTER SCIENCE
Mode Description ‘’’python identifier = value‘’’ or ‘’’python expression‘’’ or
Opens file for reading only. Pointer placed at the ‘’’python “string”‘’’
r
beginning of the file.
w
Opens a file for writing only. Overwrites file if file 3.2. Selections
exists or creates new file if it doesn’t
Opens a file for appending. Pointer at end of file if it “IF” Statement
a
exists or creates a new file if not
Pseudocode: IF…THEN…ELSE…ENDIF
Python: if (expression): (statements) else:
Reading a file:
(statements)
Read all characters: variable.read() “CASE” Statement
Read each line and store as list:
Pseudocode: CASE OF variable: … … … OTHERWISE:
variable.readlines()
… ENDCASE
Writing to a file:
Python: if (expression): (statement) elif
Write a fixed a sequence of characters to file:
(expression): statement) … else: (statement)
variable.write(“Text”)
Write a list of string to file: variable.write(‘
‘.join(‘Z’, ‘Notes’)) 3.3. Iterations
Count-controlled Loop
Abstract Data Types FOR <identifier> ← <val1> TO
<val2> STEP <val3>
(ADT) <statement(s)>
ENDFOR
An Abstract Data Type (ADT) is a collection of data with for x in range(value1, value2):
statement(s)
associated operations. There are three types of ADTs:
Post condition Loop
Stack: an ordered collection of items where the addition REPEAT Not possible in Python
of new items and removal of existing items always takes <statement(s)> Use ‘’’python WHILE‘’’ and
place at the same end. UNTIL <condition> ‘’’python IF‘’’
Queue: a linear structure which follows the First In First Pre-condition Loop
Out (FIFO) mechanism. Items are added at one end WHILE <condition>
while expression:
(called the rear) and removed from the other end (called <statement(s)>
statement(s)
ENDWHILE
the front)
Linked List: a linear collection of data elements whose
order is not given by physical placements in memory 3.4. Built-in Functions
(non-contiguous). Each element points to the next.
String/character manipulation:

3. Programming Uppercase or lowercase all characters:


(“string”).upper() (“string”).lower()
Programming is a transferable skill Finding length of a string: len(“string”)
Transferable skill: skills developed in one situation Converting:
which can be transferred to another situation. String to Integer - int(“string”)
Integer to String - str(integer)
3.1. Variables Random number generator: random.randint(a, b)
Where a and b defines the range
Declaring a variable:
Pseudocode: ‘’’DECLARE : ‘’’
Python: no need to declare however must write
3.5. Benefits of Procedures and
above as a comment (‘’’python #...‘’’) Functions:
Assigning variables:

‘’’python ← ‘’’ or ‘’’python ‘’’

WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Avi at undefined on 15/11/24.
CAIE AS LEVEL COMPUTER SCIENCE

Lines of code can be re-used; don’t have to be repeated Analyze problem: define problem, record program
Can be tested/improved independently of program specifications and recognize inputs, process, output & UI
Easy to share procedures/functions with other programs Design program: develop logic plan, write algorithm in
Create routines that can be called like built-in command e.g. pseudocode or flowchart and test solution
Code program: translate algorithm into high level
3.6. Procedure language with comments/remarks and produce user
interface with executable processes
Procedure: subroutine that performs a specific task without Test and debug program: test program using test data,
returning a value find and correct any errors and ensure results are
correct
Procedure without parameters: Formalize solution: review program code, revise
internal documentation and create end-user
PROCEDURE def documentation
<statement(s)>ENDPROCEDURE identifier():statement(s) Maintain program: provide education and support to
end-user, correct any bugs and modify if user requests
When a procedure has a parameter, the function can
either pass it by either reference or value There are three different development life cycles:
Pass by value: data copied into procedure so variable
not changed outside procedure Waterfall model: a classical model, used to create a
system with a linear approach, from one stage to
PROCEDURE <identifier> (BYVALUE <param>: another
<datatype>) Iterative model: a initial representation starts with a
<statement(s)> small subset, which becomes more complex over time
ENDPROCEDURE until the system is complete
def identifier(param): Rapid Application Development (RAD) model: a
statement(s) prototyping model, with no (or less) specific planning put
into it. More emphasis on development and producing a
Pass by reference: link to variable provided so variable product-prototype.
changed after going through procedure (not in Python)
PROCEDURE <identifier> (BYREF <param>: <datatype>) 4.2. Integrated Development
<statement(s)>
ENDPROCEDURE
Environment
Calling a procedure: A software application that allows the creation of a
program e.g. Python
CALL () Identifier() Consists of a source code editor, build automation tools,
a debugger
3.7. Function Coding:
Function: subroutine that performs a specific task and Reserved words are used by it as command prompts
returns a value Listed in the end-user documentation of IDE
Functions are best used to avoid having repeating blocks of A series of files consisting of preprogrammed-
code in a program, as well as increasing the reusability of subroutines may also be provided by the IDE
code in a large program.
FUNCTION <identifier> (<parameter>: <data type>) Initial Error Detection:
RETURNS <datatype>
The IDE executes the code & initial error detection
<statement(s)>
carried out by compiler/interpreter doing the following:
ENDFUNCTION
Syntax/Logic Error: before program is run, an error
def identifier(param):
message warns the user about this
statement(s)
Runtime Error: run of the program ends in an error
return expression
Debugging:
4. Software Development
4.1. Program Development Cycle

WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Avi at undefined on 15/11/24.
CAIE AS LEVEL COMPUTER SCIENCE

Single stepping: traces through each line of code and


steps into procedures. Allows you to view the effect of
each statement on variables
Breakpoints: set within code; program stops temporarily
to check that it is operating correctly up to that point
Variable dumps (report window): at specific parts of
program, variable values shown for comparison

4.3. Structure Charts


Example:
Purpose: used in structured programming to arrange
program modules, each module represented by a box
Tree structure visualizes relationships between modules,
showing data transfer between modules using arrows.
Example of a top-down design where a problem
(program) is broken into its components.

Rules:

Process: Represents a programming module e.g. a


calculation

4.4. Types of Errors


Data couple: Data being passed from module to module
that needs to be processed Syntax errors:

When source code does not obey rules of the language


Compiler generates error messages
Flag: Check data sent to start or stop a process. E.g. Examples:
check if data sent in the correct format Misspell identifier when calling it
Missing punctuation – colon after if
Incorrectly using a built-in function
Argument being made does not match data type
Selection: Condition will be checked and depending on
the result, different modules will be executed Run-time errors:

Source code compiles to machine code but fails upon


execution (red lines show up in Python)
When the program keeps running and you have to kill it
manually
Examples:
Division by 0
Infinite loop – will not produce error message,
program will just not stop until forced to

Logic errors:
Iteration: Implies that module is executed multiple
times Program works but gives incorrect output
Examples:
Out By One – when ‘>’ is used instead of ‘>=’
Misuse of logic operators

WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Avi at undefined on 15/11/24.
CAIE AS LEVEL COMPUTER SCIENCE
Walkthrough testing:
4.5. Corrective Maintenance A test where the code is reviewed carefully by the
developer’s peers, managers, team members, etc.
Corrective Maintenance is correcting identified errors It is used to gather useful feedback to further develop
White-Box testing: making sample data and running it
the code.
through a trace table
Trace table: technique used to test algorithms; make Integration testing:
sure that no logical errors occur e.g.
Taking modules that have been tested on individually
and testing on them combined together
This method allows all the code snippets to integrate
with each other, making the program work.

Alpha testing:
This is the testing done on software ‘in-house’, meaning it
is done by the developers
Basically another term for ‘first round of testing’

Beta testing:

4.6. Adaptive Maintenance This is the testing done on the software by beta users,
who use the program and report any problems back to
Making amendments to: the developer.
Parameters: due to changes in specification Basically another term for ‘second round of testing’
Logic: to enhance functionality or more faster or Acceptance testing:
both
Design: to make it more user friendly A test carried out by the intended users of the system:
the people who requested the software.
4.7. Testing Strategies The purpose is to check that the software performs
exactly as required.
Black box testing: The acceptance criteria should completely be satisfied
for the program to be released.
Use test data for which results already calculated &
compare result from program with expected results
Testing only considers input and output and the code is
viewed as being in a ‘black box’

White box testing:

Examine each line of code for correct logic and accuracy.


May record value of variables after each line of code
Every possible condition must be tested

Stub testing:

Stubs are computer programs that act as temporary


replacement for a called module and give the same
output as the actual product or software.
Important when code is not completed however must be
tested so modules are replaced by stubs

Dry run testing:

A process where code is manually traced, without any


software used
The value of a variable is manually followed to check
whether it is used and updated as expected
Used to identify logic errors, but not execution errors

WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Avi at undefined on 15/11/24.
CAIE AS Level
Computer Science

© ZNotes Education Ltd. & ZNotes Foundation 2024. All rights reserved.
This version was created by Avi on Fri Nov 15 2024 for strictly personal use only.
These notes have been created by Zubair Junjunia for the 2017 syllabus.
The document contains images and excerpts of text from educational resources available on the internet and printed books.
If you are the owner of such media, test or visual, utilized in this document and do not accept its usage then we urge you to contact us
and we would immediately replace said media. No part of this document may be copied or re-uploaded to another website.
Under no conditions may this document be distributed under the name of false author(s) or sold for financial gain.
"ZNotes" and the ZNotes logo are trademarks of ZNotes Education Limited (registration UK00003478331).

You might also like