Git Product home page Git Product logo

simple-course-planning-tool-'s Introduction

Simple-Course-Planning-Tool-

Background.

  • Academic advising, especially properly planning courses across semesters to ensure students graduate on time, requires significant time and effort from both students and faculty. By collaboration between faculty of computer science and mathematics department, we are planning to build a Python-based smart class planning tool, which can be executed on any platform such as Windows, Linux, etc., or integrated into D2L as a third-party plug-in.
  • It is important for students to enroll in the proper courses designed to meet the degree requirements. Many students mistakenly enroll in classes simply because the classes fit their schedule without considering factors such as prerequisite requirements and different course offering times over the academic year semesters.

Project Overview.

This smart advising tool can output a recommended class plan for a student to follow until the student’s graduation based on the student’s career goal, program interests, expected graduation date, etc. This software requires three inputs to generate an output excel form where recommended classes for different semesters are listed. The first input is the list of courses a student still needs until the student’s graduation, which will be obtained from Degreeworks as a pdf document. The second input is the prerequisite graph of all the required classes from the students’ track, which can be represented as a directed acyclic graph (DAG). The last input is the class schedule, which indicates when the student's required courses will be offered. ** Please note:

  1. the second and the third input can be found and obtained from CSU’s website.
  2. In computer science and mathematics, a directed acyclic graph (DAG) is a graph that is directed and without cycles connecting the other edges. This means that it is impossible to traverse the entire graph starting at one edge. The edges of the directed graph only go one way. The graph is a topological sorting, where each node is in a certain order.
  • AI techniques can achieve state-of-the-art accuracy, sometimes exceeding human-level performance. AI is now a key technology behind driverless cars, enabling them to recognize a stop sign, or to distinguish a pedestrian from a lamppost. It’s achieving results that were not possible before. We will train AI models by our academic advising records. Figure 1 shows the model architecture.

Requirements

Academic advising takes a long time for both students and faculty, especially when checking prerequisite issues. To facilitate class planning, we are to build a python based standalone application, which can be executed on the Windows platform.

Functional requirements:

  • The first goal of the software is to plan out classes among different semesters for a student until his/her graduation. The software takes three inputs and outputs an excel form where recommenced classes are listed. The 1st input is the classes a student must take before his/her graduation. The 2nd input is the prerequisite graph of all the required classes from the students’ track (may reflect the prerequisite with the DAG graph). The 3rd input is the class schedule, which indicates when the student's required courses will be offered. The recommended plan should be outputted by the software in the form of an excel document.

  • Another function of the software is to detect if a student’s plan has prerequisite issues. To do this, two inputs should be considered. One input is the prerequisite graph of all the required classes from the students’ track (may reflect the prerequisite with the DAG graph). Another is a class plan (i.e., an excel document).

  • We should leverage AI/Machine learning algorithms to make the tool smarter. This part will be implemented in the second half of our semester.

Non-functional requirements (constrains):

  • The software should be configurable. Specifically, the inputs must be separated from the software and be parsed by the software.

  • The software should be implemented in Python and thus can be executed on Windows.

simple-course-planning-tool-'s People

Contributors

grantbriana avatar tyronesandefur avatar joejoe1192913 avatar archangel110124 avatar brownmaxwell avatar

Stargazers

 avatar

Watchers

 avatar  avatar

simple-course-planning-tool-'s Issues

Update Tracks

Each spreadsheet needs to be properly updated and filled. Add prerequisites column

To-Do/Notes (please read)

  1. Clean Code

Organize program code by modules. Instead of combining code into a single file, import the needed file to access proper code.

For example:

Student_Interface.py will import no file

File_Reader.py` imports Student_Interface.py

Simple_Course_Planning_Tool.py imports File_Reader.py

Display_Schedule` imports Simple_Course_Planning_Tool.py

Organize code into functions and classes and as you go.

Use self-explanatory names to ease code readability

  1. Over-Communicate!

Communicate with team in order to help pick up the load when necessary, solve problems, and integrate code properly

  1. Test Cases!

  2. User Friendly Interface

Beautify Student Interface

  1. FIRST MAKE SURE IT WORKS !!! We can always OPTIMIZE the code LATER on

  2. UPLOAD TO GITHUB REGULARLY

Each person needs to know how their part code works with the next.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.