Task 2: Degree Planner

Congratulations for successfully completing Task 1! Hope you learnt alot during the process. The next task will be focused on testing your ability to develop efficient programming logic.

Introduction to Object Oriented Programming (OOP)

  • Object Oriented Programming is a popular way of writing code that not only helps make the code more readable, but also crisp and efficient.
  • In OOP, you create something called a class and define all the related functions and operations within the class itself. Take a look at the following example
class CourseA():

    def attendClass(self):
        pass
    
    def skipClass(self):
        pass
    
    def dropCourse(self):
        pass
  • In the above code sample, you observe that all the functions defined are related to the class CourseA.

For a more comprehensive introduction, take a look at the resources section.

About the task

  • In this task, you will be creating a Course Planner using the principles of OOP.

Functionalities needed

  1. You should be able to add courses.
  2. The courses to be added can either be predefined in the program from which the user has to choose, or they can be taken directly from the user . It's upto you :)
  3. The courses should have corresponding units with them, and one should be able to see the total units they have taken.
  4. There must be an option to add notes, Google Meet links or any related material for a particular course.
  5. You should be able to remove courses, notes, etc.
  6. Finally, there must be functions that the user can call to create/read/update/delete the notes related to a course, it's Google Meet links, etc.

Further Details

  • You don't need to connect your program with any sort of a database, a stateless program will do.
  • Since all the data updated/stored in the program will be deleted once it exits, it is imperative that the program functions in an infinite loop, and only exits based on user input.

Format of submission

  • You have to make a GitHub account (if you don't have one yet) and push all the code to a repository. You can learn about Git and Github from the resources section below
  • A google form will be floated wherein you will have to share the GitHub repository for the task. Make sure the repository is public.

Timeline

  • We understand that the task might seem daunting at first, but once you understand the concepts of OOP, the remainder is only to develop logic that you see fit!
  • With that in mind, the deadline for the task is 12th Feb EOD (12:00 AM Midnight)

Resources

PS: Some submissions in the last task were not submitted in proper manner. Some wrote the code in the README.md file, some removed extensions from the program file. Please watch the Git resources, and submit the task in a proper format this time.

Feel free to ask any doubts related to the task in the whatsapp group!