slide1 l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grea PowerPoint Presentation
Download Presentation
Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grea

Loading in 2 Seconds...

play fullscreen
1 / 20

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


  • 326 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

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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Google Analytics
  • Browser information & usage (monthly view)
google analytics18
Google Analytics
  • OS information & usage (monthly view)
google analytics19
Google Analytics
  • Many other “useful” information
questions
Questions?
  • Email: santos@sfu.ca
  • Who wants to print out a handout? Instead, check out my presentation on http://get.sfu.ca/bbworld09