International AS & A Level Computer Science: Oxford Resources for OxfordAQA
US$ 44.99
The publisher has enabled DRM protection, which means that you need to use the BookFusion iOS, Android or Web app to read this eBook. This eBook cannot be used outside of the BookFusion platform.
Description
Contents
Reviews
Language
English
ISBN
9781382075077
Cover Page
Title page
Copyright page
Contents
Introduction
What is computer science?
The specification
How to use this book
Revision checklist
Practice exam questions
Programs, Python and pseudocode
What is a program?
Python
Commands and programs
Syntax
What is pseudocode?
Text alternatives to non-text content
Text alternative for The shell shows the input 3 plus 15 and the output 18
Unit 1 Programming
Chapter 1 Procedural programming
1.1 Variables and values
Expressions
Variables
Input commands
Output commands
Data types
1.2 Calculations
Arithmetic operators
Division and integer division
Precedence
Type conversion
Truncation and rounding
1.3 String operations
String concatenation
String length
Select a single character
Select a substring
The problem with string conversion
Exception handling
1.4 Selection structures
Relational operators
Boolean operators
Selection structures
Elif
Nested if
1.5 Loops
Iteration
For loop (definite iteration)
While loop (indefinite iteration)
Choose the right type of loop
Nested iteration
1.6 Subroutines
What is a subroutine?
Use a subroutine
Advantages of subroutines
Using parameters
Multiple parameters
1.7 The stack frame and local variables
What happens when a subroutine is called?
The stack frame
Example
Local variables
Multiple subroutines
1.8 Returned values and global variables
The problem of local variables
Global variables
Problems with global variables
Return a value
Calling the subroutine
1.9 Use your skills
A quiz program
Create an outline
Import a module
Create two random numbers
Make and ask a question
Get user response
Check if correct
Ask five questions
Chapter 1 Revision and exam practice
Revision checklist
Practice exam questions
Chapter 2 Fundamental data structures
2.1 Lists
Linear data structures
Lists
Adding and removing values
Lists and loops
Individual elements
Traversing a list
2.2 Static and dynamic structures
Arrays
Tuples
Compare data structures
Search, sort and slice
2.3 Two-dimensional structures and records
A one-dimensional structure (a list)
A two-dimensional structure (a list of lists)
Recap: index numbers
Records
2.4 Stack operations
The stack
Why use a stack?
Draw a push operation
Draw a pop operation
Stack full or empty
When to use the stack
2.5 Programming the stack
In a Python list
In a static array
Create the push command
Create the pop command
No need to wipe the data
Stack full or empty
2.6 Queue operations
The queue
Draw the enqueue operation
Draw the dequeue operation
Why use a queue?
Circular queue
2.7 Programming the queue
Make a queue in Python
Create a queue in a static array
Create the dequeue command
Create the enqueue command
Make a circular queue
Is the queue full?
Chapter 2 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative for The stack contains the values A, B and C
Text alternative for The stack contains the values A, B, C and D
Text alternative for The stack contains the values A and B
Text alternative to Figure 2.2
Text alternative for The queue contains the values A, B and C
Text alternative for The queue contains the values A, B, C and D
Text alternative for The queue contains the values C and D
Text alternative for The queue contains the values A, B, C, D and E
Text alternative for The queue contains the values S, T, U, V and W
Text alternative for The queue contains the values U, V, W, X and Y
Text alternative to Figure 2.6
Chapter 3 Program design
3.1 Decomposition
Decomposing a problem
Hierarchy chart
Structured programming
Make a stack program using subroutines
A more complex example – car park program
How far to break down?
3.2 Sharing and sending data
Sharing data
Structure charts
Conditionals and loops
A more complex example – car park program
Other styles of programming
3.3 Abstraction
Simplify a problem
Example – modelling a room
Advantages and risks of abstraction
Reusing solutions
3.4 Algorithms
Inputs and outputs
What are algorithms?
Setting out an algorithm
Converting pseudocode to Python
Reusing an algorithm
3.5 Trace tables
Check if an algorithm works
How to trace an algorithm
Trace a loop
Trace conditional structures
Complete the trace
3.6 Program testing
Why test a program?
Types of test data
Errors
Example program
Success criteria
Test with normal data
Test with boundary data
Test with erroneous data
3.7 Software development stages
Stages of development
Analysis
Design
Implementation
Testing
Evaluation
Software development life cycle
3.8 Agile program development
Agile development
Sprint and scrum
Advantages and disadvantages
Prototyping
Critical path
Chapter 3 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative to Figure 3.4
Text alternative to Figure 3.7
Text alternative to Figure 3.10
Text alternative for A nine-line algorithm written in code
Text alternative to Figure 3.16
Text alternative to Figure 3.17
Chapter 4 Searching and sorting algorithms
4.1 Linear search
Program the linear search
Trace the program
How many operations?
4.2 Binary search
Program the binary search
Trace the program
Simplify the search using slice
How many operations?
Comparing algorithms
4.3 Bubble sort
Swap items
Traverse the list, swapping items
Repeat the traverse
Make the bubble sort faster
How many operations?
4.4 Merge sort
Why do we need another sort algorithm?
Split a big list into lots of little lists
Merge lists
Complete the sort
How many operations?
Use of memory space
Comparing algorithms
Big O values
Chapter 4 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative to Figure 4.1
Text alternative to Figure 4.2
Text alternative to Figure 4.3
Text alternative to Figure 4.4
Unit 2 Concepts and principles of computer science
Chapter 5 Representing data
5.1 Binary numbers
Number bases
Converting from binary to decimal
Converting from decimal to binary
Bytes and nibbles
Larger values
5.2 Hexadecimal numbers
Base 16
Convert hexadecimal to decimal
Convert decimal to hexadecimal
Importance of hexadecimal
Correspondence between binary and hexadecimal
Convert from hexadecimal to binary
Convert from binary to hexadecimal
5.3 Binary maths
Binary addition
Binary shift
Multiply two binary numbers
More complex examples
5.4 Negative numbers
Signed and unsigned numbers
Converting two’s complement to decimal
Converting decimal to two’s complement
Worked example
Number range
Expressing number ranges as a function of n
Binary subtraction
Worked example
5.5 Fixed point binary
Numbers with a fractional part
The binary point
Position values
Converting between fixed point and decimal
Range and precision
5.6 Floating point binary
Why using floating point?
Floating point conversion
Mantissa and exponent
Find the value of a floating point number
With a negative exponent
If mantissa and exponent are both negative
Best possible range and precision
5.7 Create floating point numbers
Convert decimal to floating point
Find the mantissa
Find the exponent
Negative mantissa
Negative exponent
Normalize the mantissa
5.8 Rounding error
Some fractions cannot be represented
Calculate rounding error
Using floating point binary
Absolute and relative error
5.9 ASCII and Unicode
Character sets
ASCII
Digits
Unicode
Use Python to find character codes
5.10 Digital graphics
Digital images
Image quality
Image file size
Vector images
5.11 Digital sound
Analogue sound
Digital sound
Sound quality
Calculate file size
Nyquist’s theorem
5.12 Encryption
What is encryption?
The encryption key
Caesar cipher
Perfect and computational security
Key exchange problem
5.13 The Vernam cipher
A perfectly secure cipher?
1. Apply the key to the text
2. Convert to binary numbers
3. Use an XOR operator
Decrypt using the Vernam cipher
How secure is the Vernam cipher?
5.14 Error checks
Why must we check for errors?
Parity bits
Majority voting
Checksum
Choosing the right error check
Chapter 5 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative to Figure 5.1
Text alternative to Figure 5.8
Text alternative to Figure 5.10
Chapter 6 Computer systems
6.1 Hardware and software
What is hardware?
What is software?
Applications and system software
Operating systems
Functions of an operating system
Utilities
6.2 Programming languages
Load and run a program
Programming languages
Machine code
Assembly language
Translating assembly language
High-level languages
Which to choose?
Imperative or declarative?
6.3 Compilers and interpreters
Source code
Action of a compiler
Action of an interpreter
Which is best?
Intermediate code
Code libraries
Chapter 6 Revision and exam practice
Revision checklist
Practice exam questions
Chapter 7 Computer organization and architecture
7.1 The processor
Components of the computer system
The stored program concept
Addressable memory
Computer architectures
7.2 The Fetch-Execute cycle
Inside the processor
The Fetch-Execute cycle
Registers
How registers are used during the cycle
Fetch
Decode
Execute
Store
7.3 Processor performance
Interrupts
Improving performance
Cache memory
Number of cycles per second
Data processed per cycle
Bus width
Multiple processors
7.4 Storage
Volatile memory
Secondary storage
Magnetic storage
Solid-state storage
Cloud storage
7.5 Logic gates and truth tables
Logic gates
Truth tables
Boolean operators
7.6 Logic circuits and expressions
Boolean expressions
Draw a truth table to match the logic circuit
Use brackets to change the gate sequence
Order of precedence
Make an expression to match a circuit
7.7 Simplification
What is simplification?
Boolean identity
The laws of simplification
7.8 Useful logic circuits
The half-adder
The full-adder
D-type flip-flop
Inputs and outputs
Chapter 7 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative to Figure 7.5
Text alternative for A logic circuit with an AND gate then an OR gate
Text alternative for A logic circuit with an OR gate then an AND gate
Text alternative for A logic circuit with a NOT gate then an AND gate
Text alternative for A logic circuit with an AND gate then a NOT gate
Text alternative for A logic circuit with an AND gate and a NOT gate then an OR gate
Text alternative for A logic circuit with two NOT gates, two AND gates and an OR gate
Text alternative to Figure 7.9
Text alternative to Figure 7.10
Text alternative to Figure 7.11
Chapter 8 Machine code and assembly language
8.1 Assembly language
Controlling the computer with instruction codes
Mnemonic letter codes
Low-level languages
Operator and operands
Addressing mode
Structure of an assembly language instruction
8.2 Commands in assembly language
Loading and storing data
LOAD command
STORE command
MOVE data between registers
Immediate addressing
Carrying out calculations
Trace the registers
8.3 Control program flow
The program counter
Branching
Conditional branching
Use branching to make a selection structure
8.4 Understand and write programs
Variables, values and calculations
Programs with branching
Understand or explain a program
Using a simulator
8.5 Bitwise operations
Working with binary values
Binary shift
Boolean operators
NOT operator (MVN)
AND operator
OR operator (ORR)
EXCLUSIVE-OR (EOR)
Chapter 8 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative to Figure 8.4
Text alternative for Two binary numbers with one above the other
Text alternative for Two binary numbers with one above the other
Text alternative for Two binary numbers with one above the other
Unit 3 Advanced programming
Chapter 9 Object-oriented and additional programming
9.1 Classes, objects and instantiation
Introducing OOP
Plan an OOP class
Program an OOP class
Set values for the attributes
Create an object
Create and call a method
Create multiple objects
9.2 Encapsulation
Change and show attributes
Protect attributes with encapsulation
Access modifiers
But what if we need access?
Getters
Setters
Private methods
9.3 Relationships between classes
Save time with inheritance
Case study example
Overriding and extending
Inheritance in code
Association
Protected attributes
9.4 Recursion
A recursive function calls itself
Recursion causes repetition
Example of a recursive function
Call a recursive function
Write a recursive function
Convert from iteration to recursion
9.5 Trace a recursive function
Recursive functions in memory
A different type of recursive case
Compare iteration to recursion
9.6 Read and write files
Variables and memory
Reading and writing
Write to a file
Reading from a file
Chapter 9 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative to Figure 9.1
Text alternative to Figure 9.3
Text alternative to Figure 9.5
Text alternative to Figure 9.6
Text alternative for An iterative implementation of the add up function
Text alternative for A recursive implementation of the add up function
Text alternative to Figure 9.8
Chapter 10 Advanced data structures
10.1 Graph data structure
A non-linear data structure
Weighted graphs
Directed graphs
Adjacency list
Adjacency matrix
Which should you use?
10.2 Tree data structure
Trees: Non-cyclical graphs
Uses of tree graphs
Binary search tree
Finding data in a binary search tree
10.3 Priority queue
Review the queue data structure
Visualize a priority queue
Program a priority queue
Separate value and priority
10.4 Hash tables
Start the hash table
Write a hash function
Convert into a location number
Find data in a hash table
10.5 Hashing and dictionaries
The problem of collisions
What makes a good hash function?
Advantages of using a hash table
Programming with dictionaries
Chapter 10 Revision and exam practice
Revision checklist
Practice exam questions
Chapter 11 Advanced algorithms
11.1 Traverse a graph
Traverse a graph structure
Breadth-first traversal
Traverse a cyclical data structure
11.2 Program a breadth-first search
Store a graph using a 2D array
Breadth-first traversal
Breadth-first search
Traverse a cyclical graph
Alternatives to Python lists
11.3 Program a depth-first search
Depth-first traversal
Program the depth-first traversal
Convert to a depth-first search
Use with a cyclical graph
11.4 Tree traversal algorithms
Hold a tree using a fixed array
Adapt the depth-first traversal to use an array
In-order traversal
Pre-order traversal
How the traversal algorithms are used
11.5 Dijkstra’s algorithm
Find the shortest route
Trace the algorithm
Chapter 11 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative to Figure 11.6
Text alternative to Figure 11.8
Unit 4 Advanced concepts and principles of computer science
Chapter 12 Functional programming
12.1 Functions and domains
What are functions?
Sets of numbers
12.2 Haskell programs and operators
Prepare to write Haskell programs
The main program
Arithmetic operators
Relational operators
Boolean operators
12.3 Define and apply functions
Variables that can’t vary
Define and use a function
A function with two arguments
Data types in Haskell
Function type
12.4 Lists in functional programming
Lists of values
Create a list
List length
Passing a list to a function
12.5 Map and filter
First-class objects
Map a function onto the items in a list
Filter a list
12.6 Fold a list
Fold
Example with addition
Example with subtraction
Reviewing the higher-order functions
Lists of lists
12.7 Composition and recursion
Composition of functions
Recursion
Pattern matching
Chapter 12 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative for Code containing a composite function called new function which is the sub 99 and square functions joined together
Chapter 13 Theory of computation
13.1 Finite state machines
Transition between states
Acceptance state
FSM with output (Mealy machine)
13.2 Regular expressions
Regular expressions
Metacharacters
Regular languages
Using an FSM to evaluate strings
13.3 Syntax diagrams
Syntax diagrams
Required or optional items
Non-terminals
13.4 Backus–Naur Form
An alternative to syntax diagrams
Write a BNF production rule
Optional and alternative terms
Repeated terms
Overview
13.5 Turing machines
The first ‘computer’?
Finite state machines
Transition rules
The actions of a Turing machine
13.6 Representing Turing machines
Transition rules
Transition function
Hand-trace a Turing machine
A more complex example
13.7 Comparing algorithms
Choosing the right algorithm
Best and worst case
Big O complexity
Space complexity
13.8 Intractable problems
Tractable problems
Intractable problems
Heuristic methods
Problems that are not computable
Chapter 13 Revision and exam practice
Revision checklist
Practice exam questions
Chapter 14 Networking and cyber security
14.1 Data transmission
What is data transmission?
Serial and parallel transmission
Synchronous and asynchronous transmission
Connectivity speed
Standards and protocols
14.2 Wired and wireless networks
Connectivity using wires and cables
Protocols for cable connections
Wireless connections
Wireless protocols
Wireless security
14.3 Client–server networks
Peer-to-peer networks
Client–server networks
Thick and thin clients
14.4 The Internet
What is the Internet?
Packet switching
Internet addresses
A world of web pages
14.5 Locating resources
Composition of IP addresses
Host identifiers
Identifying and finding a web page
Domains and domain names
14.6 Internet protocols
Organizing protocols in layers
The layers of the TCP/IP stack
Application layer protocols
File transfer protocols
Web page protocols
Email protocols
Secure shell protocols
14.7 Cyber security
The need for security
Digital authentication
Encryption with public and private keys
Types of malware
Chapter 14 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative for Line graph of number of people using internet per year with y axis marked per billion from zero to five billion and x axis marked per decade from nineteen sixty to two thousand twenty one
Chapter 15 Databases
15.1 Relational databases
Storing data in a single table
A database with several tables
Many-to-many relationships
15.2 Database design
Entity descriptions
Primary key
Links between entities
Normalization
15.3 Create a database
Turn a design into a database
Add tables to the database
Identify primary keys
Identify foreign keys
Add data to the tables
Output data from the database
15.4 SQL queries
Pick out data to answer a query
Combine data from several tables
Sort the output
Aggregate functions
Group the output
Make changes to data in a table
15.5 Big data
Multi-user databases
Collecting big data
Big data can be hard to handle
Distributed processing
15.6 Fact-based models
Modelling big data
What is a ‘fact’?
Practice exercise
Chapter 15 Revision and exam practice
Revision checklist
Practice exam questions
Text alternatives to non-text content
Text alternative for The Joined property
Chapter 16 Artificial intelligence
16.1 What is artificial intelligence?
Solving new problems
Finding patterns in big data
The problem of biased data
16.2 Machine learning
An algorithm that grows and adapts
Types of machine learning
Generative AI
Other uses of machine learning
16.3 Neural networks
Hardware for machine learning
How human brains learn
A computer modelled on human learning
Layers of a neural network
Backpropagation
16.4 The impact of AI
Using AI to search or recommend
Using AI to make recommendations
AI and plagiarism
Risks of AI
Benefits of AI
Artificial general intelligence
Chapter 16 Revision and exam practice
Revision checklist
Practice exam questions
Glossary
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
Index
Standard OxfordAQA assembly language instruction set
Instruction set
Interpretation of <operand2>
Labels
Answers to ‘Test your understanding’ prompts and practice exam questions: Supporting Resources for OxfordAQA International AS & A-level Computer Science
Acknowledgements
List of Illustrations
List of Tables
Loading...