From 1907976b41c82bd775d0dc9a9286d07651078c85 Mon Sep 17 00:00:00 2001 From: adjoly Date: Sun, 12 Oct 2025 20:37:45 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=F0=9F=8F=97=EF=B8=8F=E3=80=8D=20wip:?= =?UTF-8?q?=20work=20in=20progress,=20not=20done=20yet.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lescrampte/corr/abstract-vm/index.html | 720 +++++++++++++++++++++ src/lescrampte/corr/dslr/index.html | 511 +++++++++++++++ src/lescrampte/index.html | 6 + 3 files changed, 1237 insertions(+) create mode 100644 src/lescrampte/corr/abstract-vm/index.html create mode 100644 src/lescrampte/corr/dslr/index.html diff --git a/src/lescrampte/corr/abstract-vm/index.html b/src/lescrampte/corr/abstract-vm/index.html new file mode 100644 index 0000000..f386ef9 --- /dev/null +++ b/src/lescrampte/corr/abstract-vm/index.html @@ -0,0 +1,720 @@ + + + + + + + + + + + + + + + +Intra Projects abstract-vm Edit + + + + +
+
+ +
+
+
+

Preliminaries

+

+
+

Preliminaries tests

+

+

Check firstly the following elements :

+ +
    +
  • There is something in the git repository.
  • +
  • No cheating (All functions are authorised, the student can explain +the code)
  • +
+ +

If an element isn't implemented as explained in the subject, the
+ grading ends. Use the appropriate flag. You're allowed to debate
+ some more.

+ +

+
+ + +
+ + + + +
+
+
+
+
+
+

Feature's testing

+

+
+

Test 1

+

+

Run the following program :

+ +

\r\n\r\npush int32(42)\r\npush int32(33)\r\nadd
+;poney\r\npush float(44.55)\r\nmul\r\npush double(42.42)\r\n;commentaire
+de ouf\r\npush int32(42)\r\ndump\r\npop\r\nassert double(42.42)\r\nexit\r\n\r\n

+ +

Does the program execute properly?\r\n

+ +

+
+ + +
+ + + + +
+
+

Test 2

+

+

Run the following program :

+ +

\r\n\r\npush int32(32)\r\npush int32(0)\r\ndiv\r\nexit\r\n\r\nDoes
+the program stops properly because of the 0 division?\r\n

+ +

+
+ + +
+ + + + +
+
+

Test 3

+

+

Run the following program:
+ \r\n\r\npush int16(999999999999999999999999999)\r\nexit\r\n\r\n
+ Does the program stops properly because of the overflow error?\r\n"

+ +

+
+ + +
+ + + + +
+
+

Test 4

+

+

Run the following program:
+ \r\n\r\npush int16(32 ;)\r\npu int(32))\r\nexit\r\n\r\nDoes
+ the program stops properly because of a syntax error?\r\n"

+ +

+
+ + +
+ + + + +
+
+

Test 5

+

+

Run the following program:
+ \r\n\r\npop\r\nexit\r\n\r\n Does the
+ program stops properly because of an empty stack?\r\n"

+ +

+
+ + +
+ + + + +
+
+

Test 6

+

+

Run the following program:
+ \r\n\r\npush int32(42)\r\nassert int32(0)\r\nexit\r\n\r\nDoes
+ the program stops properly on an assert error?\r\n"

+ +

+
+ + +
+ + + + +
+
+

Test 7

+

+

Run the following program:
+ \r\n\r\npush int32(42)\r\nadd\r\nexit\r\n\r\n
+ Does the program stops properly on a missing operand?\r\n"

+ +

+
+ + +
+ + + + +
+
+

Test 8

+

+

Run the following program:
+ \r\n\r\npush int8(33) ;!\r\npush int8(112)
+ ;p\r\npush int8(111) ;o\r\npush int8(108) ;l\r\npush int8(112) ;p\r\nprint\r\npop\r\nprint\r\npop\r\nprint\r\npop\r\nprint\r\npop\r\nprint\r\npop\r\nexit\r\n\r\n
+ Does the program run properly and display the following output?\r\n\r\np\r\nl\r\no\r\np\r\n!\r\n\r\n"

+ +

+
+ + +
+ + + + +
+
+

Custom test

+

+

Run your own tests. For example, run operation with mixed types, really
+big or really small numbers (overflow and underflow excluded).

+ +

