Xcos Fellowship 2019

REGISTRATION

  • The registration for FOSSEE Summer Fellowship 2019 starts on 1 February 2019.
  • For registration, click here.
  • To view the complete list of projects, click here.

IMPORTANT DATES:

Click here to know the important dates. 

Resources to learn scilab/xcos: http://spoken-tutorial.org/tutorial-search/?search_foss=Scilab&search_language=English

You are expected to finish and submit one of the three following tasks:

Screening Task 1: To code textbook examples in Xcos

For this task you need to submit a book proposal, and wait for approval. You can submit your codes only if your proposal is approved. It will take less than three working days to approve the proposal. 

After your proposal is approved you need to code 10 or more nontrivial textbook examples in Xcos. These examples should be from a single textbook. Also, include the same examples coded on another software (not necessarily open source) to treat as a comparison for accuracy.

To make a book proposal click on this link.

For this task, you must code at least ten examples from textbooks. The examples shouldn't be trivial, in that you shouldn't require a couple of simple blocks to get the output.

  1. There is no upper limit to the number of examples you may submit. More number of unique examples will score higher than few number of similar examples for the same function. 
  2. Each example code should be inside a separate .xcos file. Example files should be named as EX1_1.xcos, EX1_2.xcos etc.unless specified particularly.
  3. Add annotations in the diagrams that explain what is being tested, what the input arguments are and if the example would generate any error. Lucid annotations that provide information about the example diagrams will score highly.
  4. Cite your references. On no account will plagiarism be tolerated. Such submissions will be rejected summarily. Mention the citations as comments in respective code.
  5. Create a README file for each file that has clear instructions about how to use the corresponding example codes that you write. The README file should include a set of rich instructions that explains the content inside each of the submitted code. If the README file fails to provide all instructions in order to be able to use your submitted code, you will lose points.
  6. You are expected to follow this directory structure while submitting your work. Engineering_Circuit_Analysis/CH1/EX1_1/ And put all the files related to this example like EX1_1.xcos & EX1_1.m in this directory.

Screening Task 2: Python

In this task, you will attempt to solve at least one of the python problems given below.  You will have to install scilab_for_xcos_on_cloudas well as xcos_on_cloud on your system. Follow the installation instructions given here.

  • Problem 1: python 3: Prestart SCILAB_MIN_INSTANCES scilab-adv-cli instances. SCILAB_MIN_INSTANCES will be set in config.py. Send the scilab command to one of the available instances. Remove the instance on completion / timeout. Restart instances as required. Details: scilab-adv-cli can take input from the standard input. Modify run_scilab to send the command to an existing instance of scilab-adv-cli instead of starting a new one. When this instance exits, start a new one. See Issue Details
  • Problem 2: python 3: Cleanup scilab-adv-cli instances on shutdown. Details: When a user clicks on simulate, scilab-adv-cli is started. When SendLog.py is stopped, these instances of scilab-adv-cli should also be stopped. See Issue Details
  • Problem 3: python 3: Add SCILAB_INSTANCE_TIMEOUT_INTERVAL to config.py. Add start time when command is run. Add a timeout = start time + SCILAB_INSTANCE_TIMEOUT_INTERVAL to the scilab-adv-cli instance. At the end of the timeout, kill the scilab-adv-cli instance and return error. Details: When a user clicks on simulate in the browser, a scilab-adv-cli instance starts. If the user does not click on Stop, this instance can continue forever. This happens with diagrams having specific type of blocks. Ensure that simulation stops cleanly after reaching the timeout. See Issue Details
  • Problem 4: python 3: Some resources are cached at the browser level. Even if they are changed on the server, the browser continues to use the cached version.

    Implement a solution so that a browser will be forced to load the new version if the resource is changed on the server. This task is for server side solution. See Issue Details

 

Some guidelines:

  1. You will be judged on code quality, correctness of output, and the methodology used. Please provide a README file.
  2. Even if you don’t solve the problem, if your approach is impressive, that submission will be considered.
  3. If you solve (or attempt to solve) more than one problem, all the submissions will be considered.
  4. Cite your references. On no account will plagiarism be tolerated. Such submissions will be rejected summarily.

