content: update CSE/CSIT-302 syllabus and PYQs - #95
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 51 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughChangesCSE CS-302 content
CSIT CS-302 content
Estimated code review effort: 3 (Moderate) | ~30 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
🎉 Congratulations @imuniqueshiv!Thank you for contributing to HyperLearningTech. Your pull request has been successfully merged into main. 📦 Merge Summary
🚀 Keep Contributing
Thank you for helping make HyperLearningTech better. Happy Coding! 🚀 |
There was a problem hiding this comment.
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
📒 Files selected for processing (4)
content/rgpv/cse/semester-3/cs-302/pyqs.jsoncontent/rgpv/cse/semester-3/cs-302/syllabus.jsoncontent/rgpv/csit/semester-3/csit-302/pyqs.jsoncontent/rgpv/csit/semester-3/csit-302/syllabus.json
| "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." |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
rg -n 'hasImage|imagePath|imageAlt|attachments' --type=tsx --type=ts components lib typesRepository: 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.
| "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" | ||
| } |
There was a problem hiding this comment.
🎯 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.tsRepository: 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.
| "id": "cse-302", | ||
| "code": "CSE-302", |
There was a problem hiding this comment.
🗄️ 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", |
There was a problem hiding this comment.
🎯 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.
| "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 | ||
| } | ||
| ], |
There was a problem hiding this comment.
🗄️ 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/nullRepository: 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' -C2Repository: 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.
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
What Changed?
Screenshots (UI Changes Only)
N/A
Testing
Checklist
main.npx prettier --write <file>).npm run format:checkpasses.npm run lintpasses.npm run typecheckpasses.npm run buildpasses.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