Skip to content

content: update CSE/CSIT-302 syllabus and PYQs - #95

Merged
imuniqueshiv merged 2 commits into
mainfrom
content/cse-csit-302-syllabus-pyqs
Jul 11, 2026
Merged

imuniqueshiv merged 2 commits into
mainfrom
content/cse-csit-302-syllabus-pyqs

Conversation

@imuniqueshiv

@imuniqueshiv imuniqueshiv commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Pull Request

Summary

Update the CSE (CS-302) and CSIT (CSIT-302) syllabus and previous year questions with the latest content.


Related Issue

Closes #


Type of Change

  • Feature
  • Bug Fix
  • Documentation
  • Refactor
  • Performance Improvement
  • CI / Build
  • Other

What Changed?

  • Updated the CS-302 syllabus content.
  • Updated the CSIT-302 syllabus content.
  • Updated the previous year questions for both CS-302 and CSIT-302.

Screenshots (UI Changes Only)

N/A


Testing

  • Verified the updated JSON files for correctness.
  • Confirmed the syllabus and PYQs render correctly in the application.

Checklist

  • My branch is up to date with the latest main.
  • My code follows the project's coding standards.
  • I have formatted the modified files (npx prettier --write <file>).
  • npm run format:check passes.
  • npm run lint passes.
  • npm run typecheck passes.
  • npm run build passes.
  • I have updated documentation if required.
  • I have tested my changes locally.
  • This Pull Request focuses on a single feature or fix.

Additional Notes

This PR updates only the syllabus and previous year question content for CS-302 and CSIT-302. No application logic or UI components were modified.

Summary by CodeRabbit

  • New Features
    • Added comprehensive CS-302 and CSIT-302 previous-year question banks covering exams from November 2022 through December 2025.
    • Added structured questions, subquestions, question types, unit associations, and diagram support.
    • Expanded syllabi with detailed topic information, exam instructions, grading details, marks, and duration.
    • Connected syllabus modules and topics with corresponding question references for easier study navigation.

@vercel

vercel Bot commented Jul 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hyper-learning-tech Ready Ready Preview, Comment Jul 11, 2026 2:52am

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@imuniqueshiv, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 58687d97-afe3-41c5-890d-c2c7e1a567d7

📥 Commits

Reviewing files that changed from the base of the PR and between ee16021 and 0210f22.

📒 Files selected for processing (1)
  • components/contact/ContactSection.tsx
📝 Walkthrough

Walkthrough

Changes

CSE CS-302 content

Layer / File(s) Summary
CSE question bank expansion
content/rgpv/cse/semester-3/cs-302/pyqs.json
Adds exam metadata and populated structured papers for seven examinations from November 2022 through December 2025.
CSE structured syllabus mappings
content/rgpv/cse/semester-3/cs-302/syllabus.json
Replaces string topics with structured topic objects and adds module identifiers, exam metadata, question mappings, and predicted-question arrays.

CSIT CS-302 content

Layer / File(s) Summary
CSIT question bank normalization
content/rgpv/csit/semester-3/csit-302/pyqs.json
Normalizes exam question identifiers and fields while updating question text, units, types, and image metadata across seven examinations.
CSIT structured syllabus mappings
content/rgpv/csit/semester-3/csit-302/syllabus.json
Adds structured topic objects, stable module identifiers, exam metadata, question mappings, and predicted-question arrays across five modules.

Estimated code review effort: 3 (Moderate) | ~30 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: updating the CSE/CSIT-302 syllabus and PYQs content.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch content/cse-csit-302-syllabus-pyqs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@imuniqueshiv
imuniqueshiv merged commit 8852867 into main Jul 11, 2026
4 checks passed
@github-actions

Copy link
Copy Markdown

🎉 Congratulations @imuniqueshiv!

Thank you for contributing to HyperLearningTech.

Your pull request has been successfully merged into main.

📦 Merge Summary

🚀 Keep Contributing

  • Follow the CONTRIBUTING.md guidelines.
  • Keep each Pull Request focused on a single feature or fix.
  • Run formatting, linting, type checking, and a production build before opening a PR.

Thank you for helping make HyperLearningTech better.

