IB Computer Science HL standards: Difference between revisions

From Computer Science Wiki
No edit summary
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 8: Line 8:
|-
|-
! Assessment Statement  !! Big Idea
! Assessment Statement  !! Big Idea
|  colspan="2" | System fundamentals
|- style="background-color:#E6F9E6;"
|Identify the context for which a new system is planned.||
|  colspan="2" | '''System fundamentals'''
|-
|-
|Describe the need for change management.||  
|Identify the context for which a new system is planned.|| [[System fundamentals]]
|-
|-
|Outline compatibility issues resulting from situations including legacy systems or business mergers.||  
|Describe the need for change management.|| [[System fundamentals]]
|-
|-
|Compare the implementation of systems using a client’s hardware with hosting systems remotely.||  
|Outline compatibility issues resulting from situations including legacy systems or business mergers.|| [[System fundamentals]]
|-
|-
|Evaluate alternative installation processes.||  
|Compare the implementation of systems using a client’s hardware with hosting systems remotely.|| [[System fundamentals]]
|-
|-
|Discuss problems that may arise as a part of data migration.||  
|Evaluate alternative installation processes.|| [[System fundamentals]]
|-
|-
|Suggest various types of testing.||  
|Discuss problems that may arise as a part of data migration.|| [[System fundamentals]]
|-
|-
|Describe the importance of user documentation.||  
|Suggest various types of testing.|| [[System fundamentals]]
|-
|-
|Evaluate different methods of providing user documentation.||  
|Describe the importance of user documentation.|| [[System fundamentals]]
|-
|-
|Evaluate different methods of delivering user training.||  
|Evaluate different methods of providing user documentation.|| [[System fundamentals]]
|-
|-
|Identify a range of causes of data loss.||  
|Evaluate different methods of delivering user training.|| [[System fundamentals]]
|-
|-
|Outline the consequences of data loss in a specified situation.||  
|Identify a range of causes of data loss.|| [[System fundamentals]]
|-
|-
|Describe a range of methods that can be used to prevent data loss.||  
|Outline the consequences of data loss in a specified situation.|| [[System fundamentals]]
|-
|-
|Describe strategies for managing releases and updates.||  
|Describe a range of methods that can be used to prevent data loss.|| [[System fundamentals]]
|-
|-
|Define the terms: hardware, software, peripheral, network, human resources.||  
|Describe strategies for managing releases and updates.|| [[System fundamentals]]
|-
|-
|Describe the roles that a computer can take in a networked world.||  
|Define the terms: hardware, software, peripheral, network, human resources.|| [[System fundamentals]]
|-
|-
|Discuss the social and ethical issues associated with a networked world.||  
|Describe the roles that a computer can take in a networked world.|| [[System fundamentals]]
|-
|-
|Identify the relevant stakeholders when planning a new system.||  
|Discuss the social and ethical issues associated with a networked world.|| [[System fundamentals]]
|-
|-
|Describe methods of obtaining requirements from stakeholders.||  
|Identify the relevant stakeholders when planning a new system.|| [[System fundamentals]]
|-
|-
|Describe appropriate techniques for gathering the information needed to arrive at a workable solution.||  
|Describe methods of obtaining requirements from stakeholders.|| [[System fundamentals]]
|-
|-
|Construct suitable representations to illustrate system requirements.||  
|Describe appropriate techniques for gathering the information needed to arrive at a workable solution.|| [[System fundamentals]]
|-
|-
|Describe the purpose of prototypes to demonstrate the proposed system to the client.||  
|Construct suitable representations to illustrate system requirements.|| [[System fundamentals]]
|-
|-
|Discuss the importance of iteration during the design process.||  
|Describe the purpose of prototypes to demonstrate the proposed system to the client.|| [[System fundamentals]]
|-
|-
|Explain the possible consequences of failing to involve the end-user in the design process.||  
|Discuss the importance of iteration during the design process.|| [[System fundamentals]]
|-
|-
|Discuss the social and ethical issues associated with the introduction of new IT systems.||  
|Explain the possible consequences of failing to involve the end-user in the design process.|| [[System fundamentals]]
|-
|-
|Define the term usability.||  
|Discuss the social and ethical issues associated with the introduction of new IT systems.|| [[System fundamentals]]
|-
|-
|Identify a range of usability problems with commonly used digital devices.||  
|Define the term usability.|| [[System fundamentals]]
|-
|-
|Identify methods that can be used to improve the accessibility of systems.||  
|Identify a range of usability problems with commonly used digital devices.|| [[System fundamentals]]
|-
|-
|Identify a range of usability problems that can occur in a system.||  
|Identify methods that can be used to improve the accessibility of systems.|| [[System fundamentals]]
|-
|-
|Discuss the moral, ethical, social, economic and environmental implications of the interaction between humans and machines.||  
|Identify a range of usability problems that can occur in a system.|| [[System fundamentals]]
|-
|-
|  colspan="2" | Computer Organization
|Discuss the moral, ethical, social, economic and environmental implications of the interaction between humans and machines.|| [[System fundamentals]]
|-style="background-color:#E6F9E6;"
|  colspan="2" | '''Computer Organization'''
|-
|-
|Outline the architecture and function of the CPU, ALU, CU and the registers within the CPU||  
|Outline the architecture and function of the CPU, ALU, CU and the registers within the CPU|| [[Computer organization]]
|-
|-
|Explain the use of cache memory.||  
|Explain the use of cache memory.|| [[Computer organization]]
|-
|-
|Explain the machine instruction cycle.||  
|Explain the machine instruction cycle.|| [[Computer organization]]
|-
|-
|Identify the need for persistent storage.||  
|Identify the need for persistent storage.|| [[Computer organization]]
|-
|-
|Describe the main functions of an operating system.||  
|Describe the main functions of an operating system.|| [[Computer organization]]
|-
|-
|Outline the use of a range of application software.||  
|Outline the use of a range of application software.|| [[Computer organization]]
|-
|-
|Identify common features of applications.||  
|Identify common features of applications.|| [[Computer organization]]
|-
|-
|Define the terms: bit, byte, binary, denary/decimal, hexadecimal.||  
|Define the terms: bit, byte, binary, denary/decimal, hexadecimal.|| [[Computer organization]]
|-
|-
|Outline the way in which data is represented in the computer.||  
|Outline the way in which data is represented in the computer.|| [[Computer organization]]
|-
|-
|Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR.||  
|Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR.|| [[Computer organization]]
|-
|-
|Construct truth tables using the above operators.||  
|Construct truth tables using the above operators.|| [[Computer organization]]
|-
|-
|Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates.||  
|Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates.|| [[Computer organization]]
|-style="background-color:#E6F9E6;"
| colspan="2" | '''Networks'''
|-
|-
| colspan="2" | Networks  
|Identify different types of networks.|| [[Networks]]
|-
|-
|Identify different types of networks.||  
|Outline the importance of standards in the construction of networks.|| [[Networks]]
|-
|-
|Outline the importance of standards in the construction of networks.||  
|Describe how communication over networks is broken down into different layers.||[[Networks]]
|-
|-
|Describe how communication over networks is broken down into different layers.||  
|Identify the technologies required to provide a VPN.|| [[Networks]]
|-
|-
|Identify the technologies required to provide a VPN.||  
|Evaluate the use of a VPN.|| [[Networks]]
|-
|-
|Evaluate the use of a VPN.||  
|Define the terms: protocol, data packet.|| [[Networks]]
|-
|-
|Define the terms: protocol, data packet.||  
|Explain why protocols are necessary.|| [[Networks]]
|-
|-
|Explain why protocols are necessary.||  
|Explain why the speed of data transmission across a network can vary.|| [[Networks]]
|-
|-
|Explain why the speed of data transmission across a network can vary.||  
|Explain why compression of data is often necessary when transmitting across a network.|| [[Networks]]
|-
|-
|Explain why compression of data is often necessary when transmitting across a network.||  
|Outline the characteristics of different transmission media.|| [[Networks]]
|-
|-
|Outline the characteristics of different transmission media.||  
|Explain how data is transmitted by packet switching.|| [[Networks]]
|-
|-
|Explain how data is transmitted by packet switching.||  
|Outline the advantages and disadvantages of wireless networks.|| [[Networks]]
|-
|-
|Outline the advantages and disadvantages of wireless networks.||  
|Describe the hardware and software components of a wireless network.|| [[Networks]]
|-
|-
|Describe the hardware and software components of a wireless network.||  
|Describe the characteristics of wireless networks.|| [[Networks]]
|-
|-
|Describe the characteristics of wireless networks.||  
|Describe the different methods of network security.|| [[Networks]]
|-
|-
|Describe the different methods of network security.||  
|Evaluate the advantages and disadvantages of each method of network security.|| [[Networks]]
|-style="background-color:#E6F9E6;"
| colspan="2" | '''Computational thinking, problem-solving and programming'''
|-
|-
|Evaluate the advantages and disadvantages of each method of network security.||  
|Identify the procedure appropriate to solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
| colspan="2" | Computational thinking, problem-solving and programming  
|Evaluate whether the order in which activities are undertaken will result in the required outcome.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify the procedure appropriate to solving a problem.||  
|Explain the role of sub-procedures in solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Evaluate whether the order in which activities are undertaken will result in the required outcome.||  
|Identify when decision-making is required in a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Explain the role of sub-procedures in solving a problem.||  
|Identify the decisions required for the solution to a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify when decision-making is required in a specified situation.||  
|Identify the condition associated with a given decision in a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify the decisions required for the solution to a specified problem.||  
|Explain the relationship between the decisions and conditions of a system.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify the condition associated with a given decision in a specified problem.||  
|Deduce logical rules for real-world situations.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Explain the relationship between the decisions and conditions of a system.||  
|Identify the inputs and outputs required in a solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Deduce logical rules for real-world situations.||  
|Identify pre-planning in a suggested problem and solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify the inputs and outputs required in a solution.||  
|Explain the need for pre-conditions when executing an algorithm.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify pre-planning in a suggested problem and solution.||  
|Outline the pre- and post-conditions to a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Explain the need for pre-conditions when executing an algorithm.||  
|Identify exceptions that need to be considered in a specified problem solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Outline the pre- and post-conditions to a specified problem.||  
|Identify the parts of a solution that could be implemented concurrently.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify exceptions that need to be considered in a specified problem solution.||  
|Describe how concurrent processing can be used to solve a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify the parts of a solution that could be implemented concurrently.||  
|Evaluate the decision to use concurrent processing in solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Describe how concurrent processing can be used to solve a problem.||  
|Identify examples of abstraction.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Evaluate the decision to use concurrent processing in solving a problem.||  
|Explain why abstraction is required in the derivation of computational solutions for a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Identify examples of abstraction.||  
|Construct an abstraction from a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Explain why abstraction is required in the derivation of computational solutions for a specified situation.||  
|Distinguish between a real-world entity and its abstraction.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Construct an abstraction from a specified situation.||  
|Describe the characteristics of standard algorithms on linear arrays.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Distinguish between a real-world entity and its abstraction.||  
|Outline the standard operations of collections.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Describe the characteristics of standard algorithms on linear arrays.||  
|Discuss an algorithm to solve a specific problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Outline the standard operations of collections.||  
|Analyse an algorithm presented as a flow chart.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Discuss an algorithm to solve a specific problem.||  
|Analyse an algorithm presented as pseudocode.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Analyse an algorithm presented as a flow chart.||  
|Construct pseudocode to represent an algorithm.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Analyse an algorithm presented as pseudocode.||  
|Suggest suitable algorithms to solve a specific problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Construct pseudocode to represent an algorithm.||  
|Deduce the efficiency of an algorithm in the context of its use.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Suggest suitable algorithms to solve a specific problem.||  
|Determine the number of times a step in an algorithm will be performed for given input data.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Deduce the efficiency of an algorithm in the context of its use.||  
|State the fundamental operations of a computer.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Determine the number of times a step in an algorithm will be performed for given input data.||  
|Distinguish between fundamental and compound operations of a computer.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|State the fundamental operations of a computer.||  
|Explain the essential features of a computer language.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Distinguish between fundamental and compound operations of a computer.||  
|Explain the need for higher level languages.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Explain the essential features of a computer language.||  
|Outline the need for a translation process from a higher level language to machine executable code.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Explain the need for higher level languages.||  
|Define the terms: variable, constant, operator, object.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Outline the need for a translation process from a higher level language to machine executable code.||  
|Define common operators.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Define the terms: variable, constant, operator, object.||  
|Analyse the use of variables, constants and operators in algorithms.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Define common operators.||  
|Construct algorithms using loops, branching.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Analyse the use of variables, constants and operators in algorithms.||  
|Describe the characteristics and applications of a collection.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Construct algorithms using loops, branching.||  
|Construct algorithms using the access methods of a collection.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Describe the characteristics and applications of a collection.||  
|Discuss the need for sub-programmes and collections within programmed solutions.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
|Construct algorithms using the access methods of a collection.||  
|Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-style="background-color:#E6F9E6;"
| colspan="2" | '''Abstract Data Structures'''
|-
|-
|Discuss the need for sub-programmes and collections within programmed solutions.||  
|Identify a situation that requires the use of recursive thinking.|| [[Abstract data structures]]
|-
|-
|Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections.||  
|Identify recursive thinking in a specified problem solution.|| [[Abstract data structures]]
|-
|-
| colspan="2" | Abstract Data Structures
|Trace a recursive algorithm to express a solution to a problem.|| [[Abstract data structures]]
|-
|-
|Identify a situation that requires the use of recursive thinking.||  
|Describe the characteristics of a two- dimensional array.|| [[Abstract data structures]]
|-
|-
|Identify recursive thinking in a specified problem solution.||  
|Construct algorithms using two- dimensional arrays.|| [[Abstract data structures]]
|-
|-
|Trace a recursive algorithm to express a solution to a problem.||  
|Describe the characteristics and applications of a stack.|| [[Abstract data structures]]
|-
|-
|Describe the characteristics of a two- dimensional array.||  
|Construct algorithms using the access methods of a stack.|| [[Abstract data structures]]
|-
|-
|Construct algorithms using two- dimensional arrays.||  
|Describe the characteristics and applications of a queue.|| [[Abstract data structures]]
|-
|-
|Describe the characteristics and applications of a stack.||  
|Construct algorithms using the access methods of a queue.|| [[Abstract data structures]]
|-
|-
|Construct algorithms using the access methods of a stack.||  
|Explain the use of arrays as static stacks and queues.|| [[Abstract data structures]]
|-
|-
|Describe the characteristics and applications of a queue.||  
|Describe the features and characteristics of a dynamic data structure.|| [[Abstract data structures]]
|-
|-
|Construct algorithms using the access methods of a queue.||  
|Describe how linked lists operate logically.|| [[Abstract data structures]]
|-
|-
|Explain the use of arrays as static stacks and queues.||  
|Sketch linked lists (single, double and circular).|| [[Abstract data structures]]
|-
|-
|Describe the features and characteristics of a dynamic data structure.||  
|Describe how trees operate logically (both binary and non-binary).|| [[Abstract data structures]]
|-
|-
|Describe how linked lists operate logically.||  
|Define the terms: parent, left-child, right-child, subtree, root and leaf.|| [[Abstract data structures]]
|-
|-
|Sketch linked lists (single, double and circular).||  
|State the result of inorder, postorder and preorder tree traversal.|| [[Abstract data structures]]
|-
|-
|Describe how trees operate logically (both binary and non-binary).||  
|Sketch binary trees.|| [[Abstract data structures]]
|-
|-
|Define the terms: parent, left-child, right-child, subtree, root and leaf.||  
|Define the term dynamic data structure.|| [[Abstract data structures]]
|-
|-
|State the result of inorder, postorder and preorder tree traversal.||  
|Compare the use of static and dynamic data structures.|| [[Abstract data structures]]
|-
|-
|Sketch binary trees.||  
|Suggest a suitable structure for a given situation.|| [[Abstract data structures]]
|-style="background-color:#E6F9E6;"
| colspan="2" |'''Resource Management'''
|-
|-
|Define the term dynamic data structure.||  
|Identify the resources that need to be managed within a computer system.|| [[Resource management]]
|-
|-
|Compare the use of static and dynamic data structures.||  
|Evaluate the resources available in a variety of computer systems.|| [[Resource management]]
|-
|-
|Suggest a suitable structure for a given situation.||  
|Identify the limitations of a range of resources in a specified computer system.|| [[Resource management]]
|-
|-
| colspan="2" |Resource Management
|Describe the possible problems resulting from the limitations in the resources in a computer system.|| [[Resource management]]
|-
|-
|Identify the resources that need to be managed within a computer system.||  
|Explain the role of the operating system in terms of managing memory, peripherals and hardware interfaces.|| [[Resource management]]
|-
|-
|Evaluate the resources available in a variety of computer systems.||  
|Outline OS resource management techniques: scheduling, policies, multitasking, virtual memory, paging, interrupt, polling.|| [[Resource management]]
|-
|-
|Identify the limitations of a range of resources in a specified computer system.||  
|Discuss the advantages of producing a dedicated operating system for a device.|| [[Resource management]]
|-
|-
|Describe the possible problems resulting from the limitations in the resources in a computer system.||  
|Outline how an operating system hides the complexity of the hardware from users and applications.|| [[Resource management]]
|-style="background-color:#E6F9E6;"
| colspan="2" | '''Control'''
|-
|-
|Explain the role of the operating system in terms of managing memory, peripherals and hardware interfaces.||  
|Discuss a range of control systems.|| [[Control]]
|-
|-
|Outline OS resource management techniques: scheduling, policies, multitasking, virtual memory, paging, interrupt, polling.||  
|Outline the uses of microprocessors and sensor input in control systems.|| [[Control]]
|-
|-
|Discuss the advantages of producing a dedicated operating system for a device.||  
|Evaluate different input devices for the collection of data in specified situations.|| [[Control]]
|-
|-
|Outline how an operating system hides the complexity of the hardware from users and applications.||  
|Explain the relationship between a sensor, the processor and an output transducer.|| [[Control]]
|-
|-
| colspan="2" | Control
|Describe the role of feedback in a control system.|| [[Control]]
|-
|-
|Discuss a range of control systems.||  
|Discuss the social impacts and ethical considerations associated with the use of embedded systems.|| [[Control]]
|-
|-
|Outline the uses of microprocessors and sensor input in control systems.||  
|Compare a centrally controlled system with a distributed system.|| [[Control]]
|-
|-
|Evaluate different input devices for the collection of data in specified situations.||  
|Outline the role of autonomous agents acting within a larger system.|| [[Control]]
|-
|-
|Explain the relationship between a sensor, the processor and an output transducer.||
|-
|Describe the role of feedback in a control system.||
|-
|Discuss the social impacts and ethical considerations associated with the use of embedded systems.||
|-
|Compare a centrally controlled system with a distributed system.||
|-
|Outline the role of autonomous agents acting within a larger system.||
|-
| colspan="2" | Web science
|-
|Distinguish between the internet and World Wide Web (web).||
|-
|Describe how the web is constantly evolving.||
|-
|Identify the characteristics of the following: HTTP, HTTPS, HTML, URL, XML, XSLT, CSS.||
|-
|Identify the characteristics of a uniform resource identifier (URI) URL.||
|-
|Describe the purpose of a URL.||
|-
|Describe how a domain name server functions.||
|-
|Identify the characteristics of the internet protocol (IP) transmission control protocol (TCP) file transfer protocol (FTP).||
|-
|Outline the different components of a web page.||
|-
|Explain the importance of protocols and standards on the web.||
|-
|Describe the different types of web page.||
|-
|Explain the differences between a static web page and a dynamic web page.||
|-
|Explain the functions of a browser.||
|-
|Evaluate the use of client-side scripting and server-side scripting in web pages.||
|-
|Describe how web pages can be connected to underlying data sources.||
|-
|Describe the function of the common gateway interface (CGI).||
|-
|Evaluate the structure of different types of web pages.||
|-
|Define the term search engine.||
|-
|Distinguish between the surface web and the deep web.||
|-
|Outline the principles of searching algorithms used by search engines.||
|-
|Describe how a web crawler functions.||
|-
|Discuss the relationship between data in a meta-tag and how it is accessed by a web crawler.||
|-
|Discuss the use of parallel web crawling.||
|-
|Outline the purpose of web-indexing in search engines.||
|-
|Suggest how web developers can create pages that appear more prominently in search engine results.||
|-
|Describe the different metrics used by search engines.||
|-
|Explain why the effectiveness of a search engine is determined by the assumptions made when developing it.||
|-
|Discuss the use of white hat and black hat search engine optimization.||
|-
|Outline future challenges to search engines as the web continues to grow.||
|-
|Define the terms: mobile computing, ubiquitous computing, peer-2-peer network, grid computing.||
|-
|Compare the major features of: mobile computing ubiquitous computing peer-2-peer network grid computing.||
|-
|Distinguish between interoperability and open standards.||
|-
|Describe the range of hardware used by distributed networks.||
|-
|Explain why distributed systems may act as a catalyst to a greater decentralization of the web.||
|-
|Distinguish between lossless and lossy compression.||
|-
|Evaluate the use of decompression software in the transfer of information.||
|-
|Discuss how the web has supported new methods of online interaction such as social networking.||
|-
|Describe how cloud computing is different from a client-server architecture.||
|-
|Discuss the effects of the use of cloud computing for specified organizations.||
|-
|Discuss the management of issues such as copyright and intellectual property on the web.||
|-
|Describe the interrelationship between privacy, identification and authentication.||
|-
|Describe the role of network architecture, protocols and standards in the future development of the web.||
|-
|Explain why the web may be creating unregulated monopolies.||
|-
|Discuss the effects of a decentralized and democratic web.||
|-
|Describe how the web can be represented as a directed graph.||
|-
|Outline the difference between the web graph and sub-graphs.||
|-
|Describe the main features of the web graph such as bowtie structure, strongly connected core (SCC), diameter.||
|-
|Explain the role of graph theory in determining the connectivity of the web.||
|-
|Explain that search engines and web crawling use the web graph to access information.||
|-
|Discuss whether power laws are appropriate to predict the development of the web.||
|-
|Define the term semantic web.||
|-
|Distinguish between the text-web and the multimedia-web.||
|-
|Describe the aims of the semantic web.||
|-
|Distinguish between an ontology and folksonomy.||
|-
|Describe how folksonomies and emergent social structures are changing the web.||
|-
|Explain why there needs to be a balance between expressivity and usability on the semantic web.||
|-
|Evaluate methods of searching for information on the web.||
|-
|Distinguish between ambient intelligence and collective intelligence.||
|-
|Discuss how ambient intelligence can be used to support people.||
|-
|Explain how collective intelligence can be applied to complex issues.||
|}
|}



