Stats all folks!
Download
1 / 20

Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grea - PowerPoint PPT Presentation


  • 313 Views
  • Uploaded on

Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grease. Ron Santos Simon Fraser University. What will you learn in this session?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grea' - HarrisCezar


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Slide1 l.jpg

Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grease

Ron Santos

Simon Fraser University


What will you learn in this session l.jpg
What will you learn in this session?

  • Sample Graphs using the Powersight tables (e.g. course growth, student distribution, tool distribution)

  • Sample SQL used to generate the reports

  • Other uses (beyond graphs and stats)

  • Perl modules

  • Google Analytics

    Presentation available at http://get.sfu.ca/bbworld09


Simon fraser university l.jpg
Simon Fraser University

  • Named after famous explorer

  • Opened on September 9, 1965

  • Located on British Columbia, Canada

  • One University - Three campuses

    • Burnaby

    • Vancouver

    • Surrey

  • 900 faculty

  • 1600 staff

  • 100,000 alumni

Simon Fraser

1776 -1862


Simon fraser university4 l.jpg
Simon Fraser University

  • Student Enrollments (Fall2008)

  • Products used: Peoplesoft, LDAP/CAS3, Blackboard Vista 8.0.2

  • Blackboard/WebCT history

    CE3 CE4 CE6 Vista4 Vista8

    2000 2003 2006 2007 2008

  • Blackboard Vista setup

    • 6 Managed nodes (1 protected JMS server)

    • Oracle 10g (~500GB)

    • Sun Sparc Solaris 10


Course growth graph l.jpg
Course Growth Graph

SELECT

source_name, source_id

FROM

rpt_learning_context

WHERE

ims_value = 'SECTION'

AND

source_id LIKE '<semCode>-%'

sourced.id = <semCode>-<courseName>-<courseNumber>-<courseSection> (e.g. 1094-math-100-d100)


Number of unique students l.jpg
Number of Unique Students

SELECT

COUNT (DISTINCT p.person_id)

FROM

rpt_learning_context lc, rpt_member m, rpt_person p

WHERE lc.learning_context_id = m.learning_context_id

AND p.person_id = m.person_id

AND m.active = 1

AND m.role = 'SSTU'

AND p.demo_user = 0

AND lc.source_id LIKE '$semCode-%'

sourced.id = <semCode>-<courseName>-<courseNumber>-<courseSection> (e.g. 1094-math-100-d100)


Course levels graph l.jpg
Course Levels Graph

SELECT

COUNT(*)

FROM

rpt_learning_context

WHERE

ims_value = 'SECTION'

AND

source_id LIKE '$semCode-%-d1%'

sourced.id = <semCode>-<courseName>-<courseNumber>-<courseSection> (e.g. 1094-math-100-d100)


Student levels graph l.jpg
Student Levels Graph

SELECT

COUNT(DISTINCT p.person_id)

FROM

rpt_learning_context lc, rpt_member m, rpt_person p

WHERE lc.learning_context_id = m.learning_context_id

AND p.person_id = m.person_id

AND m.active = 1

AND p.demo_user = 0

AND m.role = 'SSTU'

AND lc.source_id LIKE '$semCode-%-d1%'

sourced.id = <semCode>-<courseName>-<courseNumber>-<courseSection> (e.g. 1094-math-100-d100)



Other uses l.jpg
Other uses

SELECT

(SELECT lc2.name FROM rpt_learning_context lc2 WHERE b.learning_context_id = lc.parent_learning_context_id) as Parent,

lc.name,

lc.source_name,

lc.source_id

FROM rpt_learning_context lc, rpt_member m, rpt_person p

WHERE lc.learning_context_id = m.learning_context_id

AND p.person_id = m.person_id

AND m.role = 'SDES'

AND lc.ims_value = 'SECTION'

AND m.active = 1

AND p.source_name = '<sourced.id_source>'

AND p.source_id = ’<sourced.id_id>'


Perl modules l.jpg
Perl modules

  • Application level

    • DBI - http://dbi.perl.org/

      • DBI stands for database interface

      • Allows Perl of running SQL queries

    • Text::CSV::Simple - http://search.cpan.org/~tmtm/Text-CSV-Simple-1.00/lib/Text/CSV/Simple.pm

      • Parser for CSV files

    • GD::Graph - http://search.cpan.org/~bwarfield/GDGraph-1.44/Graph.pm

      • Graphing module for Perl5


