-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
157 lines (113 loc) · 4.27 KB
/
todo.txt
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# TODO: CSS: all-camel case or hyphens
# TODO: show points in exercises
# TODO: variables with negative values -> auto-parentheses
# TODO: audio feedback
# TODO: LaTeX between questions (-> complete course)
# TODO: Pysell Diff example: switch randomly sin/cos
# TODO: pySELL: sets/vectors with terms working??
# TODO: venv tutorial for READEME.md in pySELL repo
# TODO: Add GitHub link to readme md in sell.py
# TODO: !! pysell: moodle/ilias guide
# TODO: !! arg for using local katex
# TODO (sell.py): embed variables into string via f"{v}"
# TODO: comment all code (e.g. build.py, sell.py lines 186ff); explain why sell.py is only ONE large file; insert "ToC" into large files and explain classes roughly
# TODO: split examples into files and add example questions for common math topics (ODE, diff, int, ...)
# TODO: enumeration lists 1., 2., ...
# TODO: allow e.g. %3 for static number questions
# TODO: allow text paragraphs outside of questions
# TODO: optional explanation texts
# TODO: conditional feedback
# TODO: debug-mode: show comments in python and text source code
# TODO: doc: matrix/vector parentheses based on langauge (German: round, other: brackets)
# TODO: doc: if a variable in math mode is a matrix and contains "augmented" as subterm, then it is represented as augmented matrix
# TODO: doc: note on packages -> which error occurs, if e.g. numpy is NOT installed??
# TODO: documentation for Conditional Multiple Choice (NOT available for single choice!)
# TODO: readme notes on libraries: numpy, sympy, sage, ... (sympy and numpy loading times slow: exclude optionally?)
# TODO: readme: add hints on fractions (sympy Fraction), ... + give more examples in general
# TODO: readme: clarify the use of "!"
# TODO: readme: explicitly describe all data types (int, float, rational, ...)
# TODO: readme: ODEs
# TODO: readme: notes on raising exceptions
# TODO: readme: "+-" in math mode
# TODO: comment out question if "#" is written before "QUESTION"
# TODO: gif-videos as tutorials for editing, compiling, debugging, using
# TODO: guide how to import questions to Moodle/Ilias
# TODO: use Babel in esbuild to support older browsers
# TODO: test everything in Windows
# TODO: automatically switch between round parentheses and brackets for vectors/matrices; based on LANG (de: round parentheses, otherwise: brackets)
# TODO: VSCode syntax highlighting plugin (or even complete lang workbench plugin??)
# TODO: Moodle plugin
# TODO: exercise download "shop"
# TODO: reorder/rename CSS class names
# TODO: sage math docs:
sage -python sell.py INPUT_PATH
from sage.all import *
f = sage.all.factorial(3)
type(f)
# <class 'int'>
x = sage.all.power_mod(2,100,123)
type(x)
# <class 'int'>
p = sage.all.random_prime(2^1536)
type(p)
# <class 'sage.rings.integer.Integer'>
----> TODO: more types (from old sellquiz-language-workbench: if type(value) == Integer or type(value) == int or type(value) == sage.rings.finite_rings.integer_mod.IntegerMod_int:)
# https://doc.sagemath.org/html/en/reference/py-modindex.html
---
Question.
@title
3. Restklassen
@sage
from sage.all import *
import random # MUST be imported AFTER sage
n1 = 5
a = -random.randint(42, 73)
b = 100 * random.randint(2, 5)
c = random.randint(2, 5)
d = random.randint(11, 21)
x = sage.all.mod( a*(b+c*2^d), n1 )
n2 = 10
e = randint(1000, 100000)
f = randint(1000, 1000000)
g = randint(1000, 10000000)
h = randint(1000, 100000000)
y = mod( e*f*g*h, n2 )
@text
Berechne die folgenden Restklassen und gib jeweils den **Standardrepräsentaten** an:
- $ (e \cdot f \cdot g \cdot h) \mod n2 = $ #y
- $ a \cdot (b + c \cdot 2^{d}) \mod n1 = $ #x
---
--------------
+++ tODO: start with JavaScript as student language!
QUESTION Addition
"""
import random
x = random.randint(1,10)
y = random.randint(1,10)
z = x + y
"""
$x+y=$ %z
QUESTION Addition
"""js
x = Math.floor(Math.random()*10);
y = Math.floor(Math.random()*10);
z = x + y;
"""
$x+y=$ %z
QUESTION (JavaScript) Functions
Write a JavaScript function `function add(x, y)` that adds
two numbers and returns the result. \\
%javascript `function add(x, y) {
return x + y;
}`
"""js
assert(add(3,5)==8);
"""
QUESTION (Python) Functions
Write a Python function `def add(x,y)` that adds
two numbers and returns the result. \\
%python `def add(x, y):
return x + y`
"""js
assert(add(3,5)==8);
"""