Repository navigation
Expand file tree
/
Copy pathcourse.json
More file actions
94 lines (94 loc) · 3.52 KB
/
Copy pathcourse.json
File metadata and controls
94 lines (94 loc) · 3.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
{
"id": "sicp-python",
"version": "1.0.0",
"title": "Structure and Interpretation of Computer Programs",
"subtitle": "Classic CS curriculum adapted for Python",
"description": "This is demanding material\u2014and that's why it works. Master the fundamental ideas of computation that shaped generations of programmers.",
"overview": "Study selected ideas from SICP in Python through readings and hands-on exercises. The existing slides and voice narration are withdrawn while the modules are rebuilt as focused lessons and visual labs. The original readings remain available as background. This independent course is free.",
"branding": {
"tagline": "The course that shaped generations of programmers",
"coverImage": "branding/cover.png",
"thumbnailImage": "branding/thumbnail.png",
"accentColor": "#4A90D9"
},
"prerequisites": [
"Basic Python fluency (variables, if/else, loops, defining functions)",
"Comfort with simple math (algebra-level)",
"No prior CS theory or functional programming experience required"
],
"learningOutcomes": [
"Use higher-order functions, closures, and lambda expressions to write expressive, reusable code",
"Trace program execution using the environment model (frames, scoping, name lookup)",
"Think recursively and analyze recursive vs iterative processes",
"Design programs using data abstraction and abstraction barriers",
"Process sequences and trees with map, filter, reduce, and recursive traversal",
"Reason about mutation, aliasing, and identity in Python",
"Use classes, inheritance, and polymorphism effectively",
"Build a working interpreter for a small programming language"
],
"sourceAttribution": "Based on Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman (MIT Press, 1996), adapted to Python following UC Berkeley CS 61A.",
"terminologyMapping": [
{
"classic": "Procedure / Higher-order procedure",
"python": "Function / Higher-order function"
},
{
"classic": "Lambda expression",
"python": "Lambda expression (same concept)"
},
{
"classic": "Environment model of evaluation",
"python": "Environment diagrams (frames & scope)"
},
{
"classic": "Recursive / iterative process",
"python": "Recursive / iterative process (no tail-call optimization in Python)"
},
{
"classic": "Pairs (cons, car, cdr)",
"python": "Tuples, lists, or closure-based pairs"
},
{
"classic": "Data abstraction (constructors + selectors)",
"python": "Data abstraction (same pattern, using functions or classes)"
},
{
"classic": "Sequences (lists)",
"python": "Python lists, generators, comprehensions"
},
{
"classic": "Message passing",
"python": "Dispatch functions / methods"
},
{
"classic": "Generic operations / data-directed programming",
"python": "Polymorphism / duck typing"
},
{
"classic": "Metacircular evaluator",
"python": "Interpreter written in Python"
}
],
"modules": [
"01-higher-order-functions",
"02-environment-diagrams",
"03-recursive-functions",
"04-data-abstraction",
"05-sequences",
"06-trees",
"07-mutable-data",
"08-object-oriented-programming",
"09-interpreters"
],
"pricing": {
"tier": "free",
"previewModules": [
"01-higher-order-functions",
"02-environment-diagrams"
]
},
"hosting": {
"cdn": "cloudflare",
"basePath": "/courses/sicp-python"
}
}