Assignment-1
Assignment-1
Plagiarism: All submitted lab assignments are expected to result from your effort. You
should never misrepresent someone else’s work as your own. In case any plagiarism case
is detected, it will be dealt with as per IIITD plagiarism policy and without any relaxations:
NOTE that we will ONLY respond to valid questions. Make sure you ask all your doubts in
advance. Doubts on the day of submission will not be entertained. With doubts
coming, some parts of the assignment may get updated. So, make sure you regularly
follow up on doubts in the classroom. If the assignment is updated in between, it will be
announced.
Problem Statement
Our university is transitioning to a new course registration system to better manage student
enrollments, schedules, and academic records. You are tasked with developing this new system
using object-oriented programming (OOP) concepts covered in class.
Your application must ensure that all fundamental OOP concepts—such as classes, interfaces,
inheritance, polymorphism, encapsulation, and abstraction—are applied effectively. The rubrics
will strictly check the implementation of all the concepts covered in class.
The assignment is up to you to your creativity, and there is no one solution. Multiple methods
can exist, and you won’t be penalized if they make sense.
1. User Roles: The system should support three types of users—Students, Professors,
and Administrators. Each user type has specific functionalities; they must log in to
access these features. Students and professors can log in/sign up using their email and
password. (They must create the password first to sign up). For Administrators, the
password is fixed (you may choose anything)
Input/Output Examples
Of course, there can be multiple functionalities inside a functionality. That implementation is not
fixed. However, all the functionalities must be handled because there will be set rubrics that
check everything, which must be implemented strictly to handle everything.
The menu structure does not need to be fixed; it is up to you to create it in any manner. Ensure
all the functionalities are available; beyond this, it is an open field for you to develop.
PART 2 (5 marks)
Make a UML Diagram with proper notation. (All five marks of Part 2 are for the UML diagram)
Submission Guidelines
● Code: Submit your code in a single .zip file with separate directories for each role's
functionalities (Student, Professor, Administrator).
● Documentation: Include a README file explaining how to run your code, any
assumptions made, and how each OOP concept is applied.
● Demonstration: You must demonstrate how your application works with at least three
students, two professors, one administrator, and five courses.
● Plagiarism: Ensure all the work is your own. Plagiarism will be strictly penalized as per
the university's policy.
Note: Currently, marks are assigned according to functionalities only, but using all OOP
concepts covered in class is essential. If concepts are missing, marks will be deducted, even if
functionality works.
You must be clear with the explanations. Otherwise, we would think you copied the code, and
marks will be deducted.