Happy Coding! 🚀

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@content/rgpv/cse/semester-3/cs-302/pyqs.json`:
- Around line 333-338: Fix the composite unit value for question q8a so it maps
correctly through getQuestionsForModule: represent each listed topic as a
separate sub-question with its corresponding single unit, or update
getQuestionsForModule to split and match comma-separated unit values while
preserving module visibility.
- Around line 279-281: The affected subquestions use unsupported flat image
fields, so their diagrams will not render. Replace hasImage, imagePath, and
imageAlt with an attachments array containing the corresponding
QuestionAttachment object, and apply the same conversion to the matching entries
at the other noted locations.

In `@content/rgpv/cse/semester-3/cs-302/syllabus.json`:
- Around line 3-4: Update the subject metadata in the syllabus JSON so its id
and code consistently use the canonical directory and sibling pyqs values: set
id to "cs-302" and code to "CS-302", matching the cs-302 subject directory and
pyqs.json.

In `@content/rgpv/csit/semester-3/csit-302/pyqs.json`:
- Line 6: Update the `title` field in the `csit-302` `pyqs.json` entry to
exactly match the corresponding `title` in `syllabus.json`, using `"(CSIT)-302 –
Discrete Structure"` and removing the divergent course-prefix text.

In `@content/rgpv/csit/semester-3/csit-302/syllabus.json`:
- Around line 22-137: Update the migration validator and its associated type
contract to accept topic objects with id, slug, title, and displayOrder instead
of only string topics. Locate the topic validation in
scripts/migrate-syllabus.ts and align it with the Topic and Syllabus definitions
so object-based syllabi validate successfully, while preserving validation for
required fields and rejecting malformed entries.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 90c4d910-3bb4-4db7-855f-858b16a21e83

📥 Commits

Reviewing files that changed from the base of the PR and between b69c438 and ee16021.

📒 Files selected for processing (4)
  • content/rgpv/cse/semester-3/cs-302/pyqs.json
  • content/rgpv/cse/semester-3/cs-302/syllabus.json
  • content/rgpv/csit/semester-3/csit-302/pyqs.json
  • content/rgpv/csit/semester-3/csit-302/syllabus.json

Comment on lines +279 to +281
"hasImage": true,
"imagePath": "ques-diagrams/Q.5-b_june-2023.png",
"imageAlt": "A complete weighted graph with 5 vertices labeled A, B, C, D, E. The graph forms a pentagon shape with inner star connections. Edge weights are: A-B=100, B-C=125, C-D=300, D-E=75, E-A=175, A-C=200, A-D=225, B-D=250, B-E=225, C-E=275."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -n 'hasImage|imagePath|imageAlt|attachments' --type=tsx --type=ts components lib types

Repository: imuniqueshiv/HyperLearningTech

Length of output: 196


Use attachments here instead of flat image fields. SubQuestion renders attachments?: QuestionAttachment[], and the page only passes subQuestion.attachments into QuestionAttachments. hasImage/imagePath/imageAlt at these lines won’t render unless they’re mapped into an attachment object first. Same shape appears at lines 322, 458, 468, and 1172.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@content/rgpv/cse/semester-3/cs-302/pyqs.json` around lines 279 - 281, The
affected subquestions use unsupported flat image fields, so their diagrams will
not render. Replace hasImage, imagePath, and imageAlt with an attachments array
containing the corresponding QuestionAttachment object, and apply the same
conversion to the matching entries at the other noted locations.

Comment on lines +333 to +338
"id": "q8a",
"label": "",
"text": "Discuss in brief any two of the following: i) Partial ordering relation ii) Cosets iii) Disjunctive normal form iv) Pigeonhole principle",
"unit": "Unit 1, Unit 2, Unit 3, Unit 1",
"type": "theory"
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# All composite unit strings in the CSE pyqs
rg -n '"unit": "Unit [0-9][^"]*,' content/rgpv/cse/semester-3/cs-302/pyqs.json
# Confirm the mapper still uses exact equality on unit
rg -n -C3 'subQuestion\.unit' lib/content/question-mapper.ts

Repository: imuniqueshiv/HyperLearningTech

Length of output: 814


Split composite unit values before mapping

In content/rgpv/cse/semester-3/cs-302/pyqs.json, values like "Unit 1, Unit 2, Unit 3, Unit 1" won’t match getQuestionsForModule, which filters with exact equality on subQuestion.unit. These entries will disappear from every module view. Store one unit per sub-question or update the mapper to handle multi-unit values.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@content/rgpv/cse/semester-3/cs-302/pyqs.json` around lines 333 - 338, Fix the
composite unit value for question q8a so it maps correctly through
getQuestionsForModule: represent each listed topic as a separate sub-question
with its corresponding single unit, or update getQuestionsForModule to split and
match comma-separated unit values while preserving module visibility.