Screening Task3: javascript

In this task, you will attempt to solve at least one of the javascript problems given below. You will have to install scilab_for_xcos_on_cloud as well as xcos_on_cloud on your system. Follow the installation instructions given here.

  • mxgraph (js): We are using mxgraph for the canvas elements. Upgrade mxgraph to a recent version and test its working. See Issue Details
  • mxgraph (js): duplication of code. some functions are repeated. Cleanup the code to avoid repeated functions. See Issue Details
  • mxgraph (js): Understanding of mxgraph. Make a directed block diagram using mxgraph. Each block will have input and output ports. For some type of blocks, the input and output ports can be changed by changing the properties of the block. Ensure that these functions work:
    • adding a block
    • deleting a block
    • changing some properties of a block
    • adding input / output ports to a block
    • reducing input / output ports from a block
    • resizing a block
    • moving a block around
  • js: Add a validation framework for input of parameters of the blocks on double clicking them. Any input in the popup will be validated. On validation failure, it will highlight that block and ask the user to update it. Details: Design a simple input box with multiple fields and a submit + cancel buttons. For each input field, add validation types. If any validation passes, treat as success and go to next field. If validation passes for all fields, submit box should close. If validation fails, do not close the submit box and highlight the input field and show error message just below (or above) it. You may also validate all input fields and show error message for all invalid fields. On changing the value, the error message must be cleared. It should be easy to add more types later. This can also be implemented using a third-party free/libre and open source framework (this should be clearly mentioned in the submission). See Issue Details
  • js: Add a cleanup framework for input of parameters of the blocks on double clicking them. Any input in the popup will be cleaned up. There is no failure in this cleanup process. Details: Design a simple input box with multiple fields and a submit + cancel buttons. For each input field, add cleanup types. After cleanup, the input value may be modified. On submission, the submit box should close. It should be easy to add more types later. This can also be implemented using a third-party free/libre and open source framework (this should be clearly mentioned in the submission). See Issue Details
  • js: Check if popups are supported in browser. Show appropriate message if they are not supported. See Issue Details
  • js: highcharts: In the simulation window, downloading an image from the simulation window gives a warning about leaving site. As we are actually not leaving that site, this warning is spurious. Remove this warning. See Issue Details
  • js: Some resources are cached at the browser level. Even if they are changed on the server, the browser continues to use the cached version. Implement a solution so that a browser will be forced to load the new version if the resource is changed on the server. This task is for browser side solution. See Issue Detail

 

Some guidelines:

  1. You will be judged on code quality, correctness of output, and the methodology used. Please provide a README file.
  2. Even if you don’t solve the problem, if your approach is impressive, that submission will be considered.
  3. If you solve (or attempt to solve) more than one problem, all the submissions will be considered.
  4. Cite your references. On no account will plagiarism be tolerated. Such submissions will be rejected summarily.

 

Procedure and Evaluation:

  1. Add annotations in the xcos model that explain the problem statement, and what the input arguments are, and generate an appropriate graphical output . Lucid annotations that provide information about the example diagram will score highly.
  2. For the second task, you will be judged on code quality, correctness of output , and the methodology used. Please provide a readme file.
  3. Even if you don’t solve the bug, if your approach is impressive, you will be awarded points for it.
  4. Cite your references. On no account will plagiarism be tolerated. Such submissions will be rejected summarily.

Code Submission

1. You will receive an email with the subject line "FOSSEE Summer Fellowship 2019 - Submission".

2. Using the credentials provided, click here to visit the submission portal.

3. Select Xcos FSF 2019 under 'My Courses' section to submit the task(s).

Note: To consider for FOSSEE Fellowship 2019, the solution sets should only be submitted in the link using the username and password given in the registered email for Fellowship program.

If you have any Xcos fellowship related doubts, please email us at contact@scilab.in

If you have a Xcos related query, please post your query on forums.fossee.in under ‘Scilab’. Please do not email us xcos related doubts. Such emails will be ignored.