csot/contest

Contest

week-01 · tasks & rules

Open any row for the full spec, examples, and what the grader checks.

Program content. Weekly guides, fork setup, and mini-project briefs live in the csot-devops repo on GitHub. Fork it once at the start of the program and pull new weeks from upstream each Monday.

All tasks

How to play

curl -fsSL https://csot-devops.devclub.in/install.sh | bash

csot login

mkdir solutions && $EDITOR solutions/01.sh

csot submit ./solutions                # all 12 tasks
csot submit ./solutions -t 07          # only task 07
csot submit ./07.service -t 07         # single-file submit

csot submit ./solutions -t 08
csot history
csot show <attempt-id> -t 08
csot leaderboard
csot leaderboard --weekly
csot update

Full CLI reference: csot submit --help or the repo at github.com/3x3cu73/csot-devops.

Task specs

Every task page documents Submit as, Input, Output (stdout/stderr/exit code and side effects where relevant), Example, and What the grader checks. Open the spec before coding so you match the exact format.

Use the All tasks table above for titles, submit paths, and max points. Tasks marked partial award marks step-by-step when the grader runs; the CLI shows PART with got/max per task.

Rules

  • Window: open/close times on the Instructions page
  • Rate limit: 5 submissions/minute, 100 submissions/contest
  • Submission size: ≤ 1 MB, ≤ 50 files
  • Per-task timeout: 30 s inside the grader sandbox
  • Privacy: your code is uploaded only to the contest server. Other students never see it.

Sandbox

Every submission is graded inside a fresh container with --network=none --memory=512m --cpus=1 --pids-limit=200 --read-only --cap-drop=ALL --security-opt=no-new-privileges --user 1000:1000. Your script's stdout/stderr are captured per task. The CLI prints a summary table, then Logs by default (OK lines on pass, full output under Why it failed: on fail). With -t, only that task's log block is shown.

Code of honour

Solve them yourself. Man pages, blog posts, AI assistance — all fine. Copy-pasting another student's 02.sh is not. Plagiarism zeroes your score.

Scoring & penalties

Standing score

Your leaderboard score is the sum of your best mark on each task across all graded submissions — not your best single upload:

score = Σ (best points on task T)

Example: best on task 07 = 9 and best on task 02 = 7 gives a score of 16, even if you submitted many times. Week 1 totals 100 points across 12 tasks.

Partial marks

Many tasks award credit in chunks (CLI shows PART with got/max). Your standing uses the best partial or full score per task. Task 12 (todo CLI) is worth 10 points with four graded steps.

Penalties (tie-break only)

Penalties never subtract points. They break ties when two players have the same score. For each task T, penalty on T = max(0, penalty_runs_on_T − 1):

Penalty runs on TPenalty
1st0
2nd1
3rd2
runs − 1

What counts as a penalty run:

  • csot submit ./solutions -t 07 — every graded run on task 07 counts.
  • Full-folder submit — counts only when the task file was present and you had not already reached full marks on that task before this submission. Missing files and already-perfect tasks are ignored.
  • Skipped tasks (partial submit filter) and identical re-uploads (deduped) never count.

Tie-break order

Higher score → fewer total penalties → earlier last graded submission.