Comment on lines +3 to +4
"id": "cse-302",
"code": "CSE-302",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Subject id/code disagree with the sibling pyqs.json and the directory.

Here id is "cse-302" / code "CSE-302", but pyqs.json for the same subject uses "cs-302" / "CS-302", and both live under the cs-302/ directory (the loader keys the path off the lowercased subject code). Align these to a single canonical value to avoid mismatches if anything keys off subject.id/code.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@content/rgpv/cse/semester-3/cs-302/syllabus.json` around lines 3 - 4, Update
the subject metadata in the syllabus JSON so its id and code consistently use
the canonical directory and sibling pyqs values: set id to "cs-302" and code to
"CS-302", matching the cs-302 subject directory and pyqs.json.

"code": "CSIT-302",
"name": "Discrete Structure",
"title": "CSIT-302 - Discrete Structure",
"title": "CS/CT/CO/IT/CI (CSIT)-302 Discrete Structure",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Subject title diverges from syllabus.json for the same subject.

Here title is "CS/CT/CO/IT/CI (CSIT)-302 – Discrete Structure", but content/rgpv/csit/semester-3/csit-302/syllabus.json line 6 uses "(CSIT)-302 – Discrete Structure". Since both files describe the same subject (csit-302), align them to avoid inconsistent rendering across the syllabus and PYQ views.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@content/rgpv/csit/semester-3/csit-302/pyqs.json` at line 6, Update the
`title` field in the `csit-302` `pyqs.json` entry to exactly match the
corresponding `title` in `syllabus.json`, using `"(CSIT)-302 – Discrete
Structure"` and removing the divergent course-prefix text.

