The program is a basic system for the maintenance of students' academic records at a university. registrar.py
contains program logic, and registration.py
allows the user to run the program in the command line. If you would like data to persist beyond the current session, users must save the data to a .pickle file.
- Call
python3 registration.py
to start the interactive command prompt - Type
14
orCtrl-C
to quit
Menu
- Create a course
- Schedule a course offering
- List course catalog
- List course schedule
- Hire an instructor
- Assign an instructor to a course
- Enroll a student
- Register a student for a course
- List enrolled students
- List students registered for a course
- List faculty
- Submit student grade
- Get student records
- Exit
A class representing a course offered (possibly repeatedly) at a university (e.g., MPCS 55001 at University of Chicago).
Attributes
- department (e.g., MATH, MPCS, PHYSICS, STATS, ENGLISH)
- number (e.g., 55001)
- name (e.g., Algorithms)
- credits (An integer value. The number of credits awarded for passing the course.)
A class representing a specific offering of a course. This class combines the general idea of a course (e.g., Algorithms offered on a regular basis at the school) with a specific instance of it being offered (e.g., Fall 2017).
Attributes
- course (An instance of the Course class.)
- section_number (A section number for the offering (e.g. 1))
- instructor (e.g., Joe Smith)
- year (e.g., 2017)
- quarter (e.g., FALL)
Behavior
- register_students : Takes an arbitrary number of instances of the student class and adds the students to the course.
- get_students : Returns a list of instances of the Student class representing those that have registered for the course.
- submit_grade : Takes an instance of the student class OR a student username and a letter grade (e.g., A+, A, A-, B+, B, B-, …) and sets the student's letter grade for the course. If the grade has already been set, this operation overwrites the existing grade.
- get_grade : Takes an instance of the student class OR a student username and returns the student's letter grade.
A class representing a university (e.g., University of Chicago).
Attributes
- name (e.g. University of Chicago)
- domain (e.g.
@uchicago.edu
)
Behavior
- list_students : Return a list of all students enrolled.
- enroll_student : Accept an instance of the Student class and adds it.
- list_instructors : Return a list of all instructors employed at the university.
- hire_instructor : Accept an instance of the instructor class and add it.
- list_course_catalog: Return a list of all courses available at the university.
- list_course_schedule : Given a year and quarter, return a list of course offerings in the specified time period. Optionally accept a department name argument. If the department name argument is given, filter the results list to exclude course offerings from any other department.
- add_course : Adds an instance of the Course class to the university's course catalog.
- add_course_offering : Takes an instance of the Course class and adds it to the university's course schedule.
A class representing the people involved with the university.
Attributes
- last_name
- first_name
- school (A reference to an instance of the Institution class.)
- date_of_birth (An instance of the datetime.datetime class.)
- username (Equivalent to UChicago CNetID. Used as a unique identifier across the system.)
- affiliation (e.g., student, faculty, staff, etc)
- email (A property. Should resolve to [self.username]@[self.school.domain])
A class representing an instructor of a course at a university. Inherits from Person class.
Behavior
- list_courses : Return a list of courses taught by the instructor in reverse-chronological order (most recent first).
A class representing a student at a university. Inherits from Person class.
Behavior
- list_courses : Return a list of courses the student has taken (or is currently registered for) in reverse-chronological order (most recent first).
- credits : Returns the number of credits earned toward graduation. Assume all credits are earned toward a single degree.
- gpa : Returns the student's grade point average (GPA) calculated as the average of grade points earned for each course, weighted by credits earned for the corresponding course. Pluses and minuses are available