book

FCQ

The objective of today's hackathon is to produce a data-driven report to provide some insight into the FCQ data. We've prepared a slice of the dataset. There are 5000 records in this slice.

The first record looks like

{
 "AVG_GRD": 2.98,
 "Activity_Type": "LEC - Lecture",
 "AvgCourse": 5.4,
 "AvgInstructor": 5.6,
 "Course": "4808",
 "CourseTitle": "Special Topics in World Areas History",
 "CrsLvlNum": "4XXX",
 "CrsPBAColl": "AS",
 "CrsPBADept": "HIST",
 "CrsPBADiv": "AH",
 "Honors": "0",
 "Hours": 3,
 "Instruction_Mode": "P  - In Person",
 "Level": "Upper",
 "NComb": 2,
 "NIntrFCQ": 1,
 "N": {
  "ENROLL": 16,
  "EOT": 16,
  "GRADE": 16,
  "INCOMP": 0,
  "NOCRED": 0,
  "PASS": 0,
  "Ret": 15
 },
 "PCT": {
  "A": 0.31,
  "B": 0.5,
  "C": 0.12,
  "C_MINUS_OR_BELOW": 0.06,
  "D": 0,
  "DF": 0.06,
  "F": 0.06,
  "GRADE": 1,
  "INCOMP": 0,
  "WDRAW": 0
 },
 "RAP": "0",
 "Section": "001",
 "Subject": "HIST",
 "Subject_Label": "History",
 "Workload": {
  "Hrs_Wk": "7-9",
  "Raw": "3.40"
 },
 "YearTerm": "20137",
 "Instructors": [
  {
   "group": "1 TTT",
   "name": "MOJOLA, SANYU AMIMO",
   "title": "ASST PROFESSOR"
  },
  {
   "group": "1 TTT",
   "name": "OSBORNE, MYLES GREGORY",
   "title": "ASST PROFESSOR"
  }
 ]
}

Examples

Study the following examples of aggregate analysis across colleges based on the CrsPBAColl field.

How many courses have a valid college code?

return _.filter(data, function(d){
            return d['CrsPBAColl']
        })

The answer is 4981.

What are the unique college codes?

return _.compact(_.uniq(_.pluck(data, 'CrsPBAColl')))

They are AS,BU,EB,EN,GR,JR,LW,MB,XX,AP.

What is the distribution of the courses across colleges?

var grps = _.groupBy(data, 'CrsPBAColl')
return _.mapValues(grps, function(d){
    return d.length
})

{
 "AS": 3237,
 "BU": 378,
 "EB": 139,
 "EN": 573,
 "GR": 51,
 "JR": 96,
 "LW": 176,
 "MB": 241,
 "XX": 30,
 "undefined": 19,
 "AP": 60
}

What are the total student enrollments compared across colleges?

var grps = _.groupBy(data, 'CrsPBAColl')
return _.mapValues(grps, function(d){
    var enrollNumbers = _.pluck(d, 'N.ENROLL')
    return _.sum(enrollNumbers)
})

{
 "AS": 119563,
 "BU": 17523,
 "EB": 3198,
 "EN": 27047,
 "GR": 1177,
 "JR": 2982,
 "LW": 5166,
 "MB": 7034,
 "XX": 559,
 "undefined": 384,
 "AP": 1400
}