Comment on lines 22 to +137
"topics": [
"Set Theory: Definition of sets",
"Countable and uncountable sets",
"Venn Diagrams",
"Proofs of some general identities on sets",
"Relation: Definition",
"Types of relation",
"Composition of relations",
"Pictorial representation of relation",
"Equivalence relation",
"Partial ordering relation",
"Job-Scheduling problem",
"Function: Definition",
"Type of functions: one to one, into and onto function",
"Inverse function",
"Composition of functions",
"Recursively defined functions",
"Pigeonhole principle",
"Theorem proving Techniques: Mathematical induction, Proof by contradiction"
]
{
"id": "csit302-u1-set-theory-definition",
"slug": "set-theory-definition",
"title": "Set Theory: Definition of sets",
"displayOrder": 1
},
{
"id": "csit302-u1-countable-uncountable",
"slug": "countable-uncountable",
"title": "Countable and uncountable sets",
"displayOrder": 2
},
{
"id": "csit302-u1-venn-diagrams",
"slug": "venn-diagrams",
"title": "Venn Diagrams",
"displayOrder": 3
},
{
"id": "csit302-u1-proofs-set-identities",
"slug": "proofs-set-identities",
"title": "Proofs of some general identities on sets",
"displayOrder": 4
},
{
"id": "csit302-u1-relation-definition",
"slug": "relation-definition",
"title": "Relation: Definition",
"displayOrder": 5
},
{
"id": "csit302-u1-types-of-relation",
"slug": "types-of-relation",
"title": "Types of relation",
"displayOrder": 6
},
{
"id": "csit302-u1-composition-of-relations",
"slug": "composition-of-relations",
"title": "Composition of relations",
"displayOrder": 7
},
{
"id": "csit302-u1-pictorial-representation",
"slug": "pictorial-representation",
"title": "Pictorial representation of relation",
"displayOrder": 8
},
{
"id": "csit302-u1-equivalence-relation",
"slug": "equivalence-relation",
"title": "Equivalence relation",
"displayOrder": 9
},
{
"id": "csit302-u1-partial-ordering-relation",
"slug": "partial-ordering-relation",
"title": "Partial ordering relation",
"displayOrder": 10
},
{
"id": "csit302-u1-job-scheduling",
"slug": "job-scheduling",
"title": "Job-Scheduling problem",
"displayOrder": 11
},
{
"id": "csit302-u1-function-definition",
"slug": "function-definition",
"title": "Function: Definition",
"displayOrder": 12
},
{
"id": "csit302-u1-type-of-functions",
"slug": "type-of-functions",
"title": "Type of functions: one to one, into and onto function",
"displayOrder": 13
},
{
"id": "csit302-u1-inverse-function",
"slug": "inverse-function",
"title": "Inverse function",
"displayOrder": 14
},
{
"id": "csit302-u1-composition-of-functions",
"slug": "composition-of-functions",
"title": "Composition of functions",
"displayOrder": 15
},
{
"id": "csit302-u1-recursively-defined-functions",
"slug": "recursively-defined-functions",
"title": "Recursively defined functions",
"displayOrder": 16
},
{
"id": "csit302-u1-pigeonhole-principle",
"slug": "pigeonhole-principle",
"title": "Pigeonhole principle",
"displayOrder": 17
},
{
"id": "csit302-u1-mathematical-induction",
"slug": "mathematical-induction",
"title": "Mathematical induction",
"displayOrder": 18
},
{
"id": "csit302-u1-proof-by-contradiction",
"slug": "proof-by-contradiction",
"title": "Proof by contradiction",
"displayOrder": 19
}
],

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Confirm the current topic contract in the migration/validation script and any updated Topic type.
rg -nP 'topics\s*:|Topic\b|slug|displayOrder|topic\.trim|topic must be string' scripts/ --type ts -C2
# Look for any newer schema/type definitions for syllabus topics elsewhere.
fd -e ts | xargs rg -nP 'interface\s+(Module|Topic)\b|topics\s*:\s*' 2>/dev/null

Repository: imuniqueshiv/HyperLearningTech

Length of output: 2417


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the topic/type definitions and the migration script around the validation logic.
sed -n '1,120p' types/topic.ts
printf '\n---\n'
sed -n '1,140p' types/syllabus.ts
printf '\n---\n'
sed -n '1,220p' scripts/migrate-syllabus.ts

# Look for any code that consumes syllabus topics as objects vs strings.
printf '\n=== topic consumers ===\n'
rg -nP 'topics\W|topic\.trim|topic must be string|displayOrder|slug' . --glob '!node_modules' --glob '!dist' --glob '!build'

Repository: imuniqueshiv/HyperLearningTech

Length of output: 50387


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Find where the migration script is invoked.
rg -n --hidden --glob '!node_modules' --glob '!dist' --glob '!build' 'migrate-syllabus\.ts|migrate-syllabus' . -C2

# Inspect package/CI entry points that might run validation.
fd -a 'package.json|*.yml|*.yaml' .github . 2>/dev/null | head -n 50 | xargs -r rg -n 'migrate-syllabus|validate|syllabus' -C2

Repository: imuniqueshiv/HyperLearningTech

Length of output: 168


Update scripts/migrate-syllabus.ts for object topics. types/topic.ts and types/syllabus.ts already model topics as { id, slug, title, displayOrder }, but the migration validator still uses topics: string[] and rejects any non-string topic. This syllabus, and the rest of the object-based syllabi, will be marked invalid until the validator/type contract is updated together.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@content/rgpv/csit/semester-3/csit-302/syllabus.json` around lines 22 - 137,
Update the migration validator and its associated type contract to accept topic
objects with id, slug, title, and displayOrder instead of only string topics.
Locate the topic validation in scripts/migrate-syllabus.ts and align it with the
Topic and Syllabus definitions so object-based syllabi validate successfully,
while preserving validation for required fields and rejecting malformed entries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant