📚 IB Computer Science: A Practical Guide to Experimentation | IB计算机科学:实验操作指南
The IB Computer Science Internal Assessment (IA) requires students to develop a software solution for a real-world problem, demonstrating not only coding skills but also the ability to plan, test, and evaluate through a structured experimental approach. This guide walks you through the key stages of conducting practical experimentation, from defining measurable criteria to analysing test data, helping you achieve top marks in Criterion D and E while building a robust project.
IB计算机科学内部评估(IA)要求学生为解决现实问题开发软件解决方案,不仅展示编程技能,还需通过结构化的实验方法来规划、测试和评估。本指南将带你走过开展实验操作的关键阶段,从定义可衡量的标准到分析测试数据,帮助你在标准D和E中取得高分,同时构建一个稳健的项目。
1. Aligning Your Project with IA Assessment Criteria | 让你的项目符合IA评估标准
Before diving into code, familiarise yourself with the five assessment criteria: A (Planning), B (Design), C (Development), D (Functionality & Extensibility), and E (Evaluation). The experimental aspects are primarily evaluated in Criterion D, where you must demonstrate that the product functions correctly through rigorous testing, and Criterion E, which requires you to evaluate the effectiveness of your solution based on evidence.
在编写代码之前,先熟悉五个评估标准:A(规划)、B(设计)、C(开发)、D(功能性与可扩展性)和E(评估)。实验操作主要在标准D中评估,你需要通过严格的测试证明产品功能正确,标准E则要求你基于证据评估解决方案的有效性。
Design your experiments to produce quantitative data (e.g., error rates, task completion times) and qualitative feedback (e.g., user satisfaction surveys). All testing should link back to the success criteria established in Criterion A.
设计实验时要产出定量数据(如错误率、任务完成时间)和定性反馈(如用户满意度调查)。所有测试都应回溯到标准A中确立的成功标准。
2. Selecting a Feasible and Relevant Topic with Real Stakeholders | 选择一个可行且真实利益相关者参与的主题
An ideal IA project involves a genuine client who can provide requirements and later validate the product. Choose a problem that allows you to build a software system with clear inputs, processes, and outputs, such as a booking system, a data-analysis tool, or an educational game.
一个理想的IA项目应包含一个真实的客户,客户能提供需求并在后期验证产品。选择一个允许你构建具有明确输入、处理和输出的软件系统的问题,例如预订系统、数据分析工具或教育游戏。
Ensure the topic is complex enough to warrant iterative development and experimentation. For example, if you build a mobile app for a school club, you can experiment with different notification algorithms and measure user response times.
确保主题足够复杂,以支持迭代开发和实验。例如,如果你为学校俱乐部构建一个移动应用,你可以尝试不同的通知算法,并测量用户响应时间。
3. Writing SMART Success Criteria to Guide Your Experiments | 制定SMART成功标准来指导实验
Success criteria must be Specific, Measurable, Achievable, Relevant, and Time-bound. These criteria become the hypotheses you test during experimentation. For instance, ‘The system shall allow users to register in under 60 seconds’ or ‘The search function shall return relevant results with 90% precision in testing.’
成功标准必须是具体的、可衡量的、可实现的、相关的和有时限的。这些标准成为你在实验中验证的假设。例如,“系统应允许用户在60秒内完成注册”或“搜索功能在测试中应以90%的精确度返回相关结果”。
List at least 5–8 measurable criteria split between functional requirements (what the system does) and non-functional requirements (how the system performs). Each criterion will later be tested through dedicated experiments.
列出至少5-8个可衡量的标准,分为功能性需求(系统做什么)和非功能性需求(系统性能如何)。每个标准之后将通过专门的实验进行测试。
4. Designing a Modular Architecture with Experimentation in Mind | 设计便于实验的模块化架构
A modular design, such as using a three-tier architecture (presentation, application, data), makes it easier to isolate components for testing. Use UML diagrams – like class diagrams, sequence diagrams, and system flowcharts – to visualise interactions and identify test points.
模块化设计,比如采用三层架构(表示层、应用层、数据层),便于隔离组件进行测试。使用UML图表,如类图、顺序图和系统流程图,来可视化交互并识别测试点。
Choose appropriate data structures and algorithms that you can later compare experimentally. For example, if your application sorts data, you might implement both merge sort and quick sort, then measure their execution times under different input sizes.
选择适当的数据结构和算法,以便后续进行实验比较。例如,如果你的应用需要排序数据,你可以同时实现归并排序和快速排序,然后测量它们在不同输入规模下的执行时间。
5. Adopting an Iterative Development Cycle with Embedded Experiments | 采用嵌入实验的迭代开发周期
Break your development into sprints of 1–2 weeks, each ending with a testable increment. At the end of each sprint, conduct a mini-experiment to verify that newly added features meet their partial success criteria. Record the outcomes in a testing log.
将开发分解为1-2周的冲刺,每次冲刺结束时产生一个可测试的增量。在每次冲刺结束时,进行小型实验验证新添加的功能是否满足其部分成功标准。将结果记录在测试日志中。
Use version control (e.g., Git) to track changes and enable rollback if an experiment introduces unexpected bugs. This practice supports systematic experimentation by allowing you to compare performance across versions.
使用版本控制(如Git)跟踪更改,并允许在实验引入意外错误时回滚。这一做法支持系统化实验,因为你可以比较不同版本的性能。
6. Implementing Features with Clean Code and Inline Documentation | 用干净的代码和内联文档实现功能
Write readable code with meaningful variable names and add comments that explain the intent behind complex logic. This is essential not only for maintenance but also for explaining your experiments in the documentation.
编写可读的代码,使用有意义的变量名,并添加注释解释复杂逻辑背后的意图。这不仅对维护至关重要,而且对在文档中解释实验也很重要。
During development, code simple debugging tools or fallback logs that capture performance metrics, such as execution time or memory usage. These automated measurements can serve as primary data for your experiments.
在开发过程中,编写简单的调试工具或回退日志,捕获性能指标,如执行时间或内存使用。这些自动测量可以作为实验的主要数据。
7. Designing a Comprehensive Testing Plan as the Core Experiment | 设计一个全面的测试计划作为核心实验
Testing is the primary experimental activity for your IA. Your plan should cover three levels: unit testing (validate individual functions), integration testing (ensure modules work together), and acceptance/user testing (confirm the product meets client needs).
测试是IA的主要实验活动。你的测试计划应涵盖三个层次:单元测试(验证单个函数)、集成测试(确保模块协同工作)和验收/用户测试(确认产品满足客户需求)。
For each test case, define: the success criterion being tested, the procedure (input, expected output), the actual outcome, and any observations. Use a table in your documentation to present this data clearly. For example:
对于每个测试用例,定义:正在测试的成功标准、步骤(输入、预期输出)、实际结果和任何观察。在文档中使用表格清晰展示这些数据。例如:
| Test ID | Criterion | Input | Expected Output | Actual Output | Pass/Fail |
| T01 | Login < 5s | Valid credentials | Dashboard in ≤5s | 3.8 s | Pass |
8. Collecting and Analysing Experimental Data Rigorously | 严格收集与分析实验数据
Transform raw test results into structured datasets. Use spreadsheets or simple custom scripts to calculate statistics such as mean, median, standard deviation, and percentage accuracy. Visualise data with charts (bar graphs, line plots) to spot trends.
将原始测试结果转化为结构化数据集。使用电子表格或简单的自定义脚本计算统计数据,如平均值、中位数、标准差和准确率百分比。用图表(条形图、折线图)可视化数据以发现趋势。
For user testing, design a questionnaire with Likert scale questions (1–5) and open-ended feedback. Analyse quantitative scores quantitatively and qualitative comments thematically. Cross-reference findings with your success criteria.
对于用户测试,设计一份包含李克特量表问题(1-5)和开放式反馈的问卷。定量分析分数,主题分析定性评论。将发现与成功标准交叉对照。
If you compare algorithms, measure execution time for varying input sizes and present results in a table. For example, when testing sorting algorithms:
如果比较算法,测量不同输入规模的执行时间,并将结果呈现在表格中。例如,测试排序算法时:
| Input size (n) | Bubble Sort (ms) | Merge Sort (ms) |
| 100 | 2.3 | 0.9 |
| 1000 | 198.5 | 12.7 |
Draw conclusions about time complexity by comparing growth rates.
通过比较增长率得出关于时间复杂度的结论。
9. Evaluating the Solution Against All Success Criteria | 对照所有成功标准评估解决方案
For each success criterion, state whether it was met, partially met, or not met, and back your statement with the experimental evidence collected. If a criterion was not met, explain why and discuss the limitations of your experiments.
对于每项成功标准,说明其是否满足、部分满足或未满足,并用所收集的实验证据支持你的陈述。如果某项标准未满足,解释原因并讨论实验的局限性。
Include a section on ‘Extensibility’ as required for high marks in Criterion D. Describe how your design allows for future enhancements, and perhaps even prototype a small extension to demonstrate through further experimentation.
为了在标准D中获得高分,包含一个“可扩展性
Published by TutorHao | IB Computer Science Revision Series | aleveler.com
更多咨询请联系16621398022(同微信)
屏轩国际教育cambridge primary/secondary checkpoint, cat4, ukiset,ukcat,igcse,alevel,PAT,STEP,MAT, ibdp,ap,ssat,sat,sat2课程辅导,国外大学本科硕士研究生博士课程论文辅导Cancel reply