Perl modules12 l.jpg
Perl modules

  • Database level

    • DBD::Proxy driver -http://search.cpan.org/~timb/DBI-1.609/lib/DBI/ProxyServer.pmhttp://docstore.mik.ua/orelly/linux/dbi/ch08_02.htm

      • Module for implementing a proxy for the DBI proxy driver

      • Allows PERL access to a database over the network

      • DBI proxy architecture allows for on-the-fly compression of query and result data, and also encryption of that data. These two facilities make DBI a powerful tool for pulling large results sets of data over the network

    • dbiproxy

      • A proxy server for the DBD::Proxy driver

      • This tool is just a front end for the DBI::ProxyServer package

      • /usr/local/bin/dbiproxy --configfile /etc/dbiproxy.cfg

    • Perl DBD::Oracle - http://search.cpan.org/~pythian/DBD-Oracle-1.23/Oracle.pm

      • Oracle database driver for the DBI module


Perl modules13 l.jpg
Perl modules

  • Sample access configuration for the DBI proxy server (/etc/dbiproxy.cfg)

{

facility => 'daemon',

pidfile => '/var/dbiproxy/dbiproxy.pid',

user => 'nobody',

group => 'nobody',

localport => '3333',

mode => 'fork',

user => 'nobody',

group => 'nobody',

# Access control

clients => [

# Accept the local LAN ( 192.168.1.* )

{

mask => '^192\.168\.1\.\d+$',

accept => 1,

users => [ 'wctsupport' ],

},

  • # Accept our off-site machines ( 192.168.2.* ) but with a cipher

  • {

  • mask => '^192\.168\.2\.\d+$',

  • accept => 1,

  • users => [ 'wctsupport' ],,

  • cipher => Crypt::IDEA->new( 'be39893df23f98a2' )

  • },

  • # Deny everything else

  • {

  • # any IP-address is meant here

  • mask => '^(\d+)\.(\d+)\.(\d+)\.(\d+)$',

  • accept => 0,

  • }

  • ]

  • }


Perl modules14 l.jpg
Perl modules

  • Basic Perl script

    • Connect to DB (via DBI Proxy)

      $dsn = "DBI:Proxy:hostname=$hostname;port=$port;dsn=DBI:Oracle:$sid";

      $dbh = DBI -> connect($dsn, $user, $passwd) || die ("Database connection failed.");

    • Run SQL

      my $sth = $dbh -> prepare( $sql);

      $sth -> execute();

      while ( @row = $sth -> fetchrow_array ) {

      push ( @return, @row);

      }

    • Store SQL results into a CSV file

    • Parse CSV file using Text::CSV::Simple

      my $parser = Text::CSV::Simple->new();

      my @data = $parser->read_file($file);


Perl modules15 l.jpg
Perl modules

5. Graph CSV using GD::Graph

my $graph = GD::Graph::linespoints->new(600, 500);

$graph->set(

x_label => 'Year',

x_label_position => 0.5,

y_label => 'Course Per Semester',

title => 'WebCT Course Growth',

y_max_value => 700,

y_tick_number => 7,

zero_axis_only => 0,

zero_axis => 0,

show_values => 1,

markers => [1, 5, 8],

marker_size => 3,

skip_undef => 1,

transparent => 0,

) or die $graph->error;

my $format = $graph->export_format;

open (IMG, ">$image") or die ("Error creating $image\n");;

binmode IMG;

print IMG $graph->plot(\@data)->$format();

close IMG;


Google analytics l.jpg
Google Analytics

  • Require Google account

  • Need custom entry page for Blackboard

  • Simply put the tracking code (JavaScript) immediately before the </body> tag of each page you want to track (entry page, login, logout)

    • Example tracking code 

      <script type="text/javascript">

      var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");

      document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

      </script>

      <script type="text/javascript">

      try{ 

      var pageTracker = _gat._getTracker("UA-xxxxxx-x");

      pageTracker._trackPageview();

      } catch(err) {} 

      </script>

  • Does not track SSO logins (e.g. logins from portals)

  • Personally identifiable info are not tracked (username and IP address)

  • Provides nice graphs and reports that can be exported & emailed


Google analytics17 l.jpg
Google Analytics

  • Browser information & usage (monthly view)


Google analytics18 l.jpg
Google Analytics

  • OS information & usage (monthly view)


Google analytics19 l.jpg
Google Analytics

  • Many other “useful” information


Questions l.jpg
Questions?

  • Email: santos@sfu.ca

  • Who wants to print out a handout? Instead, check out my presentation on http://get.sfu.ca/bbworld09