CAIE-AS Level-Computer Science - Practical
CAIE-AS Level-Computer Science - Practical
ORG
CAIE AS LEVEL
COMPUTER SCIENCE
SUMMARIZED NOTES ON THE THEORY SYLLABUS
Prepared for Viduranga for personal use only.
CAIE AS LEVEL COMPUTER SCIENCE
WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Viduranga at Royal Institute on 09/12/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)
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 Viduranga at Royal Institute on 09/12/24.
CAIE AS LEVEL COMPUTER SCIENCE
Pseudocode:
WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Viduranga at Royal Institute on 09/12/24.
CAIE AS LEVEL COMPUTER SCIENCE
Mode Description
r
Opens file for reading only. Pointer placed at the 3.2. Selections
beginning of the file.
Opens a file for writing only. Overwrites file if file “IF” Statement
w
exists or creates new file if it doesn’t Pseudocode: IF…THEN…ELSE…ENDIF
Opens a file for appending. Pointer at end of file if it Python: if (expression): (statements) else:
a
exists or creates a new file if not
(statements)
“CASE” Statement
Reading a file:
Pseudocode: CASE OF variable: … … … OTHERWISE:
Read all characters: variable.read() … ENDCASE
Read each line and store as list:
Python: if (expression): (statement) elif
variable.readlines()
(expression): statement) … else: (statement)
Writing to a file:
Write a fixed a sequence of characters to file:
variable.write(“Text”) 3.3. Iterations
Write a list of string to file: variable.write(‘
‘.join(‘Z’, ‘Notes’)) Count-controlled Loop
FOR <identifier> ← <val1> TO
<val2> STEP <val3>
Abstract Data Types <statement(s)>
ENDFOR
(ADT) for x in range(value1, value2):
statement(s)
An Abstract Data Type (ADT) is a collection of data with Post condition Loop
associated operations. There are three types of ADTs: REPEAT Not possible in Python
<statement(s)> Use ‘’’python WHILE‘’’ and
Stack: an ordered collection of items where the addition UNTIL <condition> ‘’’python IF‘’’
of new items and removal of existing items always takes Pre-condition Loop
place at the same end. WHILE <condition>
while expression:
Queue: a linear structure which follows the First In First <statement(s)>
statement(s)
ENDWHILE
Out (FIFO) mechanism. Items are added at one end
(called the rear) and removed from the other end (called
the front) 3.4. Built-in Functions
Linked List: a linear collection of data elements whose
order is not given by physical placements in memory String/character manipulation:
(non-contiguous). Each element points to the next.
Uppercase or lowercase all characters:
(“string”).upper() (“string”).lower()
3. Programming Finding length of a string: len(“string”)
Converting:
Programming is a transferable skill String to Integer - int(“string”)
Transferable skill: skills developed in one situation Integer to String - str(integer)
which can be transferred to another situation. Random number generator: random.randint(a, b)
Where a and b defines the range
3.1. Variables
Declaring a variable:
3.5. Benefits of Procedures and
Pseudocode: ‘’’DECLARE : ‘’’ Functions:
Python: no need to declare however must write
above as a comment (‘’’python #...‘’’) Lines of code can be re-used; don’t have to be repeated
Assigning variables: Can be tested/improved independently of program
Easy to share procedures/functions with other programs
‘’’python ← ‘’’ or ‘’’python ‘’’ Create routines that can be called like built-in command
‘’’python identifier = value‘’’ or ‘’’python expression‘’’ or
‘’’python “string”‘’’ 3.6. Procedure
WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Viduranga at Royal Institute on 09/12/24.
CAIE AS LEVEL COMPUTER SCIENCE
Procedure: subroutine that performs a specific task without
returning a value Analyze problem: define problem, record program
specifications and recognize inputs, process, output & UI
Procedure without parameters: Design program: develop logic plan, write algorithm in
e.g. pseudocode or flowchart and test solution
PROCEDURE def Code program: translate algorithm into high level
<statement(s)>ENDPROCEDURE identifier():statement(s) language with comments/remarks and produce user
interface with executable processes
When a procedure has a parameter, the function can Test and debug program: test program using test data,
either pass it by either reference or value find and correct any errors and ensure results are
Pass by value: data copied into procedure so variable correct
not changed outside procedure Formalize solution: review program code, revise
PROCEDURE <identifier> (BYVALUE <param>:
internal documentation and create end-user
<datatype>) documentation
<statement(s)> Maintain program: provide education and support to
ENDPROCEDURE end-user, correct any bugs and modify if user requests
def identifier(param):
There are three different development life cycles:
statement(s)
Waterfall model: a classical model, used to create a
Pass by reference: link to variable provided so variable system with a linear approach, from one stage to
changed after going through procedure (not in Python) another
PROCEDURE <identifier> (BYREF <param>: <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
Rapid Application Development (RAD) model: a
Calling a procedure: prototyping model, with no (or less) specific planning put
into it. More emphasis on development and producing a
CALL () Identifier() product-prototype.
Debugging:
WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Viduranga at Royal Institute on 09/12/24.
CAIE AS LEVEL COMPUTER SCIENCE
Rules:
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 Viduranga at Royal Institute on 09/12/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’
Stub testing:
WWW.ZNOTES.ORG Copyright © 2024 ZNotes Education & Foundation. All Rights Reserved. This document is
authorised for personal use only by Viduranga at Royal Institute on 09/12/24.
CAIE AS Level
Computer Science
© ZNotes Education Ltd. & ZNotes Foundation 2024. All rights reserved.
This version was created by Viduranga on Mon Dec 09 2024 for strictly personal use only.
These notes have been created by Shaikh Ayman Abdul-Majid for the 2023 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).