How it Works: a Brief Overview - memorial-ece/CI_ReportGen GitHub Wiki

File Setup

The program works based off of the following directory setup:

(Main folder, name it whatever you like)
  CI_ReportGen
    ...
  Grades
    Core
      ...
    Co-op
      ...
    ECE
      ...
    ENCM
      ...
    ENCV
      ...
    ENEL
      ...
    ENMC
      ...
    ENPR
      ...
    ONAE
      ...
  Indicators
    ENCV Indicators.xlsx
    ENCM Indicators.xlsx
    ENEL Indicators.xlsx
    ENMC Indicators.xlsx
    ENPR Indicators.xlsx
    ONAE Indicators.xlsx
  Histograms
    ENCM
    ENCV
    ENEL
    ENMC
    ENPR
    ONAE
  Missing Data
    ENCM Missing Data.txt
    ENCV Missing Data.txt
    ENEL Missing Data.txt
    ENMC Missing Data.txt
    ENPR Missing Data.txt
    ONAE Missing Data.txt
  • The CI_ReportGen folder is the actual project located here on GitHub
  • The Grades folder contains sub-directories by discipline that the program searches when finding grades to plot on a histogram (save for the Core, Co-op and ECE directories, which behave as backup search directories if the program does not find the required grades in the respective discipline directory)
  • The Indicators folder contains all of the indicators information that the program needs to auto-generate a histogram. The indicator spreadsheets inside must be kept up to date for accurate generation. They have the following column names, along with a few others:
    • Graduate Attribute
    • Indicator #
    • Indicator Description
    • Course #
    • Course Title
    • Method of Assessment
    • Level
    • Bins
    • Notes
  • The program will save histograms to the Histograms folder by the discipline it was parsing at the time
  • The program will auto-detect any missing data, including missing grades or missing bin ranges, and output what it is missing to the files in the 'Missing Data' directory
  • Addition of more columns to the indicator spreadsheets is allowed. The program will only use the ones that it requires

Running the auto-generator

As of the writing of this wiki page, the program has a function in procedures.py that handles generating histograms by cohort, called histogram_by_cohort(). To gain access to it:

  1. Open a terminal in the CI_ReportGen directory
  2. Open a Python 3 shell
  3. Import the procedures file using import procedures, or import just the function by using from procedures import histogram_by_cohort You can then call it using either procedures.histogram_by_cohort() or histogram_by_cohort(), depending on how you imported it.

histogram_by_cohort() parameters

The histogram_by_cohort() function has the following parameters:

  • programs: A list of programs to process. Defaults to using all programs.
  • whitelist: A dictionary including lists of the only things that should be processed. Options can include, but are not limited to, lists of:
    • courses
    • indicators
    • assessments As long as the whitelist key matches closely to the column name in the indicator table, it should pick it up. For example, if you added a "Term Offered" column, you could use the whitelisting feature to generate a query from it. Additionally, if you are only passing one parameter to query, you do not have to put it in a list; the program will do that for you.

histogram_by_cohort() examples

Run the histogram generator across all programs:

>> import procedures
>> procedures.histogram_by_cohort()

OR

>> from procedures import histogram_by_cohort()
>> histogram_by_cohort

Run the histogram generator across one program:

>> import procedures
>> procedures.histogram_by_cohort(programs=['ENCM'])

OR

>> import procedures
>> procedures.histogram_by_cohort(programs='ENCM')

Run the histogram generator across multiple programs:

>> import procedures
>> procedures.histogram_by_cohort(programs=['ENCM', 'ENEL'])

Run the histogram generator using an indicator whitelist:

>> import procedures
>> procedures.histogram_by_cohort(whitelist={'Indicator': ['KB', 'PA']})

OR

>> import procedures
>> procedures.histogram_by_cohort(whitelist={'Graduate Attribute': ['A Knowledge Base for Engineering', 'Problem Analysis']})

Run the histogram generator using a course filter

>> import procedures
>> procedures.histogram_by_cohort(whitelist={'course': ['ENGI 1030', 'ENGI 1040']})