Skip to content

An interactive visualization helping University of Calgary staff and students better understand the Computer Science degree.

Notifications You must be signed in to change notification settings

craftypixeldesigns/CPSC-Degree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPSC-Degree

An interactive visualization helping University of Calgary staff and students better understand the Computer Science degree.

Interested in the design process? Read the case study

Instructions on how to run:

Creating the database

I created a data set based on relevant courses from January 2016:

  • Undergraduate SENG courses
  • Undergraduate CPSC courses except for CPSC 203 as BSc students receive no credit
  • Courses in the Computer Science degree except outside the CPSC field, irrelevant Honours & MATH (e.g. PMAT 527), ENCM & EENG, and Scientific Computation (which was undergoing review)
  • Excluded graduate courses and pre-requisite high school courses
  • Selected the last 4 academic years for Fall, Winter, Spring, and Summer courses between Fall 2012 and Spring 2016 (CPSC, MATH, PHIL)
  • Classified courses as optional if a pre-requisite is met with class A or B and required otherwise
  • Converted course links to conjunctive normal form for consistent relationships

Understanding the data files

Interested in using the database? Read more about it here:

There are two main structures in the "cpscgraph" variable

"courses" - first entry is a nil placeholder to render the graph properly

  • cid: integer, unique identifier for the node
  • faculty: string, four-letter faculty relevant to CPSC
  • num: integer, course number
  • cnum: string, combination of faculty + num
  • cname: string, full course name
  • consent: string, where you'll need consent from (Department of...)
  • credit/lecture/lab: integer, corresponds with their names
  • did: integer, unused - see details.js

"links" - used as relationships for courses

  • source/target: integer, corresponds with cid in courses structure
  • value: integer, helps create the links (you're spot on)
  • 0/1: source is a prereq for target, 0 has an "AND" relationship and 1 has an "OR" relationship
  • 2/3: source is an antireq for target, 2 has an "AND" relationship and 3 has an "OR" relationship
  • 4/5: source is recommended for targe, 4 has an "AND" relationship and 5 has an "OR" relationship

There are three structures

"course2stream" - connects courses & concentration stream

  • cid: integer, corresponds with cid in cpscgraph.courses
  • cdid: key to degDetails structure

"degDetails" - list of concentrations (0 = none)

  • cdid: integer, unique key with course2stream
  • type: string, for concentration name

"availabilityMain" - connects courses & when courses were offered (should be called course2availability for consistency)

  • cid: integer, corresponds with cid in cpscgraph.courses
  • aid: string, key to availabilityDetails structure

"availabilityDetails" - semester & year when courses were offered in the past

  • aid: integer, unique key with availabilityMain
  • startstamp: integer, unique number used for error handling with the filters (cannot select years that aren't a range)
  • semester: string, for semester name

About

An interactive visualization helping University of Calgary staff and students better understand the Computer Science degree.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published