Latest revision as of 17:19, 19 August 2018

Introduction[edit]

These are the standards for IB computer science, Higher Level (HL). Pay attention to the command term at the start of each standard. It describes at what level you must understand the standard. Please reference levels of knowing for a deeper discussion of this important idea.

IB standards are the intellectual property of the International Baccalaureate Organization. [1]

Assessment Statement Big Idea
System fundamentals
Identify the context for which a new system is planned. System fundamentals
Describe the need for change management. System fundamentals
Outline compatibility issues resulting from situations including legacy systems or business mergers. System fundamentals
Compare the implementation of systems using a client’s hardware with hosting systems remotely. System fundamentals
Evaluate alternative installation processes. System fundamentals
Discuss problems that may arise as a part of data migration. System fundamentals
Suggest various types of testing. System fundamentals
Describe the importance of user documentation. System fundamentals
Evaluate different methods of providing user documentation. System fundamentals
Evaluate different methods of delivering user training. System fundamentals
Identify a range of causes of data loss. System fundamentals
Outline the consequences of data loss in a specified situation. System fundamentals
Describe a range of methods that can be used to prevent data loss. System fundamentals
Describe strategies for managing releases and updates. System fundamentals
Define the terms: hardware, software, peripheral, network, human resources. System fundamentals
Describe the roles that a computer can take in a networked world. System fundamentals
Discuss the social and ethical issues associated with a networked world. System fundamentals
Identify the relevant stakeholders when planning a new system. System fundamentals
Describe methods of obtaining requirements from stakeholders. System fundamentals
Describe appropriate techniques for gathering the information needed to arrive at a workable solution. System fundamentals
Construct suitable representations to illustrate system requirements. System fundamentals
Describe the purpose of prototypes to demonstrate the proposed system to the client. System fundamentals
Discuss the importance of iteration during the design process. System fundamentals
Explain the possible consequences of failing to involve the end-user in the design process. System fundamentals
Discuss the social and ethical issues associated with the introduction of new IT systems. System fundamentals
Define the term usability. System fundamentals
Identify a range of usability problems with commonly used digital devices. System fundamentals
Identify methods that can be used to improve the accessibility of systems. System fundamentals
Identify a range of usability problems that can occur in a system. System fundamentals
Discuss the moral, ethical, social, economic and environmental implications of the interaction between humans and machines. System fundamentals
Computer Organization
Outline the architecture and function of the CPU, ALU, CU and the registers within the CPU Computer organization
Explain the use of cache memory. Computer organization
Explain the machine instruction cycle. Computer organization
Identify the need for persistent storage. Computer organization
Describe the main functions of an operating system. Computer organization
Outline the use of a range of application software. Computer organization
Identify common features of applications. Computer organization
Define the terms: bit, byte, binary, denary/decimal, hexadecimal. Computer organization
Outline the way in which data is represented in the computer. Computer organization
Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR. Computer organization
Construct truth tables using the above operators. Computer organization
Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates. Computer organization
Networks
Identify different types of networks. Networks
Outline the importance of standards in the construction of networks. Networks
Describe how communication over networks is broken down into different layers. Networks
Identify the technologies required to provide a VPN. Networks
Evaluate the use of a VPN. Networks
Define the terms: protocol, data packet. Networks
Explain why protocols are necessary. Networks
Explain why the speed of data transmission across a network can vary. Networks
Explain why compression of data is often necessary when transmitting across a network. Networks
Outline the characteristics of different transmission media. Networks
Explain how data is transmitted by packet switching. Networks
Outline the advantages and disadvantages of wireless networks. Networks
Describe the hardware and software components of a wireless network. Networks
Describe the characteristics of wireless networks. Networks
Describe the different methods of network security. Networks
Evaluate the advantages and disadvantages of each method of network security. Networks
Computational thinking, problem-solving and programming
Identify the procedure appropriate to solving a problem. Computational Thinking
Evaluate whether the order in which activities are undertaken will result in the required outcome. Computational Thinking
Explain the role of sub-procedures in solving a problem. Computational Thinking
Identify when decision-making is required in a specified situation. Computational Thinking
Identify the decisions required for the solution to a specified problem. Computational Thinking
Identify the condition associated with a given decision in a specified problem. Computational Thinking
Explain the relationship between the decisions and conditions of a system. Computational Thinking
Deduce logical rules for real-world situations. Computational Thinking
Identify the inputs and outputs required in a solution. Computational Thinking
Identify pre-planning in a suggested problem and solution. Computational Thinking
Explain the need for pre-conditions when executing an algorithm. Computational Thinking
Outline the pre- and post-conditions to a specified problem. Computational Thinking
Identify exceptions that need to be considered in a specified problem solution. Computational Thinking
Identify the parts of a solution that could be implemented concurrently. Computational Thinking
Describe how concurrent processing can be used to solve a problem. Computational Thinking
Evaluate the decision to use concurrent processing in solving a problem. Computational Thinking
Identify examples of abstraction. Computational Thinking
Explain why abstraction is required in the derivation of computational solutions for a specified situation. Computational Thinking
Construct an abstraction from a specified situation. Computational Thinking
Distinguish between a real-world entity and its abstraction. Computational Thinking
Describe the characteristics of standard algorithms on linear arrays. Computational Thinking
Outline the standard operations of collections. Computational Thinking
Discuss an algorithm to solve a specific problem. Computational Thinking
Analyse an algorithm presented as a flow chart. Computational Thinking
Analyse an algorithm presented as pseudocode. Computational Thinking
Construct pseudocode to represent an algorithm. Computational Thinking
Suggest suitable algorithms to solve a specific problem. Computational Thinking
Deduce the efficiency of an algorithm in the context of its use. Computational Thinking
Determine the number of times a step in an algorithm will be performed for given input data. Computational Thinking
State the fundamental operations of a computer. Computational Thinking
Distinguish between fundamental and compound operations of a computer. Computational Thinking
Explain the essential features of a computer language. Computational Thinking
Explain the need for higher level languages. Computational Thinking
Outline the need for a translation process from a higher level language to machine executable code. Computational Thinking
Define the terms: variable, constant, operator, object. Computational Thinking
Define common operators. Computational Thinking
Analyse the use of variables, constants and operators in algorithms. Computational Thinking
Construct algorithms using loops, branching. Computational Thinking
Describe the characteristics and applications of a collection. Computational Thinking
Construct algorithms using the access methods of a collection. Computational Thinking
Discuss the need for sub-programmes and collections within programmed solutions. Computational Thinking
Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections. Computational Thinking
Abstract Data Structures
Identify a situation that requires the use of recursive thinking. Abstract data structures
Identify recursive thinking in a specified problem solution. Abstract data structures
Trace a recursive algorithm to express a solution to a problem. Abstract data structures
Describe the characteristics of a two- dimensional array. Abstract data structures
Construct algorithms using two- dimensional arrays. Abstract data structures
Describe the characteristics and applications of a stack. Abstract data structures
Construct algorithms using the access methods of a stack. Abstract data structures
Describe the characteristics and applications of a queue. Abstract data structures
Construct algorithms using the access methods of a queue. Abstract data structures
Explain the use of arrays as static stacks and queues. Abstract data structures
Describe the features and characteristics of a dynamic data structure. Abstract data structures
Describe how linked lists operate logically. Abstract data structures
Sketch linked lists (single, double and circular). Abstract data structures
Describe how trees operate logically (both binary and non-binary). Abstract data structures
Define the terms: parent, left-child, right-child, subtree, root and leaf. Abstract data structures
State the result of inorder, postorder and preorder tree traversal. Abstract data structures
Sketch binary trees. Abstract data structures
Define the term dynamic data structure. Abstract data structures
Compare the use of static and dynamic data structures. Abstract data structures
Suggest a suitable structure for a given situation. Abstract data structures
Resource Management
Identify the resources that need to be managed within a computer system. Resource management
Evaluate the resources available in a variety of computer systems. Resource management
Identify the limitations of a range of resources in a specified computer system. Resource management
Describe the possible problems resulting from the limitations in the resources in a computer system. Resource management
Explain the role of the operating system in terms of managing memory, peripherals and hardware interfaces. Resource management
Outline OS resource management techniques: scheduling, policies, multitasking, virtual memory, paging, interrupt, polling. Resource management
Discuss the advantages of producing a dedicated operating system for a device. Resource management
Outline how an operating system hides the complexity of the hardware from users and applications. Resource management
Control
Discuss a range of control systems. Control
Outline the uses of microprocessors and sensor input in control systems. Control
Evaluate different input devices for the collection of data in specified situations. Control
Explain the relationship between a sensor, the processor and an output transducer. Control
Describe the role of feedback in a control system. Control
Discuss the social impacts and ethical considerations associated with the use of embedded systems. Control
Compare a centrally controlled system with a distributed system. Control
Outline the role of autonomous agents acting within a larger system. Control




References[edit]

  1. IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.