This assignment might initially seem daunting, but please try not to be discouraged by the learning curve. Being research-oriented, it is designed to be challenging and time-consuming, with some open-ended elements. It will likely not be possible to complete in a single sitting, so please plan accordingly.
If you're a first or second year student attempting this assignment, be prepared to be exposed to some unfamiliar concepts, terminology and tools. Take things slow, and try to understand the fundamentals; we value depth a lot more than breadth.
If you have some prior experience, you might want to devote more time to the open-ended parts. These sections are more exploratory, and push you to apply existing ideas creatively to solve more practical problems.
Even if you are not able to complete the assignment in its entirety, please make a submission. We'd love to see how much progress you were able to make. An incomplete assignment doesn't equal an automatic rejection.
The assignment has three independent buckets/paths which you can choose from:
- Distributed Systems (branch:
distributed-systems) - Machine Learning for Systems / Systems for Machine Learning (branch:
ML-sys) - Systems (branch:
systems)
You are required to pick ONLY ONE of these.
We discourage attempting more than one bucket, especially for first year students. Completing a single bucket thoroughly should occupy most of your time. Reiterating: we value depth over breadth; we would rather have you dive deep into the open-ended section of one bucket rather than spend time on more than one of them. Owing to the open-ended nature of research, your work on the open-ended portions will be the best indicator of your understanding and skills.
You can find further instructions for each bucket in the respective branch (listed above) of this repository. You may clone the appropriate branch, and start working from there.
- First, clone the chosen branch of our public repository:
git clone --branch <branch-name> --single-branch https://github.com/DaSH-Lab-CSIS/DaSH-Lab-Induction-Assignment-2025.git - Remove the public repository as the remote:
cd DaSH-Lab-Induction-Assignment-2025 git remote remove origin - Create a new PRIVATE repository linked to your own GitHub account.
- Add this new repository as the remote:
git remote add origin https://github.com/<your-username>/<your-repo-name>.git - Push your modified files to this repository:
git push -u origin <branch-name> - When you're ready to submit, add the following account as a collaborator with the 'write' role (DO NOT FORGET THIS STEP):
- GitHub Username:
dash-recruiter - Profile Link:
https://github.com/dash-recruiter
- GitHub Username:
Please join our Slack workspace to keep up with announcements related to the induction process, and also to ask questions / ask for help if you're stuck.
You are free to use your favourite LLMs as coding / research assistants.
We do NOT look unfavourably upon LLM generated code, as long as you understand the implementation and are able to make modifications if required.
We STRONGLY DISCOURAGE pasting the entire problem statement into an LLM and submitting the output without any modifications. The assignment is meant to test your understanding and ability to tackle novel problems. As such, you should be able to explain in your interview the content you have studied and the solution you have implemented.
- First Deadline:
- Friday, 7th November 2025, 11:59 PM
- GForm for First Deadline
- Second Deadline:
- Tuesday, 11th November 2025, 11:59 PM
- GForm for Second Deadline
You are NOT expected to have completed all the work by the first deadline. It is meant to serve as a progress update, but submission is still mandatory.
If you do complete the assignment by the first deadline, you need not make the second submission.