---
name: csj-reproducibility
description: 在为《计算机科学》(Computer Science, JSJKX) 提升实验可复现性与可重复性时调用。本刊是计算机全学科中文综合月刊(CCF 会刊、B 类、T2 级)，单盲审稿，未见独立 artifact 徽章制度(待核实)，故复现工作主要服务于让外审专家更快确认方法可信。技能覆盖环境/依赖/随机种子/数据划分固定、数据泄漏与污染防范、复现包结构、外链数据与校验和、可复现性自查清单。适用于让稿件的主结果可被他人从原始数据一键复现、经得起外审追问的场景。
---

# 《计算机科学》可复现性与实验可重复

本技能帮你把《计算机科学》(Computer Science, 简称 JSJKX) 稿件的实验做到**可复现**。本刊为单盲审稿，虽未见
公开的独立 artifact 徽章评审制度（**待核实**，见 `resources/official-source-map.md`），但可复现性直接影响外审
专家对方法可信度的判断，也为录用后可能的补充材料打基础。目标：他人能从原始数据**一键复现**你的主表/主图。

> 提醒：本刊 Computer Science 是**期刊(journal)**，非会议。

## 一、可复现的三个层次

1. **可重复(repeatable)**：你自己在同环境能复现同结果（固定种子/版本）。
2. **可复现(reproducible)**：他人用你的代码+数据能得到一致结果。
3. **可推广(replicable)**：他人用独立实现/新数据能得到一致趋势。
外审最看重前两层，第三层加分。

## 二、固定环境与随机性

- **环境**：给出 `requirements.txt` / `environment.yml` / Dockerfile，锁定语言、库、CUDA/硬件版本。
- **随机种子**：固定所有随机源（框架、numpy、数据加载、shuffle）；报告多次运行的均值±方差。
- **配置**：超参写入 `configs/`，与论文表格一一对应，避免"论文一套、代码另一套"。

## 三、数据划分与污染防范

- 训练/验证/测试划分脚本随包提供；调参仅用验证集，测试集仅最终评估一次。
- 防**数据泄漏**：特征工程、标准化统计量只在训练集上拟合；时间序列按时间切分。
- 防**污染**：若用预训练模型/外部语料，说明其与测试集是否重叠，评估潜在泄漏。

## 四、复现包结构

```
repro/
├── README.md      # 一键复现步骤、预期结果、耗时
├── env/           # 依赖与 Dockerfile
├── data/          # 数据说明+获取脚本（大数据外链+校验和）
├── src/           # 方法与基线
├── scripts/       # run_all.sh：数据→主表/主图
├── configs/       # 超参与种子
└── results/       # 预期输出与日志
```

`scripts/run_all.sh` 应能在干净环境从原始数据复现论文主结果。

## 五、数据与模型外链

- 大体量数据/模型用可长期访问的仓库（机构库、Zenodo 等）外链，给**校验和**与访问日期。
- 敏感数据提供合规脱敏子集或申请流程；正文注明获取方式与限制。

## 六、在论文中报告可复现性

- 实验节说明：硬件、软件版本、种子、运行次数、数据获取方式。
- 提供复现包链接（若单盲下匿名不是强制，可直接给仓库；仍建议稳定长期链接）。
- 每张主表/主图都能追溯到 `scripts/` 里的具体命令。

## 七、自查清单

1. 是否锁定环境（依赖/版本/硬件）？
2. 随机种子是否固定、是否报告多次运行方差？
3. 数据划分脚本是否随包、是否无泄漏无污染？
4. 复现包是否含 `run_all.sh`，能从数据到主表/主图？
5. 大数据/模型是否外链+校验和？敏感数据是否合规？
6. 论文是否报告软硬件、种子、运行次数、数据获取？
7. 主表/主图是否都能追溯到脚本命令？

## 八、输出格式

```
【CSJ 可复现审计】
环境锁定：依赖/版本/硬件 <✓/✗>
随机性：种子固定[✓/✗] 多次运行方差[✓/✗]
数据：划分脚本[✓/✗] 无泄漏[✓/✗] 无污染[✓/✗]
复现包：run_all.sh 一键复现 <✓/✗>
外链：数据/模型+校验和 <✓/✗>；敏感数据合规 <✓/✗>
论文报告：软硬件/种子/获取方式 <✓/✗>
结论：<可复现 / 需补：列点>
```

本刊 artifact/徽章制度现状为"未见独立徽章"（**待核实**），以官网《投稿须知》为准。

## 九、复现的粒度与文档

一个能被外审信任的复现包，不只是"把代码丢上去"。README 应写清：所需硬件与软件版本、安装步骤、数据获取
与预处理、一键复现命令、每条命令对应论文的哪张表/图、预期数值与允许的浮动范围、以及大致运行耗时。文档
越具体，外审(单盲，知你身份)越容易验证，也越少来回追问。为《计算机科学》(Computer Science) 投稿时，把这些
写在复现包 README 与论文实验节，两处一致。

## 十、常见不可复现陷阱

以下问题在计算机各方向反复出现：随机种子未固定导致每次结果不同；库/驱动版本升级致数值漂移；数据预处理
脚本缺失，他人无法从原始数据出发；测试集在调参中被"偷看"造成乐观偏差；只报最好一次而非多次均值；硬件
差异(GPU 型号)未说明。逐项排查这些陷阱，是让本刊外审相信你结果稳健的前提。

## 十一、可复现与可用性、补充材料的衔接

可复现性是代码/数据可用性(见 `csj-artifact-evaluation`)的基础：先做到可复现，再对外提供可用性声明与稳定
链接。复现所需但不宜进正文的完整超参、环境清单、扩展实验，放附录或补充材料(见 `csj-supplementary`)。录用
后，把复现包与补充材料一并整理，供 `csj-camera-ready` 阶段最终提交。三者衔接顺畅，可复现性才真正落地。

## 十二、算力与规模的诚实报告

不同作者的算力条件差异很大，复现的现实门槛也不同。为《计算机科学》(Computer Science) 投稿时，应诚实报告
训练/推理所需的算力(GPU 型号与数量、显存、训练时长)与数据规模，让读者预估复现成本。若完整复现代价高昂，
可额外提供一个**小规模可快速复现的子任务或子数据集**，让审稿人在有限资源下验证方法的核心行为。这种"分层
复现"既尊重现实约束，又不牺牲可验证性，是负责任的可复现实践。

## 十三、复现声明模板

在论文实验节可放一段简短的复现声明，示例：

```
【复现说明】实验在 <GPU 型号 x N> 上完成；代码见 <稳定链接>(commit <hash>，<许可>)；
数据为 <公开数据集[引用] / 受限数据(申请方式)>；固定随机种子 <seed>，结果为 <k> 次运行均值±方差；
执行 scripts/run_all.sh 可从原始数据复现表 1-表 N 与图 1-图 M，预计耗时 <t>。
```

该声明与复现包 README 内容一致，是外审快速建立信任的抓手。