Does the program run as expected?

+ +

+
+ + +
+ + + + +
+
+

Difficult custom test

+

+

Run a really complicated program of your invention (a vicious test
+basically).

+ +

Does the program run as expected?

+ +

+
+ + +
+ + + + +
+
+
+
+
+
+

Implementation

+

+
+

Inputs

+

+

The VM must be able to read either from a file or from the standard input
+(with a ;; to end the input)

+ +

+
+ + +
+ + + + +
+
+

Stack

+

+

The VM countains a "stack". It can't be a std::stack except if
+rigorously justified (std::stack isn't iterable, it can at best
+be used as a base class).

+ +

+
+ + +
+ + + + +
+
+

Polymorphic operands

+

+

Are operand manipulated polymorphicaly through IOperand *.
+If not, the project is off topic. Click on the "crash" flag,
+the grading stops but you're allowed to debate some more.

+ +

+
+ + +
+ + + + +
+
+

Operand factory

+

+

There must be an operand "factory" implementing the following function:
+IOperand * SomeClass::createOperand(eOperandType type, const std::string & value);

+ +

+
+ + +
+ + + + +
+
+

Precision management

+

+

The VM manages precision in a non trivial way - An if forest or any
+other disgusting thing. An enum is totally acceptable for example.

+ +

+
+ + +
+ + + + +
+
+

Parser

+

+

The VM has a clean and clomplete parsing?

+ +

+
+ + +
+ + + + +
+
+

Exceptions

+

+

The VM must use exceptions to manage errors.

+ +

Select the corresponding grade:

+ +
    +
  • No exceptions: 0
  • +
  • Scalar exceptions (string, char*, int, ...): 1
  • +
  • Use of pre-made exceptions (only std::exception ou autre): 2
  • +
  • Use of custom exceptions custom inheriting from std::exception: 3
  • +
  • Use of custom exceptions custom inheriting from a more specific class than std::exception: 4
  • +
+ +

+
+ + +
Rate it from 0 (failed) through 5 (excellent)
+
+
+
+
+
+
+
+

Bonus

+

+
+

Complete verification

+

+

The VM is capable of ouputing every error in a file, and doesn't
+stop at the first error met (interpretation excluded).

+ +

+
+ + +
+ + + + +
+
+

Advanced parsing

+

+

The parsing is well structured, more specificaly a lexer / parser combo
+with well defined roles as it should be in reality.

+ +

+
+ + +
+ + + + +
+
+

Other bonus

+

+

Count in this section the different bonuses. You can grade up to 5
+distinctive bonuses.

+ +

Each bonus must be :

+ +
    +
  • At the very least useful (up to you)
  • +
  • Well implemented and 100% functional
  • +
+ +

+
+ + +
Rate it from 0 (failed) through 5 (excellent)
+
+
+
+
+
+
+
+

Ratings

+

Don’t forget to check the flag corresponding to the defense

+
+ + +
+
+ + + + + + + + + +
+
+ +
+
+

Conclusion

+ +
+

Leave a comment on this evaluation ( 2048 chars max )

+ + +
+ +
+
+ +
+
+ +
+
+ + + + + + + + + +
+ + + + + + + + + + + diff --git a/src/lescrampte/corr/dslr/index.html b/src/lescrampte/corr/dslr/index.html new file mode 100644 index 0000000..2cf6d0e --- /dev/null +++ b/src/lescrampte/corr/dslr/index.html @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + +Intra Projects dslr Edit + + + +
+
+ +
+
+
+

Data analysis

+

+In this part, we will study the succinct data analysis through the 'describe' +function. +

+
+

The describe function

+

+

Execute the 'describe' function with 'dataset_train.csv' in parameter. Does
+the output respect the requirement of the subject? That is: count, mean,
+std, min, 25%, 50%, 75% and max.

+ +

+
+ + +
+ + + + +
+
+

Hands in code

+

+

Open the 'describe' source and talk about the code together. Make sure the
+assessed student doesn't use any third party library that would replace
+one of the requested results. For instance: no 'mean' function prompting
+the student would not have coded himself.

+ +

If the assessed student is using a prohibited function, check the Cheat
+flag and end the evaluation. Validate only if they coded everything
+themselves.

+ +

+
+ + +
+ + + + +
+
+

Notions explanations

+

+

Ask the assessed student to explain the following notions:

