summaryrefslogtreecommitdiff
path: root/yaksh/demo_templates/yaml_question_template
blob: 1309c067a12f60341f6347eff490349762af99fe (plain)
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
---
testcase:
- test_case_type: |-
    integertestcase
  correct: 2
- test_case_type: |-
    integertestcase
  correct: -3
files: []
language: |- # bash, scilab, python, c/c++, java
  python
partial_grading: false
tags:
- python
- quadratic
- demo
- integer
points: 1.0
snippet: ''
active: true
type: |-
  integer
description: |-
  Type in the box below, one of the roots to the following quadratic equation?
  <br/>
  <math xmlns="http://www.w3.org/1998/Math/MathML">
    <msup>
      <mi>x</mi>
      <mn>2</mn>
    </msup>
    <mo>+</mo>
    <mi>x</mi>
    <mo>-</mo>
    <mi>6</mi>
    <mo>=</mo>
    <mn>0</mn>
  </math>
summary: |-
  Roots of quadratic equation
grade_assignment_upload: false
---
testcase:
- test_case_type: |-
    stringtestcase
  correct: |-
    (2, 'HelloHello', ':', 'Bye')
  string_check: |- # exact or lower
    exact
files: []
language: |-
  python
partial_grading: false
tags:
- python
- demo
- print
- string
- '1'
- case_sensitive
- casesensitive
- python2
points: 1.0
snippet: ''
active: true
type: |-
  string
description: |-
  What is the output for the following code in <b>Python 2.x</b>:
  <br>
  <code>
  print(2, "Hello"*2, ":" ,"Bye")
  </code>
summary: |-
  Print Output
grade_assignment_upload: false
---
testcase:
- test_case_type: |-
    floattestcase
  correct: 5.5786
  error_margin: 0.0
files: []
language: |-
  python
partial_grading: false
tags:
- float
- '1'
- python
- decimal
- demo
points: 1.0
snippet: ''
active: true
type: |-
  float
description: |-
  Write down the resultant value of the following -
  <pre>3.4566+2.122
  </pre><br/>
summary: |-
  Adding decimals
grade_assignment_upload: false
---
testcase:
- test_case_type: |-
    standardtestcase
  test_case_args: |-
    file1.csv   file2.csv   file3.csv
  test_case: |-
    #!/bin/bash
    cat $1 | cut -d: -f2 | paste -d: $3 - $2
  weight: 1.0
files:
- - file1.csv
  - false
- - file2.csv
  - false
- - file3.csv
  - false
language: |-
  bash
partial_grading: false
tags:
- demo
- code
- files
- concatenate
- bash
- delimiter
- '2'
points: 2.0
snippet: |-
  #!/bin/bash
active: true
type: |-
  code
description: |-
  Write a bash script that takes exactly three file arguments.
  
  The first argument <b>(file1.csv)</b> would have 3 columns, the second argument <b>(file2.csv)</b> would have 2 columns. The third argument <b>(file3.csv) </b>would have 2 columns.
  <br><br>
  All files have columns delimited by <b>: (colon)</b>.
  <br><br>
  We need the <b>2nd column</b> from <b>file1.csv</b> to be removed and concatenated <b>BEFORE file2.csv</b> and this concatenated file should come <b>BESIDE file3.csv</b>.
  
  Left is <b>file3.csv</b>, and the <b>LATER</b> columns come from <b>file1.csv and file2.csv.</b>
  <br><br>
  <b>The delimiter while putting the files BESIDE each other should again be : (colon)</b>
  <br><br>
  <pre>
  <b>Note:</b> - <i>Do not hard-code the filenames. They will be passed in as arguments.
  Assume no headers (to avoid header-non-repetition issues).</i>
  </pre>
summary: |-
  Extract columns from files
grade_assignment_upload: false
---
testcase:
- test_case_type: |-
    standardtestcase
  test_case_args: ''
  test_case: |-
    assert is_palindrome("hello") == False
  weight: 1.0
- test_case_type: |-
    standardtestcase
  test_case_args: ''
  test_case: |-
    assert is_palindrome("nitin") == True
  weight: 1.0
- test_case_type: |-
    standardtestcase
  test_case_args: ''
  test_case: |-
    assert is_palindrome("madaM") == False
  weight: 1.0
files: []
language: |-
  python
partial_grading: false
tags:
- python
- assertion
- palindrome
- reverse
- code
- '2'
- demo
points: 2.0
snippet: |-
  def is_palindrome(s):
active: true
type: |-
  code
description: |-
  Write a function <code>is_palindrome(arg)</code> which will take one string argument.
  <br>
  Return True if the argument is palindrome & False otherwise.
   <br>
  The function should be case sensitive.
  <br><br>
  For Example:<br><code>is_palindrome("Hello")</code> should return <code>False</code><br>
summary: |-
  Check Palindrome
