FOSSEE Summer Fellowship 2020

Please keep visiting this page for updates
Last updated on: 01 April 2020

Due to the outbreak of COVID-19 and travel restrictions placed by IIT Bombay, the FOSSEE Summer Fellowship 2020 will be offered remotely. The FOSSEE team will contact the selected candidates through emails soon.


INSTRUCTIONS

  • This fellowship task has been divided in 3 Screening Tasks. At any given time participants are allowed to work on two screening tasks. But we recommend you to focus on one screening task and complete it successfully.
  • Please note that Screening Task 3 is solely based on Software Development (C and Python).

RESOURCES

  • To download and install eSim, use this reference : Linux | Windows
  • To learn eSim, click here for resources.
  1. Propose 5 Circuit Simulations you wish to implement in eSim.
  2. Please make sure that the proposed circuits are not under the Completed Circuit Simulations and the Examples provided with eSim.
  3. Your proposal will be reviewed and approved/disapproved (within one working day). Only after receiving the approval of your proposal through email, you can proceed to attempt the task.
  4. Simulate the approved circuits using both the Subcircuit Builder and Device Modeling feature of eSim and design PCB Layout for any 3 of the above circuits created, in eSim. 
  5. To propose the circuits click here.

Technical Requirements:

Knowledge of analog and digital electronics. Familiarity with EDA tools such as eSim, PSpice, LTspice, EAGLE or similar tools, typically used for circuit simulation and/or PCB design.

Procedure to Submit:

Click here to submit.

Evaluation Criteria:

Following criteria will be considered while evaluating the circuit simulation:

  • The complexity of the circuit
  • Accuracy of simulation results obtained
  1. Propose 5 Circuit Simulations you wish to implement using NGHDL feature of eSim. This feature is available only for Ubuntu Linux OS LTS versions 14.04 and above. Refer eSim manual for the documentation on NGHDL.
  2. Please make sure that the proposed circuits are not under the Examples provided on the GitHub link provided here.
  3. Your proposal will be reviewed and approved/disapproved (within one working day). Only after receiving the approval of your proposal through email, you can proceed to attempt the task.
  4. Simulate the approved circuits using NGHDL feature of eSim.
  5. To propose the circuits click here.

Technical Requirements:

  1. Knowledge of analog and digital electronics and VHDL. 
  2. Familiarity with any of the following tools will be an advantage for you: Xilinx, TINA, PSpice.

Procedure to Submit :

Click here to submit.

Evaluation Criteria:

Following criteria will be considered while evaluating the circuit simulation:

  • The complexity of the circuit
  • Accuracy of simulation results obtained

This task has been divided in two parts. Part A is an online test and Part B is code submission of the client-server implementation. Participants need to pass Part A to qualify for Part B. It is mandatory to complete both the parts as described below for this screening task to be considered as complete.

Part A:  

    The test will only be available starting from Thursday, 23rd January, 2020, 12:00 PM to Tuesday, 25th February, 2020, 23:59 PM.

    1. Go to https://yaksh.fossee.in/exam.
    2. Click on New User - Sign Up Button and register using the same Email ID as used here.
    3. In the Search Course Text box, Type in ESMF20 and click on Search button.
    4. You will be able to see the course “FOSSEE ESIM FELLOWSHIP 2020”.
    5. Click on the Enroll button beside the Course Name. Now go to the Enrolled Courses section and click on the Start button beside the Course Name.
    6. On the Course Modules Details Page, click on Start beside the Shortlisting stage - Esim Test Module.
    7. On the Module Page, you can start the test by clicking on Green Start Button.

  • Important Note:

    1. The test can be taken at any time/day between 23-01-2020, 12:00 PM and 25-02-2020, 23:59 PM.
    2. The test has a duration of 45 minutes and consists of 5 Questions.
    3. Each Question is a Coding Question which you have to answer using the programming language (C or Python) mentioned in the Question.
    4. Do not attempt to copy, cheat or Google your answers as all submissions are recorded and validated.
    5. The test can only be attempted once, candidates will not be allowed to attempt the Quiz more than once under any circumstances.
    6. The Quiz is completely online and hence you are requested to attempt the Quiz while in a comfortable place with good Internet Connection (Issues arising due to Bad Internet Connection will not be entertained).

  • Evaluation Criteria :

  • Successfully passing the FOSSEE Fellowship eSim Test.

  • Result Of Shortlisting:

    1. After completing the eSim Test, Click Here. Log In (in case you have logged out earlier).
    2. Check the Grade (below FOSSEE ESIM FELLOWSHIP 2020) that you have received.
    3. If it mentions Passed, you can immediately start attempting Part B of this Screening Task as mentioned below.
Part B:  
  1. Create a client file (say “client.c”) and a server file (say “server.c”).
  2. The client should choose any of the available loopback IP addresses and the registered port numbers.
  3. The client should start a batch file (say “start_server.bat”) bypassing the chosen IP address and port number to it.
  4. The batch file, in turn, should start the server by forwarding the IP address and port number which it received from the client.
  5. Communication between client and server should be done using TCP sockets in blocking mode.
  6. Both client and server should be able to read/write to the socket and exchange data multiple times.
  7. For each exchange of data, a new socket is to be created without changing the IP address and port number.
  8. Once the communication is done, the client should terminate the server process using the server’s Process-ID and only then the client should exit.
  9. Document each of the above-mentioned activities including step-by-step instructions to compile and execute your code.

Technical Requirements :

  • C, Python, Knowledge of Socket programming, Basics of Digital Logic Design, OOPs concepts 
  • Familiarity with Linux and Windows OS

Procedure to Submit :

Click here to submit.

Evaluation Criteria :

Following criteria will be considered while evaluating this implementation:

  • Complexity and Quality of Code.
  • Quality and Extent of Test Cases.
  • Documentation.