Skip to content

Commit 6429b05

Browse files
Rogzy-DBclaudeAsi0Flammeus
authored
[COURSE] Add SCR403 Delving Into Simplicity course (#4460)
* [COURSE] Add SCR401 Delving Into Simplicity Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * local content update * local content update * local content update * [COURSE] Replace SCR401 with SCR403 Simplicity course Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * local content update * refactor(scr403): move all 28 quiz questions to final exam pool Remove per-chapter quizzes — expert-level theoretical course doesn't need checkpoint quizzes. Final exam draws 20 from the 28-question pool. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(scr403): correct course metadata and quiz formatting to pass validation - Update subtopic from 'simplicity' to 'script' in course.yml to match schema enum - Fix quiz difficulty from 'medium' to 'intermediate' across all 28 quizzes All validation checks now pass (0 errors, 0 warnings) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor(scr403): simplify course goal statement Shorten goal from detailed description to concise statement: "Master the design philosophy, type system, and full lifecycle of Simplicity" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * feat(schema): update professor validation schema and add contributor_id Schema changes (professor-scheme.json): - Add mandatory 'id' field with UUID validation - Make 'tips' field optional (remove from required) - Make 'affiliations' field optional (remove from required) - Add 'github' to allowed links properties - Allow null for 'twitter' field in links Profile updates (russell-oconnor): - Add contributor_id: rocket-turtle All professor validation now passes (0 errors, 0 warnings) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: update SCR403 simplicity course thumbnail Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * review(scr403): apply maintainer feedback - fix NUMS ('Nothing-Up-My-Sleeve', not 'Non-Mundane Secret') + restore recursive CMR rule, worked tex1p address derivation, and Witness Values rationale (Programs and Addresses) - re-attribute Simplicity ecosystem projects (Simplicity DEX / Swaption by SideSwap / Deadcat by Resolvr); correct 2012 origin; Solidity as contract language; calls-only - add copair/dist design rationale + sequent-calculus 'functional interpretation' wording (Combinator Completeness) - restore BIP340 batch-verification + CISA links, add C/I/U effect summary table (Two Side Effects) - repoint all 28 quizzes from Final Exam to their content chapters; author -> Rogzy professor id - balance quiz answer lengths (remove length tell); fix explanation nits (004, 007) - add course description H1; shorten intro; punctuation cleanups; drop empty professor twitter * quiz(scr403): expand + re-grade exam pool to 43 (21 hard / 15 intermediate / 7 easy) - re-grade the 28 existing quizzes to true difficulty (was uniformly 'intermediate'): 7 easy, 15 intermediate, 6 hard; align durations to 15/30/45 - author 15 new hard synthesis questions across the 5 content chapters (dirs 028-042), source-verified against O'Connor's Delving Simplicity series, answer-length balanced - meets exam requirement: >=40 total, >=20 hard, >=15 intermediate, >=5 easy * quiz(scr403): tighten the 15 hard questions per test feedback Condense question stems and answer options for quizzes 028-042 (e.g. #28 230->74 chars, #38 330->170) while preserving the correct answer, distractor plausibility, hard difficulty, and answer-length balance. Explanations unchanged. Addresses reviewer feedback that the new hard questions were too verbose. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Asi0Flammeus <asi0@crqpt.com> Co-authored-by: Asi0Flammeus <asi0@decouvrebitcoin.com>
1 parent 17c4cc1 commit 6429b05

96 files changed

Lines changed: 2096 additions & 4 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

courses/scr403/assets/en/001.webp

6.26 KB
Loading

courses/scr403/assets/en/002.webp

10.1 KB
Loading

courses/scr403/assets/en/003.webp

12 KB
Loading
40.5 KB
Loading

courses/scr403/course.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
id: 1f6d0544-c6f0-42c6-a8ef-acf485807b9d
2+
3+
topic: protocol
4+
5+
subtopic: script
6+
type: theory
7+
8+
level: expert
9+
10+
hours: 10
11+
12+
teaching_format: self_paced
13+
14+
professors_id:
15+
- a3b29adb-43ee-49f4-9582-b37e9cf72858
16+
17+
contributor_names:
18+
- rogzy
19+
20+
published_at: 2026-03-02
21+
22+
tags:
23+
- simplicity
24+
- liquid
25+
- scripting
26+
- combinators
27+
- type-system
28+
- jets
29+
- side-effects
30+
- addresses
31+
- CMR
32+
- witness
33+
34+
original_language: en
35+
36+
proofreading:
37+
- language: en
38+
last_contribution_date: 2026-03-02
39+
urgency: 1
40+
contributor_names:
41+
- rogzy
42+
reward: 0
43+
44+
license: CC-BY-SA-V4

courses/scr403/en.md

Lines changed: 842 additions & 0 deletions
Large diffs are not rendered by default.

courses/scr403/quizz/000/en.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
question: Why does Simplicity exclude dynamic memory allocation during execution?
2+
answer: To enable static analysis and rule out entire classes of bugs and attacks.
3+
wrong_answers:
4+
- Because the Liquid Network does not support low-level memory operations.
5+
- To reduce the programming learning curve for new smart-contract developers.
6+
- Because Bitcoin Script itself also lacks any dynamic memory allocation.
7+
explanation: >-
8+
Simplicity avoids dynamic memory allocation so that all resource usage
9+
can be determined statically before execution. This enables predictable
10+
resource bounds and eliminates vulnerabilities related to memory management,
11+
which is critical in a blockchain validation context.
12+
reviewed: false
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
id: 35ccd3ce-33df-4542-91d9-a558d92548df
2+
chapterId: 6d46e77a-7e60-473b-b230-418da5ae44eb
3+
difficulty: intermediate
4+
duration: 30
5+
author: 2e1b5182-567e-453a-af29-36009340ff02
6+
original_language: en
7+
8+
proofreading:
9+
- language: en
10+
last_contribution_date: 2026-03-02
11+
urgency: 1
12+
contributor_names:
13+
- rogzy
14+
reward: 0

courses/scr403/quizz/001/en.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
question: What does sequential composition produce when chaining operation f (A → B) with operation g (B → C)?
2+
answer: A single composite operation from A to C, with f's output feeding into g.
3+
wrong_answers:
4+
- A pair value containing both intermediate outputs of type B and C.
5+
- A conditional that chooses between f and g based on the input.
6+
- Two separate operations that run independently, sharing no data.
7+
explanation: >-
8+
Sequential composition chains two operations end-to-end. The output of the
9+
first operation becomes the input of the second. In Simplicity, this is
10+
expressed with the comp combinator: comp f g applies f first, then g to
11+
the result.
12+
reviewed: false
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
id: 5c6d0109-ffe1-4da5-813d-204c9f467111
2+
chapterId: 6d46e77a-7e60-473b-b230-418da5ae44eb
3+
difficulty: intermediate
4+
duration: 30
5+
author: 2e1b5182-567e-453a-af29-36009340ff02
6+
original_language: en
7+
8+
proofreading:
9+
- language: en
10+
last_contribution_date: 2026-03-02
11+
urgency: 1
12+
contributor_names:
13+
- rogzy
14+
reward: 0

0 commit comments

Comments
 (0)