grade_assignment_upload: false
---
testcase:
- test_case_type: |-
    stdiobasedtestcase
  weight: 1
  expected_input: |-
    string
  expected_output: |-
    s
    t
    r
    i
    n
    g
- test_case_type: |-
    stdiobasedtestcase
  weight: 1
  expected_input: |-
    s t o p s i g n
  expected_output: |-
    s
     
    t
     
    o
     
    p
     
    s
     
    i
     
    g
     
    n
- test_case_type: |-
    hooktestcase
  hook_code: |-
    def check_answer(user_answer):
        ''' Evaluates user answer to return -
        success - Boolean, indicating if code was executed correctly
        mark_fraction - Float, indicating fraction of the
                      weight to a test case
        error - String, error message if success is false
    
        In case of assignment upload there will be no user answer '''
    
        success = False
        err = "You are using while in your code."
        mark_fraction = 0.0
    
        if not 'while' in user_answer:
            success=True
            err = "Correct Answer"
            mark_fraction = 1.0
        return success, err, mark_fraction
  weight: 1.0
files: []
language: |-
  python
partial_grading: true
tags:
- python
- stdio
- demo
- '1'
- code
- for
points: 1.0
snippet: ''
active: true
type: |-
  code
description: |-
  Write a python script that accepts a <b>string</b> as input
  <br>
  The script must print each character of the string using a for loop.
  
  For example;
  <pre>
  <b>Input:</b>
  box
  <b>Output</b>
  b
  o
  x
  </pre>
summary: |-
  For Loop over String
grade_assignment_upload: false
---
testcase:
- test_case_type: |-
    standardtestcase
  test_case_args: ''
  test_case: |-
    #include <stdio.h>
    #include <stdlib.h>
    
    extern int add(int, int, int);
    
    template <class T>
    void check(T expect,T result)
    {
        if (expect == result)
        {
      printf("\nCorrect:\n Expected %d got %d \n",expect,result);
        }
        else 
        {
      printf("\nIncorrect:\n Expected %d got %d \n",expect,result);
      exit (1);
       }
    }
    
    int main(void)
    {
      int result;
      result = add(0,0,0);
            printf("Input submitted to the function: 0, 0, 0");
      check(0, result);
      result = add(2,3,3);
            printf("Input submitted to the function: 2, 3, 3");
      check(8,result);
      printf("All Correct\n");
    }
  weight: 1.0
files: []
language: |-
  c
partial_grading: false
tags:
- c++
- c
- demo
- code
- '2'
- addition
- cpp
- numbers
points: 2.0
snippet: ''
active: true
type: |-
  code
description: |-
  Write a program to add 3 numbers. 
  <br>
  Function Name is to be called <b>add</b>
  <br>
  <br><br>
  <pre>
  <b>Note:</b><i> You do not have to print anything, neither you have to make the function call. 
  Just define the function to perform the required operation, return the output & click on check answer.
  Also, note that the function name should exactly be as mentioned above.</i>
  </pre>
summary: |-
  Add 3 numbers
grade_assignment_upload: false
---
testcase:
- test_case_type: |-
    hooktestcase
  hook_code: |-
    def check_answer(user_answer):
        ''' Evaluates user answer to return -
        success - Boolean, indicating if code was executed correctly
        mark_fraction - Float, indicating fraction of the
                      weight to a test case
        error - String, error message if success is false
    
        In case of assignment upload there will be no user answer '''
    
        success = False
        err = "Incorrect Answer" # Please make this more specific
        mark_fraction = 0.0
    
        try:
            with open('new.txt', 'r') as f:
                if "Hello, World!" in f.read():
                    success = True
                    err = "Correct Answer"
                    mark_fraction = 1.0
                else:
                    err = "Did not found string Hello, World! in file."
        except IOError:
            err = "File new.txt not found."
        return success, err, mark_fraction
  weight: 1.0
files: []
language: |-
  python
partial_grading: false
tags:
- python
- '1'
- file
- hook
- hello
- world
- grade
- assignment
- upload
- demo
points: 1.0
snippet: ''
active: true
type: |-
  upload
description: |-
  Upload a file called <code>new.txt</code> which contains the string <code>Hello, World!</code>  in it.
summary: |-
  Hello World in File
grade_assignment_upload: true
---
testcase:
- test_case_type: |-
    mcqtestcase
  correct: false
  options: |-
    s.reverse()
- test_case_type: |-
    mcqtestcase
  correct: true
  options: |-
    s[::-1]
- test_case_type: |-
    mcqtestcase
  correct: false
  options: |-
    reversed(s)
- test_case_type: |-
    mcqtestcase
  correct: true
  options: |-
    "''.join(reversed(s))
files: []
language: |-
  python
partial_grading: false
tags:
- python
- '2'
- reverse
- mcc
- demo
points: 2.0
snippet: ''
active: true
type: |-
  mcc
description: |-
  Which of the following options would reverse the string?
summary: |-
  Reverse a string
grade_assignment_upload: false