+ +
    +
  • What is the average (mean)?
  • +
  • What is the standard deviation (std)?
  • +
  • What is a quartile (25% - 50% - 75%)?
  • +
+ +

1 correct answer = 1 point, 2 correct answers = 3 points, 3
+correct answers = 5 points.

+ +

+
+ + +
Rate it from 0 (failed) through 5 (excellent)
+
+
+
+
+
+
+
+

Data visualization

+

+Here, we're going to tackle data visualization. This section will require +a little thinking more than just development skills. You will be the one to +judge if the assessed student answers the question and if his explanations +are satisfying. + +If you're not satisfied with an answer, it might be wise to sit and think of +another solution together. + +There might be more than one anwser to a given question. +

+
+

Histogram

+

+

Launch the histogram script.

+ +

Does the displayed graphic help you answer the question:
+Which Hogwarts class has an homogenous grade repartition between the four
+houses?

+ +

Ask the assessed student to explain what you see and why they believe it
+answers the question.

+ +

+
+ + +
+ + + + +
+
+

Scatter plot

+

+

Launch the scatter_plot script.

+ +

Does the displayed graphic help you answer the question:
+which two features are similar?

+ +

Ask the assessed student to explain what you see and why they believe it
+answers the question. For this part, there should only be one obvious
+answer.

+ +

+
+ + +
+ + + + +
+
+

Pair plot

+

+

Launch the pair_plot script.

+ +

Does the graphic help you answer the question:
+from this graph, which characteristics will you use to train your coming
+logistic regressions?

+ +

Ask the assessed student to explain what you see and why they believe it
+answers the question.

+ +

+
+ + +
+ + + + +
+
+
+
+
+
+

Logistic regression

+

+We are going to evaluate the multi-classifier. +

+
+

Discussions

+

+

Before launching any program, ask the assessed student how the logistic
+regression works.

+ +

We're not here to nitpick but to make sure the assessed student has
+understood the following points: how logistic regression works compared to
+to linear regression, point in nornmalising the data, what's the one-vs-all
+method. Of course, you can go further than these elements, but don't try
+to push or trick the student.

+ +

Did the student give the correct explanations?

+ +

+
+ + +
+ + + + +
+
+

Machine learning!

+

+

Time to evaluate the algorithme. First, execute logreg_train with
+dataset_train.csv. This should create a file containing the weights for
+each model. Is this the case?

+ +

+
+ + +
+ + + + +
+
+

Predictions

+

+

Once you have trained your models, execute logreg_predict with the
+weights and dataset_test.csvas parameters. This should create a file
+named houses.csv.

+ +

In order to evaluate the multi-classifier performance, use the script
+evaluate.py which will compare the files houses.csv with
+dataset_truth.csv containing the truth (that is, the real houses
+the students belong to).

+ +

Mc Gonagall had asked for a minimum score of 98% (equals 0.98). If this is
+so, you can validate. Otherwise... Too bad.

+ +

+
+ + +
+ + + + +
+
+
+
+
+
+

Bonus

+

+Reminder: if, somehow, the program doesn't react as it should (bus error, +segfault etc...), evaluation ends and the grade is 0. Use the respective +flags. This instruction works during the whole evaluation. + +Bonus will be taken into account only if the mandatory part is PERFECT. +PERFECT meaning it is completed, that its behavior cannot be faulted, even +because of the slightest mistake, improper use, etc... Practically, it +means that if the mandatory part is not validated, none of the bonus will +be taken in consideration. +

+
+

Let's talk, now.

+

+

Feel free to grade any additionnal features in the project. It will
+remain at your discretion as long as you have good reasons to do so.

+ +

+
+ + +
Rate it from 0 (failed) through 5 (excellent)
+
+
+
+
+
+
+
+

Ratings

+

Don’t forget to check the flag corresponding to the defense

+
+ + +
+
+ + + + + +
+
+ +
+
+

Conclusion

+ +
+

Leave a comment on this evaluation ( 2048 chars max )

+ + +
+ +
+
+ +
+
+ +
+
+ + + + + + + + + +
+ + + + + + + + + + + diff --git a/src/lescrampte/index.html b/src/lescrampte/index.html index a5c3a63..9f6a651 100644 --- a/src/lescrampte/index.html +++ b/src/lescrampte/index.html @@ -87,6 +87,12 @@ avaj-launcher + + abstract-vm + + + dslr +