What will I learn?
Through studying this course, you will develop the following:
- A body of knowledge, methods and techniques that characterise computer science;
- Initiative in applying thinking skills critically to identify and resolve complex problems;
- An awareness of the need for, and the value of, effective collaboration and communication in resolving complex problems;
- Logical and critical thinking as well as experimental, investigative and problem-solving skills;
- Information and communication technology skills in the study of computer science to communicate information confidently and effectively;
- Awareness of the moral, ethical, social, economic and environmental implications of using science and technology;
- An appreciation of the possibilities and limitations associated with continued developments in IT systems and computer science;
- An understanding of the relationships between scientific disciplines and the overarching nature of the scientific method.
What is the structure of the course?
All students will study the following core topics:
Measurements and uncertainties, Mechanics, Thermal physics, Waves, Electricity and magnetism, Circular motion and gravitation, Atomic, nuclear and particle physics, Energy production.
Higher Level students will also study these additional topics:
Wave phenomena, Fields, Electromagnetic induction, Quantum and nuclear physics.
In addition to this, HL students study one out of a choice of four additional topics. These are:
Relativity, Engineering particles, Imaging, Astrophysics.
Core Content
Practical Work
- System Fundamentals
- Computer Organization
- Networks
- Computational thinking, problem-solving & programming
- Design project
- Group 4 project
- Teacher-directed activities
How will I be assessed?
Assessment
Format
Paper One
External (0.75 hours) – Multiple-choice questions on core material (45% of final grade)
Paper Two
External (1.5 hours) – Data-based, short-answer, and extended-response questions on core material (25% of final grade)
Practical project
Internal (40 hours) – Individual report documenting the process of the software development life cycle to create a solution that solves a real world problem (30% of final grade)
Frequently Asked Questions
Which CAS opportunities are available?
Computer Science Club.
Which opportunities for further study are available?
The course is designed for students who want to go on to study Computer Science in higher education as well as for those who are seeking lifelong enrichment through Computing.
Is there anything else I need to know?
The IB Diploma Programme Computer Science course will enable students to be aware and critical of their own knowledge, and to transfer and apply skills and understandings to new or different contexts in creative, generative, autonomous and dynamic ways.
Curriculum map
Topics / Units
- Topic 2 – Computer Organisation
- IA – preparations
Core Declarative Knowledge
What should students know?
- How data is transfered?
- How the machine cycle decodes machine code?
- What is binary/denary/hexidecimal?
- What is data representation?
- How data is represented through application software?
- How data is can be manipilated through system software?
- What are logic gates?
- How can we represent logic gates?
- What is OOP?
- What are objects?
- What is a class?
- How to use abstraction to solve a problem.
- How to use decomposition to solve a problem.
Core Procedural Knowledge
What should students be able to do?
- Use JAVA syntax to solve programming challenges.
- Understand how Objects are used in programming.
- Understand how classes are used in programming.
- Use relatable programming concepts in JAVA.
- Describe methods for which information can be gathered.
- Use appropriate illustrations to show the design process in designing systems.
- Describe the importance of prototypes.
- Discuss ethical and social issues associated with new systems.
- Decribe how usability and accessiblity affect the design of a new system.
Links to TOK
- Sustainability of digital hardware
- Lightbulb theory
- Machine learning (AI)
- Language and representations
- Logical thinkingWhat is the need for High level programming languages?
- What is the most appropriate programming language to use for given situations?
- How can JAVA be used to design GUI’s?
Topics / Units
- Topic 1.2 – Basics of System Design
- IA – preparations
Core Declarative Knowledge
What should students know?
- What are the components of a computer network?
- What are stakeholders and how do you get information from them?
- How to ilustrate workable solutions?
- What is a design process?
- What are the ethical issues with new technology?
- How is usability important in the design process?
- What is OOP?
- What are objects?
- What is a class?
- How to use abstraction to solve a problem.
- How to use decomposition to solve a problem.
Core Procedural Knowledge
What should students be able to do?
- Describe methods for which information can be gathered.
- Use appropriate illustrations to show the design process in designing systems.
- Describe the importance of prototypes.
- Discuss ethical and social issues associated with new systems.
- Decribe how usability and accessiblity affect the design of a new system.
- Use JAVA syntax to solve programming challenges.
- Understand how Objects are used in programming.
- Understand how classes are used in programming.
- Use relatable programming concepts in JAVA.
Links to TOK
- What is the need for High level programming languages?
- What is the most appropriate programming language to use for given situations?
- How can JAVA be used to design GUI’s?
Topics / Units
- Topic 1.3 – Network Fundamentals
- Topic 1 1 – Systems in organisations
- IA – preparations
Core Declarative Knowledge
What should students know?
- How to identify different types of networks
- What is a VPN and how can they be utilised in network security?
- What are protocols?
- What are packets?
- How are packets distributed?
- What are the different transmission technologies?
- How is data compressed and why does it need to be?
- Why is there a need for change in a system?
- What problems can arise in a change of a system?
- Why is user documentation important in a system?
- How can an organisation prevent data loss?
- What are the different strategies for managing a release?
- What is recursion?
- How can recurssion be used in OOP?
Core Procedural Knowledge
What should students be able to do?
- Understand the advantages and disadvantages of different types of networks.
- Be able to describe the use of tunneling and encryption when using a VPN.
- Understand the different methods of security in networks and why they are needed.
- Be able to describe the path data takes when travelling around the internet.
- Understand how data is broken up into packets and what extra data is added to these.
- Understand the journey of packets.
- Understand the advantages and disadvantages of different transmission media.
- To be able to describe how data is compressed and the need for doing so over networks.
- Be able to explain the need for change in a system
- Be able to determin the differences in appraoches to system change.
- Explain the need for user documentation and for system usage purposes and for training purposes
- Understand how data can be lossed in a system upgrade and understand the impacts of this.
- Describe different methods of managing and releasing new software.
- Use recursion techniques in JAVA
- To be able to write recursive algorithms in a high-level programming language and in a written form
Links to TOK
- What happens to systems that are obsolete or are legay systems?
- Why do systems need to be updated?
- How might user documentation aid or hinder the implementaion of a new system?
- What is the need for High level proramming languages?
- What is the most appropriate programming language to use for given situations?
- How can JAVA be used to design GUI’s?
Topics / Units
- Topic 6 – Resource Management
- Topic 7 – Control Systems
- IA – preparations
Core Declarative Knowledge
What should students know?
- What is the need for resource management?
- What are the resources available in a computer system?
- What are the limiatations of a system based on their resources?
- What is the role of the operating system?
- To be able to explain the following terms; scheduling, policies, multitasking,virtual memory, paging, interupting and polling.
- What is a control system?
- What is a microprocessor?
- How can data be collected and what is the most appropriate input for specfic systems?
- What is feedback?
- What is a cental control system?
- What is a distributed control system?
- What is Object reference?
- What is a mechanism?
- What is an abstract data type?
- What is a static implementation list?
Core Procedural Knowledge
What should students be able to do?
- To be able to identify the different resources a system needs.
- To understand the limitations of a computer system dependant of it’s resources
- To be able to explain the role of different microprosessors and the operating system
- To use specific terms and apply them to different situations.
- To be able to explain different input/process/output systems
- To be able to identify key inputs for data and how they can feedback to a system
- To discuss social and ethical considerations associated with the use of embedded systems.
- To be able to identify automated agents in a larger system.
- To be able to construct algorithms using reference mechenisms
- To be able to construct algorithms using static implimentation.
- To be able to construct algorithms using ibject references
Links to TOK
- How are resources assigned to systems operations?
- How might organisastions make up for lack of resources?
- What decides how the CPU processes instructions?
- How can a control system be implemented? Whether it be centralised or distributed?
- How can processes be automated?
- What is the impact on society if processes are automated?
- How are programming structures abstract?
Topics / Units
- Internal assessment
Core Declarative Knowledge
What should students know?
- Criteria A
- What is the scenario?
- Who is the client?
- What is a consultation?
- What is a proposal?
- What is a success criteria?
- Criteria B
- What is a record?
- What is a design?
- How does a design meet the proposal?
- How does the design meet the brief?
Core Procedural Knowledge
What should students be able to do?
- To be able to research, plan and design a solution to a problem
- To be able to identify key areas to write an effective success criteria and proposal
- To be able to record tasks and design an overview of the project
- To be able to design a range of ideas
Topics / Units
- Internal assessment
Core Declarative Knowledge
What should students know?
- Criteria C
- How to write a long solution?
- How to keep documentation of a solution?
- How to meet a project brief?
- Explain specific techniques and why they have been used?
- Criteria D
- How to test a project?
- What are appropriate testing techniques?
- How to work out the appropriateness of a solution?
- How can a project be improved upon?
- Criteria E
- What is feedback?
- How can a design team gather feedback?
- What is evaluation?
Core Procedural Knowledge
What should students be able to do?
- To be able to create a solution
- To be able to explain a solution
- To be able to meet a project brief
- To be able to provide clear and concise documentation for a project
- To be able to provide clear testing techniques and a clear rationale for those techniques
- To be critical in thinking about project improvement
- To gather feedback of work and figure out steps to move forward based of the feedback