monsoon 2024: cs-is-3077
Logistics:
Credits: | 2 |
Meetings: | Fridays, 2:00pm to 3:00pm |
Meeting Room: | AC-04-LR-002 |
Office Hours: | TBD |
Links:
Resources and Reading Materials |
Project Summaries |
Feedback, Appraisals, and Reflection |
A Limerick |
Course Description: Rust is a systems programming language that combines low-level control with high-level safety. It excels in performance and concurrency while preventing common errors like null pointer dereferencing and buffer overflows. With its growing adoption in AI, web development, and systems programming, Rust offers a modern solution to age-old programming challenges. The independent study module offers participants an opportunity to acquire Rust proficiency through engagement with real-world applications of Rust programming. Students will select from three project categories: translating existing code into Rust, contributing a new feature to an open-source Rust project, or resolving an issue within an open-source Rust codebase. Through these projects, students will develop competence in fundamental Rust concepts.
Prerequisites: Prerequisites for this course include a strong foundation in at least one programming language. While prior experience with Rust is not mandatory, participants should either possess a basic familiarity with Rust concepts or be prepared to engage in concurrent self-study alongside the course.
Course Project: As described above, students will select from three project categories: translating existing code into Rust, contributing a new feature to an open-source Rust project, or resolving an issue within an open-source Rust codebase. Their project will determine the learning trajectory for the course. The project topic must be approved by the instructor. The project can be completed individually or in groups of up to 3 members. A project proposal is due by September 9. The final submission is due on November 21 and consists of three components: a short write-up, codebase, and a poster. The codebase should be available on Github as a public repository with appropriate documentation and commit history. The poster should visually summarize the project, including the key problem statement, main steps of the approach, significant results, and relevant visual aids. Find some guidelines and a sample here. The meeting on November 28 will be used for project presentations. The project will be evaluated based on the originality and relevance of the chosen problem, code quality, functionality, Rust-specific concepts utilization, and adherence to open-source contribution standards.
Grading: The grades for this ISM are evaluated solely on the course project.
- Progress Evaluations: The evaluations on September 25 and November 6 will each contribute 15% to the final grade, accounting for 30% in total. These assessments will measure the student's growing understanding of Rust concepts, their ability to apply them progressively, and the ability of the student to remain on the timeline for the course project.
- Code Quality: Students will perform detailed code reviews for their peers throughout the course. These reviews will be used to measure the proper use of Rust idioms, safety features, and core concepts like ownership and borrowing and will contribute to 20% of the total grade.
- Functionality and Completeness: This evaluates the correctness of implementation and fulfillment of project requirements. The gold standard for this parameter (and the project) is for your pull request to be accepted by an open-source project. It contributes to 20% of the total grade.
- Documentation and Testing: The project codebase must be complemented by detailed documentation and unit tests. The clarity of code comments, appropriateness of the documentation, and the presence and quality of unit tests contribute to 15% of the total grade.
- Project Presentation: The remaining 15% of the grade is allocated to the final presentation, where students will demonstrate their ability to articulate their project's goals, challenges, and outcomes, as well as reflect on their learning journey with Rust.
Policies: Students are expected to review and abide by Ashoka's Academic Integrity Policy (MyAshoka → Information and Documents → Office of Academic Affairs). Attendance is required in at least 7 out of 9 ISM meetings.
Calendar:
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
---|---|---|---|---|---|---|
Aug 25 | Aug 26 |
Aug 27 |
Aug 28 |
Aug 29 |
Aug 30 Meeting 1 |
Aug 31 |
Sep 1 |
Sep 2 |
Sep 3 |
Sep 4 |
Sep 5 |
Sep 6 |
Sep 7 |
Sep 8 |
Sep 9 Meeting 2 Project Proposal |
Sep 10 |
Sep 11 |
Sep 12 |
Sep 13 Meeting 3 |
Sep 14 |
Sep 15 |
Sep 16 |
Sep 17 |
Sep 18 |
Sep 19 |
Sep 20 Meeting 4 |
Sep 21 |
Sep 22 |
Sep 23 |
Sep 24 |
Sep 25 |
Sep 26 |
Sep 27 Meeting 5: Evaluation I |
Sep 28 Appraisal I |
Sep 29 |
Sep 30 |
Oct 1 |
Oct 2 |
Oct 3 |
Oct 4 Meeting 6 |
Oct 5 |
Oct 6 |
Oct 7 |
Oct 8 |
Oct 9 |
Oct 10 |
Oct 11 |
Oct 12 |
Oct 13 |
Oct 14 |
Oct 15 |
Oct 16 |
Oct 17 |
Oct 18 Meeting 7 |
Oct 19 |
Oct 20 |
Oct 21 |
Oct 22 |
Oct 23 |
Oct 24 |
Oct 25 Meeting 8 |
Oct 26 |
Oct 27 |
Oct 28 |
Oct 29 |
Oct 30 |
Oct 31 |
Nov 1 |
Nov 2 |
Nov 3 |
Nov 4 |
Nov 5 |
Nov 6 |
Nov 7 |
Nov 8 Meeting 9: Evaluation II |
Nov 9 Appraisal II |
Nov 10 |
Nov 11 |
Nov 12 |
Nov 13 |
Nov 14 |
Nov 15 |
Nov 16 |
Nov 17 |
Nov 18 |
Nov 19 |
Nov 20 |
Nov 21 Project Submission |
Nov 22 |
Nov 23 |
Nov 24 |
Nov 25 |
Nov 26 |
Nov 27 |
Nov 28 |
Nov 29 Project Presentations |
Nov 30 Course Reflection |