Stats all folks!
Download
1 / 20

Stats all folks - PowerPoint PPT Presentation


  • 312 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 ' - 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: [email protected]

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


ad